uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》

今天给大家介绍一篇相当棒的经典推荐领域的论文《Deep Neural Networks for YouTube Recommendation》,这篇文章主要介绍如何将深度学习应用在推荐。

1 整体结构

YouTube视频目前服务于10亿的用户量,每天视频库也在大量的增长,面对这样一个场景,YouTube的挑战主要有:

1、规模大小(scale)
目前推荐算法主要都是针对相对较小的规模,而YouTube则需要强大的分布式学习算法已经强大的在线服务能力
2、新鲜度(freshness)
YouTube每天都在上传大量的视频,如何快速把新鲜的视频推荐给用户以及如何权衡过去高质量的视频推荐。
3、噪声
视频推荐也较难获得用户的满意反馈,往往也只能从隐性反馈中学习,这也造成噪声不可避免,加上用户的行为稀疏性和多样性。因此寻找一个稳定的训练集和特征是重要的。

借助Google Brain的强大计算力,问题1这个基本也都不是问题了,这篇论文的推荐架构也是经典的两阶段方法,但是在很多细节处理上有许多值得我们借鉴的地方,下面就简单聊聊(不论是视频推荐,很多排序算法也可以参考这个做法来做)

uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第1张图片
整体结构

2 召回模块(候选集生成Candidate Generation)

这里描述的方法其实也是一种矩阵分解的方法,早期做法是通过浅层网络来模拟矩阵分解,而且仅仅对用户的观测历史进行embedding,从这个角度来看,本文做法可以看成是一个非线性的分解技术。

2.1 特征表示阶段

这里把候选集推荐当成一个多分类问题:根据用户以及当前上下文特征,为用户在t时刻推荐一个视频,其中视频来源于视频池,表示为:

其中u表示用户和context的组合embedding,v表示视频embedding,因此我们的目标是通过神经网络来学浏览历史和上下文的embedding function来表征用户,然后一个softmax分类器来判断哪个视频被预测概率最大。
用户特征主要来源如下几个特征拼接:

  • 一段时间内的观看历史视频的average embedding (这里用到的video的embedding也是最后softmax里的video embedding)
  • 一段时间用户搜索(query)的关键词的average embedding
  • 用户的年龄特征
  • 性别特征
  • 地理位置/设备型号 embedding
  • example age :表示视频上传时间距离当前时间差(时间差越小表示视频越新鲜)

特征拼接后经过几层的全链接层(激活函数采用ReLU)
这里用户的query特征主要是由unigram和bigram来表征,然后训练各自的embedding。
地理位置信息对于新用户来说是个非常重要的特征,YouTube把用户地理位置和设备型号都进行embedding。对于简单的二值/连续 特征,则采用mult-hot/one-hot的编码方式。
example age这个特征则表示视频的新鲜度,YouTube有根据这个特征来模拟其流行度。


uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第2张图片
流行度

2.2 训练阶段

由于只能通过用户的隐性反馈来获取正负样本,YouTube定义完成一个视频观看作为正样本。由于视频的候选集十分巨大(至少百万级/千万级),因此传统的softmax训练非常慢而且效果不理想,这里采用了负采样的方法进行训练,在进行负采样的时候也采用importance weighting。文章中也提到不采用Hierarchical softmax的原因。

For each ex ample the cross-entropy loss is minimized for the true label and the sampled negative classes.
In practice several thousand negatives are sampled, corresponding to more than 100 times speedup over traditional softmax.

2.3 在线服务

每次推荐的时候都计算所有视频池然后排序,需要消耗大量的时间。这里打分问题被看成一个最近邻搜索问题。这是个很棒的技巧,可以预计算好所有视频的embedding,然后通过大规模的最近邻搜索算法直接根据(U,C)的embedding寻找TopN视频即可。

uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第3张图片
image

做推荐的同学都知道,如果仅仅使用模型推荐的结果曝光和点击数据来进行训练,会陷入一个局部最优,而且导致新的内容无法被挖掘出来。

It is important to emphasize that recommendation often involves solving a surrogate problem and transferring the result to a particular context.
Training examples are generated from all YouTube watches (even those embedded on other sites) rather than just watches on the recommendations we produce. Otherwise, it would be very difficult for new content to surface and the recommender would be overly biased towards exploitation.

另外一个要注意的问题就是label的选择,在一个序列中,如果某个视频Vt被选为预测对象,那么应该把Vt以前的观看历史作为输入特征,不能泄露Vi(i=t+1, t+2,...)的信息,例如下图(b)

uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第4张图片
image

3 排序模块

初步筛选之后,可能选择近百个视频进行排序。但影响用户点击与否的特征不单单是视频内容,还有包括视频的图片信息,因此这个阶段需要更多的特征来进行精细排序。虽然深度学习为我们特征工程减轻了负担,但特征还是需要精心设计。
我们先看下排序阶段的模型架构图:

uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第5张图片
image

其实工作重心依然是在特征工程

  • 某个视频是否会被用户喜欢,很大程度和该用户是否观看过同类视频的特征相关,因此同类视频的观看次数、上一次观看同类视频的时间距离(如图的time since last watch)都可以作为特征
  • embedding categorical features 同召回阶段
  • 神经网络对输入特征的scale是敏感的,因此归一化很重要,除了对原始值进行归一化,我们可以通过其他方式表征连续型变量的特征:power(x, 2), sqrt(x) 等
  • 待推荐的视频被曝光的次数也可以作为特征,如果曝光次数越多,往往被再次点击的可能性较低。

训练阶段
这里不是仅仅把点击作为正样本,未点击作为负样本,而是利用观测时间进行加权,这里称为weighted logistic regression技术

Our goal is to predict expected watch time given training examples that are either positive (the video impression was clicked) or negative (the impression was not clicked). Positive examples are annotated with the amount of time the user spent watching the video. To predict expected watch time we use the technique of weighted logistic regression, which was developed for this purpose.

其实就是加权的逻辑回归,在计算损失函数的时候,加上用户观看视频的时间因子作为权重

The model is trained with logistic regression under cross-entropy loss .
However, the positive (clicked) impressions are weighted by the observed watch time on the video.
Negative (unclicked) impressions all receive unit weight

具体的参数配置以及loss情况如下表所示


uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》_第6张图片
image

最后文章也提到该方法相对于之前的矩阵分解技术有很大的提升

Our deep collaborative filtering model is able to effectively assimilate many signals and model their interaction with lay- ers of depth, outperforming previous matrix factorization approaches used at YouTube .

你可能感兴趣的:(uniformML-Paper1-Recommendation《Deep Neural Networks for YouTube Recommendation》)