关注我们,一起学习~
title:Decoupled Side Information Fusion for Sequential Recommendation
link:https://arxiv.org/pdf/2204.11046.pdf
code:https://github.com/AIM-SE/DIF-SR
from:SIGIR 2022
1. 导读
本文考虑在序列推荐中对各种辅助信息进行融合来提升下一个商品的预测性能。大多数方法采用注意力方法,但是不同异构信息的混合相关性给注意力机制带来了额外的干扰,并且embedding的早期集成限制了注意力机制的表达能力。
本文提出解耦的辅助信息融合DIF-SR,将辅助信息从输入移动到注意力层,并将各种辅助信息和商品表征的注意力计算解耦。辅助属性预测器进一步激活辅助信息和商品表征学习之间的有益交互。
2. 懒人阅读 通常的融合辅助信息的序列推荐方法都是将序列中交互对应的辅助信息(如商品的品牌,类别,用户打分等)和交互的商品ID一起融合后,再经过注意力机制进行相关性挖掘。本文作者发现提前融合会影响注意力层的表征能力,因此,作者将注意力机制放在融合之前,即下面章节的图3c,然后通过将不同属性的注意力权重进行融合(add,concat,gating具体看下文),然后再对embedding进行加权。得到序列中各个交互的embedding后,采用最后一次交互的商品embedding和候选商品embedding求用户交互分数。并且在训练阶段约束交互中商品embedding包含辅助信息,具体可见损失函数部分。
3. 问题定义 令I,U分别表示商品和用户集合。用户u的历史序列表示为
\mathbb{S}_u=\{v_1,...,v_n\} ,vi表示第i个交互的商品,辅助信息包括与商品相关的信息(例如,品牌、类别)和与行为相关的信息(例如,位置、评分)。假设有p种辅助信息,每个交互可以表示为:
v_i=(I_i,f_i^{(1)},...,f_p^{(p)}) ,
I_i 表示第i次交互的商品ID,f为辅助信息。给定交互序列,预测用户最后可能交互的商品。
4. 方法 image.png
4.1 Embedding模块 对于输入序列
\mathbb{S}_u ,将其中的商品ID和对应的属性分别输入到相应的embedding层,表示如下,分别得到对应的embedding矩阵,lookup矩阵的维度为
M_{id} \in \mathbb{R}^{|I|\times d} ,
M_{f_p} \in \mathbb{R}^{|f_p| \times d_{fp}} ,得到的embedding矩阵维度则为
E^{ID} \in \mathbb{R}^{n\times d} 其他属性也类推。
\begin{aligned}
E^{I D}=& \mathcal{E}_{i d}\left(\left[I_{1}, I_{2}, \ldots, I_{n}\right]\right), \\
E^{f 1}=& \mathcal{E}_{f 1}\left(\left[f_{1}^{(1)}, f_{2}^{(1)}, \ldots, f_{n}^{(1)}\right]\right), \\
& \cdots \\
E^{f p}=& \mathcal{E}_{f p}\left(\left[f_{1}^{(p)}, f_{2}^{(p)}, \ldots, f_{n}^{(p)}\right]\right),
\end{aligned} 4.2 解耦的辅助信息融合模块DIF 4.2.1 层结构 如图 2 所示,解耦的辅助信息融合模块包含几个堆叠的顺序组合 DIF 注意力层和前馈层的块。每个 DIF 块涉及两种类型的输入,即当前商品表征和辅助信息表征,然后输出更新的商品表示。辅助信息embedding不会每层更新以节省计算量,同时避免过度拟合。令
R^{(ID)}_i \in \mathbb{R}^{n \times d} 表示块i的输入商品表征。
\begin{array}{c}
R_{i+1}^{(I D)}=\operatorname{LN}\left(\mathrm{FFN}\left(\mathrm{DIF}\left(R_{i}^{(I D)}, E^{f 1}, \ldots, E^{f p}\right)\right)\right) \\
R_{1}^{(I D)}=E^{I D}
\end{array} 4.2.2 DIF注意力层 从图中可以看出,本文所提的DIF中采用的注意力方式和其他方式的区别在于融合过程和注意力机制的位置关系,之前的方式都是先融合,然后再通过注意力机制;而DIF-SR 不是通过早期融合来获得融合的项目表征,而是将各种辅助信息的注意力计算过程解耦以生成融合的注意力矩阵,以获得更高的表征能力、避免混合相关性和灵活的训练梯度。
对于商品表征和各种属性表征,分别采用多头注意力机制计算相应的注意力全中,表示如下,
\mathrm{att}_{I D}^{i}=\left(R^{(I D)} W_{Q}^{i}\right)\left(R^{(I D)} W_{K}^{i}\right)^{\top} .
\begin{aligned}
\operatorname{att}_{f 1}^{i}=&\left(E^{f 1} W_{Q}^{(f 1) i}\right)\left(E^{f 1} W_{K}^{(f 1) i}\right)^{\top} \\
& \cdots, \\
\operatorname{att}_{f p}^{i}=&\left(E^{f p} W_{Q}^{(f p) i}\right)\left(E^{f p} W_{K}^{(f p) i}\right)^{\top} .
\end{aligned} 对于每个头对应的注意力权重采用函数F进行融合,然后对
R^{(ID)} 加权,表示如下,
\begin{aligned}
\text { DIF_att }^{i}=\mathcal{F}\left(\mathrm{att}_{I D}^{i}, \mathrm{att}_{f 1^{i}}, \ldots, \mathrm{att}_{f p}^{i}\right) \\
\text { DIF_head }^{i} =\sigma\left(\frac{\mathrm{DIF}_{-} \mathrm{att}^{i}}{\sqrt{d}}\right)\left(R^{(I D)} W_{V}^{i}\right)
\end{aligned} 这里的F函数,文中直接说参考NOVA方法,笔者在这进行补充,方便大家理解。这里的F函数可以采用相加(add),拼接(concat)或者加权(gating)。
最后,所有注意力头的输出拼接起来进过前馈层FFN。
4.3 AAP预测模块 借助辅助信息得到序列信息编码的最终表征
R^{(ID)}_L ,采用
R^{(ID)}_L 的最后一个元素
R^{(ID)}_L[n] 来估计用户与每个商品进行交互的概率。
\hat{y}=\operatorname{softmax}\left(M_{i d} R_{L}^{(I D)}[n]^{\top}\right)
在训练期间,对属性(位置信息除外)使用辅助属性预测器(AAP),以进一步激活辅助信息和商品表征之间的交互。与先前使用单独的属性embedding进行预测或仅使用属性进行预训练的解决方案不同,本节将多个预测器直接应用于最终表征,以强制商品表征包含有用的辅助信息。
\hat{y}^{(f j)}=\sigma\left(W_{f j} R_{L}^{(I D)}[n]^{\top}+b_{f j}\right)
最后采用交叉熵损失函数进行优化,
L_{i d}=-\sum_{i=1}^{|\mathcal{I}|} y_{i} \log \left(\hat{y}_{i}\right)
L_{f j}=-\sum_{i=1}^{|f j|} y_{i}^{(f j)} \log \left(\hat{y}_{i}^{f j}\right)+\left(1-y_{i}^{(f j)}\right) \log \left(1-\hat{y}_{i}^{(f j)}\right)
L=L_{i d}+\lambda \sum_{j=1}^{p} L_{f j}
5. 结果