AutoRec: Autoencoders Meet Collaborative Filtering
本文提出了AutoRec,一种基于autoencoder的新的CF(协同过滤)模型。
THE AUTOREC MODEL
在基于评分的CF中,有m个users,n个items,部分观测的user-item评分矩阵R∈Rm×n。每个用户u∈U = {1...m}可以用部分观测的向量

来表示,即用户u对各物品的评分。
同样的,每个物品i∈I = {1...n}可以用部分观测的向量

来表示,即各用户对物品i的评分。
本文的目标是设计一个item-based(user-based) autoencoder,把部分观测向量r(i) (r(u))作为输入,映射到一个低维的隐空间,并在输出空间重构r(i) (r(u))来预测缺失的评分。
给出一个d维向量集S,正整数k∈N+,autoencoder的优化目标为

h是重构函数,

f(),g()是激活函数,模型参数θ = {W,V,u,b},W为d * k维,把input映射到latent space,V为k * d维,把latent vector映射到output space。u为k维,b为d维,是bias。
参数通过back-pop学习。
下图为Item-based AutoRec。

有两点需要强调:
•物品向量r(i)是部分观测的,因此back-pop时只更新那些与观测到的输入相关的权重。(这一点和MF,RBM中是一致的)
•为了防止过拟合,加入正则项。
Item-baesd AutoRec(I-AutoRec)的目标函数为,

式子中的

表示只考虑观测到的rating。
User-based AutoRec(U-AutoRec)只是把输入换成了user vector。
I-AutoRec的预测。

物品i的output vector的第u维即为用户u对物品i的评分。
再看下图,阴影部分是观测到的rating,实线是对于r(i)更新的权重。(虚线forward-pop时都没有往前传,back-pop时自然不会更新)

文中将I-AutoRec与RBM-CF,MF进行了对比:
•与RBM-CF对比。RBF-CF是基于受限玻尔兹曼机的生成概率模型,而AutoRec是基于自编码器的判别模型。RBF-CF估计参数使用最大似然估计,而AutoRec最小化RMSE(均方误差根)。训练RBF-CF需要用对比散度,训练AutoRec使用相对更快的基于梯度的back-pop。RBF-CF只能用于离散的rating,对于每个rating值都有一个独立的参数集,而AutoRec的参数更少,消耗更少的内存,更不容易过拟合。
•与MF对比。MF将user和item embed到一个shared latent space,而I-AutoRec只embed item。MF学习的是线性的latent representation,而AutoRec可以学习非线性的latent representation通过激活函数g()。
deep AutoRec
文中最后提到实现了三个隐层的I-AutoRec,使用greedy pretraining,然后用梯度下降做fine-tuning。在MovieLens 1M数据集上,RMSE有所下降。
网友评论