基于模型的协同过滤主要包括矩阵因子分解、受限制玻尔兹曼机、贝叶斯网络等。
今天主要梳理一下受限制玻尔兹曼机的知识。
在Netflix竞赛中,Ruslan Salakhutdinov对传统的受限玻尔兹曼机做了两点改变以适合处理协同过滤问题。第一,可见单元使用Softmax神经元;第二,某个用户可能只对M部电影中的一部分电影进行过评分,而对于没有评分的记录使用一种特殊的神经元表示,这种神经元不与任何隐单元连接。具体结构如下:
下面介绍在Netflix大赛中,RBM的具体应用。
直观的说,每个RBM的可见单元都对应于特定的电影。因此他们的偏见代表了电影偏见。但是,我们知道数据集中其他种类的偏见更重要,即用户偏好,单日用户偏好和基于频率的电影偏见。因此,我们通过条件连接将这些偏见添加到可见层。在给定可见单元状态,隐单元的激活概率变为:
扩展条件分布,添加用户u和日期t偏差项:
其中,
b
k
b^k
bk是用户特定参数,
b
u
t
k
b_{ut}^k
butk是用户日期特定参数。学习规则是:
考虑到频率的显著影响,进一步扩展条件分布,将频率添加到公式中:
其中,
b
i
f
k
b_{if}^k
bifk是电影频率特征变量,其学习规则如下:
在使用频率时,对隐藏层权重进行一下修改:
事实证明,当频率偏置已经存在时,这种权重的扩展几乎不能改善性能,并且让运行时间方面变得繁重。