文献总结:
这篇文章的思想源于Transformer,作者将自我注意力机制应用于序列化推荐中。
问题:如何在稀疏数据集上实现高效的序列化推荐,同时捕捉长期的语义信息?
解决方法:提出了基于自注意力机制的序列化模型(SASRec),它结合了马尔科夫链(MC)和循环神经网络(RNN)的优势。SASRec利用注意力机制在相对较少的活动上进行预测,同时允许揭示长期的语义信息。
怎么做的:在每个时间步骤中,SASRec都试图从用户的行为历史中识别出哪些物品是“相关的”,采用自注意力机制来对用户的历史行为信息建模,最后使用它们来预测下一个物品。
实验部分:该文献提出了4个问题,分别从这4个问题进行展开实验,我们在三个实际应用的四个数据集上评估了我们的方法。
实验结果:大量的实证研究表明,我们的方法在稀疏和密集数据集上都优于各种最先进的序列化模型(包括MC/CNN/ rnnbased方法)。此外,该模型比基于CNN/ rnn的同类模型效率高一个数量级。注意力权重的可视化还显示了我们的模型如何自适应地处理不同密度的数据集,并揭示了活动序列中的有意义的模式。
与Transformer相比:
结构上:
该文献Self-Attention层与Transformer的编码层大体上是一致的,是由多个(或单个)自注意力机制 + 残差连接、Layer Normalization、Dropout +前馈网络组成。
在表征层上:
因为self-attention并不包含RNN或CNN模块,因此它不能感知到之前物品的位置。本文给输入表征插入可学习的位置表征P,本文也试了transformer中固定的位置表征,不过性能更糟。
疑问点:
1.在表征层,为什么把训练序列转换为固定长度的序列?
答:编程的时候,希望输入的是个矩阵,长度不固定,输入数据就会不规则,不能用向量矩阵操作,从而不能发挥性能优势。
2.这里的查询,键,值 怎么理解?
答:知乎这有讲解
3.为什么通过禁止Q和K之间的所有链接来修改注意力?
答: 避免信息泄露
4.对于每个用户U,为什么采取100个负样本?
答:采样分为训练采样和测试采样,此处是测试采样,像LightGCN指的是训练采样,加快训练,对于采样有关知识,可在学习了解一下。