李清风,金 柳,马慧芳,张若一
(1.西北师范大学计算机科学与工程学院,甘肃 兰州 730070;2.中国交通信息科技集团有限公司,北京 100088)
随着在线平台的快速发展和在线用户行为类型的急剧增加,多行为推荐MBR(Multi-Behavior Recommendation)方法[1]在提升用户体验方面发挥了至关重要的作用。与传统的推荐方法[2]不同,MBR通常利用多种类型的用户交互行为来学习用户对目标行为(即购买)的偏好。不同类型的交互行为可以从不同的意图维度表征用户偏好,并相互补充以更好地学习用户偏好。最近,一些研究试图通过引入行为相关性来显式建模用户的多种行为类型。例如,神经多任务推荐NMTR (Neural Multi-Task Recommendation) 方法[3]假设用户行为类型有一个总顺序,然后根据先验知识对行为类型进行排序并利用一个多任务学习框架来联合优化模型。类似地,高效异质协同过滤EHCF (Efficient Heterogeneous Collaborative Filtering)方法[4]采用迁移学习范式来关联多种行为类型,然后通过基于全部数据的非抽样方法优化模型。另一种研究方法是通过生成特定行为类型的表示来建模行为间依赖。例如,基于图卷积网络的多行为推荐MBGCN(Multi-Behavior recommendation with Graph Convolutional Network)方法[5]提出一个关系感知的嵌入传播层来捕获不同行为类型下高跳邻居传递的协同信号,从而增强对目标行为的偏好学习。但是,由于观察到的用户交互数据稀少,这些基于监督学习范式的模型仍然受到稀疏监督信号的影响,而无法精确推断出用户偏好,从而导致推荐性能下降。
对比学习是一种经典的自监督学习,旨在从原始数据本身去挖掘自监督信号,用来补充那些仅来自观察到的交互数据里经典的监督信号。这种新技术被认为是缓解稀疏监督信号问题的良药,引起了研究人员的广泛关注。受对比学习在计算机视觉和自然语言处理领域的启发,已有研究将对比学习运用到推荐系统。常见方法是通过从原始用户项目交互图中随机删除一些节点或边以生成增强视图,然后利用对比学习提取自监督信号。例如,自监督图学习SGL (Self-supervised Graph Learning)方法[6]总结了基于图的3种随机增强操作类型,包括节点丢失、边丢失和随机游走,然后将它们集成到一个通用的自监督学习框架中用于推荐。在多行为推荐场景中,对比元学习CML (Contrastive Meta Learning)方法[7]采用元学习范式来保存多行为上下文信息,并通过最大化多行为视图的一致性来优化用户表示。值得注意的是,SGL方法在用户项目交互图上进行丢弃操作可能会使数据更加稀疏,CML方法简单考虑不同行为的特性而忽略高阶语义信息,从而使得推荐性能次优。
为了解决上述问题,本文提出双视图对比学习引导的多行为推荐DVCL(Dual-View Contrastive Learning)方法来挖掘自监督信号,以增强多行为推荐。首先,分别构建交互视图和折叠视图,并设计2个不同的视图编码器分别学习用户和项目的表示。具体来说,在交互视图中,用户表示和项目表示通过聚合其直接邻居的信息来学习,这能够捕获局部结构;在折叠视图中,用户表示和项目表示沿多个折叠路径传递消息来学习,目的是捕获高阶结构。交互视图编码器作为主编码器用于主推荐任务,折叠视图编码器则充当辅助编码器用以增强前者。此外,设计新颖的跨视图协同对比学习机制,使得2个编码器可以彼此获得互补的结构信息。然后,通过优化对比学习目标函数以细化视图编码器和用户表示。迭代这个过程的好处有2方面,一是随着跨视图协同对比学习的进行,生成的用户样本变得更有信息量(困难样本),这可以为每个编码器提供更有意义的信息;二是利用2方面的结构信息,创建更实用的自监督信号,从而改进交互视图编码器以进行推荐。最后,采用多任务联合学习策略优化模型参数。在2个真实数据集上进行不同的实验验证了本文方法的有效性。
设用户集合为U={u1,u2,…,um},项目集合为V={v1,v2,…,vn},其中,m和n分别表示用户数和项目数,u和v分别表示U中的任意一个用户和V中的任意一个项目。设Y(1),Y(2),…,Y(K)表示用户-项目关于K种行为的交互矩阵,其中K表示交互行为类型数。y(k)uv=1表示用户u和项目v有过第k种类型的行为交互,反之y(k)uv=0。默认第K种行为视为目标行为(即购买行为),其余前K-1种行为视为辅助行为。进一步定义相关视图概念如下:
定义1(交互视图) 将用户和项目视作节点,基于多行为交互关联,交互视图定义如式(1)所示:
(1)
交互视图描述了用户与项目间直接多行为交互关系,可以通过学习交互视图局部结构来学习用户行为偏好。
定义2(用户折叠视图) 为了描述用户间高阶关系,用户折叠视图定义如式(2)所示:
(2)
本文问题定义如下:
输入:给定目标用户u,目标项目v,交互视图GI和折叠视图GF。
输出:目标用户在目标行为下与目标项目的交互概率。
为了描述清晰起见,本文涉及到的常用符号定义总结如表1所示。
Table 1 Commonly used notations definition
图1给出了DVCL方法的工作过程。具体地,首先根据用户多行为交互数据分别得到交互视图和折叠视图。接着,利用2个非对称视图编码器(即交互视图编码器Interactive view encoder和折叠视图编码器Fold view encoder),同时捕获用户和项目在交互视图和折叠视图上局部和高阶异质交互关系。在学习到2个视图上用户和项目的嵌入表示后,利用跨视图协同对比学习自适应捕获2个视图上不同的结构信息,以细化视图编码器和用户项目嵌入表示。最后,采用多任务联合学习优化DVCL方法参数,并输出目标用户在目标行为下与目标项目交互的概率。
Figure 1 Process of our proposed DVCL method
交互视图编码器旨在学习交互视图下用户(或项目)的嵌入。轻量化图卷积网络LightGCN (Light Graph Convolution Network)[8]是一种使用简单的消息传递和聚合机制的方法,不需要特征变换或非线性激活。交互视图编码器的嵌入传播层基于LightGCN捕捉协同信号以及用户项目异质交互局部图结构。用户(或项目)嵌入通过累积来自所有行为类型下有过交互的项目(或用户)传递的消息来学习。
具体来说,首先聚合用户u在第k种行为类型下的邻居,如式(3)所示:
(3)
(4)
(5)
值得注意的是,每个嵌入层被赋予1/(L+1)的统一权重,这通常会取得良好的性能。在交互视图上项目嵌入的学习过程类似于用户嵌入的学习过程,因此本文省略了这一部分描述。
折叠视图编码器旨在学习折叠视图下的用户(或项目)嵌入,建模用户(或项目)之间的高阶关系。这种高阶关系意味着存在一条路径,使得2个用户(项目)在同一行为类型下与同一个项目(用户)进行过交互。每条这样的路径都代表着特定的语义相似性,使用特定于折叠视图的图卷积网络来编码该特征,如式(6)所示:
(6)
然后,利用式(7)线性聚合多层表示:
(7)
因为存在K种交互行为类型,可以获得用户u的K种行为类型下的嵌入。然后利用行为级注意力机制将它们融合为最终嵌入zu,如式(8)~式(10)所示:
(8)
(9)
(10)
交互视图旨在通过用户项目直接交互关系学习用户偏好,折叠视图旨在学习用户之间高阶关系,2个视图相关又互补。本文提出跨视图协同对比学习来融合局部和高阶的信息,从而提升嵌入质量。从上述2个视图中分别获得节点u在2个视图中的嵌入qu和zu之后,通过多层感知机MLP (Multi-Layer Perceptron)进一步进行特征变换,将节点表示映射到计算对比损失的表示空间,如式(11)和式(12)所示:
(11)
(12)
(13)
其中,I(·)表示指示函数。构造集合Su={u′∣u′∈Uandu(u′)≠0},并将其中元素按u(u′)的数值大小降序排列。设置阈值Npos,如果|Su|>Npos,则将集合Su内前Npos个用户作为用户u的正样本,以此构造正样本集合Pu,否则将保留Su内所有用户节点作为正样本集合。将除去正样本用户剩余的所有用户视为用户u的负样本集合Nu。遵循信息噪声对比估计InfoNCE (Information Noise Contrastive Estimation)[10],最大(小)化正(负)样本对之间一致性。跨视图对比损失形式化如式(14)所示:
(14)
(15)
其中,ρ表示平衡2种视图学习效果的系数。可以通过反向传播优化DVCL方法的参数和节点嵌入。
在得到用户和项目的密集向量表示后,本文将交互视图下最终的用户表示和项目表示投影到预测层来预测用户在目标行为类型下的偏好,如式(16)所示:
(16)
(17)
其中,O={(u,v+,v-)∣(u,v+)∈O+,(u,v-)∈O-},O+和O-分别表示用户u观察到的目标行为类型交互集合和未观察到的目标行为类型交互集合。
本文利用多任务学习策略[11]来联合训练不同但相关的任务,最终联合学习目标函数定义如式(18)所示:
(18)
其中,Θ表示DVCL所有可学习参数,ζ和η分别用来控制跨视图协同对比学习和L2正则化强度,通过联合训练同时优化跨视图对比学习损失和BPR损失。
DVCL方法的伪代码如算法1所示。
算法1 用于多行为推荐双视图对比学习的DVCL方法输入:用户集合U,项目集合V,用户-项目多行为交互矩阵集合{Y(1),Y(2),…,Y(K)}。输出:对于每个u∈U返回一个推荐项目列表。1.构建交互视图GI和折叠视图GF;2.根据式(3)~式(10)学习用户和项目分别在交互视图和折叠视图上的嵌入表示;3.for u∈Udo4. 根据式(11)和式(12)将用户和项目嵌入转换到计算对比损失空间;5. 根据式(13)计数用户u与用户j在所有行为下的折叠路径数目,从而得到正样本集合Pu和负样本集合Nu;6. 根据式(14)和式(15)计算跨视图协同对比学习损失 Iu和 Fu;7. 根据式(16)计算用户u与项目v的交互概率;8. 根据式(17)计算目标行为下BPR损失 main;9.end for10.根据式(18)联合优化所有目标函数;11.为每个用户返回一个降序排列的项目推荐列表;
本节在2个真实世界的电子商务数据集上进行实验,以证明DVCL方法的有效性,旨在回答以下4个研究问题:
(1)问题1:与最先进的方法相比,DVCL方法在推荐应用方面会更有效吗?
(2)问题2:DVCL中各种模块(双视图学习、跨视图协同对比学习机制)对DVCL的最终性能有何影响?
(3)问题3:与最先进的方法相比,DVCL在缓解交互数据稀疏方面表现如何?
(4)问题4:传播层深度l如何影响DVCL的性能?
2个真实世界的电子商务数据集具体信息如下所示:
(1)Beibei(https://www.beibei.com/):这是从国内最大的婴幼儿用品电商平台贝贝网收集的数据集。在这个数据集中,有21 716个用户和7 977个商品,它们有3种类型的行为,包括浏览、添加购物车和购买。
(2)Taobao(https://www.beibei.com/):这是从中国最大的电子商务平台淘宝网站上收集的数据集。该数据集包含48 749个用户和39 493个商品,具有3种类型的行为,包括浏览、添加购物车和购买。
遵循现有方法[3,4],首先合并重复的用户-项目交互,然后过滤掉少于5次购买交互的用户和项目。之后,把用户的最后一次购买记录作为测试数据,倒数第2次记录作为验证数据,剩下的记录作为训练数据。表2总结了这2个数据集的统计细节。
Table 2 Statistical details of the datasets
实验采用HR@N和NDCG@N分析DVCL方法的推荐性能。其中,HR@N是一个基于召回的指标,它衡量测试项目是否在前N项项目排名列表中(1表示是,0表示否)。NDCG@N是一个位置敏感的指标,它为项目排名列表中位置靠前的命中分配较高的分数。2个指标的值越大,表示方法的推荐性能越好。
本文将DVCL与各种先进的方法进行比较,以证明其有效性。基线方法分为2类,一类是仅利用目标行为数据的单行为方法,另一类是利用所有行为类型数据的多行为方法。完全遵循原始论文的调整策略来设置基线方法参数。
单行为推荐方法包括:
(1)神经协同过滤NCF (Neural Collaborative Filtering)方法[12]: 一种结合矩阵分解MF(Matrix Factorization)和MLP的深度学习方法。
(2)高效神经矩阵分解ENMF (Efficient Neural Matrix Factorization)方法[13]: 一种用于推荐的非抽样学习方法。
(3)LightGCN[8]: 一种基于图神经网络的方法,它删除了非必要的特征变换和非线性激活,使其更适合于推荐任务。
多行为推荐方法包括:
(1)NMTR[3]: 一种深度学习方法,它对多种类型的行为依赖进行建模并通过多任务学习策略进行联合学习。
(2)MBGCN[5]: 一种基于图神经网络的方法,它综合考虑各种行为类型对用户影响程度,并通过多层信息传播捕捉高阶连接。
(3)EHCF[4]: 一种基于迁移学习的方法,每个行为的预测以迁移方法相关联,捕捉行为之间的复杂关系。
实验通过验证集调整超参数,并根据测试数据评估方法性能。训练使用的负样本是从用户在购买行为下未交互的项目集合中随机采样得到的,负采样率设置为4。最大训练轮次epoch设置为300。采用早停策略来预防过拟合问题,即如果在验证数据上的HR@100在连续40个epoch内没有增加则提前停止。批量大小设置为1 024,嵌入维度设置为64,并且Adam的学习速率为0.001。将丢弃率Dropout设置为0.2,以防止过度拟合。嵌入传播层数设置为1。对于查看、添加购物车和购买行为,系数参数λk在贝贝数据集上分别设置为1/6,5/6和0,在淘宝数据集上分别设置为2/6,4/6和0。温度参数τ和平衡参数ρ分别设置为0.2和0.5。控制协同对比学习L2和正则化约束强度大小的参数ζ和η分别设置为0.05和0.000 1。
为了避免实验偶然误差对实验结果的影响,本文方法所有实验均运行5次,最终用平均值进行量化。
4.3.1 性能对比(问题1)
不同方法在2个数据集上的性能比较结果如表3所示,其中带下划线数字表示基线方法中的最佳性能,粗体数字表示所有方法中的最佳性能。为了评估不同推荐长度TOP-N对性能的影响,将N的值设置为10,50和100。
Table 3 Performance comparison on two datasets
从性能对比中可以得出以下重要观察结果:
(1)多行为推荐方法通常比单行为推荐方法表现得更好。对比多行为推荐方法和单行为推荐方法,可以发现引入额外的辅助行为可以提升在目标行为上的推荐性能。
(2)对比学习可以有效缓解监督信号稀疏的问题。结合表2和表3分析可以发现,与最先进的基线方法EHCF相比,本文提出的DVCL在淘宝数据集上提升尤为明显。然而,淘宝数据集的交互数据比贝贝数据集更加稀疏,这说明跨视图对比学习可以从原始数据本身挖掘监督信号,补充经典推荐监督信号进一步缓解数据稀疏问题,提升推荐性能。
(3)DVCL在2个数据集上始终优于其他基线方法。
此外,本文还进行了单样本配对t检验,以证明与最佳基线相比,所有的改善都具有统计学意义(p值< 0.01)。与最近提出的基于标准学习的最佳基线EHCF方法相比,DVCL在贝贝数据集上的HR@100和NDCG@100分别提高了8.2%和7.9%,在淘宝数据集上分别提高了14.6%和16.5%。这种实质性的改进可归因于2个原因:(1)双视图学习机制捕获局部和高阶结构信息,从2个视图学习到的表示相关但又互补;(2)提出的跨视图对比学习,能从2个视图中明确提取更丰富的监督信号,以补充仅来自交互的监督信号。
4.3.2 模型消融实验(问题2)
为了验证双视图学习、跨视图协同对比学习和差异性约束的有效性,本文设计了如下几个DVCL的变体用于消融实验:
(1)DVCL-I:仅使用交互视图来学习用户/项目嵌入。
(2)DVCL-F:仅使用折叠视图来学习用户/项目嵌入。
(3)DVCL-S:去除了跨视图协同对比学习机制,然后仅使用2个视图上的用户/项目嵌入的简单求和来获得最终嵌入。
4.3.3 数据稀疏问题的有效性分析(问题3)
数据稀疏问题是推荐系统面临的一个关键挑战。相比于整个用户项目交互空间,可观察到的用户项目交互仅仅是一小部分,其中贝贝数据集交互稀疏率为6.4e-3,淘宝数据集交互稀疏率为1.03e-3。因此,本文进一步研究了DVCL如何缓解目标行为记录很少的用户的问题。具体来说,在贝贝数据集和淘宝数据集上分别统计了6 056和11 846个有5~8次购买记录的用户。最后,DVCL与其他基线方法(NMTR、MBGCN和EHCF)的对比实验结果如图2所示。可以发现,DVCL在2个数据集上的HR@100和NDCG@100指标始终优于最好的基线方法EHCF。由于DVCL从不同方面对异构行为关系进行建模,并利用对比学习机制从2个视图中提取有益信息相互补充,因此它可以为稀疏交互的用户实现良好的性能,这说明了对比学习在缓解数据稀疏问题上的巨大潜力。
Figure 2 Performance comparison with sparse data
在2个数据集上的消融实验结果如表4所示。从表4可以得出以下结论:
Table 4 Performance comparison of DVCL variants on two datasets
(1)DVCL-I始终比DVCL-F表现更好。交互视图捕获用户项目直接交互关系,折叠视图捕获高阶关系,这说明用户交互的直接项目邻居传递的信息在建模用户行为偏好中更重要,而用户的折叠用户邻居相比而言更容易带来噪声,影响嵌入学习。因此,本文选择交互视图编码器作为主编码器。
(2)DVCL-S始终比DVCL-I和DVCL-F性能更好。交互视图捕获局部的交互信息,折叠视图捕获高阶关系,这验证了双视图建模的合理性,2个视图能相互补充信息并提高用户/项目的嵌入学习质量,提高推荐性能。
(3)DVCL的性能在DVCL-S的基础上得到了进一步提高,这验证了跨视图协同对比学习机制的有效性。相比于简单地通过求和来进行信息融合,跨视图协同对比学习能更有效地融合互补的局部和高阶信息,并从2个互补视图中提取影响用户偏好的高阶因素来引导用户偏好学习。
4.3.4 传播层数影响(问题4)
本节探究在2个视图编码器上基于图卷积网络的传播层深度l对于整体方法性能的影响,在{1,2,3,4}选择l,实验结果如图3所示。可以发现,对于贝贝数据集和淘宝数据集来说,l=1都达到了最佳性能。当层数变多时,DVCL性能会有一定程度的下降,原因是多层嵌入传播虽然使2个视图能够捕捉高阶协同信号,但这样做在一定程度上破坏了原本独立但又互补的2个视图,引入噪声降低了对比学习性能。
Figure 3 Effect of layer number on method performance
本文研究了通过双视图对比学习增强多行为推荐的问题。具体来说,在2个独立但互补的视图上学习用户/项目表示,然后引入跨视图协同对比学习以从中捕获局部和高阶结构信息,然后利用BPR损失优化参数。在2个基准数据集上进行的大量实验表明,DVCL始终优于先进的推荐方法,其性能在贝贝数据集上平均提升了8%,在淘宝数据集上平均提升了15%。未来,将考虑设计用户行为类型间的对比学习去挖掘用户不同行为类型之间的共性,以进一步揭示用户偏好,并在行为融合过程中考虑用户不同行为类型的交互数来细粒度建模用户不同行为类型重要性。随着在线平台的快速发展和在线用户行为类型的急剧增加,相信多行为推荐在未来会受到越来越多的关注。