论文笔记 | arXiv | Next Item Recommendation with Self-Attention

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第1张图片
AttRec-title.png

论文地址:https://arxiv.org/abs/1808.06414

官方代码:https://github.com/cheungdaven/DeepRec

一 为什么读这篇

看完SASRec,接着看这篇。两篇文章都是用Self-Attention做推荐的,而且都是同一天发的。看看和SASRec有什么不同吧,能不能让效果有提升。

二 截止阅读时这篇论文的引用次数

2019.7.3 9次。

三 相关背景介绍

18年8月挂到arXiv上,后来稍微改了下名字,叫《Next Item Recommendation with Self-Attentive Metric Learning》,中了AAAI19的RECNLP。和SASRec一样,算是跟进比较及时的,transformer出来一年后就应用到自己工作的领域并发了paper。4个作者都是华人,分别来自新南威尔士大学和南洋理工大学。还是这4个人,写了篇《Deep Learning based Recommender System: A Survey and New Perspectives》的综述,引用已达210次。同时开源了一个基于tf实现的深度学习推荐算法包,DeepRec,本文的实现就在这个包里。

四 关键词

Sequential Recommendation

Self-Attention

五 论文的主要贡献

1 提出结合度量学习和Self-Attention的方法来解决序列推荐问题

2 显式的控制了长短期兴趣对模型的影响

六 详细解读

0 摘要

本文提出的模型利用了self-attention机制,通过用户历史行为来预测item-item关系。self-attention能够预测用户行为轨迹上每个item的相关权重,从而学习更好的用户短期兴趣表示。模型最终在度量学习框架上训练,且同时考虑了长短期意图。

1 介绍

CNN和RNN模型应用于推荐时,在整个用户历史行为上都存在无法明确捕获item-item交互的问题。基于用户历史上下文来对item-item的关系建模的动机是符合直觉的,因为理解item之间更精细的关系,而不是简单的统一对待,这通常更为重要。总之,本文假设为模型提供inductive bias将提升表示质量,并最终改进推荐系统的效果。

本文提出的模型不仅对连续的item建模,而且对当前窗口中的所有用户行为进行学习以表示序列。因此本文模型可以视为是『局部-全局』(local-global)方法。

本文模型采用度量学习框架的形式,在训练时使用户的self-attended表示与预期item之间的距离更近。(idea:user和item的vector用上CV中那些骚套路,比如加减乘除)。本文是第一个提出基于度量学习和基于attention方法的序列推荐方法。本文主要贡献如下:

1 提出用于序列推荐的新框架。模型将self-attention网络和度量embedding相结合,为用户短期和长期意图建模

2 本文提出的模型超过了当前的SOTA,如Caser,TransRec

3 对超参做了剥离研究

2 相关工作

2.1 序列感知的推荐系统

绝大多数方法是专门为评分预估任务设计的。除了马尔科夫链,度量embedding在序列感知的推荐上也有良好的表现。

2.2 用于推荐的深度神经网络

MLP可以在对user-item关系建模时引入非线性。CNN可以从user和item的文本,视觉,语音方面提取特征。Autoencoder可以从附加信息学习显著的特征表示来增强推荐质量。RNN能够对时间动态建模。

通常,CNN和RNN需要从大量数据中学习以获得有意义的结果,然而数据稀疏性使得模型学习相当困难。

2.3 神经Attention模型

最近将Attention应用到推荐的研究有hashtag recommendation,one-class recomendation,session based recommendation。这里作者有吹嘘到,『在推荐系统里使用self-attention并非直截了当的,这证明了作者工作的新颖性』

3 模型:ATTREC

本文提出的模型称之为AttRec。用self-attention对用户短期兴趣建模,用协同度量学习对用户长期兴趣建模。

3.1 序列推荐

定义为用户集合,为item集合,其中,。定义用户行为序列为

3.2 基于Self-Attention的用户短期兴趣建模

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第2张图片
AttRec-fig1.png
Self-Attention模块

不像基础attention那样只能通过对整个上下文有限的知识来学习表示,self-attention能够保持上下文序列信息,并无需考虑它们的距离来捕获序列上各元素的关系。

这里和原作Transformer不同的是对Query和Key都做了ReLU的非线性变换。保持Value不变,关于这点作者给出的解释是在其他领域value通常是预训练的,用的word embedding或图像特征。而在本文模型中value的值是需要学习的。无论是增加线性还是非线性变换都会增加参数学习的困难。因为query和key是作为辅助因素,所以不像value对变换那么敏感。

value和仿射矩阵的乘积生成self-attention模块的最终权重输出。。其中可以视为用户的短期兴趣表示。为了学习单一attentive表示,将L个self-attention的Embedding取平均值作为用户短期兴趣:

有时间信号的输入Embedding

如果没有序列信号,则输入退化为a bag of embedding,同时无法保留顺序模式。本文通过位置embedding给query和key增加时间信息。时间Embedding由两个正弦信号定义得到:

TE在非线性变换之前简单的加给query和key。

3.3 用户长期兴趣建模

本文为了避免点积的问题,采用欧式距离来衡量item和user的接近程度:

3.4 模型学习

目标函数

给定时间步的短期attentive隐因子和长期偏好后,任务为预测在时间步用户将产生交互的item()。为了保持一致,对短期和长期都用欧式距离建模,使用它们的和作为最终的推荐分数:

上式中第一项是长期兴趣推荐分数,第二项是短期兴趣推荐分数。注意和都表示下一个item的embedding,不过它们的参数不同。

在某些情况下,想要预测几个items而不是只预测一个item。这样能让模型捕获序列中的跳跃行为。定义为下个用户喜欢的item。本文采用pairwise排序方法学习模型参数。将定义为个用户无行为的负样本。为了鼓励区分正负user-item对,使用基于边界的hinge loss:

上式中,表示模型参数。是边界参数,用控制模型复杂度。在稀疏数据集上也是用归一裁剪策略来限制在一个单元欧式球上:

这种正则化方法对于稀疏数据集是有用的,它削弱了维度诅咒问题同时阻止了有的数据点扩散的太远。

优化和推荐

用adaptive gradient algorithm作为优化方法。推荐的为欧式距离最小的top N。

在推荐阶段,一次计算所有user item对的推荐分数,用有效的排序算法生成排序列表。

图2是整个模型的架构

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第3张图片
AttRec-fig2.png

4 实验

实验设计是为了回答这2个问题:

1 提出的self-attentive序列推荐模型是否达到了SOTA?是否能处理稀疏数据集?

2 有效的关键超参是什么?

4.1 数据集

注意这里对数据集的预处理操作,丢弃不足10个行为的用户,移除掉冷启动物品。

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第4张图片
AttRec-table1.png

4.2 评估指标

用hit ratio和mean reciprocal rank。一个衡量预测准确率,一个衡量排序质量。

MRR考虑预测结果中groundtruth item的位置:

4.3 比较模型

POP,BPRMF,FMC,FPMC,HRM,PRME,TransRec,Caser

神经网络方法:HRM,Caser

度量Embedding方法:PRME,TransRec

因为Fossil和GRU的效果不如Caser和TransRec,所以没有比较了。

4.4 实现细节

学习率设置为0.05,没有更进一步调优。AttRec的(U,V,X)的隐式维度统一设置为100。因为Amazon,LastFm,Movietweetings数据集的稀疏性,用norm clipping代替L2对X, V, U的正则化。self-attention模块中的非线性层用L2正则化。

正则化参数范围在,Dropout范围在,权重因子范围在,Movielens的序列长度为5,MovieTweetings为3,其余数据集为2。MovieLens的目标长度为3,其余为1。hingle loss的边界固定为0.5。

4.5 效果比较

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第5张图片
AttRec-table2.png

5 模型分析及讨论

这一小节回答第二个问题。

Self-Attention的影响

典型有Self-Attention比没有要好,另外发现即使没用Self-Attention,效果也比其他方法好

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第6张图片
AttRec-table3.jpg

聚合方法的影响

平均方法效果最好

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第7张图片
AttRec-table4.jpg

权重的影响

用于控制长短期兴趣的贡献。从图4-a可以发现,设置说明仅考虑短期兴趣,效果比仅考虑长期兴趣()要好。取值为0.2-0.4较好,说明短期兴趣在序列推荐中扮演一个更重要的角色。

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第8张图片
AttRec-fig4.jpg

序列长度的影响

如图4-b所示,本文发现合适的高度依赖于数据集的密集程度。在MovieLens数据集上,平均每个用户有超过100个行为,设置越大效果越好。然而,在稀疏数据集上,应当设置的比较小,这也是合理的,因为随着的增加会导致训练样本的减少。

隐式维度大小的影响

从图5可以发现,本文模型在任何维度上均优于其他模型,更大的维度效果不一定更好,MC和Caser的表现是不稳定的。

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第9张图片
AttRec-fig5.jpg

模型效率

论文笔记 | arXiv | Next Item Recommendation with Self-Attention_第10张图片
AttRec-table5.jpg

七 小结

读的过程中感觉和那篇SASRec简直就是姊妹篇,整个行文结构都非常像。本篇说白了就是在度量学习的基础上套了一个Self-Attention,不过提出的基于度量学习来做的做法相对更少见点。同时本文模型显式的利用了用户的长短期兴趣。

素质四连

要解决什么问题

序列推荐问题

用了什么方法解决

度量学习 + Self_Attention

效果如何

用HR@50和MRR做指标的SOTA,没和SASRec比

还存在什么问题

没有提预测时怎么做,感觉用到线上可能是坑。

算法背后的模式和原理

还是排列组合

八 补充

同一天在arXiv上发表的SASRec:Self-Attentive Sequential Recommendation

你可能感兴趣的:(论文笔记 | arXiv | Next Item Recommendation with Self-Attention)