近几年,特别是这两年用深度学习来做推荐越来越火,不论是在工业界还是在学术界,甚至推荐系统的顶会RecSys上16年开始设了dl for rs的workshop。
一。推荐任务分三类:
推荐系统算法方面分三类:
二。目前的推荐算法中用到的8类深度学习模型:
三。基于深度学习的推荐算法分类:
1. 从采用的深度学习(DL)技术方面来看可以分为两大类:
2.从是否和传统的推荐技术结合方面来看可以分为两大类:
四。基于深度学习的推荐算法举例
1. 基于MLP的
(1)只基于MLP的:例如:Neural Collaborative Filtering,NCF【1】,新加坡国立大学的Xiangnan He博士的工作。
文章觉得目前很多基于深度学习做推荐的工作(像是后面会说到的CDL,CKE等)都只是用了非监督型的学习方法学了user和item的特征表示,然后最终用两者的内积作为预测的user对item的评分来做推荐,一个是这些方法并没有用DL直接做端对端的推荐,再一个是作者觉得点乘的刻画能力有限,并不能很好的表示出user和item间复杂的关系。所以文章直接用MLP来做推荐,输入为user和item的融合了side infor的特征表示或者是直接为user和item的one hot表示,输入出预测的此user对此item的评分,直接用MLP来学习users和items之间的非线性的关系。
对于目标函数,如果user和item见得互动为二元的(例如二元评分,隐式反馈等)则目标函数为交叉熵;若不是二元的,则用加权平方误差。因为未观察到的instances太多,所以文中还用了福彩样来提高效率。
(2)用了MLP+传统方法
最出名的是2016 youtube 的一篇文章【2】,挺复杂的一个混合推荐方法,很明显不止用了MLP技术,文章中将视频推荐分为两个阶段:候选视频集生成阶段和对候选视频排序阶段。
第一阶段,候选视频集生成阶段用了深度学习MLP将不同特征不同数据源融合到了一起,输入为:某一个用户U看过的视频的embedding+该用户搜索词的embedding+该用户所处的上下文信息的embedding+用户的年龄性别等的embedding+其他。。。,用4层MLP学出该用户的user vector,将此user vector和用word embedding学出来的 video vector的点乘放到一个softmax层中,得到概率最大的前几百or几千个视频作为视频候选集。—-此阶段将推荐问题看成了极多分类问题,每一个视频一类,数百万类。
第二阶段,对候选视频排序阶段也是用了4层MLP,最后加一层是一个期望观看时长预估(加权LR,正样本的权重是播放时长 Ti,负样本权重是1),将预测的该用户的观看时长最长的几个短视频推荐给该用户。
感兴趣的可以参考:Youtube 短视频推荐系统变迁:从机器学习到深度学习
2.基于AE及其变形的
(1)只基于AE及其变形的:
例如:Autorec【3】,这个很好理解,输入和输出都是某用户对所有产品的评分(U-Autorec)或者是某产品得到的所有的评分(I-Autorec)。目标函数是预测输出和真实输出的平方误差+正则化项。一般来说因为用户对不同产品的评分数据的方差相对来说比某一个产品收到的所有用户的评分的方差要打,所以I-Autorec相对来说效果要好一些。
其他的,CFN,CDAE等在上面Autorec的基础上加噪声,加side information等进行了改进。
(2)基于AE及其变形+传统推荐算法的
例如,紧耦合模型:CDL【4】http://wanghao.in/CDL.htm ,这篇文章挺有名的,后续的很多工作都引用了它,这是香港科技大学的一个博士生的文章,所在组好像是做贝叶斯深度学习的,印象中好像看过他们的贝叶斯深度学习的一篇综述。这篇文章是在SDAE的基础之上,提出了Bayesian SDAE模型,并利用该模型来学习Item的隐向量,其输入为Item的Side information。该模型假设SDAE中的参数满足高斯分布,同时假设User的隐向量也满足高斯分布,进而利用概率矩阵分解来拟合原始评分矩阵。该模型通过最大后验估计(MAP)得到其要优化的目标函数,进而利用梯度下降学习模型参数,从而得到User与Item对应的隐向量矩阵。
【0】Zhang, Shuai, Lina Yao, and Aixin Sun. “Deep Learning based Recommender System: A Survey and New Perspectives.” arXiv preprint arXiv:1707.07435 (2017).
【1】Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. 2017. Neural collaborative Filtering. In Proceedings of the 26th International Conference on World Wide Web.
【2】Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems.
【3】Suvash Sedhain, Aditya Krishna Menon, ScoŠ Sanner, and Lexing Xie. 2015. Autorec: Autoencoders meet collaborative Filtering. In Proceedings of the 24th International Conference on World Wide Web.
【4】Hao Wang, Naiyan Wang, and Dit-Yan Yeung. 2015. Collaborative deep learning for recommender systems. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.