前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TKDE2023 | 为推荐系统注入先验知识: 基于近邻增强的对比学习推荐算法

TKDE2023 | 为推荐系统注入先验知识: 基于近邻增强的对比学习推荐算法

作者头像
张小磊
发布2024-04-12 10:24:21
1470
发布2024-04-12 10:24:21
举报

嘿,记得给“机器学习与推荐算法”添加星标


TLDR: 本文针对协同过滤技术固有的数据稀疏问题,提出了两种监督对比损失函数,将锚定节点的近邻信息视为最终目标损失函数内的正样本。通过对所提出的损失函数进行梯度分析,可以发现锚点节点表征的更新将同时受到多个正样本和增强负样本的共同影响。最后通过大量的实验验证了所提出方法的有效性。

引言

推荐模型已广泛应用于许多在线平台,如 Yelp、Gowalla 和亚马逊。推荐模型的主要思想是,具有相似消费历史的用户可能具有相似的偏好,这也是协同过滤(CF)方法的主要思想。CF方法有两种,memory-based的和基于模型的方法。根据近年来的研究趋势,基于模型的CF 方法因其高效的性能而备受关注。然而,CF 模型主要存在数据稀疏性问题。如何通过提高用户和项目表征的有效性来提升 CF 模型的性能是主要的研究方向,因此许多模型被提出来挖掘更多信息以增强用户和项目的表征。例如,有人提出了 SVD++ 模型,利用 ItemKNN 方法获得的物品最近邻来增强基于模型的方法。而 LightGCN 可以利用高阶协作信号来增强用户和物品的表示。

最近,对比学习在计算机视觉领域取得了巨大成功。由于对比学习可以提供额外的自监督信号,一些研究人员尝试将其引入推荐任务,以缓解数据稀疏问题。对比法的主要思想是将表示空间中的任何节点与其他节点区分开来。在本研究工作中,我们从输入的用户和项目集合中随机选择一个节点作为锚节点。通过对模型推导出的锚节点表示法进行分析,以突出当前对比学习法的不足之处。通过使用锚节点的关键特征约束,我们旨在提高推荐模型的性能。一般来说,任何用户和项目都可以被视为锚节点。为清楚起见,并具体说明我们的方法,我们在本文的主要示例中使用项目作为锚节点。在推荐任务中,用户和项目的表征是基于他们的历史交互而学习的。通过扰动锚节点的历史交互记录来生成增强数据是一个自然的想法。在模型训练阶段,锚节点的表示及其增强表示是每个锚节点的正样本。

然后,其他节点的表示被视为负样本。然而,对比学习在推荐任务中显示出有效性,但也带来了新的挑战,可能会使锚定节点与它们的近邻信息产生距离。因此,在对比损失中一些潜在的与用户兴趣相关的邻居可能被视为假负样本,从而削弱了推荐模型的优化。例如,在图1中,对于锚定节点项目i,项目k和用户a分别是其最近和交互邻居。锚定节点及其最近邻居和交互邻居的表示应该彼此接近于超球体内。最近和交互邻居是锚定节点的近邻信息。如果对比损失优化推荐模型,则会导致锚点i远离近邻信息,如图1左侧所示部分。据我们所知,并没有多少研究致力于解决这个问题。在SGL论文(见表II)中, 研究人员直接利用基于排名的损失函数将锚点及其互动邻域拉近。而NCL 的作者研究了如何基于聚类方法找到锚点正样本。

图1. 我们随机选择一个项目i作为锚节点。 节点k是i的最近邻居,通过ItemKNN算法找到,并且节点a是与项目i互动过的用户。

尽管提出了许多策略来解决将监督信号与对比损失相结合这一具有挑战性任务, 但仍然是一个复杂问题. 我们提出一个潜在解决方案: 将锚定节点的协作邻域视为目标损失函数中正样本. 这种方法旨在优化所有节点学习表示空间内各个位置, 使得锚点和正样本节点接近,同时最大程度地增加 与负样本节点的距离。受SupCon 工作启发, 我们设计了两种新颖的监督对比损失函数来解决推荐任务。这些 函数经过精心设计,更加有效地引基座模型的优化。

在实验部分,我们展示了使用我们提出的损失函数训练的选定基座模型 LightGCN 的卓越性能。我们在三个真实世界数据集Yelp2018、Gowalla 和 Amazon-Book上进行了评估。模型在NDCG@20指标上分别比SGL方法优越10.09%、7.09%和35.36%,表现远超过当前最先进的对比学习方法。我们提出模型的贡献可以总结如下:

  1. 我们提出的模型可利用多个锚节点正样本引导锚点表示更新。理论分析表明锚点和多个负样本共同决定不同正样本在模型优化过程中的重要性。
  2. 实验结果表明我们提出的方法在较小温控系数下表现更好。这一观察结果支持了我们提出的通过引入多个正样本可以抵消假负例的负面效果并放大真实负例有效性的观点。
  3. 由于收集到的锚点正例类型较多,且不同类型的正例的质量参差不齐,我们提出一些用于正例建模的方案。并开展实验验证不同方案的差异性。

图2. 提出的邻域增强监督对比损失(NESCL)的整体框架

该框架有四个部分,A) 用于基于用户-物品交互矩阵

\mathbf{R}

计算用户-用户相似度矩阵和物品-物品相似度矩阵。B) 它表示如何获得所有用户和项目的两个表示矩阵

\mathbf{H}^{\prime} \in \mathbb{R}^{(|U|+|\nu|) \times D}

和增强表示

\mathbf{H}^{\prime \prime} \in \mathbb{R}^{(|U|+|v|) \times D}

\mathcal{G}^{\prime}

\mathcal{G}^{\prime\prime}

分别表示两个增强图。C) 对于任何锚节点(以产品i举例),需要根据物品-物品相似度矩阵收集其最近邻居

\mathcal{S}_i

以及根据用户-物品交互矩阵收集其交互邻居。D) 在计算监督协作对比损失函数

\mathcal{L}_{NESCL}^{in}

\mathcal{L}_{NESCL}^{out}

之前,还应从表示矩阵中索引所有用户和项目的表示。由于在这幅图中最近邻居和交互邻居非常清晰,我们在此图中突出显示了锚节点的对比视角正样本。

邻域增强监督对比学习

本文旨在修改传统的对比学习技术,以在推荐任务中纳入不同类型的正样本。我们认为,在构建锚节点i的对比损失时,不仅应将其两个视图的表示视为其正样本,还应将其近邻信息的表示也视为其正样本。我们要解决的挑战是如何建模锚节点的多个正样本。受SupCon启发,该方法也专注于设计监督对比损失函数来建模正样本。我们提出了两种独特的监督对比损失函数:邻域增强监督对比损失(NESCL),分别有“内”版本和“外”版本。这两种损失函数可以参考式(5)和(6)。关于我们提出的两种独特损失函数如何工作的整体框架可参考图2。我们将LightGCN作为基座模型,并采用与SGL相同的数据增强策略。

接下来一节首先介绍计算NESCL 的准备工作。然后,我们将介绍前向计算过程。最后,我们将介绍设计好的NESCL 的详细信息,并分析它如何从理论角度动态权衡不同类型正样本重要性。最后,讨论了我们提出模型及相关模型 SGL 的复杂性问题。

A. NESCL计算准备阶段

本节将介绍如何找到锚节点i的最近邻。我们的工作中使用了两种memory-based的方法,即基于用户和基于物品。在本节中,我们将以基于物品的方法ItemKNN为例,介绍如何计算任意两个物品i和j之间的相似度

sim(i,j)

sim⁡(i,j)=\frac{|R_i^+∩R_j^+ |}{√(|R_i^+ ||R_j^+ | )}

其中

|R_i^+∩R_j^+ |

表示物品i和j共同交互用户数。

|R_i^+ |和|R_j^+ |

分别表示物品i和j的度。由于项目集V非常庞大,在生成推荐时会耗费大量时间,因此对于每个项目i,我们将具有最大

sim(i,j)

值的前K个项目视为i的最近邻,并使用

S_i

来表示节点i的最近邻集合。

B. 模型前置计算过程

在模型的前向过程中,我们将介绍如何实现锚定节点及其正样本的表示。然后,这些获得的表示将用于计算监督协同对比损失函数(

\mathcal{L}_{NESCL}^{in}

\mathcal{L}_{NESCL}^{out}

)。给定dropout输入图

\mathcal{G}

,它会被增强两次以获得两个增强图

G^{'}

G^{''}

,其中一种数据增强策略是Node Dropout、Edge 和丢失率设定为ρ的随机游走。然后基于相同的基座模型 LightGCN,我们可以得到两个表示矩阵,

H^{'}

H^{''}

。然后,对于任何锚节点i,我们索引其最近邻居

S_i

和交互邻居

R_i^+

的表示用于后续计算。接下来,我们将介绍基于索引表示的设计损失函数

\mathcal{L}_{NESCL}^{in}

\mathcal{L}_{NESCL}^{out}

)。

C. NESCL细节介绍

我们提出的损失函数的主要思想是,通过优化监督对比损失函数,学习到的锚点表示不仅应该远离其他负节点,而且还应接近其近邻信息,即最近邻和交互邻居。对于任何锚点i,给定其两个视图的表示

h_i^{'}

h_i^{''}

,最近邻的表示

h_k^{'}

,

k∈S_i

以及交互邻居的表示

h_a^{'}

,

a∈R_i^+

,则可以得到以下两种监督损失函数

\mathcal{L}_{NESCL}^{in}

\mathcal{L}_{NESCL}^{out}

。它们旨在优化基座推荐模型,并将独立工作。我们设计这两种损失函数的动机是探讨不同类型多项式融合方法在基于InfoNCE损失函数下对模型优化的影响。

它们的方程如下:

符号

sim⁡(a,i)

表示节点a和i之间的相似度,具体数值由memory-based方法得到。

S_i

的数量是预先定义为K。我们将在实验部分给出更多关于K以及近邻对模型表现带来的影响。

D.从梯度角度进行分析我们提出的损失函数
  1. 对“in”-Version损失函数
\mathcal{L}_{NESCL}^{in}

的分析:为了更好地研究所提出的对比损失函数,首先,我们使用

\mathcal{L}_{NESCL}^{in}

到以下方程式:

然后,我们从

\mathcal{L}_{NESCL}^{in}

到锚节点i的表示

h_i^{''}

计算梯度。我们可以得到以下方程式:

根据SGL的分析,我们突出了我们提出的损失函数与SGL中损失函数之间的差异。从上述公式可以看出,在邻域增强项的帮助下,锚节点的嵌入

h_i^{''}

由正样本

h_i^{'}

,

h_k^{'}

, 和

h_a^{'}

共同决定。这是我们提出的损失函数能更好地引导基座模型优化的原因之一。

其次,不同正样本的影响力

λ_i^{in}

λ_k^{in}

λ_a^{in}

由锚节点表示

h_i^{''}

和多个负样本

(h_j^{''},j∈N,j≠i)

共同影响决定。这使得不同正样本影响力的计算更加准确。例如,

λ_i^{in}

数值可通过以下方式计算:

  1. 对“Out”版本损失函数
\mathcal{L}_{NESCL}^{out}

的分析:与上一小节中的分析类似,我们采用相同方法来分析损失函数

\mathcal{L}_{NESCL}^{out}

。通过计算

\mathcal{L}_{NESCL}^{out}

对节点i的辅助视图

h_i^{''}

的梯度,我们可以得到:

根据上述公式,我们可以得出与

\mathcal{L}_{NESCL}^{in}

相同的结论。这两种损失函数之间的区别在于不同正样本的计算影响能力。与“in”版本损失函数相比,“out”版本的计算会更复杂。由于

λ_i^{out}

λ_k^{out}

λ_a^{out}

的公式非常复杂,我们在此不展开它们。有关更多细节,请访问arxiv链接并参考附录A.1和A.2部分。我们以

λ_k^{out}

为例。通过将

λ_k^{in}

除以

λ_k^{out}

,我们可以得到:

从该公式中,我们有两个观察结果。首先是,

λ_i^{out}

的值应该小于

λ_i^{in}

。其次,与

λ_i^{in}

相比,

λ_i^{out}

的值不仅受到其对应正样本

h_i^{'}

之间距离的影响,还受到其他正样本

h_k^{'}

h_a^{'}

的影响。我们将在实验部分评估这两种损失函数的性能。

E. 提出模型的总体损失函数

尽管我们提出的监督协作对比损失可以利用训练阶段不同种类正样本的信息,但在进行实验时,我们发现公式(3)中的损失函数

\mathcal{L}_R

也非常有用。我们认为这两种损失函数可以为将锚节点和正样本拉近到表示空间中提供不同类型能力。因此,我们提出模型的整体损失函数如下:

其中

\alpha

是一个超参数,用于平衡两种类型损失函数的重要性。较大的

\alpha

意味着相应损失在训练阶段发挥更重要的作用。

实验分析

表IV所有模型在三个真实数据集上的表现

所有模型的整体表现可参考上表. 从实验结果中,我们得到以下三点观察:

  1. 从实验结果中,我们可以发现基于我们提出的损失函数训练的基座网络在Yelp2018和Gowalla数据集上表现优于所有基准模型,特别是对比学习模型,如SGL、SupCon(in)和SupCon(out)。在Gowalla数据集上,SGL的性能不及LightGCN。这可能是因为对比损失可能破坏了排名损失拉近表示空间中相互作用邻居的能力。与两个版本的SupCon相比,我们提出的损失函数表现更好,这也证明了我们提出的损失函数可以更好地整合不同正样本。在不同数据集上,我们提出的损失函数“in-version”和“out-version”在所有数据集上表现不一致。接下来,在以下实验中选择每个数据集最佳版本的损失函数。
  2. SimpleX和UltraGCN在所有数据集上都优于其他基准模型。SimpleX模型采用新颖对比损失函数来建模训练阶段中正样本与负样本之间关系。根据新对比损失函数,在增加负样本数量时可以显著改善SimpleX性能。至于其他基于潜在因子的模型,如BPR、LightGCN、SGL等都使用(3)中排名损失函数,并将负样本数量设置为1。UltraGCN优于其他基准模型可能是因为它结合了最近邻居信息。
  3. 从表 IV 可以看出,memory-based的模型在所有数据集上的表现都远远好于隐因子模型 BPR。特别是在 Amazon-Book 数据集上,memory-based的经典模型 SLIM 的表现优于其他所有模型。我们认为可能的原因是亚马逊图书数据集的暴露偏差。在亚马逊在线购物网站中,推荐系统更倾向于使用item-based方法为用户提供项目推荐列表。因此,包含近邻的模型会取得很好的性能,如 SLIM、UltraGCN和我们提出的方法。

最后想说的一句话是:虽然memory-based方法已经拥有二十多年的历史了,但是还是非常有效。建议大家可以多留意这个信息。祝各位科研顺利。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与推荐算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 邻域增强监督对比学习
    • A. NESCL计算准备阶段
      • B. 模型前置计算过程
        • C. NESCL细节介绍
          • D.从梯度角度进行分析我们提出的损失函数
            • E. 提出模型的总体损失函数
            • 实验分析
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档