GDCL论文阅读笔记

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,\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于IDEA使用xml实现动态sql的问题

如上图,我在mapper层编写了一个list方法用于实现动态sql。 1.导入使用xml文件的mybatis依赖。 2.配置文件的修改 .properties .yml mybatis.mapper-locations=classpath:mapper/*.xml:这个配置项指定了 MyBatis 映射器 XML 文件的位置。 值 classpath:mapper/*.xml 表示 MyBa…

基于LoRa的智慧农业解决方案--ASR6601、SX1278、SX1262

我国《数字乡村发展战略纲要》明确指出“要推进农业数字化转型”,加快推广云计算、大数据、物联网、人工智能在农业生产经营管理中的运用。然而,目前我国的农业数字化转型还面临着诸多挑战。我国整体农业机械化程度和自动化控制水平仍然较低。由于农田面积广袤,大量的区域没…

服务器mac地址变化

检查是否开启了多路复用检查是否开启了随机硬件地址留待后查,同时方便他人 联系我:renhanlinbsl@163.com

基于阿里云实现手机号验证功能

一、阿里云手机短信验证码服务阿里云创建账号 https://home.console.aliyun.com/home/dashboard/ProductAndService搜索短信服务选择签名、资质管理、新增资质创建签名创建新模版,其中对映签名等信息查看模版获取ID 和 Key (1).选中头像,创建AccessKey创建工具类/// <summ…

第八章:路由基础

第八章:路由基础 路由: 在特定的拓扑上,选择从 source 节点到 destination 节点的路径。一个好的路由算法,即使面对 non-uniform traffic pattern,也能有效地均衡负载,使实际 throughput 更加接近于理想情况。 好的路由算法可以使路径长度尽可能短,从而减少跳数和传输的…

navicat怎么连接sqlserver

1.打开SQLServer配置管理器点击SQL Server 网络配置、把协议保持启用,如果默认已启用就不用管; 把IP地址里的IPAll里的TCP端口改为1433(SQL Server的端口是1433,Mysql的是3306); 检查SQL Native Client11.0的配置,确认协议也在开启,端口为1433; SQLServer的名称 这里的…

你知道 Java 有哪些引用吗?

判断对象是否要回收有引用计数法和可达性算法两种方式,无论哪种都离不开引用,本文将介绍Java的四种引用。前言判断对象是否要回收有引用计数法和可达性算法两种方式,无论哪种都离不开引用,本文将介绍Java的四种引用。一、概述二、详解 1. 强引用 概述 在Java程序中,强引用…

通过HPA+CronHPA组合应对业务复杂弹性伸缩场景

华为云CCE服务通过将HPA与CronHPA组合,实现指标弹性策略与定时弹性策略的有机协同,满足了客户业务复杂的弹性伸缩场景。本文分享自华为云社区《通过HPA+CronHPA组合应对业务复杂弹性伸缩场景》,作者:云容器大未来。背景 在k8s集群中,容器水平自动伸缩(HPA),可以根据容器资…

Linux基础知识(Ubuntu)

文件权限 意义权限类型 1. r 可读 2. w 可写 3. x 可执行/切换陌路 4. - 无权限通配符 * 匹配0个或多个字符串 ?匹配1个字符 [abcd] 匹配abcd中间任意一个字符 [a-Z] 匹配a-Z范围里的任意一个字符 [!abc] 不匹配方括号里的任何一个字符 ;与[^abc]一致帮助命令 man 语法 man […

join、inner join、left join、right join、outer join的区别

什么是联结?union、intersect等集合运算,它的特征是以 “行” 为单位进行操作,通俗点说,就是进行这些集合运算,会导致记录行数的增减,使用union会增加记录行数,使用 intersect 或 expect 会减少行记录,集合运算不会导致 “列” 数量的改变。而联结(join) 操作,就是将其…

基于.net core 七牛云上传多图片

一、基于.net core 七牛云上传图片上传创建七牛云账号,链接:https://portal.qiniu.com/home 新建空间(可以选择华北,可设置公开或私有(公开返回前台不需要token))单图片上传 /// <summary> /// 上传文件 /// </summary> /// <param name="file"…

Hadoop集群配置免密SSH登录方法

K8s集群配置免密ssh登录 K8S集群包含1个主节点和2个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法。 一、K8s集群环境 二、免密登录原理 每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,每台主机的authorized_keys文件里面…