-->

AI内参_80_077_基于深度学习的推荐模型之二基于RNN的推荐系统

你好,我是洪亮杰。

今天我和你分享的主题是基于深度学习的推荐模型。

之二,基于RNN的推荐系统。

周一我们看了一篇经典的文章,那就是尝试使用RBM受限波兹曼机来对推荐系统建型。

这应该是最早把深度学习应用到推荐建模的典范。

当然,RBM虽然算是相对比较早的深度学习模型,但其本质上并没有很多后来提出的深度模型的特质,也没有真正发挥出深度学习模型的特有优势。

今天我们结合几篇论文来看一类深度学习模型,那就是RNN递归神经网络在推荐系统中的应用。

这类模型可以解决传统推荐模型中难以对时序信息进行建模的问题,扩宽了推荐系统的应用边界。

要想说清楚,RNN对于推荐系统的贡献,我们首先要来看一看为什么需要对持续信息进行建模。

在我们前面介绍的诸多推荐模型中,不管是矩阵分解,还是简单的基于流行度的推荐模型,或是首先更加复杂的推荐模模节等模型。

其实都没有内置时间这个概念。

比方说我们通过矩阵分解来对用户和物品的评分进行建模。

在这个建模的场景里,用户物品评分矩阵是针对所有数据的。

不管是用户昨天对某个物品进行评分,还是今天甚至是一年以前,所有数据都是在唯一一个矩阵里面加以表示。

这么做的好处是极大的简化了真实情况不好的地方则是完全忽略了所有评分在时间上的发展。

其实,早在net f ill XX公赛中学学,就在net t illix公布的数据集上发现用户对于电影的喜爱程度,或者说评分数值有非常明显的随时间变化而变化的趋势。

文末,我列了几个参考文献,参考文献,一就是充分挖掘了时间信息,从而带来了性能上的提升。

如果你有兴趣的话,建议读一读这篇文章。

在深度学习模型,特别是RNN之前,如果我们希望对时间进行建模,从模型工具的角度上来说,我们都有哪些选择呢?一种方法是可以尝试使用传统的时序模型。

这类模型在统计领域已经使用了较长时间。

然而最大的问题就是很多工具很难直接和我们提到的这些推荐模型进行嫁接。

另外一个难点是在嫁接之后,模型的训练算法往往会变得异常复杂,这也给模型的普及和使用带来了很多障碍。

另外一种办法就是尝试在现有的模型里,通过特性或者其他的方型,来让当前的模型能够对时间信息进行建模。

这个思路其实是对矩阵分解进行了修改,这样做的好处就是可以根据自己的需要,在某一模型上进行必要的更改。

然而,这么做的先天性缺陷就在于提出来的修改往往只能针对某一个模型,而没有办法扩展到其他模型。

第三种做法是可以利用张量分解,我们直接把时间作为一个新的维度。

因此可以对用户在某一个时间段,对某个物品的评分进行建模。

有一些工作是基于这个假设的。

不过,直接利用张量分解的最大问题是,张量本身并不是时序模型,利用张量对时序信息进行建模。

仅就是因为时序信息,大多时候可以被表达成为离散的数据,因此张量才在这里有了用武之地。

然而,因为张量无法直接对离散时序的两位数据点之间进行约束建模。

比如时间点,昨天和时间点,今天可能在张量中占据两个不同的数据点,但是张量本身并不能把这两个数据点联系起来。

也就是说张量在语义上其实并不支持时序数据。

基于以上这些原因,我们需要用新的工具来对时序信息进行比较直接的建模,同时也能有相对容易的学习算法。

这就是基于RNN的推荐模型。

Rnn作为深度学习中有利的时序信息建模工具。

随着深度学起的火热,被越来越多的学者用来解决我们刚才所说的这些问题,我们一起来看两篇论文。

可以说,这两篇文章是在推荐领域应用的重要参考。

除了从工具的角度来讲,为什么需要RNN以外,还有一个是从实际的场景出发,也就是在同一个绘画中的推荐结果。

这是一个比较突出的需要持续信息的场景,且传统的方法无法很好的解决。

在这方面,比较早的尝试来自于在ICLR二零一六上发表的一篇论文,使用递归神经网络的基于绘画的推荐。

这里面的基本思路其实很直观,就是在推荐系统中使用某种RNN模型。

在这篇论文里面使用的是GRU.我们在这里不展开RNN或者GRU的定义、细节,以及这些模型里面的特征。

除了从比较高的维度来讲一讲RNN的建模思路。

Rn的输入是当前的一个物品。

然后RN需要输出的是对于下一个物品的预测。

同时,为了能够对这些在时间序列上的物品进行建模,RN内部也要维持一个隐含的状态序列,这个状态序列会随着时间的变化而变化。

不同的IN模型在以下内容的实现上有所不同,包括如何实现这个隐含的状态序列,以及如何对从状态序列到输入和输出物品的建模。

总的来说,这篇论文就是直接把目前在自然语言处理中经常使用的GRU拿到了推荐领域,并且做了一些微小的修改。

从实验结果来看,如果我们对绘画进行建模的话,效果要明显好于没有对绘画进行建模。

再介绍一个比单,对绘画进行建模。

更进一步的工作是发表于WSDM二零一七上的一篇论文,递归推荐网络。

我们前面提到了矩阵分解的最大问题,就是学习到的用户以及物品向量,无法囊括时间的信息。

在这篇论文里,作者们假定序间的文向量物品的影像量都会随着时间的变化而变化。

而在某一个时刻的物品评分仅仅是那一个时刻的用户影像量和物品影像量的一个结合。

在传统的模型里要描述这种影向量。

随着时间的变化而变化的思路就会充满难度。

在这篇论文里,一个重要的贡献就是使用了一种叫做LSTM的INN模型,来对这些用户的隐变量随着时间的变化而变化进行建模,我们在这里也不展开LSTM的基本定义。

总体来说,LSTM也是对某一组输入变量和输出变量在时间上的关系进行建模,同时利用内部隐状态序列来对输入和输出变量进行建模。

今天我们聊了如何利用RNN对推荐系统中的时序信息进行建模,我们一起来回顾一下要点。

第一,我们讨论了为什么对时序信息建模是非常必要的。

第二,我们结合两篇论文,聊了利用RNN对时序信息建模的例子,最后给你留一个思考题。

除了绘画信息或者用户的喜好是比较明显的时序信息以外,推荐系统中还有哪些时序信息的应用呢?欢迎你给我留言,和我一起讨论。