Abstract
我们将RNN使用在了一个新的领域——推荐系统。现实的推荐系统经常面对短对话数据(例如体育服装店)而不是充足的用户使用记录(例如Netflix)。在这种情况下,经常被称赞的矩阵分解的方法不在准确。这个问题在实践中经常使用基于物品的推荐来解决。例如,推荐相似物品。我们认为通过对整个会话进行建模可以给出更加准确的建议。因此,我们提出了一种基于会话的RNN推荐方法。我们的方法同样被认为在实际问题方面是奏效的。同时,我们对传统的RNN进行了部分改动,例如使用一个评级的loss function使得它对部分具体问题更加可行。在两个数据集上的实验结果表明,我们的方法比起过去使用的方法更为可行。
Introduction
我们考虑使用用户进入一个网站后点击的第一个物品作为RNN的起始输入,而后每一次点击将会根据之前的点击输出一个推荐。通常推荐系统的物品集合数量成千上万甚至数十万。除了巨大的物品集,另一个挑战是点击流的数据集十分巨大。因此训练时间和可扩展性十分重要。与大多数信息检索和推荐设置一样,我们有兴趣将建模能力集中在用户可能感兴趣的顶级项目上,为此我们使用排名损失函数来训练RNN。
Recommendations with RNNs
RNN神经网络被设计来为变长序列建模。RNN与卷积前向深度学习模型的主要区别是单元中内部隐状态组成网络。
标准RNN用如下更新方程更新它的隐藏层h:
GRU是一种旨在解决梯度消失问题的更加缜密的RNN模型。GRU门基本上了解何时以及多少更新单元的隐藏状态。GRU的激活函数是一种在前一个激活与后一个激活函数ht^之间的线性插值: