2016RecSys-Deep Neural Networks
作者以及单位
Paul Covington(google)
解决问题
业务目标:用户u看过一些视频后,我们需要预测用户下一个要看的视频是100万分类中的哪一个分类?
研究对象
概述研究方法
实际需求:
规模大:传统无法满足。
新鲜度:对新视频作出及时和合适的反馈。
噪音:YouTube上的历史用户行为由于稀疏性和各种不可观察的外部因素而不可预测。 我们很少能获得基本真实的用户满意度,更多的是隐式反馈噪声信号。
实验环境:TensorFlow
亮点1:整体框架
好的论文看下图片,大概意思就可以明白很多了(蓝色的是两个深度网络)
solution
1.首先关注图片中下几个单词millions、hundreds、dozens:表示数据量的级别,全部的video corpus大概是millions级别,经过candidate generation之后大概是hundreds级别,经过ranking之后大概是dozens级别
2.candidate generation输入:用户的YouTube活动历史记录中的事件(用户U和上下文C的条件下,对用户在t时刻的一次观看Wt)就是一个样本。输出:从大型语料库中检索一小部分(数百个)视频,这些检索出的视频通常高精度的与用户相关。
3.ranking的输入包括会对每个Video建模丰富的用户物品特征,依据desire的目标函数对每一个视频打分,然后rank by score。
两点2:候选集生成(dnn网络及点击数据构造)
把推荐问题建模成一个“超大规模多分类”问题。即在时刻t,为用户U(上下文信息C)在视频库V中精准的预测出视频i的类别(每个具体的视频视为一个类别,i即为一个类别),用数学公式表达如下:
又是一个经典的图。底层对video watches和search tokens(当然很稀疏)做embedding,也包括一些其他特征的embedding,形成一个比较dense的特征向量量,代表(用户特征与上下文特征)。所以DNN的目标就是在用户信息和上下文信息为输入条件下学习用户的embedding向量,学到u就可以计算vi*u,于是就可以通过softmax输出。embedding通过正常的梯度下降反向传播更新与所有其他模型参数一同学习。
Deep candidate generation model architecture创新点
1.详细描述了一个候选集生成模型和一个深度排序模型,开始用deep learning做YouTube视频推荐。
2.提供了一些从设计、迭代和维护庞大用户量的推荐系统中得到的实战经验和见解。
结论
我相信这个文章应该是经典中的经典了,在很多公众号讲推荐系统的文章中都会看到文章中的图。
经典的原因是,这个图把整个推荐系统的流程关键:
整体推荐系统框架、候选集生成(candidate generation)、排序(ranking)这三个部分
说的比较清楚。
论文解读
https://blog.csdn.net/free356/article/details/79445823
https://zhuanlan.zhihu.com/p/38638747(手动实现)