Multi-level Contrastive Learning Framework for Sequential
Recommendation
用于序列推荐的多层次对比学习框架
来源:CIKM 2022
摘要:顺序推荐(SR)旨在通过了解用户连续的历史行为来预测用户的后续行为。最近,一些SR的方法致力于缓解数据稀疏性问题(即训练的有限监督信号),考虑使用对比学习将自监督信号纳入SR。尽管这样的做法取得了一定的成就,但由于对复杂的协作信息如用户-项目关系、用户-用户关系和项目-项目关系的建模不够,学习到的用户/项目嵌入的信息丰富性依然存在不足。在本文中,作者提出了一种新的多层次对比学习框架,称为MCLSR。与之前基于对比学习的SR方法不同,MCLSR通过交叉视图对比学习范式从两个不同层次(即兴趣和特征层次)的四个特定视图学习用户和项目的表征。在四个真实数据集上进行的大量实验表明,所提出的MCLSR始终优于最先进的方法。
1 动机
传统的序列推荐方法大多都是在监督学习范式下,由于它们的监督信号完全来自于观察到的用户行为(如图1a所示),与整个交互空间相比,这是高度稀疏的,因此可能会出现数据稀疏性问题。于是,对比学习方法被应用于SR框架来缓解这个问题。现有的基于CL的SR方法常对用户行为序列应用数据级增强或模型级增强来生成正对和负对,并通过对比相应的对来学习额外的自监督信号。尽管取得了这样的成就,但上述方法完全从序列本身获得了自监督信号(如图1b所示),这对于SR来说是不够的,原因有两个。首先,由于每个行为序列都包含有限数量的项目,因此从该序列中获得的自监督信息是不充分的。第二,上述方法通过对行为序列进行简单的数据增强(如项目裁剪和掩蔽)来生成对比对,生成对比对的信息多样性较低,由此得到的自监督信号太弱,无法有效学习信息嵌入。这激励了作者探索更多的视图,并生成更多的信息对来进行对比学习。
因此,在本文中,作者提出了一个多层次对比学习框架(MCLSR)。为了有效地学习自监督信号,除了序列视图外,作者还构建了三个视图,并采用多层次交叉视图对比机制来学习协作信息、协同行动信息(如图1c所示)。具体来说,作者首先给出了SR的四个视图,即顺序视图、用户-项目视图、用户-用户视图和项目-项目视图。然后,MCLSR在两个层次(即兴趣层次和特征层次)上执行交叉视图对比学习范式。在兴趣层面,MCLSR从顺序视图获得序列信息,从用户-项目视图获得协作信息,其中执行对比机制来捕获两个视图之间的互补信息。在特性级别,MCLSR通过在用户-用户视图和项目-项目视图上执行gnn来重新观察用户和项目之间的关系。MCLSR通过对比学习学习两个视图上的区别信息,可以从用户(项目)之间的协同信息中捕获自我监督信号,进一步增强表示学习。
2 描述
2.1 问题定义
假设有用户集𝑢∈U和项目集𝑣∈V,对于每个用户,表示用户历史行为的时间顺序,其中表示用户交互的第j个项目。给定一个观察到的序列S(𝑢),顺序推荐的典型任务是预测用户𝑢最有可能被交互的下一个项目。
2.2 视图设置
基于用户的历史行为序列,作者首先得到一个用户-项目交互矩阵,其中表示项目𝑗出现在用户𝑖的行为序列S𝑖中,否则为0。接下来作者设置了一下三种视图:
用户-项目图。用户项图是一个典型的二部图,它是由交叉用户行为序列聚合的。让G𝑢𝑣=(V𝑢𝑣,E𝑢𝑣)表示用户项图,其中V𝑢𝑣表示图的节点集,表示图的边缘集。G𝑢𝑣包含所有用户U和所有项目V,边的权重代表用户𝑖与项目𝑗交互的次数。
用户-用户/项目-项目图。构建用户-用户(项目-项目)图,以探索用户(项目)之间的协同行动信号。在交互矩阵M𝒖𝒗的基础上,我们可以得到一个用户-用户矩阵 。设G𝑢𝑢=(V𝑢𝑢,E𝑢𝑢)为用户-用户图,其中V𝑢𝑢表示包含U中所有用户的图节点集,表示包含协同行为信息的边集,其中每条边的权重表示用户𝑖和用户𝑗之间的协同行为行为的数量。
2.3 encoder 层
为了充分利用图中的协同信息和协同行动信息,本文采用了一个特定的图编码器层来提取节点特征。由于LightGCN的有效性和轻量级架构,作者采用了它的消息传播策略来编码节点特性:
其中,A表示图的邻接矩阵。(𝑙)表示图编码器层的深度,X (0)表示输入节点特征,X(𝑙)表示图编码器层的输出。
3 方法
图2概述了所提出的多层对比框架,它由四个主要组成部分组成:1)图形构造层。它通过聚合用户行为序列来构建用户-项目、用户-用户和项目-项目图;2)兴趣级对比学习层。它首先从用户行为序列中学习用户的当前感兴趣,从用户-项目图中学习用户的一般感兴趣,然后执行交叉视图对比机制。3)特征级的对比性学习层。从用户项、用户项和项目项图中获取用户和项特征,然后进行交叉视图对比学习;4)联合训练。它联合优化预测损失、兴趣损失和特征级对比损失,以更新模型参数。
在这里,作者首先构造了一个用户嵌入矩阵和一个项目嵌入矩阵,其中𝑑是嵌入的维数。因此,对于用户的历史交互序列S(u),有嵌入矩阵。
3.1 兴趣级别的对比学习
3.1.1 当前兴趣
作者从用户行为序列(即顺序视图)中捕获用户的首选项。由于不同的项目对当前的预测具有明显不同的重要性,因此采用自我注意机制对用户行为序列进行建模。给定项目嵌入矩阵E𝑢,作者首先使用一个可训练的位置矩阵将顺序信息合并到序列中,即。然后计算注意矩阵A𝑠如下:
其中,和为可训练参数。输出矩阵A𝑠的维数为,其中每个元素A𝑠𝑗表示用户行为序列中的用户偏好与第j项之间的关系。最后,可以通过以下方法获取来自顺序视图(命名为当前兴趣图)中的用户首选项:
3.1.2 一般兴趣
为了充分探索协作信息,作者从用户-项目图G𝑢𝑣中的跨用户交互信息来构建用户的兴趣。为了获取用户特征和项目特征,采用了图编码器层,如下:
其中,是包含用户和项目特征的初始节点特征矩阵(即,,其中||表示连接操作),图形编码器表示式(1)中定义的图编码器层。是从用户项图中学习到的节点特征矩阵。然后对于给定的用户𝑢和相应的行为序列S𝑢,就可以根据用户和项目的节点特征矩阵进行索引选择,得到相应的用户嵌入和项目嵌入矩阵。为了根据用户偏好估计每个项目的重要性,根据用户特征和项目特征计算注意矩阵:
其中是一个可训练的转换权重,A𝑐∈R𝑛是用户偏好和项目之间的注意矩阵。然后,可以从用户项视图(命名为一般兴趣)中获得用户首选项如下:
3.1.3 交叉视图对比学习
为了从序列转换模式和协作信息中学习互补信息,对序列视图(当前偏好I𝑢𝑠)和用户-项目视图(一般偏好I𝑐𝑢)进行对比学习是有意义的。在这里,作者首先将I𝑢𝑠和I𝑐𝑢输入一个多层感知器(MLP),将它们投射到计算对比损失的空间中:
其中𝜎表示ELU非线性激活函数。
作者从两个视图(即顺序视图和用户-项目视图)将同一用户的兴趣作为一对正样本。此外,很自然地将不同用户的兴趣视为负样本对。对比损失计算如下:
其中,Ψ表示exp(sim(·,·)/𝜏),sim(·,·)表示余弦相似度函数,𝜏是温度参数。
3.2 特征级别的对比学习
直接探索用户-项目图不足以捕获用户(项目)之间的协同行动信息。事实上,协同作用信息对于测量用户-用户(项目项)关系和学习用户偏好是必不可少的。因此,作者构建了一个用户-用户(项目-项目)图,以有效地捕获用户(项目)之间的协同行动信号。
3.2.1 特征学习
为了获得协作信息和协同信息,作者首先从用户-项目视图和用户-用户视图中提取用户特征,其中应用了图编码器层:
其中,分别为从用户-项图G𝑢𝑣和用户-用户图G𝑢𝑢中获得的用户特征。G𝑢𝑢中的边的权值表示协同作用的数量,这意味着高协同作用对在图的传播过程中表现出更重要的影响。
3.2.2 交叉视图对比学习。
然后将从两个图中获得的用户特征输入一个MLP,并投影到计算对比损失的空间中:
考虑到每个用户都涉及到两个视图,我们可以分别捕获用户-项目协作信息和用户-用户协同行动信息。为了获取两个视图之间的互补信息并获得有区别的用户特征,我们自然地将在两个图视图中获得的同一用户的特征视为一对正样本,而将不同用户的特征视为一对负样本对:
其中,L𝑈𝐶表示用户特征的对比损失,而项目特征的对比损失,L𝐼𝐶也可以用类似的方法计算。最终的特征级对比损失L𝐹𝐿计算如下:
3.3 模型优化
从顺序视图和用户-项视图计算用户兴趣表示后,将它们进行汇总,得到组合的用户兴趣表示:
此外,预测的目标函数是最小化以下负对数似然:
总体目标如下:
𝛽和𝛾则是可权衡的超参数。
推理阶段:
在推理阶段,作者使用当前的兴趣I𝑢𝑠来执行下游任务,因为: i)为了避免信息泄漏的问题,作者在训练过程中只使用训练数据来构造三个图,因此在推理过程中不能产生用户的一般兴趣。ii)在优化J(𝜃)后,在用户和项目嵌入中学习协作信息和协同行动信息,从而足以使用当前的兴趣I𝑢𝑠来执行下游任务。然后根据内部乘积对候选项目进行聚类:
其中,𝑅(𝑢,𝑁)表示建议推荐的前n个项目。
4 实验
4.1 数据集
4.2 模型效果
4.3 消融实验
具体来说,作者通过在四个数据集上比较四种变体和完整的模型来进行消融研究。(1)“MCLSR-G”表示移除图编码器层,并直接使用用户和项目的初始嵌入。(2)“MCLSR-IF”是指去除两个层次的对比机制,只优化目标预测的损失函数。(3)“MCLSR-F”直接删除了特征级的对比机制。(4)“MCLSR-I”表示消除了兴趣水平的对比机制。
4.4 超参数设置