最近基于transformer的一些NLP模型很火(比如BERT,GPT-2等),因此将transformer模型引入到推荐算法中是近期的一个潮流。transformer比起传统的LSTM、GRU等模型,可以更好地建模用户的行为序列。本文主要整理transformer在推荐模型中的一些应用。
1. Self-Attentive Sequential Recommendation
模型结构:
![b68d167ca5f3fd1b762102a575f006f3.png](https://i-blog.csdnimg.cn/blog_migrate/cddc12a94e18793f69e53b4bf35be7d0.jpeg)
方法:
符号定义:
![bbf514716eae11087b5c04ec929eca8d.png](https://i-blog.csdnimg.cn/blog_migrate/f3b5aef9ebdf8274a0ea0aea591e27ed.jpeg)
问题定义:模型输入是用户u的一个历史交互序列:
- Embedding层
将输入序列
位置embedding: 因为self-attention并不包含RNN或CNN模块,因此它不能感知到之前item的位置。本文输入embedding中也结合了位置Embedding P信息,并且位置embedding是可学习的:
![88a49e6f5a2397121f40bc4b632b86c2.png](https://i-blog.csdnimg.cn/blog_migrate/79422539fe69acdd3e3af958770399bb.jpeg)
- Self-Attention层
Transformer中Attention的定义为:
![ebb1d1aded975da5a64ae3cdb8ee4d07.png](https://i-blog.csdnimg.cn/blog_migrate/f7445886eb90d799636aa6bc3e4d4201.png)
本文中,self-attention以embedding层的输出作为输入,通过线性投影将它转为3个矩阵,然后输入attention层:
![e5827b29d27ff661d67de456c8ca431f.png](https://i-blog.csdnimg.cn/blog_migrate/a6dbfe99e80e08017390885d2be5aa79.png)
为了避免在预测i时刻的item时用到后续时刻的信息,本文将符合(j > i)条件的