本文思路整理如下:

 

一, Contribution

二, 实验

实际需求

训练数据

实验环境

2.1本文模型

2.2 结果对比

2.2.1 将本文RNN模型和不考虑时间动态的模型做对比

2.2.2 将本文RNN模型和考虑时间动态的模型做对比

三, 更多关于论文细节


Recurrent Recommender Networks


目的:采用LSTM构建模型,以适应usermovie的动态性,从而得以更精准做视频推荐。

 

论文信息:德克萨斯奥斯汀校、谷歌、CMULinkedInProceedings of the 10th ACM International Conference on Web Search and Data Mining.


一,Contribution:


1)RNN应用于推荐系统提供了一种思路,并基于奈飞和iDMb数据,和现有的一些其他方法做效果对比,突出了RNN也适用于推荐场景。

2) Nonlinear, Nonparametric, Dynamic Recommender:无需手动选择特征,联合用户和物品状态,预测未来趋势。通过选择神经网络结构,学习用户和电影的动态嵌入。(ps:因为不需要再学习用户的向量表示,只需要学习状态转移函数的参数就可以了)。

3) Efficient Training:模型训练效率高,可以训练6年的电影数据,为超过100M数据评分。

4)Empirical Evidence:该模型预测的准确度比其他模型更高,能够自动获取出与时间相关的模式特征,和已知的时间模式相匹配。

5)第一篇以完全时间序列综合的方式论述电影推荐的论文。

 

二,实验:


首先:考虑实际需求:

用户对电影的看法是随时间变化的。

季节时令。

用户兴趣变化。

基于上面需求,本论文所提模型需要考虑时间动态因素。

其次,本文实验数据集:IMDb和Netflix数据集上都有验证

实验环境:MXNet(亚马逊的深度学习库,类似tensorflow)

2.1本文模型:

 Recurrent Recommender Networks

左上的序列代表用户i的LSTM模型,每当用户进行一次评分操作y后,该用户的表示都会用LSTM模型进行更新。与此对应,每个电影也有对应的LSTM模型(左下的序列)刻画当前的向量表示,每次被评分时都会发生变化。之后模型用用户和电影LSTM中的当前表示,对当前用户i对电影j的评分行为进行预测。


此外,模型中也对每个用户和电影设置了固定的向量表示(右侧的圆形节点),用于刻画用户和电影的静态属性。

 Recurrent Recommender Networks


接下来分开具体看一下:


1,对于左上模型,为用户i的LSTM模型。


其输入Recurrent Recommender Networks

上式中,

l Xt为用户i在t时刻对电影m1,m2,,,,,的评分向量,如果用户i对电影mk在t时刻进行评分为k则Recurrent Recommender Networks,否则Recurrent Recommender Networks(如果用户i不对任何电影进行评价则不输入LSTM网络,以提高训练效率。)

l lnewbie = 1表示当前用户i是一个新用户。

l t为评分时刻。

l Wembed操作为把上面数据embedding为固定维数的向量,作为LSTM的最终输入数据。(embedding操作另见文档《20180124_算法学习_Word2Vec_刘欢》)

 

LSTM的处理过程另见文档《RNN和LSTM》

 

经过LSTM,其输出Recurrent Recommender Networks

 

 

2,对于左下模型,为电影j的LSTM模型。处理和用户相同。


其输入为Recurrent Recommender Networks

 

上式中,

l Xt为电影j在t时刻用户i1,i2,,,,,的评分向量。

l lnewbie = 1表示当前电影j是一个新电影。

l t为评分时刻。

l Wembed操作为把上面数据embedding为固定维数的向量,作为LSTM的最终输入数据。(embedding操作另见文档《Word2Vec》)

 

LSTM的处理过程另见文档《20180204_算法学习_RNN和LSTM_刘欢》

 

经过LSTM,其输出mt := LSTM(mt−1,yt)

 

 

3,静态用户和电影状态Recurrent Recommender Networks详见《PMF》


4,t时刻的评分Recurrent Recommender Networks

 

最后,总结一下整体的工作流程:作者取最近的观测状态作为输入,然后以最新的状态为基础,做状态更新并对未来做预测。显然该过程自然的考虑了之前的评分数据,符合因果关系。对于预测的评估可以转化为一个最优化问题,其实也就是加了修正项的最小平方误差。

 Recurrent Recommender Networks

具体参数训练时,采用一种简化方法,也称为子空间下降:在反馈传播用户评分并更新用户向量的时候,固定电影状态;对于电影向量的更新,也是如此。

 

2.2 结果对比


2.2.1 将本文RNN模型和不考虑时间动态的模型做对比:

本模型增加了动态状态的考虑,明显取得了更高精确度。

作者的实验在IMDb和Netflix数据集上都有验证。具体的实验效果参见下表:

 Recurrent Recommender Networks

可以看出,在数据较大稀疏的情况下,依然能够取得较低RMSE。

 

2.2.2 将本文RNN模型和考虑时间动态的模型做对比:

 Recurrent Recommender Networks

 Recurrent Recommender Networks

    

 

可以看出,本文所选RNN模型在参数较少的情况下依然保持了较低的RMSE(均方根误差亦称标准误差)。

 

另外,本文模型对时间粒度及敏感性:对于LSTM,时间粒度划分越小,训练成本也越大。作者通过实验说明,预测的效果(RMSE)对时间粒度的大小并不是非常敏感。这可能是因为RNN的生成是完全一般的,它没有假定数据的形式或具体分布。

 

三,更多关于论文细节

1)关于特征embedding详见博客《Word2Vec》。

2)关于LSTM的处理过程另见博客《RNN和LSTM》

3)关于梯度和随机梯度下降详见博客《SGD》

4)关于优化方法详见博客《Adam》

5)关于PMF等详见博客《PMF》

 


相关文章: