RecDCL论文阅读笔记
RecDCL: Dual Contrastive Learning for Recommendation论文阅读笔记
Abstract
提出问题:
现有的基于cl的方法大多集中于批处理的对比,没有利用特征维度中潜在的规律性。这导致了在用户和项目的表示学习过程中的冗余解决方案。
解决方法:
在这项工作中,我们研究了如何同时使用批处理CL(BCL)和特性处理CL(FCL)作为推荐。我们从理论上分析了BCL和FCL之间的关系,发现BCL和FCL的结合有助于消除冗余解,但永远不会错过最优解。我们提出了一个双对比学习推荐框架-RecDCL。在RecDCL中,FCL目标旨在消除用户-项目正对上的冗余解,并使用多项式核优化用户和项目内的均匀分布,从而使表征能够有正交性;BCL目标用于在输出向量上生成对比嵌入,以增强表示的鲁棒性。
Introduction
一般来说,基于cl的协同过滤方法侧重于批处理目标函数。批处理目标的目标是最大限度地提高正对(对角线)之间嵌入的相似性,同时最小化负对之间嵌入的相似性(非对角线)。一种典型的基于批处理的CF方法应用BPR损失预测用户的偏好在多个交互网络平台,如图神经网络(gnn)的模型和基于自监督学习(SSL)的模型。特别是,这些方法通常同时需要用户-项目交互对和由负抽样产生的负对等物。然而,由于负抽样方案可能会错误地将“正但未观察到的”对视为负对,因此这些方法的性能存在严重的限制。此外,一些最近的批处理CL(BCL)推荐方法指出,Web推荐系统在不需要负抽样的情况下可以获得更稳健的改进。然而,这些BCL方法可能会导致简单的常数解决方案,因为它们不能利用来自Web平台的用户和项目的嵌入信息,如图1所示。FCL就是基于特征的对比学习
为了解决这个问题,我们研究了不同领域的基于cl的方法,并在表1中总结了它们的关键差异。CL的目标函数通常分为两类:分组目标和特征目标。在特征目标方面,现有的工作在计算机视觉(CV)领域引起了充分的关注。特别是,特征级CL方法,已经致力于研究嵌入向量的重要性,并提出新的特征级目标函数。这些方法通过在特征维度上将组件去关联来最大限度地提高嵌入的可变性,这可以避免崩溃并产生期望的性能。然而,如图1所示,这些FCL方法忽略了在批处理目标中提供的重要信息,并导致了正交分布。有鉴于此,就有一个有意义的问题出现了: 在自监督推荐中,批次性 CL 和特征性 CL 之间是否存在有效的优化目标?关于这一点,CL4CTR 提出了特征对齐和字段均匀性,并屏蔽了特征和维度信息,以解决 CTR 预测中特征频率的 "长尾 "分布问题。然而,以往的研究只探讨了 BCL 和 FCL 之间的联系,缺乏将它们联系起来的本机解释,也很少有人去了解将它们结合起来的效果。
为了回答上述问题,我们研究了批处理CL和特征处理CL之间的目标的原生联系(图1和观察3.1),并从理论和实验的角度提出了一个通过使用它们(观察3.2)来显示合作利益的视角。基于这些分析,我们提出了一种双CL方法,称为RecDCL。RecDCL联合了自监督建议的特性级目标和批处理级目标。一方面,RecDCL通过消除用户和项目之间的冗余来优化特性级的CL目标(FCL)。特别是,FCL通过测量一个互相关矩阵来捕获用户-项目正对的分布,并通过一个多项式核来优化用户(项目)的分布。另一方面,作为一个批处理维度,我们设计了基本的BCL和高级的BCL来增强表示的鲁棒性,后者将历史嵌入与当前嵌入相结合,通过在线和目标网络生成对比视图。大量的实验验证了RecDCL的性能优于最先进的基于gnn和基于ssl的模型(在Beauty上高达5.34%),显示了联合优化特性和批处理目标的有效性。
本文的主要贡献如下:
- 我们从理论上揭示了特征级CL和批处理级CL之间目标的原生联系,并从理论和实验的角度使用它们,证明了它们的合作效益。
- 基于上述分析,我们提出了一种名为RecDCL的双CL方法,并以特征级级别和分组级别的方式实现联合训练目标来学习信息表示。
理解BCL和FCL
我们揭示了两个CL原理之间的原生联系,并发现结合BCL和FCL直观地形成了一个更好的正则化,可以受益于高嵌入维数。
我们的解释
本部分旨在探讨两个问题:BCL和FCL之间的关系是什么。以及为什么将它们结合起来会有效。
从直观上看,BCL 和 FCL 具有相同的机制,即拉近正数对,同时推远负数对。两者的区别在于构成配对的对象不同。BCL 所考虑的对象是样本,而 FCL 所考虑的对象是特征。在优化模型时,这种差异似乎赋予了这两个 CL 目标不同的效果。有趣的是,在某些条件下,它们会引导模型向相似的方向优化。通过 A.1 中提供的理论分析,我们得出以下结论。
观察3.1: 如果对这两个嵌入矩阵进行标准化处理(即它们的均值为零,标准差为一),那么 BCL 和 FCL 的目标就可以近似地相互转化
观察结果 3.1 表明,BCL 和 FCL 之间存在着内在联系。一个后续问题是,是否有必要同时使用它们?下面我们将从一个角度来部分回答这个问题。我们的观点的关键在于考虑负对在这两个目标中的作用。就 BCL 而言,我们已经知道,将负配对推远实际上近似于鼓励样本在嵌入空间中均匀分布,这与正配对约束一起隐性地扩大了分类余量。对于FCL,在特征级空间中推开负对的原因可能并不明显。虽然信息论已经做出了一些解释,但一个更直观的解释可以帮助理解这种正则化如何有助于最终的嵌入。因此,我们提供了一个说明性的例子来解释图1中BCL、FCL和BCL+FCL的影响,主要观察结果见观察3.2。
观察3.2: 对于归一化样本嵌入,BCL 和 FCL 将负对推开对嵌入学习的影响不同。对于 BCL,它鼓励样本在嵌入空间中均匀分布。而对于 FCL,它倾向于使样本的表示正交。这种差异主要是因为 BCL 鼓励负对的内积(在批次维度上)越小越好;而 FCL 只强制要求负对的内积(在特征维度上)接近于零,这就暗中鼓励样本的表示(在批次维度上)是正交的。 如果我们将 BCL 和 FCL 结合起来,将负对推开不仅会促使样本表征在嵌入空间中均匀分布,还有助于消除冗余解 。随着嵌入维度的增加,这种规律性有利于嵌入学习。
推荐的直觉
为了验证第3.2节中的规律性的有效性,我们进行了一项消融研究,看看BCL和FCL的结合是否能产生更理想的嵌入分布。具体来说,我们比较了在Yelp数据集上的FCL、BCL和BCL+FCL之间的嵌入的平均熵。设x表示一个样本的嵌入。我们通过两种方法选择x的top-𝐾(1024和2048)绝对值,并将它们归一化为k维概率分布。第一个方法是,我们对每个样本以降序的方式对嵌入值进行排序,并得到top-𝐾值,称为each-sample。第二,我们是计算所有样本的每个维度的平均值,对值进行排序,获得top-𝐾指数,并提取每个样本的top-𝐾值,称为mean-sample。基于上述步骤,我们可以计算出每个样本的熵,并在所有样本中进行平均。结果如表2和表3所示(平均熵值越低,嵌入分布越清晰)。
我们可以观察到BCL+FCL的平均熵最小,这表明BCL+FCL的嵌入分布更清晰。请注意,观察3.1和观察3.2之间没有出现矛盾。前者通过一些理论近似和假设揭示了BCL和FCL之间的联系,而后者指出,在BCL和FCL中推开负对可以有互补的好处。这些结果提供了对双CL设计的见解,这激励了我们的RecDCL
Method
基于第3节中的分析,我们开发了一个双CL推荐框架,称为RecDCL。RecDCL的主要特点是两个推荐拟合的CL目标:一个是RecFCL目标(4.1节)用于驱动表示为正交,另一个是Rec-BCL目标(4.2节)用于增强表示的鲁棒性。
在本节中,我们使用E𝑈∈R𝐵×𝐹(E𝐼∈R𝐵×𝐹)表示用户(项)嵌入矩阵。𝐵代表一批样本的数量,𝐹表示嵌入维度。
模型的整体结构如下:
FCL推荐目标
消除用户和项目之间的冗余(between users and items)
为了以FCL的方式探索对齐,我们建议扩展Barlow Twins的目标函数,即UIBT,用于自我监督的建议。更具体地说,我们建立了一个由用户和项目嵌入计算出来的互相关矩阵,并通过不变性项和方差项使其接近于单位矩阵,如图2所示。在形式上,可以计算出E𝑈和E𝐼之间的互相关矩阵C。C是一个与编码器输出尺寸相同的方阵。注意,我们用因子1/𝐹定义不变性项和冗余缩减项,将标准缩放为维数的函数:
\(\mathcal{L}_{UIBT}=\frac{1}{F}\underbrace{\sum_{m}(1-\mathbf{C}_{mm})^{2}}_{\text{invariance}}+\frac{\gamma}{F}\underbrace{\sum_{m}\sum_{m\neq n}\mathbf{C}_{mn}^{2}}_{\text{redundancy reduction}}.\)
在上面的等式,不变性项的目的是使矩阵C的对角元素等于1,并满足对扭曲样本的向量不变性。此外,冗余减少项的目的是使矩阵C的非对角元素等于0,并减少输出表示中的冗余。
消除用户和项目中的冗余(within users and items)
此外,为了进一步增强不同特征之间的嵌入多样性,我们提出了一种基于多项式核的特征均匀性优化方法,即UUII。多项式核是在超球面上呈现样本的自然特征方法。考虑到用户与项目之间可能的分布差距,我们分别计算用户嵌入和项目嵌入的一致性。联合目标可以表述为
\(\mathcal{L}_{UUII}=\frac12\log\sum_{m\neq n}(a(\mathbf{E}_U^{:,m})^\top\mathbf{E}_U^{:,n}+c)^e+\frac12\log\sum_{m\neq n}(a(\mathbf{E}_I^{:,m})^\top\mathbf{E}_I^{:,n}+c)^e,\)
其中,𝑎、𝑐和𝑒为多项式核的参数,默认分别设置为1、1𝑒−7和4。请注意,由于批内实例仅通过批内样本的表示来计算,因此与实际用户和项目的数据分布更加一致。因此,用户/项目的分布将是统一的,如图2所示。此外,可以通过纳入用户/项目分布来减少暴露偏差。
BCL推荐目标
事实上,拟议的 BCL 目标和拟议的 FCL 目标(UIBT 和 UUII)都是为推荐而设计和评估的。
基本BCL
为了验证通用性,我们提出了一个单独结合基本BCL(DirectAU)和FCL(仅非对角元素)方法的基线。我们直接设计了一个名为DCL的求和损失函数,并在四个公共数据集上进行了实验。总和损失函数描述为:
\(\mathcal{L}_{DCL}=\mathcal{L}_{DirectAU}+\lambda\mathcal{L}_{FCL}.\)
进阶BCL
如第3.2节所述,结合FCL和BCL这两个维度可以直观地有利于模型学习。它激励我们通过一个BCL目标来进一步改进优化。一般来说,数据增强可以通过在计算机视觉和神经语言处理等许多场景中的一系列有意义的扰动来实现。然而,CF中的正用户-项目对需要保留以保持表示不变性,并且很难为数据增强而扭曲。为了避免这个问题并达到同样的效果,如图2所示,我们对输出表示进行了数据增强,并生成了针对表示学习的对比但相关的视图,即BCL。由于LightGCN设计简单、操作有效,我们将其作为图编码器𝑓𝜃来进行节点的聚合和传播。在生成每一层的嵌入和堆叠多层表示后,我们使用历史嵌入对输出嵌入进行增强。
对于目标函数,一个简单的选择将是直接应用在等式中引入的原始InfoNCE.最近的一项工作表明,InfoNCE可以在一个更一般的框架下被理解。它提供了一个将InfoNCE与另一种流行的SSL方法SimSiam统一起来的视角,该方法通过停止梯度和非对称技巧隐式地执行CL。我们通过经验发现,这种隐式CL设计取得了更好的性能,并选择它作为我们的实现。
假设E𝑈(E𝐼)是由编码器𝑓𝜃生成的当前嵌入,而\(\mathbf{E}_U^{(h)}(\mathbf{E}_I^{(h)})\)是历史嵌入。扰动表示\(\hat{E_U}\)是通过结合\(\mathbf{E}_U^{(h)}\)和\(\mathbf{E}_U\)来计算的:
\(\hat{\mathbf{E}}_U=\tau\mathbf{E}_U^{(h)}+(1-\tau)\mathbf{E}_U,\quad\hat{\mathbf{E}}_I=\tau\mathbf{E}_I^{(h)}+(1-\tau)\mathbf{E}_I,\)
其中,𝜏是一个超参数,它控制了先前训练迭代的嵌入信息保存率。请注意,我们对目标网络中先前训练迭代的历史嵌入进行表示失真,而不是像以前基于cl的推荐方法中使用的那样直接干扰通常的或当前节点嵌入。
(怎么感觉完全就是缝了SelfCF那篇的东西进去,History Embedding都缝了,还有后面的损失函数)
此外,在线网络和目标网络在该组件中共享相同的图编码器𝑓𝜃,这可以减少额外的内存和计算成本。因此,批量输出增强的优化可以表述如下:
\(\mathcal{L}_{BCL}=\frac12S(h(\mathbf{E}_U),sg(\mathbf{\hat{E}}_I))+\frac12S(sg(\mathbf{\hat{E}}_U),h(\mathbf{E}_I)),\)
其中ℎ(·)为多层感知器网络;𝑠𝑔(·)为停止梯度操作;𝑆(·,·)为余弦距离。
训练目标
总之,RecDCL的主要目标是设计一个FCL目标和一个先进的BCL目标来捕获嵌入的重要性,并最大化双CL的好处,以鼓励嵌入学习,如图2所示。在实践中,我们通过权衡超参数𝛼和𝛽共同对这三个目标进行优化如下:
\(\mathcal{L}=\mathcal{L}_{UIBT}+\alpha\mathcal{L}_{UUII}+\beta\mathcal{L}_{BCL}.\)
最后,我们通过使用用户和项目表示之间的内积来计算排名得分函数。