关注我们,一起学习~
标题:Multi-level Contrastive Learning Framework for Sequential Recommendation
地址:https://arxiv.org/pdf/2208.13007.pdf
会议:CIKM 2022
学校,公司:华中科技大学,阿里
1. 导读
本文主要针对序列推荐中的数据稀疏问题提出相应的解决方法,针对现有对比学习在缓解该问题上的不足提出MCLSR。现有方法的不足 :由于对复杂的协作信息(例如用户-商品关系、用户-用户关系和商品-商品关系)的建模不足,学习信息丰富的用户/商品embedding还远远不够。本文提出了一种新的用于序列推荐的多层次对比学习框架,称为 MCLSR 。与之前基于对比学习的 SR 方法不同,MCLSR 通过跨视图对比学习范式从两个不同级别(即兴趣级别和特征级别 )的四个特定视图学习用户和商品的表征。具体来说,兴趣级对比机制与顺序转换模式共同学习协作信息,特征级对比机制通过捕获共现信息重新观察用户和商品之间的关系。
2. 基础
2.1 问题定义 uin U 表示用户集合,
v in V 表示商品集合,按时间排序的历史交互序列表示为
S^{(u)}={v_1^{(u)},...,v_{|S|}^{(u)}} 。
2.2 图构建 一个商品可以涉及多个用户行为序列,从中可以获得有用的协作信息和共现信息。因此,构建额外的图视图来探索协作信号和共现信号。基于用户的历史行为序列,首先得到一个用户-商品交互矩阵
M^{uv} in mathbb{R}^{|U|times |V|} ,其中
M^{uv}_{ij} > 0 表示项目 j 出现在用户 i 的行为序列中(即
v_j in S_i ),否则为 0。
用户-商品图 。user-item 图是一个典型的二分图探索协作信息,由聚合跨用户行为序列构成。令
mathcal{G^{uv}=(E^{uv},V^{uv})} 为用户-商品图,V为节点集合,包含所有的用户和商品,
mathcal{E^{uv}={e^{uv}_{ij}=M^{uv}_{ij}|M^{uv}_{ij}>0}} 为边的集合,表示用户是否和商品有交互,边的权重表示交互的次数。
用户-用户/商品-商品图 。这两图太多共现信息,基于矩阵M,可以得到用户-用户图
M^{uu}=(M^{uv})(M^{uv})^T ,同理也可以得到商品-商品图。
2.3 图编码层 为了充分利用图中的协作信息和共现信息,这里使用了一个特定的图编码器层来提取节点特征。由于 LightGCN 的有效性和轻量级架构,这里采用LightGCN来编码节点特征,公式如下,A为邻接矩阵,D为度矩阵。
mathbf{X}^{(l)}=operatorname{GraphEncoder}(mathbf{X}, mathrm{A})=mathrm{D}^{-frac{1}{2}} mathrm{AD}^{-frac{1}{2}} mathbf{X}^{(l-1)}
3. 方法
如图 2 所示为方法框架图。它包括四个主要部分:
1)图构建层。它通过聚合用户行为序列来构造用户-商品、用户-用户和商品-商品图; 2)兴趣级别的对比学习层。它首先从用户行为序列中学习用户当前的兴趣,从用户-商品图中学习用户的总体兴趣,然后执行跨视图对比机制。 3)特征级对比学习层。它从user-item、user-user和item-item图中获取用户和商品的特征,然后进行跨视图对比学习; 4)联合训练。它联合优化预测损失、兴趣和特征级对比损失以更新模型参数。 3.1 兴趣级别对比学习 这里关注将协作信息引入推荐系统以捕捉用户的一般偏好。然后应用对比机制,从顺序转换模式和协作信息之间的互补信息中学习额外的自监督信号,以缓解数据稀疏问题。
3.1.1 当前兴趣学习 从用户行为序列中捕获用户的偏好。由于不同的商品对当前预测具有不同的重要性,采用类似Transformer的结构,应用自注意力机制对用户行为序列进行建模。给定商品embedding矩阵
E^u ,使用可训练的位置矩阵将顺序信息合并到序列中,即
E^{u,p}=[h_1^v p_1,...,h_n^v p_n] 。注意力矩阵计算方法如下,
mathbf{A}^{s}=operatorname{softmax}left(mathbf{W}_{2} tanh left(mathbf{W}_{1}left(mathbf{E}^{u, p}right)^{T}right)right)
来自顺序视图的用户偏好(称为当前兴趣)可以通过以下方式获得,
I_u^s=A^sE^u
3.1.2 一般兴趣学习 为了充分探索协作信息,从用户-商品图中的跨用户交互信息中构建用户兴趣。为了获得用户特征和商品特征,使用如下图编码器层,H为初始节点特征矩阵,包含用户和商品特征
mathrm{H}^{text {all,uv }}=operatorname{GraphEncoder}(l)left(mathrm{H}^{text {all }}, mathcal{G}^{u v}right),
对于给定的用户u和对应的行为序列
S_u ,可以通过从学习的节点特征矩阵H中获得对应的用户embedding
h^{u,uv} 和商品embedding矩阵
E^{u,uv} 。然后,通过注意力机制计算每个商品对于该用户的重要性,
mathbf{A}^{c}=operatorname{softmax}left(tanh left(mathbf{W}_{3}mathbf{h}^{u, uv}right)(mathbf{E}^{u,uv})^Tright)
从用户-商品视图中得到的用户偏好计算为下式,
I_u^c=A^cE^{u,uv}
3.1.3 跨视图对比学习 为了从顺序转换模式和协作信息中学习互补信息,对顺序视图(当前偏好
I_u^s )和用户-商品视图(一般偏好
I_u^c )进行对比学习。首先将他们输入到多层感知器 (MLP) 中,以将它们投影到计算对比损失的空间中,公式如下,σ为ELU激活函数。
begin{array}{l}
mathbf{T}^{I, s}=left(mathbf{W}_{2}^{p} sigmaleft(mathbf{W}_{1}^{p} mathbf{I}_{u}^{s} mathbf{b}_{1}^{p}right) mathbf{b}_{2}^{p}right) \
mathbf{T}^{I, c}=left(mathbf{W}_{2}^{p} sigmaleft(mathbf{W}_{1}^{p} mathbf{I}_{u}^{c} mathbf{b}_{1}^{p}right) mathbf{b}_{2}^{p}right)
end{array} 要从两个视图中学习自监督信号,必须定义正样本和负样本。从两个视图(即顺序视图和用户商品视图)中获取同一用户的兴趣作为一对正样本。将不同用户的兴趣视为一对负样本。然后兴趣级别的对比损失可以计算如下,其中
Psi 为
exp(sim(cdot,cdot)/tau) mathcal{L}^{I L}=sum_{i=1}-log frac{Psileft(mathrm{T}_{i}^{I, s}, mathrm{~T}_{i}^{I, c}right)}{sum_{j} Psileft(mathrm{T}_{i}^{I, s}, mathrm{~T}_{j}^{I, c}right) sum_{j neq i} Psileft(mathrm{T}_{i}^{I, s}, mathrm{~T}_{j}^{I, s}right)},
3.2 特征级别对比学习 直接探索用户-商品图不足以捕获用户(商品)之间的共现信息。因此,构建用户-用户(商品-商品)图以有效捕获用户(商品)之间的共现信号。对于每个用户 ,从用户-商品视图和用户-用户视图中学习用户特征,从两个图的视图中捕获判别信息并相互补充来学习自监督信号。
3.2.1 特征学习 为了获得协作信息和共现信息,首先从用户-商品视图和用户-用户视图中提取用户特征,其中应用了图编码器层:
begin{aligned}
{left[mathbf{H}^{u, u v} | mathbf{H}^{v, u v}right] } &=operatorname{GraphEncoder}^{(l)}left(left[mathbf{H}^{u} | mathbf{H}^{v}right], mathcal{G}^{u v}right) \
mathbf{H}^{u, u u} &=operatorname{GraphEncoder}^{(l)}left(mathbf{H}^{u}, mathcal{G}^{u u}right)
end{aligned} 3.2.2 跨视图对比学习 然后从两个图中获得的用户特征,输入到 MLP 中,并投影到计算对比损失的空间中:
begin{aligned}
mathrm{T}^{F, u u} &=mathbf{W}_{4}^{p} sigmaleft(mathbf{W}_{3}^{p} mathbf{H}^{u, u u} mathbf{b}_{3}^{p}right) mathbf{b}_{4}^{p}, \
mathrm{~T}^{F, u v} &=mathbf{W}_{4}^{p} sigmaleft(mathbf{W}_{3}^{p} mathbf{H}^{u, u v} mathbf{b}_{3}^{p}right) mathbf{b}_{4}^{p},
end{aligned} 考虑到每个用户都涉及到两个图视图,可以分别捕获用户-商品协作信息和用户-用户共现信息。为了捕获两个图视图之间的互补信息并获得有区别的用户特征,将在两个图视图中获得的同一用户的特征视为一对正样本,而将不同用户的特征视为一对负样本,损失如下:
mathcal{L}^{U C}=sum_{i=1}-log frac{Psileft(mathrm{T}_{i}^{F, u v}, mathrm{~T}_{i}^{F, u u}right)}{sum_{j} Psileft(mathrm{T}_{i}^{F, u v}, mathrm{~T}_{j}^{F, u u}right) sum_{j neq i} Psileft(mathrm{T}_{i}^{F, u v}, mathrm{~T}_{j}^{F, u v}right)}
同理可以得到商品相关的损失函数
L^{IC} ,则特征级别的损失函数为
L^{FL}=L^{UC} L^{IC} 3.3 训练 在从顺序视图和用户-商品视图计算用户兴趣表征后,计算得到组合的兴趣表征,公式如下,
I_u^{comb}=alpha I^{s}_u (1-alpha) I_u^c
给定一个带有用户兴趣embedding
I_u^{comb} 和目标embedding
h_o^v 的训练样本 (u, o),用户 u 与商品 o 交互的可能性可以通过采样的softmax计算。预测的目标函数是最小化以下负对数似然,
mathcal{L}^{p}=sum_{u in U}-log frac{exp left(left(mathbf{I}_{u}^{c o m b}right)^{T} mathbf{h}_{o}^{v}right)}{sum_{k in operatorname{Sample}(mathcal{V})} exp left(left(mathbf{I}_{u}^{operatorname{com} b}right)^{T} mathbf{h}_{k}^{v}right)}
则总的损失函数为
mathcal{J}(theta)=L^p beta L^{IL} gamma L^{FL}
4. 结果