对白

V1

2022/07/16阅读:13主题:默认主题

从22顶会看对比学习在推荐的应用

推荐系统重在挖掘用户偏好,无论是针对数据稀疏、噪声问题或是增强其他效果,对比学习无疑是锦上添花。观察22年的推荐顶会的相关论文,我们可以观察到对比学习出现的频率明显增高,并且各种改进也层出不穷,具有多样化发展的趋势,包括但不限于

  • 图数据增强方式的改进(NodeDrop、EdgeDrop、随机游走、引入辅助信息的drop);
  • 基于多视图的对比学习(例如在图的结构视图、语义视图、解耦子图间进行对比学习,可以应用到社交网络,知识图谱、bundle推荐、跨域推荐等方向);
  • 利用节点关系进行对比任务(利用节点与邻居节点的关系作为样本选取准则、可以考虑GNN节点在不同层的输出表示间的关系、超图);
  • 其他角度的对比学习任务(例如,对embedding添加噪声)。

本文从22年的顶会上选取了5篇采用对比学习的推荐相关论文与大家分享~

一、NCL

论文标题:Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

论文来源:WWW’22

论文链接: https://doi.org/10.1145/3485447.3512104

代码链接:https://github.com/RUCAIBox/NCL

1 NCL核心思想

利用用户交互历史信息构建的二部图,节点关系可以分为四种:1. 相似用户;2. 相似物品;3. 用户-物品交互关系;4. 具有相似语义关系(例如用户意图等)。大多数推荐任务围绕用户-物品交互关系展开,而对同质节点之间的结构关系考虑较少,对语义关系考虑的次数则更少。NCL创新点则在于利用推荐系统中节点的潜在关系设计对比学习任务(包括结构关系与语义关系)。

在这里我们重点阐释如何去构建这两种对比学习任务,完整具体的算法细节还请大家观看原文~

2 算法细节

节点级的对比学习任务针对于每个节点进行两两学习,这对于大量邻居来说是极其耗时的,考虑效率问题,文章学习了每种邻居的单一代表性embedding,这样一个节点的对比学习就可以通过两个代表性embedding(结构、语义)来完成。

构建基于节点结构关系的对比学习任务:将每个用户(物品)与它的结构邻居进行对比。

由于GNN的第 层输出包含了 -hop邻居的聚合信息,而基于交互二部图的GNN模型的信息在图上经过偶数次传播,则可以聚合同质节点的邻居信息。

因此,为了避免构建其他图,我们直接利用GNN的第 层输出作为一个节点的 -hop邻居的表示,将节点自身的embedding和偶数层GNN的相应输出的embedding视为正样本对

构建基于节点语义关系的对比学习任务:将每个用户(物品)与它具有相似语义关系的节点进行对比。这里具有语义关系指的是,图上不可到达,但具有相似物品特征、用户偏好等的节点。

怎么识别具有相同语义的节点呢?我们认为相似的节点倾向于落在临近的embedding空间中,而我们的目标就是寻找代表一组语义邻居的中心(原型)。因此,我们对节点embedding应用聚类算法去获取用户或物品的原型

由于这个过程不可以端到端优化,我们用EM算法学习提出的语义原型对比任务。形式上,GNN模型的目标是最大化对数似然函数:

其中, 是用户 的潜在原型。采用基于InfoNCE来最小化以下函数:

优化

总体损失函数为:

其中,由于 不可以端到端优化,采用EM算法。利用Jensen不等式得到上述最大化对数似然函数的下界(LB):

表示观察到 时,潜在变量 的分布。

E步:采用 -means进行聚类得到不同节点embedding对应的聚类中心。若 属于聚类 ,则 ,反之为0。

M步:得到聚类中心,目标函数重写为:

假设用户在所有聚类上的分布是各向同性高斯分布。因此,函数可以写成:

完整算法:

3 实验结果

论文的实验结果可以说是很震撼一张大表······但结果属实不错,在五个数据集上的结果证明NCL的有效性,尤其是在Yelp和Amazon book数据集上,与其他模型相比,性能分别提高了26%和17%。

二、ICL

论文标题:Intent Contrastive Learning for Sequential Recommendation

论文来源:WWW’22

论文链接:https://doi.org/10.1145/3485447.3512090

代码链接: https://github.com/salesforce/ICLRec

1 ICL核心思想

很有趣的一点,这篇文章所提模型简称ICL和上篇NCL很像啊······

以下图作引,我们直观理解这篇文章的思想。Figure 1中展现了两个用户的购物序列,尽管没有出现一样相同的商品,但是他们最后却购买了同样的物品。原因很简单,因为他俩同为钓鱼爱好者,购买意图冥冥中含有不可言说的关系。

正是因此,我们必须重视不同用户购买序列之间的潜在意图关系。文章提出的一个良好的解决方案是,我们从未标记的用户行为序列中学习用户的意图分布函数,并使用对比学习优化SR模型。具体来说,我们引入一个潜在变量来表示用户的意图,并通过聚类学习潜在变量的分布函数。

2 算法细节

这篇文章的重要价值之一:模型图画的很漂亮,深得我心。从图中可以看出,模型采用EM算法进行优化,在E步中进行聚类,在M步进行损失函数的计算和参数更新。

重在体会思想,详细步骤解释请参照原文。

假设有 个用户潜在意图 ,则目标公式可以改写为:

由于上述公式优化复杂,根据EM思想,构造下界函数,并使下界最大化:

根据Jensen不等式,得到

简单起见,在优化下界时,我们只关注最后一个位置步骤,下界定义为:

其中

为了**学习意图分布 **,利用编码器将序列得到表示 ,并在学习到的表示上进行 -means聚类,从而得到

得到意图分布 ,下一步需要**求得 **。假设意图满足均匀分布,且给定意图 时, 的条件分布和 标准化的高斯分布同向,则可把 改写为:

求得下界最大化即相当于最小化以下损失函数:

可以发现,上式最大化了一个单独序列与其相应意图之间的互信息。我们为每个序列通过增强构建用于对比学习的正样本,然后优化以下损失函数:

其中, 为一个batch中的所有意图,而同一个batch中的用户可能有相同的意图,故为了减轻假阴性的影响,将上式改为:

最终,模型损失函数为:

完整算法:

3 实验结果

可以看出,ICLRec在所有数据集上始终优于现有方法。与最佳baseline相比,HR和NDCG的平均改善率在7.47%到33.33%之间。

三、RGCL

论文标题:A Review-aware Graph Contrastive Learning Framework for Recommendation

论文来源:SIGIR’22

论文链接:https://doi.org/10.1145/3477495.3531927

1 RGCL核心思想

这篇论文的创新点是引入了用户评分和评论作为辅助信息,为了将二者更好地融入图结构中,RGCL以交互评论作为图的边信息,并以此为基础设计了两个分别基于节点增强和边增强的对比学习任务。

2 算法细节

模型图可以说画的是通俗易懂,我们对照图来依次看一下每个模块~

具有特征边的图构建:从Figure 2中的图构建部分我们可以看到,用户物品交互评分矩阵 与评论 组成用户物品交互 ,而基于评论的推荐数据表示为具有特征边的二部图

评论感知图学习:利用评分区分边的类型,评论的表示 需要由BERT-Whitening生成。这里介绍如何利用基于特征边的图学习节点表示。

  1. 评论感知信息传递公式为:
  1. 消息聚合:
  1. 得到用户和物品最终表示:

交互建模:区别于一般推荐采用的内积预测方式,论文采用MLP学习用户物品的交互特征,并根据得到的交互特征预测评分(此处的预测评分在对比学习部分会用到):

两种对比学习任务:增强节点embedding学习和增强交互建模。

基于节点的数据增强采用的是node drop,指定概率随机丢弃物品节点和相应的评论特征:

损失为:

增强交互建模,利用交互建模得到的交互特征 作为anchor example。选择相对应的交互评论 作为正样本,而从整个训练集中随机得到的一个评论 作为负样本,ED的目标是将 靠近,而与 远离。优化目标公式为:

优化:由于RGCL侧重于预测用户对物品的评分,因此采用均方误差(MSE)作为优化目标:

3 实验结果

四、MCCLK

论文标题:Multi-level Cross-view Contrastive Learning for Knowledge-aware Recommender System

论文来源:SIGIR’22

论文链接:https://arxiv.org/abs/2204.08807

代码链接:https://github.com/CCIIPLab/MCCLK.

1 MCCLK核心思想

传统的对比学习方法多通过统一的数据增强方式生成两个不同的视图,本文别出心裁,从知识图不同视图的角度去应用对比学习,提出了一种多层次跨视图对比学习机制

结合了KGR的特点,论文考虑了三种不同的图视图,包括全局结构视图、局部协同视图和语义视图,视图的理解参见下图~

值得一说的是,针对在语义视图,文章提出物品-物品语义图构建模块去获取以往工作中经常忽略的重要物品-物品语义关系。

2 算法细节

从模型图中可以看出,MCCLK包括三个主要部分视图生成、局部对比学习和全局对比学习。

多视图生成:前面我们说道一共需要构建三个视图,这里详细解释一下三个视图究竟是什么。其中全局结构视图为原始的用户-物品-实体图,协同视图与语义视图分别为用户-物品-实体图生成的用户-物品图物品-实体图。由于全局结构视图与协同视图很常见,所以重点在构建语义视图。

为了考虑物品-物品语义关系,构建带有关系感知聚合机制的 阶邻居物品-物品语义图 ,可同时保留相邻实体和关系信息。其中 表示物品 之间的语义相似度, 表示两个物品之间没有联系。

从知识图 递归学习 次物品表示,提出的关系感知聚合机制为: