《Collaborative Filtering with Re

2016-09-18  本文已影响0人  adcll0910

一、标题

Collaborative Filtering with Recurrent Neural Networks

二、来源

arXiv.org

三、问题

作者通过分析,认为传统推荐常用的协同过滤方法可以看作时间序列的预测问题。进而引入RNN这一处理序列问题常用的深度网络学习模型。

四、主要方法

4.1 RNNs(LSTM)

将数据集中出现的每个item视作一个词,item的集合视作词的集合。借用bag-of-words的思想,将每个item用one-hot向量表示。同时将每个用户的历史行为作为采样的时间序列。每一时刻, RNN模型的输入即为对应时刻item的one-hot编码表示,输出则为每个item对应神经元的softmax值的大小(所有用户行为中出现的item均有对应的softmax的输出)。可以根据问题需要返回softmax最大的前k个值作为推荐的item.
  这里,为了避免梯度消失的问题,文中采用"gated RNN"即LSTM.目标损失函数为item类别的交叉熵函数。一般形式为

  这里的ocorrect表示与实际时间序列输出item相对应的模型神经元的取值,如果该神经元的softmax符合前述要求(在最大的前k个值中),则将ocorrect记为1,否则则记为0.

4.2 Markov Chain

Markov Chain是时序预测中比较常见的方法。本文中,作者利用Markov Chain,将用户的行为中的item视为不同的state.不同state的转移概率表示用户从一个item转向下一个item的可能性的大小。推荐时返回转移概率最大的前k个item.

4.3 KNN(Userbased-CF)

基于user属性的协同过滤是传统的推荐方法之一。基于以下打分函数,给出top-N的结果。

  上式中ciu表示用户i与用户u的相似程度,文中相似程度是用余弦距离度量的。后面的示性函数表示该物品是否在用户u的历史行为中出现过。

4.4 BPR-MF

该方法是目前推荐领域先进的矩阵分解方法,在Mymedialite上有开发成熟的工具包。

五、相关工作

六、简评

之所以选择这篇论文,一个重要原因在于自己考虑将RNN用在时间序列预测问题上,本篇论文提出的思路对自己是一个很好的启发。本篇论文的可贵之处不仅在于提出了看待协同过滤问题的新的角度,更在于他对模型参数进行了详细的分析,有利于具体的工程实践。但本文也存在一些瑕疵,比如就数据集本身而言,并不具备时序的信息,而且数据量是否可以减弱过拟合的影响,这些问题显得作者的结论说服力有待加强。再者处理RNN的输入时,作者只提到将item做one-hot编码,但不同时间序列可能属于不同用户,这一点对于RNN模型的训练影响,作者在训练时是否考虑这一因素文中也没有提及。总的说来,本篇论文提出的思想难能可贵,但具体到工程应用,还需要更多工作要做。
  以上都是本人自己的观点看法,肯定存在疏漏错误的地方,欢迎交流讨论。

上一篇 下一篇

猜你喜欢

热点阅读