这篇论文依然是 transformer 在序列推荐上的应用,我们还是跟着模型架构走一遍流程。其中最让我印象深刻的是损失函数的设计,确实新颖。
1. 模型架构
其中 self attention 模块主要用来抽取用户短期行为序列特征。
2. Short-Term Intents Modelling with Self-Attention
通过这个图其实已经能看明白用户短期行为序列特征的抽取过程,我们主要关注 query,key,value 的生成逻辑。
为输入,它表示用户
在时刻
时最近有行为的
个 itme 的 embedding 矩阵。另外,此时的 query、key、value 矩阵均等于
。
self attention 模块的输出为
其中 为 attention 输出的权重,
即为 key 矩阵。
的计算方法如下:
其中, 为 query、key 通过一个非线性映射得到
其中
在实际应用中,query、key 矩阵也引入了位置编码
3. User Long-Term Preference Modelling
长期偏好的衡量方式为
其中 ,
为 user 的数量,
为 item 的数量。
传统方法一般是用点积来衡量 和
的关系,但是有研究说明 dot product violate the important inequality property of metric function and will lead to sub-optimal solutions. 所以论文中使用了欧式距离来衡量。
4. Model Learning
当我们的目标是预测用户 在
时刻的行为 item时,损失函数可以设置为:
其中 ,
为调节参数。
当我们的目标是预测接下来的 T 个 item时,损失函数(margin-based hinge loss)可以设置为:
其中 为真是的 T 个 item,
为采样的 T 个负样本,
,
为间隔,实验中作者设置值为0.5。
对于稀疏数据集,为了避免维度问题,可以对 X、V、U 进行单位化限制
。