目录
摘要
Abstract
文献阅读:Next Item Recommendation with Self-Attentive Metric Learning
问题及方法
论文贡献
方法论
序列感知的推荐系统
神经注意模型
模型:ATTREC
序列推荐
基于Self-Attention的用户短期兴趣建模
用户长期兴趣建模
模型学习
研究实验
数据集
评估指标
模型比较
实验效果
讨论
结论
摘要
本周我阅读的文献《Next Item Recommendation with Self-Attentive Metric Learning》中,提出了一种新的序列感知推荐模型,通过自注意力机制,能够估计用户交互轨迹中每个item的相对权重,以更好地表示用户的瞬时兴趣。论文最主要的核心点是提出结合度量学习和Self-Attention的方法来解决序列推荐问题,以及显式地控制了长短期兴趣对模型的影响。
Abstract
The literature I read this week, "Next Item Recommendation with Self Attentive Metric Learning," proposes a new sequence aware recommendation model that, through self attention mechanism, can estimate the relative weight of each item in the user interaction trajectory to better represent the user's instantaneous interest. The main core point of the paper is to propose a method that combines metric learning and Self Attentions to solve sequence recommendation problems, as well as explicitly controlling the impact of long-term and short-term interests on the model.
文献阅读:Next Item Recommendation with Self-Attentive Metric Learning
文献链接:https://arxiv.org/abs/1808.06414
问题及方法
问题:在推荐系统中,使用CNN和RNN去捕捉用户整个历史行为时,都存在着无法明确捕获item-item交互的问题。
方案:基于用户历史上下文对item-item的关系建模的动机是符合直觉的,因为是去理解item之间更为精细的关系,而不是简单的统一对待。论文假设为模型提供inductive bias将提升表示质量,并最终改进推荐系统的效果。
论文提出的模型不仅对连续的item建模,而且对当前窗口中的所有用户行为进行学习,因此整个模型可以视为是局部-全局方法。论文提出的模型采用度量学习框架的形式,在训练时使用户的self-attended表示为与预期item之间的距离更近,而且这篇文章是第一个提出基于度量学习和基于attention方法的序列推荐方法。
论文贡献
- 提出一种新的序列推荐任务框架,模型将self-attention网络与度量embedding相结合,以模拟用户的临时意图和长期意图。
- 提出的框架在固定的基准数据集上表现出最先进的性能,证明了在序列建模期间item-item交互的实用性。论文提出的模型超过了当前的Caser,TransRec和RNN等。
- 进行了广泛的超参数和消融研究,论文研究了各种关键超参数和模型架构对模型性能的影响,还提供了学习注意力矩阵的定性可视化。
方法论
序列感知的推荐系统
论文中大多数方法是专门为评分预估任务设计的。除了马尔科夫链,度量embedding也在序列感知的推荐上有良好的表现。
神经注意模型
CNN和RNN需要从大量数据中学习以获得有意义的结果,但是数据稀疏性使得模型训练相当困难。然而注意力机制可以帮助克服它们的缺点,它能帮助RNN解决长依赖问题,并帮助CNN集中注意力到输入的重要部分。
最近将Attention应用到推荐的研究有hashtag recommendation,one-class recomendation,session based recommendation。在推荐系统中使用self-attention并非直截了当的,这证明了作者工作的新颖性。
模型:ATTREC
AttRec用self-attention对用户短期兴趣建模,用协同度量学习对用户长期兴趣建模。
序列推荐
定义U为用户集合,I为item集合,其中| U |=M,| I |=N。定义用户行为序列为:
基于Self-Attention的用户短期兴趣建模
Self-Attention模块:
基础的attention只能通过对整个上下文中有限的知识进行学习,而self-attention能够保持上下文序列信息,并且不需要考虑它们之间的距离来捕获序列上各元素的关系。
这篇文章对Query和Key都做了ReLU的非线性变换,保持Value不变。在其他领域中,value通常是预训练的,用的是word embedding或图像特征。而在本文模型中value的值是需要学习的。无论是做线性变换还是非线性变换都会增加参数学习的困难,因为query和key是作为辅助因素,所以不像value对变换那么敏感。
为了学习单一attentive表示,将L个self-attention的Embedding取平均值作为用户短期兴趣:
有时间信号的输入Embedding:
如果没有序列信号,则输入退化为a bag of embedding,同时无法保留顺序模式。本文通过位置embedding给query和key增加时间信息,时间Embedding由两个正弦信号定义得到:
其中:TE在非线性变换之前添加给query和key。
用户长期兴趣建模
本文为了避免点积的问题,使用欧式距离来衡量item和user的接近程度:
模型学习
目标函数:
给定时间步t的短期attentive隐因子和长期偏好后,任务为预测在时间步t+1用户将产生交互的item。为了保持一致,对短期和长期都用欧式距离建模,使用它们的和作为最终的推荐分数:
其中:第一项表示长期兴趣推荐分数,第二项表示短期兴趣推荐分数。
在某些情况下,想要预测几个item,而不是只预测一个item,这样能让模型捕获序列中的跳跃行为。定义T+为T个用户喜欢的item。本文采用pairwise排序方法学习模型参数,将T-定义为用户无行为的负样本。为了鼓励区分正负user-item对,使用基于边界的hinge loss:
其中:r是边界参数,用l2控制模型复杂度。在稀疏数据集上也是用归一裁剪策略来限制X, V, U在一个单元欧式球上:
这种正则化方法对于稀疏数据集,减轻了维度问题的困扰并预防数据点不会传播得太广。
优化和推荐:
用adaptive gradient algorithm作为优化方法,推荐欧式距离最小的top N。在推荐阶段,一次计算所有user item对的推荐分数,用有效的排序算法生成排序列表。
下图为整个模型的框架:
研究实验
数据集
预处理:丢弃不足10个行为的用户,移除掉冷启动物品。
评估指标
hit ratio衡量预测准确率,mean reciprocal rank衡量排序质量:
MRR考虑预测结果中groundtruth item的位置:
模型比较
神经网络方法:HRM,Caser
度量Embedding方法:PRME,TransRec
实验效果
讨论
Self-Attention的影响:Self-Attention的效果比其他方法好
聚合方法的影响:平均方法效果最好
权重w的影响:它用于控制长短期兴趣的贡献。从下图a中可以发现,设置w=0说明仅考虑短期兴趣,效果比仅考虑长期兴趣w=1更好。w取值为0.2-0.4较好,说明短期兴趣在序列推荐中比较重要。
序列长度L的影响:上图b中表示合适的高度依赖于数据集的密集程度。在MovieLens数据集上,平均每个用户有超过100个行为,设置越大效果越好。然而,在稀疏数据集上,应当设置的比较小,因为随着L的增长会导致训练样本的减少。
隐式维度大小的影响:从下图中可以发现,本文模型在任何维度上均优于其他模型,更大的维度效果不一定更好,MC和Caser的表现不稳定。
模型效率:
结论
这篇论文提出了一种用于序列推荐的基于self-attention的度量学习方法AttRec。它结合了用户的短期意图和长期偏好,以预测用户的下一步行动。它利用self-attention从用户最近的行为中学习用户的短期意图。最后,通过实验结果表明,AttRec可以准确捕捉用户最近行为的重要性。