这篇文章是阅读YouTube的《Deep Neural Networks for YouTube Recommendations》后的一点总结,这篇文章值得详细阅读,因此将其中的核心点整理出来。
文章的重点
在本文中,推荐系统的架构与其他的推荐架构极为类似,都是由两个部分组成:1、候选集生成;2、ranking。详细的架构如下图所示:
这样的一种漏斗模型在很多地方都会使用到,漏斗模型如下图所示:
在上述的架构中,两个部分对应的功能为:
同时,上述的架构也是一种分层的架构,这样,在候选集生成部分就可以加入不同的挖掘方法挖掘出的相关视频。
对于候选集的生成模块,需要从视频集中选择出与用户相关的视频。本文中作者提出将其看成一个极多分类问题(extreme multiclass classification problem):
召回训练的神经网络结构如下图所示:
在上面的神经网络的结构中,包含了两个阶段,分别为训练阶段和服务阶段:
对于服务阶段使用到的相似向量的计算方法不在本文的讨论范围内,在这里着重讨论该神经网络的训练。
从上面的神经网络的结构中可以看出,神经网络的训练数据主要包括如下的几个部分:
Ranking部分是从候选集中进行进一步的优选,除了上述的候选集生成方法,Ranking部分可以融入更多的其他的候选集。
本文作者在这个部分没有使用点击率作为问题的目标,而是使用了观看时长(watch time)。因为如果使用点击率,用户可能并没有完成观看,使用观看时长,可以更好地捕捉用户的参与(原文的意思是说:会存在“clickbait”)。在神经网络的最后一层使用的方法二分类的Logistic Regression,训练样本为:
正例同时伴随着用户观看的总时长。为了能够预测用户的期望观看时长,使用的是加权Logistic Regression(Weighted Logistic Regression)。
在加权Logistic Regression中,正样本的权重是video观看的时长,负样本的权重是单位权重。此时,Logistic Regression输出的odds为:
其中,N表示的是训练样本的数目,k表示的是正样本的数目,Ti表示的是第i个展示被观看的时长。
假设正例的展示比较小(这与实际情况一致,多数为负样本),学习到的概率近似为E[T](1+P),其中,P表示的是点击率,E[T]表示的是展示的期望观看时长,由于P非常小,所以上述的结果近似于E[T],即期望观看时长。
在预测时,使用指数函数ex作为最终的激活函数来表示概率。
Ranking部分的神经网络架构与候选集生成部分的神经网络的架构模型类似,如下图所示:
在本文中,作者将特征划分为离散型的类别特征和连续特征,此时的难点是如何生成有用的特征。
对于离散型的类别特征,处理的方法与召回部分一致——embedding。在候选集生成过程中,已经生成了每一个ID视频对应的embedding,将该embedding存在一张表里面,可以供上述的impression,last watched共享。
如果x服从任意分布,且其概率密度函数为f(x),则利用累计分布函数:
版权声明:本文为博主原创文章,未经博主允许不得转载。
尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...
时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...
如题 ...
读者评论