DropoutNet: Addressing Cold Start in Recommender Systems
来源:NIPS 2017,原文链接
作者:Maksims Volkovs、Guangwei Yu and Tomi Poutanen from layer6.ai公司
转载请注明出处:http://www.scholat.com/hailin
由于隐语义模型(Latent models)面对大数据时的灵活性能,经常成为构建推荐系统的默认选择。最近的研究又主要关注对用户与项目之间的交互进行建模,很少有隐语义模型关注冷启动问题。而深度学习对各种各样的输入数据都有良好的性能,作者提出一个叫做DropoutNet的神经网络隐语义模型通过Dropout和优化来解决冷启动问题。
Introduction
现有的协同过滤(CF)方法可以主要分为两类:基于近邻和基于模型。在基于模型的方法中,尤其是隐语义模型,实现了对数据的紧凑表达和高准确率,是推荐系统中的推荐方法。这种表达能快速检索而且面对巨量数据也有灵活性能,是实时系统所需要的,因此这篇文章作者主要关注这类方法。
但是隐语义模型还面临着冷启动问题,在一些案例中,解决这类问题的唯一途径是结合额外的内容信息,基础的隐语义模型不能结合内容,所以催生了一大批混合模型。但是大多数混合模型引入了额外的客观条件, 大大复杂化了学习和推理。况且,目标的内容通常是生成性的,这迫使模型“解释”内容,而不是最大化推荐准确性。
最近深度学习又在计算机视觉语音语言处理领域风生水起,这些深度神经网络的模型基本无需特征工程就能达到目前最高的准确率。这似乎暗示深度学习能为推荐进行内容的高效建模。
作者在训练DNN的过程中,在mini-batch输入上应用Dropout,DNN模型最终拟合出被Dropout的部分,这就等价于冷启动问题中在用户-项目交互数据中的缺失数据被补回来了。
Framework
在经典的协同过滤问题中,我们用集合 U=u1,...,uN U = u 1 , . . . , u N 表示 N N 个用户,表示 M M 个项目。于是可以得到一个交互矩阵的交互矩阵, Ruv R u v 代表用户 u u 对项目的喜好。 Ruv R u v 既可以是例如评分,喜欢/不喜欢等显性反馈,也可以是例如浏览,播放或购买等隐性反馈。在线性反馈中经典的 R R 包含级联关系(比如1-5分),在隐性反馈中通常只有两个值。作者在工作中将两种情况都考虑到了。当没有可利用的信息的时候 Ruv=0 R u v = 0 。
作者使用 U(v)={u∈U|Ruv≠0} U ( v ) = { u ∈ U | R u v ≠ 0 } 表示对项目 v v 感兴趣的用户集合, 表示用户 u u 感兴趣的项目集合。当或者 U(v)=ϕ U ( v ) = ϕ 就表示 u u 或者遇到了冷启动。
此外在很多领域还会接触到用户和项目的内容信息,对于项目这些信息会是文本、声音、图像或者视频形式;对于用户则会有一些主页信息(年龄、性别、定位,设备等等)和一些社交媒体信息(Facebook、Twitter等等)。这些数据能为推荐模型提供许多有用的信息,特别是对数据稀疏和冷启动的情况。经过相关转换之后这些内容信息大多数能被转变成固定长度的特征向量。作者使用
ΦUu
Φ
u
U
和
ΦVv
Φ
v
V
表达用户和项目的内容特征。那么这篇文章的目标就是用
R
R
和内容、
ΦV
Φ
V
来学习出一个尽可能精确和鲁棒性的推荐模型。理想情况下模型能够处理用户/项目在系统中的所有阶段:从冷启动、到早期的稀疏数据再到后面的数据定义齐全的阶段。
Related Work
在协同过滤中已经有许多混合潜在因子的模型被提出用来解决冷启动:
- CTR(Collaborative Topic Regression):结合Latent Dirichlet Allocation (LDA) and Weighted Matrix Factorization (WMF)
- Collaborative Topic Poisson Factorization (CTPF):与CTR类似的插值结构,但是用泊松分布代替了LDA和WMF分量。
- Collaborative Deep Learning (CDL):另一个类似的结构,其中LDA被替换为多层降噪自动编码机(Stacked denoising autoencoders)
除了CDL,DNN结合CF:
- DeepMusic音乐推荐:仅仅用DNN提取音乐内容特征再进行协同推荐。
- YouTube视频推荐:第一部分从上千万上亿个视频中选择少数(几百,几千)个候选视频,然后通过第二部分ranking来对这些候选视频进行详细打分,得分最高的视频作为最终结果呈现给用户。
- Recurrent recommender networks:将item按照时序顺序应用到RNN上,最后隐藏层激活用于潜在表达。