赞
踩
论文:《Deep Neural Networks for YouTube Recommendations》
相信很多小伙伴已经看过相关的文章,这篇文章主要目的在于阐述一些其他人很少关注但却是极其重要的点,当然也包括很多人提到点:
PS:我觉得这篇论文的思想简直就是深度学习应用至推荐系统的工程教科书。
这张图就很清晰地阐述整个推荐系统的流程:
这个框架不知道是不是深度学习推荐系统的鼻祖(未去验证),但只能说,直到如今,很多还是沿用着这个框架。(现在可能还会加入粗排、重排等步骤)
首先,需要定义召回网络的目标,如下公式:U代表用户,C代表上下文信息,V代表视频
那么召回网络的目标即可以理解为预测对于一个用户,在当前的上下文场景下,观看每个视频的概率。
这就相当于转化于一个多分类问题了。
召回模型的整体结构还是比较简单的:
(这一层的offline training和online serving是非常关键的点,下文详细展开)
下面,我列举出几个关键的工程部分:
首先,YouTube发现用户偏爱于新鲜的视频;其次,视频流行度的分布是非常不平稳的:即视频在刚发布时,更受用户喜爱,随着发布时间的越发久远,受喜爱趋势就会快速下降,但baseline模型在一段时间的训练窗口内,却是表现得很平稳(该窗口内预测概率的平均)
所以为了修复这个问题,模型加入视频年龄的特征,即视频的发布时间,实验结果也证明是有效的;
3. 上下文和标签选择
Youtube发现用户一开始都会范围比较广地浏览各种视频,然后再专注于一个比较小的范围内。(应该是从探索到发现喜爱),这是一种不对称的浏览行为,所以,相对于从观看序列中随机抽取一个作为label(下图a),即忽略这种不对称性又缺失未来的信息,
把序列的最后一次观看作为label(下图b)会更适合
编辑切换为居中
添加图片注释,不超过 140 字(可选)
4. 负采样
上面也提到:召回网络的目标即可以理解为预测对于一个用户,在当前的上下文场景下,观看每个视频的概率。
那么,对于每个样本来说,所有视频都可能是正样本。假如有100W个视频,那么召回模型就变成一个100W分类模型了,这显然带来了很大的训练难度。
所以,就需要用到负采样了,论文这里讲得比较模糊,大概思路就是:
这一节本来应该也属于工程部分的,但它实在是论文的精华,就单拎出来讲了。包括后面的双塔模型DSSM也是同样的套路。
到ReLU全连接层得到用户向量u这一步,都还是很清晰易懂的。
离线training部分:
很多没真正做过召回模型的同学,包括很多文章,到这里就“点到为止”了。
P
=
u
(
1
,
d
i
m
)
⋅
V
T
(
s
a
m
p
l
e
,
d
i
m
)
P = u(1,dim)⋅V^T(sample,dim)
P=u(1,dim)⋅VT(sample,dim)
用户向量u与每个视频向量v进行内积,就得到用户观看每个视频的概率,然后选择最大的作为模型预测输出。
在线serving部分:
那么,在线serving怎么做呢?
论文后面还提到了排序部分,但如今排序模型已经是迭代得很厉害了,例如XDeepFM、DIN、Transformer等等,在这里就不展开讲了。
再重述一下文章的几个点,如果看到这里还有不清楚的地方,可以再往上翻翻:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。