首页 > 其他分享 >GDCL论文阅读笔记

GDCL论文阅读笔记

时间:2024-05-17 11:07:40浏览次数:25  
标签:mathbf 论文 用户 笔记 widehat GDCL mathcal 扩散 节点

Diffusion-Based Graph Contrastive Learning for Recommendation with Implicit Feedback论文阅读笔记

Abstract

提出问题:

​ 自监督学习模型大多采用随机辍学来构造附加的图视图,没有区分边的重要性。这些方法在捕获用户-项目交互图的结构属性方面的不足,导致了推荐性能的次优。

解决方案:

​ .在本文中,我们提出了一个图扩散对比学习(GDCL)框架来推荐来缩小这一差距。具体来说,我们在用户-项目交互图上执行图扩散。然后,通过学习每种关系的专用表示,对扩散图进行编码,以保持其异质性。利用对称对比学习目标,将扩散图的局部节点表示与用户项目交互图的局部节点表示进行对比,以更好地学习用户和项目表示。

Introduction

​ 为了建立一个更有效的用户-项目交互图的增强视图,我们提出用图扩散代替随机dropout,通过平滑图上的邻域来协调空间信息的传递。扩散过程定义了一个从原始的未加权图中交换出来的加权图。这些权重是基于图的结构来衡量边的相对重要性的。因此,我们可以利用这些重要性分数来设计不同的稀疏化方法,从而为扩散图中的每个节点保留一个更有效的邻域。同时,大多数GNN模型通过增加卷积层的数量来整合高阶信息。迭代扩展不仅包含更多节点以学习更好的表征,还会引入更多噪声边,从而降低推荐性能。图扩散则没有这种限制,因为它可以将图中的连接从一跳扩展到多跳。我们通过一层聚合而不是堆叠多层 GNN 来获取更大邻域的信息。因此,真实图中的噪声问题可以得到进一步缓解。

​ 在本文中,我们提出了一个简单而有效的图形扩散对比学习(GDCL)框架的项目推荐与用户的内隐反馈。现有的图扩散算法侧重于齐次图,其中包括单个节点类型。在GDCL中,我们首先设计了扩散算法来考虑异构图(即用户-项目交互图)中不同类型的节点。所导出的扩散图由节点之间的多种关系组成。具体地说,除了用户-项关系之外,还介绍了用户-用户关系和项-项关系。如果我们简单地应用基于图卷积网络(GCN)的编码器来像以前那样统一地处理它们,那么这些异构关系就不能被完全捕获。

​ 因此,我们扩展了GCN,通过为每种类型的关系保持一个专用的表示法来建模扩散图的异质性,然后使用一个平均聚合器来融合它们。为了端到端训练整体模型,我们利用多任务训练范式来联合优化推荐任务和自监督学习任务。对于推荐任务,以前基于ssl的推荐模型仅依赖于用户-项目图进行用户偏好预测。与这些工作不同的是,我们利用从辅助视图(即扩散图)中学习到的表示和用户-项目图来改善用户和项目的表示学习。对于自监督任务,我们对比了由对称互信息最大化目标函数从两个视图编码的节点表示。

Method

​ 本文的模型结构如下:

pknj3D0.png

​ 它由三个主要组成部分组成:1)基于扩散的图增强,2)图编码器,和3)自监督对比学习。接下来,我们将介绍每个组件的详细信息

基于扩散的图增强

图扩散近似

​ 对于齐次图,其扩散矩阵可以表示为

\(\Pi=\sum_{k=0}^\infty\theta_k\mathbf{T}^k,\)

​ 其中,T为广义转移矩阵,可由对称归一化邻接矩阵定义为\(\mathbf{T}=\mathbf{D}^{-1/2}\mathbf{AD}^{1/2}\),θk为Tk的加权系数。当考虑到两种特殊情况时,\(\Pi\)有封闭形式的解决方案,即个性化的页面排名(PPR)和热内核。然而,这两个解涉及到矩阵逆运算和矩阵指数运算,这在处理大规模图的计算上是不可行的。

​ 我们采用一种有效的算法来近似扩散矩阵\(\Pi\)。具体来说,我们选择以下个性化PageRank来实例化\(\Pi\):

\(\Pi_{PPR}=\alpha(\mathbf{I}_n-(1-\alpha)\mathbf{D}^{-1}\mathbf{A})^{-1}\)

​ 其中\(I_n\)为单位矩阵,α为随机游走中的传送概率。较大的传送概率意味着返回根节点的机会更高,因此我们可以保留更多的局部性信息。一个较小的传送概率使我们能够接触到一个更大的社区。我们可以调优α来为不同的数据集调整邻域的大小。在[2]中,使用推流算法来获得每一行\(\Pi_{PPR}\)的稀疏近似。注意,这个近似矩阵的每一行都可以使用分布式批处理数据处理管道并行预计算。然而,该算法是为同构图设计的,其中所有节点都是相同类型的。我们将其应用于包含两种不同类型的节点的用户-项目交互图G。精确地说,我们分别为用户节点和项目节点定义了传送概率\(\alpha_u\)和\(\alpha_v\)。对于近似图扩散矩阵\(\Pi_{PPR}\)中的第i行πi,我们首先确定节点类型,然后使用其相应的传送概率进行计算。因此,我们可以控制为不同类型的节点扩散到邻域的信息量。它对推荐系统具有实际应用价值。例如,真实世界的数据集通常比长尾用户有更多的长尾项目。在这种情况下,降低项目的传送概率可以帮助找到更多可能的相关的用户和项目,从而学习更好的表示。在算法1中总结了扩散矩阵近似算法的细节。

​ 算法的流程如下:

pknjIqP.png

扩散矩阵稀疏化

​ 扩散矩阵\(\Pi_{PPR}\)是一个密集矩阵,其中每个元素反映了基于图结构的两个节点之间的相关性。如[1]所述,个性化PageRank向量的权重通常集中在节点的一个小子集上。因此,我们可以截断小的权值,但仍然可以得到一个很好的近似值。在这项工作中,我们提出了以下三种方法来稀疏扩散矩阵:

  • Topk:对于\(\Pi_{PPR}\)中的每一行πi,我们分别保留了k个来自用户节点和项目节点的权重最高的条目,并将其他条目设置为零。即,我们将为扩散图中的每个节点保留2k个“邻居”。
  • Topk-rand:我们首先在每行πi中选择k个权值最高的k个用户节点,遵循Topk方法。 然后,我们随机放弃选定的节点,放弃率为 ρ(可调整的超参数)。
  • Topk-prob:这个方法类似于Topk-rand方法。唯一的区别是,在这种方法中,丢弃所选节点的概率与其在权值向量πi中的权重成正比。

​ 由于Topk稀疏化方法是确定性的,我们用固定的稀疏化扩散矩阵来训练GDCL模型。另外两种稀疏化方法和方法是随机的。当使用Topk-rand和Topk-prob方法来训练所提出的模型时,我们在每个训练历元进行扩散矩阵稀疏化。我们用\(\tilde{\mathcal{G}}\)表示稀疏扩散图

图编码器

​ 针对原始交互图和扩散图,我们设计了两种不同的图编码器来捕获两个图中的信息。首先,我们分别通过\(\mathbf{e}_u^{(0)}\text{ and }\mathbf{e}_v^{(0)}\)随机初始化一个用户u和一个项v的嵌入,它们由两个图编码器共享。

交互图的图编码器

​ 这里使用的是LightGCN作为图编码器

扩散图的图编码器

​ 第 3.1 节中构建的扩散图 \(\tilde{\mathcal{G}}\) 是由用户-物品互动图衍生而来的。其中包括两类节点。因此,\(\tilde{\mathcal{G}}\) 中建立了三类关系,包括用户-物品关系、用户-用户关系和物品-物品关系。为了有效捕捉 \(\tilde{\mathcal{G}}\) 的异构结构,我们提出了一种图扩散编码器,对这三种关系分别建模,并为每种关系保留一个专用表示。如图 2 所示,在 \(\tilde{\mathcal{G}}\) 中,每个节点的相邻节点既可以是用户,也可以是项目。我们根据节点类型将它们分成两组,并在每组中进行特征聚合。因此,每个用户(或项目)都会生成两个表征。一个是从用户-物品关系中衍生出来的,另一个是从用户-用户(或物品-物品)关系中衍生出来的。

pknxn6s.png

​ 传统的消息传递神经网络,如GCN,在每一层都聚集了它们的第一个邻居。高阶邻居只能通过层到层的传播来访问。图扩散过程通过创建到多跳节点的连接来打破这一约束,因此可以在更大的邻域上进行聚合,而不堆叠多个GNN层。具体来说,用户嵌入的推导如下:

​ \(\widehat{\mathbf{e}}_{u1}=\sum_{u^{\prime}\in\mathcal{N}_u^{(1)}}\pi_u(u^{\prime})\mathbf{e}_{u^{\prime}}^{(0)},\quad\widehat{\mathbf{e}}_{u2}=\sum_{v\in\mathcal{N}_u^{(2)}}\pi_u(v)\mathbf{e}_v^{(0)},\)

​ 其中,\(\widehat{\mathbf{e}}_{u1}\mathrm{~and~}\widehat{\mathbf{e}}_{u2}\)是从用户-用户扩散图和用户-项目扩散图中得到的u的嵌入,\(\mathcal{N}_u^{(1)}\text{ and }\mathcal{N}_u^{(2)}\)表示用户u在用户-用户扩散图和用户-项目扩散图上的第一跳节点集。πu表示u的扩散向量,πu (v)表示扩散向量πu中的节点v的权值。然后,我们通过均值操作将这两个嵌入相结合:

​ \(\widehat{\mathbf{e}}_u=\text{MEAN}(\widehat{\mathbf{e}}_{u1},\widehat{\mathbf{e}}_{u2}),\)

​ 其中,用户-用户扩散图和用户-物品扩散图中的用户嵌入平均值就是最终从扩散图中学习到的用户表示 eu。同样,我们也可以从扩散图中得到物品 v 的表示 ev。

自监督学习

​ 也就是用扩散图跟原始图进行对比

​ 使用互信息来定义对比学习的损失

​ \(\ell(\widetilde{\mathbf{e}}_u,\widehat{\mathbf{e}}_u)=\log(\frac{e^{cos(\widetilde{\mathbf{e}}_u,\widehat{\mathbf{e}}_u)/\tau}}{e^{cos(\widetilde{\mathbf{e}}_u,\widehat{\mathbf{e}}_u)/\tau}+\sum_{u^{\prime}\neq u}e^{cos(\widetilde{\mathbf{e}}_u,\widehat{\mathbf{e}}_u^{\prime})/\tau}+\sum_{u^{\prime}\neq u}e^{cos(\widetilde{\mathbf{e}}_u,\widetilde{\mathbf{e}}_u^{\prime})/\tau}}),\)

​ \(L_{ssl}^{user}=-\frac1{2|\mathcal{U}_\mathcal{B}|}\sum_{u\in\mathcal{U}_\mathcal{B}}[\ell(\widetilde{\mathbf{e}}_u,\widehat{\mathbf{e}}_u)+\ell(\widehat{\mathbf{e}}_u,\widetilde{\mathbf{e}}_u)].\)

​ \(L_{ssl}^{item}=-\frac1{2|\mathcal{V}_{\mathcal{B}}|}\sum_{v\in\mathcal{V}_{\mathcal{B}}}[\ell(\widetilde{\mathbf{e}}_v,\widehat{\mathbf{e}}_v)+\ell(\widehat{\mathbf{e}}_v,\widetilde{\mathbf{e}}_v)].\)

联合学习

\(\mathbf{e}_u=\widetilde{\mathbf{e}}_u+\widehat{\mathbf{e}}_u,\quad\mathbf{e}_v=\widetilde{\mathbf{e}}_v+\widehat{\mathbf{e}}_v,\)

\(\hat{y}_{uv}=\mathbf{e}_u^\top\mathbf{e}_v.\)

\(L_{rec}=\sum_{(u,v,w)\in\mathcal{D}_{\mathcal{B}}}-\log\sigma(\hat{y}_{uv}-\hat{y}_{uw}),\)

\(L=L_{rec}+\lambda_1(L_{ssl}^{user}+L_{ssl}^{item})+\lambda_2\|\Theta\|_2^2,\)

标签:mathbf,论文,用户,笔记,widehat,GDCL,mathcal,扩散,节点
From: https://www.cnblogs.com/anewpro-techshare/p/18197501

相关文章

  • Springcloud学习笔记66---@Autowired注入为null的几种情况
    1.在应用的Filter或Listener中使用了@Autowired原因:因为Filter和Listener加载顺序优先于spring容器初始化实例,所以使用@Autowired肯定为null了~~解决:用ApplicationContext根据bean名称(注意名称为实现类而不是接口)去获取bean,随便写个工具类即可2.你写的代码有问题,没加@Service、......
  • esp32笔记[17]-显示网络延迟
    摘要使用esp32c3;使用软件i2c方式驱动ssd1306显示屏显示网络延迟和NTP时间;关键信息开发环境:ArduinoIDE主控:esp32c3显示屏:ssd1306原理简介ping测试网络延迟简介[https://github.com/dvarrel/ESPping][https://blog.csdn.net/qq_31536117/article/details/134757851......
  • iFlow实验笔记
    一、架构设计与仿真1架构设计因为我参加了第六期一生一芯,因此使用自己的设计。芯片架构图如下,采用RISCV32IE指令集,并包括ZiCSR指令拓展。由于一生一芯的宗旨是先完成后完美,而我正在进行SoC计算机系统的搭建,通过AXI4总线Xbar接入SoC部分。因此CPU的微架构比较简单,还未引入流水......
  • 《Linux内核完全注释》学习笔记:2.3 Linux系统定时
    在Linux0.11内核中,PC的可编程定时芯片Intel8253被设置成每隔10ms就发出一个时钟中断(IRQ0)信号。这个时间节拍就是系统运行的脉搏,我们称之为1个系统滴答。因此每经过1个滴答就会调用一次时钟中断处理程序(timer_interrupt)。该处理程序主要用来通过jiffies变量来累计自......
  • 运维笔记-mac下分卷压缩文件
    场景描述:文件传输过程中,如果网络限制了接受的文件大小(例如:允许最大传输的文件是100M,我们实际的文件大小是320M),这个时候就需要把单个文件拆分成4个文件每个80M左右,才可以正常传输。)另外一个场景是,当你需要传输的文件太大例如几个G,里边又是经过压缩的zip或者.tar.gz文件,如果文件......
  • 论文阅读:基于实体边界组合的关系抽取方法
    李昊,陈艳平,唐瑞雪,等.基于实体边界组合的关系抽取方法[J].计算机应用,2022,42(6):1796.主要工作提出了一种边界组合的关系抽取方法,跳过实体直接使用实体边界进行关系抽取;本文方法结合了Chen等提出的多通道深度神经网络模型思想以及特征组合的方法以减轻错误扩散对关......
  • 论文阅读:基于多通道自注意力机制的电子病历实体关系抽取
    宁尚明,滕飞,李天瑞.基于多通道自注意力机制的电子病历实体关系抽取[J].计算机学报,2020,43(5):916-929.本文的主要贡献一种更为高效的神经网络架构:recurrent+transformer。"recurrent+CNN"是当前医学文本领域实体关系抽取任务的主流建模方法,为进一步建模表征更全面......
  • 石家庄铁道大学毕业论文格式设置
    设置正文中字母与数字的格式为TimesNewRomanSubSetEnglishAndNumbersFontToTimesNewRoman()DimrngAsRangeDimdocAsDocumentDimparaAsParagraphDimiAsInteger'获取当前活动文档Setdoc=ActiveDocument'循环遍历......
  • FPGA笔记[1]-在macOS烧录码流到开发板
    摘要在macOS使用oss-cad-suite工具烧录fs码流到Sipeed-Tang-Primer-20k开发板.关键信息系统macOS14.4.1,AppleSiliconM2开发板:Sipeed-Tang-Primer-20kFPGA芯片:GW2A-LV18PG256C8/I7(GW2A-18C-PBGA256)原理简介oss-cad-suite工具链简介[https://gitcode.com/YosysHQ/......
  • 论文阅读:基于预训练模型的关系抽取研究综述
    ELMO模型ELMO的本质思想是通过使用针对语言模型训练好的BiLSTM来构建数据的文本表示。基于语言模型的词表示:传统的词向量表示方法(如word2vec和GloVe)将每个词映射为一个固定的向量,无法处理多义词。ELMo模型通过训练一个语言模型,将每个词的表示作为模型的隐藏状态,根据上下文来推......