Collaborative Deep Learningfor Recommender Systems
概述
这一篇论文出自香港理工大学王灏博士,论文讲了一种紧耦合的混合式推荐算法。主要是栈式自编码器SDAE通过贝叶斯图方式结合。其实这篇论文和在推荐系统学习(四)中提到的 协同话题回归(CTR),在模型设计上飞航的相似。
当前推荐算法主要是基于内容(content_base)、协同过滤(CF)、混合算法。基于内容的推荐依靠用user的评论和item的描述做推荐。CF基于过去的的表现和行为推荐。由于种种原因,收集过去的行为比收集用户画像要容易,但CF又有他的局限性,当打分(rating)很稀疏时,预测精度会下降很厉害,同时,新产品的冷启动也是CF的问题。因此,近年来,混合方法应用比较广。
混合方法又分两种:松耦合方式、紧耦合方式。松耦合方式先处理辅助信息,然后,用它为CF提供特征。由于信息的流向是单向的,打分信息无法反馈回来去提取有用的特征。这种方式下,为了提升性能,通常依赖人工提取特征。紧耦合方式,两种方法相互影响,一方面,打分信息指导特征的提取,另一方面,提取出来的特征进一步促进CF的预测能力(例如,稀疏打分矩阵的矩阵因式分解)。两方面的相互影响,使得紧耦合方式可以从辅助信息中自动学习特征,并且能平衡打分信息和辅助信息的影响。这也是紧耦合方法比松耦合方法表现更好的原因。
论文讲述了一种多层贝叶斯模型(hierarchical Bayesian model)叫协同深度学习(CDL)。实际上CDL就是把PMF模型和深度学习模型SDAE集合起来,形成一个多层贝叶斯模型。作者用贝叶斯法则表征栈式自编码器(sdae),用深度学习的方式表示content information和rating matrix,使两者双向相互影响。
其实后来除了很多变体但是model的基本结构是没有变化的,详情可参考
本文模型
图模型
这里 x 0 x_0 x0表示item的评论信息输入矩阵,是加噪后的,而 x c x_c xc是未加噪的, W + W^+ W+是 W W W和 b b b表示权重和偏执, x L / 2 x_{L/2} xL/2代表SDAE的latence space,文章中提到 x L / 2 x_{L/2} xL/2为 r a t i n g rating rating和 c o n t e n t content content提供一个桥梁作用,同时潜在高斯偏移量 ϵ \epsilon ϵ使得CDL能够同时学习有效特征表示并捕获item和 user的相似性。
左边的贝叶斯图的目的是通过内容生成
V
V
V矩阵,用户信息生成
U
U
U矩阵,然后通过
v
v
v和
u
u
u生成user-item的关联打分矩阵
R
R
R。这其实就是传统的PMF的推荐方法,只是这里,内容通过sdae自动提取特征,这些特征作用于v矩阵。
过程
总的过程来说,其实也包含最小二程优化的思想,固定 V V V更新 U U U,固定 U U U然后更新 V V V.,而这里的 V V V又同时受文本和评分矩阵约束。
这里输入为
c
o
r
r
u
p
t
e
d
i
n
p
u
t
corrupted input
corruptedinput带噪音的文本,用
S
D
A
E
SDAE
SDAE生成的
V
V
V其实不仅受评分矩阵
r
a
t
i
n
g
rating
rating的约束,同时也受
c
l
e
a
n
i
n
p
u
t
clean input
cleaninput 的约束,用
V
V
V,这样可以完美的吧文本信息和评分矩阵相结合,文本信息解决了评分矩阵的稀疏,而评分矩阵可以为用户更好的推荐,这样的
V
V
V更能准确的表征item的信息。
公式
主要公式参考文章第三部分或者参考博文
这里的目标函数为上图所示:
- 红色框内容为:user latent vectors, weights, and biases的正则化
- 黄色框内容为:文本内容表征生成的vector与 item latent vectors 的高斯偏移量的2范
- 绿色框内容为:clean input 与SDAE输出层之间的高斯偏移量的2范
- 蓝色框内容为:从层l-1的输出产生具有高斯偏移量的1层输入
- 紫色框内容为:测量预测率的误差
更新规则参考原文
评价指标
参数的设置用的网格法
代码
待更新!!!