您的位置:首页 > 其它

《AutoRec: Autoencoders Meet Collaborative Filtering》WWW2015 阅读笔记

2017-04-27 23:28 621 查看
前一阵子阅读了部分deep learning结合Collaborative filtering的工作,准备写一系列的阅读笔记,这是作为预热的第一篇,也是最容易的一篇,WWW 2015的poster,看起来很快。

在传统的CF里,所用的信息即为所有用户历史的评分数据,按用户做行,item做列,可以得到一个rating matrix R,其中Rij指useri对itemj的打分。其中我们只能观测到这个矩阵里的部分值,那些未观测到的值则是需要预测的对象。MF解决该问题的思路是将评分矩阵拆成U*V,其中U为user隐向量矩阵,V为item隐向量矩阵。一旦获得U∗和V∗后,预测值就可以从R∗=U∗∗V∗中得到。

在神经网络有,一有类特殊的网络叫做AutoEncoder,简称AE。AE是一个包含单隐层的神经网络。如下图所示:



AE的目标是学习一个模型能使得输出尽可能接近输入,选用平方误差作为loss function后目标为minθ∑||x−hw,b(x)||22。本质上AE是学习到了一个原始输入的一个向量表达。从input layer->hidden layer的过程是encode的过程,从hidden layer->output layer是个decode的过程,希望这个模型能够对原始数据进行最大程度的重构。AE是一种无监督聚类的方法,用途很多,比如特征提取、数据压缩等。

AutoRec的想法是将AE拿来直接学习Rating Matrix里的行或列数据的压缩向量表达,分为user-based AutoRec和item-based AutoRec两种。对于item-based AutoRec,input为R里的每列,即每个item用各个user对它的打分作为其向量描述;对于user-based AutoRec是用R里的每行。下图给出了item-based AutoRec的网络结构和数据流程。



模型的学习目标为:

minθ∑i=1n||r(i)−h(r(i);θ)||2O+λ2(||W||2F+||V||2F)

后一项为防止过拟合加入的正则项。需要注意的是第一项里在计算loss只在观测到的数据上计算。未观测到的missing value在初始时赋一个默认值,比如1-5分的打分体系里统一给3。

在使用模型做预测时,直接将模型对input重建后的新向量里对应位置的值认为是预测值,即

Rij=(h(r(i);θ))u

user-based AutoRec可以类似推导出,就不做详述。从实验数据来看,item-based AutoRec胜出user-based AutoRec,比传统的FM类方法都要更好。

评价:这篇文章的思想还是挺聪明的,思路直观简洁且在理。然而很显然的是,在数据很稀疏的情况下用AE去学习的效果会不理想,数据里噪声太大,在CF里存在的困境同样存在。后续要介绍的DL+CF的文章中引入了item和user的side information去解决这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CF 深度学习 AE
相关文章推荐