CGCL论文阅读笔记

Candidate–aware Graph Contrastive Learning for Recommendation论文阅读笔记

Abstract

现存问题:

​ 大多数基于gcl的方法使用启发式数据增强方法,即随机节点/边下降和属性掩蔽,来构造对比对,导致重要信息的丢失。

解决方案:

​ 为了解决基于gcl的方法中的问题,我们提出了一种新的方法,候选感知图对比学习推荐,称为CGCL。在CGCL中,我们探讨了不同层嵌入中的用户和候选项之间的关系,并使用相似的语义嵌入来构造对比对。通过我们提出的CGCL,我们构造了结构邻域对比学习对象、候选对比学习对象和候选结构邻域对比学习对象,以获得高质量的节点嵌入。

Introduction

​ 虽然基于gcl的方法已经做了一些改进,但它们忽略了不同层的用户和候选项之间的关系,这限制了它们的性能。具体来说,这些基于gcl的方法只从结构扰动、节点相似度或图结构的角度来构建对比对,而忽略了用户与候选项的不同层嵌入之间的关系。在嵌入空间中,具有相似语义信息的嵌入应该比没有相似语义信息的嵌入更接近。以图1为例,鸡腿应该靠近可乐和西瓜,远离嵌入空间中的书籍和耳机,因为鼓腿、可乐和西瓜属于同一类食物。

pkKK26A.md.png

​ 在不同层建立用户和候选项目之间的连接可以更好地建模用户的兴趣和项目的特征,并可以更好地探索以更细粒度的用户与项目交互的意图。通过这样做,可以有效地提取出节点间的协同信号。因此,为了更好地建模用户和候选项目之间的关系,我们提出了一种新的图对比学习方法,称为候选感知图对比推荐学习(CGCL)。

​ 本文的贡献如下:

  • 为了建立更好的对比对模型,我们建议根据语义相似性,从用户和候选项目的不同嵌入层中选择对比学习对象的锚点、正向实例和负向实例。据我们所知,我们是第一个探索用户和候选条目在不同嵌入层之间关系的图对比学习方法。
  • 在CGCL中,我们提出了结构化邻构学习损失对象候选对比学习损失对象候选结构邻域对比学习损失对象来提取用户与候选项之间的低阶和高阶关系。有效地提高了节点嵌入的质量。

Method

​ 在这项工作中,我们旨在探索用户和候选项目之间的关系,以提高GNN学习到的节点嵌入的质量。所提出的CGCL模型如图2所示,它由三个组成部分组成:

  • 首先,为了建立结构邻居与中心节点之间的关系,我们提出了结构邻居对比学习对象。

  • 其次,为了建立用户和候选项目之间的关系,我们提出了候选对比学习对象。

  • 第三,为了建立用户的结构邻居与候选项之间的关系,我们提出了候选结构邻居对比学习对象。

​ 模型的结构图如下:

pkKMnhD.png

与结构邻居的对比学习

​ 同构的用户(项目)节点通过卷积传播被连接起来。可以认为它们具有相似的语义信息,并且在嵌入空间中彼此更接近。

​ 因此,我们将中心节点本身的嵌入作为锚点,将中心节点的同构邻节点嵌入作为正实例,将其他中心节点的同构邻节点嵌入作为负实例。基于InfoNCE损失,我们提出了结构对比学习对象来最小化齐次邻居节点之间的距离。用户侧的结构邻域对比学习损失函数可以表示如下:

\(\mathcal{L}_S^U=\sum_{u\in\mathcal{U}}-\log\frac{\exp\left(sim\left(e_u^{(k)},e_u^{(0)}\right)/\tau\right)}{\sum_{v\in\mathcal{U}}\exp\left(sim\left(e_u^{(k)},e_v^{(0)}\right)/\tau\right)}.\)

​ 其中,\(e_u^{(k)}\)为用户侧𝑘层卷积的嵌入,𝑘为偶数,𝑠𝑖𝑚为余弦相似度,𝜏为softmax的温度超参数。

​ 同样,项目侧的结构邻域对比学习损失函数可以表示如下:

\(\mathcal{L}_S^I=\sum_{i\in I}-\log\frac{\exp\left(sim\left(e_i^{(k)},e_i^{(0)}\right)/\tau\right)}{\sum_{j\in I}\exp\left(sim\left(e_i^{(k)},e_j^{(0)}\right)/\tau\right)}.\)

​ 其中,\(e_i^{(k)}\)表示𝑘层卷积在项目侧的嵌入。结合这两种损失,我们得到了结构邻域对比学习损失的目标函数如下:

\(\mathcal{L}_{S}=\alpha\mathcal{L}_{S}^{U}+(1-\alpha)\mathcal{L}_{S}^{I}.\)

与候选节点进行对比学习

​ 在本小节中,我们将介绍候选的对比学习对象。对于给定的用户𝑢和候选项𝑖,推荐系统的目标是预测它们之间是否会有交互作用。根据推荐系统的基本假设,相似用户可以与同一项目进行交互。如果用户𝑢和候选项目𝑖具有更高的交互可能性,那么该用户应该与嵌入空间中候选项目的历史交互用户相似。此外,用户𝑢不应该类似于嵌入空间中其他项目的历史交互用户。

​ 因此,在用户方面,我们以用户𝑢的嵌入作为锚点,以候选项𝑖的一阶邻居节点嵌入作为正实例,以其他项的一阶邻居节点嵌入作为负实例。用户侧的候选对比学习损失可以表示如下:

\(\mathcal{L}_{C}^{U}=\sum_{i\in I}-\log\frac{\exp\left(sim\left(e_i^{\left(k^{\prime}\right)},e_u^{(0)}\right)/\tau\right)}{\sum_{v\in\mathcal{U}}\exp\left(sim\left(e_i^{\left(k^{\prime}\right)},e_v^{(0)}\right)/\tau\right)}.\)

​ 其中,\(e_i^{\left(k^{\prime}\right)}\)表示项目侧在𝑘’层的嵌入,𝑘‘为奇数。

​ 同样,在候选项目方面,损失函数与用户的相似

​ 最终的损失函数如下:

\(\mathcal{L}_C=\alpha\mathcal{L}_C^U+(1-\alpha)\mathcal{L}_C^I.\)

与候选结构邻居的对比学习

​ 在本小节中,我们将介绍候选结构邻域对比学习对象,它对应于图2中的C部分。用户(项目)的结构性邻居包含具有相似兴趣的项目(用户)。用户的二阶邻居和项目的一阶邻居是相同类型的节点(用户的类型)。在进行多层卷积时,它们将被连接起来,并且它们之间存在着长距离的依赖关系。如果用户𝑢可以与候选项𝑖交互,则用户𝑢的用户类型邻居节点更接近于嵌入空间中的候选项𝑖的用户类型邻居节点。同时,用户𝑢的项目类型邻居节点也靠近嵌入空间中的项目𝑖的项目类型邻居节点。因此,我们选择用户(项目)的同质性邻居节点作为项目(用户)的正实例。此外,中心节点与远离中心节点的邻居节点之间的关系较弱,因为这种关系包含了更多的噪声和不相关的信息。

​ 因此,我们将距离中心节点较近的邻居节点的嵌入作为锚点,将距离中心节点较远的邻居节点的嵌入作为正例,将距离中心节点较远的其他交互对的结构邻居的嵌入作为负例。用户侧的候选结构邻接对比学习损失可表示如下:

\(\mathcal{L}_{CS}^{U}=\sum_{i\in I}-\log\frac{\exp\left(sim\left(e_i^{(k)},e_u^{(k^{\prime})}\right)/\tau\right)}{\sum_{v\in\mathcal{U}}\exp\left(sim\left(e_i^{(k)},e_v^{(k^{\prime})}\right)/\tau\right)}.\)

​ 项目侧的损失函数相似

​ 最终的损失函数如下:

\(\mathcal{L}_{CS}=\alpha\mathcal{L}_{CS}^{U}+(1-\alpha)\mathcal{L}_{CS}^{I}.\)

CGCL的优化目标

\(\mathcal{L}_{CGCL}=\mathcal{L}_{Rec}+\lambda_{1}\mathcal{L}_{S}+\lambda_{2}\mathcal{L}_{C}+\lambda_{3}\mathcal{L}_{CS}+\lambda_{4}\left\|\Theta\right\|_{2}^{2}.\)

总体算法流程如下:

pkKQcqI.png

​ 这篇文章整体看下来感觉都是莫名其妙的层间对比,就是给不同层之间对比找了个理由,候选项目的故事讲的不错,但是方法里面似乎没有体现到。

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

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

相关文章

如何使用抽象,虚方法,重写,看了这个示例,超级好用

基础参数 interface,abstract,virtual,override 然后实现了这样的效果 同一个方法,调用不同的实现类,那实现不一样的结果 具体代码public interface IStatsBase{string UserSpeak(string content);string UserHandel(string content);}public interface IUserStatsBase{s…

如何使用虚方法,重写,接口那实现不一样的结果

基础参数 interface,abstract,virtual,override 然后实现了这样的效果 同一个方法,调用不同的实现类,那实现不一样的结果 具体代码public interface IStatsBase{string UserSpeak(string content);string UserHandel(string content);}public interface IUserStatsBase{s…

Calico 组网(Networking)

确定最佳网络选项 了解 Calico 支持的不同网络选项,以便您可以选择最适合您需求的选项。Calico 灵活的模块化架构支持广泛的部署选项,因此您可以选择适合您的特定环境和需求的最佳网络方法。这包括能够以非覆盖或覆盖模式、带或不带 BGP 运行各种 CNI 和 IPAM 插件以及底层网…

Unity中Reorderable List用法(待维护)

Unity官方文档里完全没有提到ReorderableList类,这是因为它不在UnityEngine或UnityEditor的命名空间下,而是在UnityEditorInternal命名空间下,这个命名空间里的东西是没有官方文档支持的ReorderableList的作用 它的作用,是让一个数组,在Unity的Inspector界面上显示得更好一…

【质量管理】核对单和核查表的区别

总结:核对单和核查表的区别郭慕荣博客园

Windows包管理工具chocolatey安装

Windows软件管理工具chocolatey安装 背景:chocolatey作为windows软件管理工具下载JDK等工具,可以避免下载工具,修改环境变量配置,操作方便 安装步骤 官方指导个人操作以管理员身份运行Poweshell按照官网指导调整执行策略PS C:\WINDOWS\system32> Get-ExecutionPolicy Re…

MySQL全文索引源码剖析之Insert语句执行过程

全文索引是信息检索领域的一种常用的技术手段,用于全文搜索问题本文分享自华为云社区《MySQL全文索引源码剖析之Insert语句执行过程》 ,作者:GaussDB 数据库。1. 背景介绍 全文索引是信息检索领域的一种常用的技术手段,用于全文搜索问题,即根据单词,搜索包含该单词的文档…

Markdown基础语法2024测试

标题一 标题二 标题三 标题四 标题五 标题六 hr 加粗字体 b 斜体字体 i 引用内容 code 超链接 a blockquoteol > li 有序列表ul > li 无须列表pre 代码块p表格标题 内容居中 内容居右col 3 is right-aligned $1600col 2 is centered $12zebra stripes are neat $1p p 源…

(挖矿病毒清除)kdevtmpfsi 处理,其他挖矿软件也可用该思路清除

1、Top命令线程运行情况,找到kdevtmpfsi对应的进程ID 2、使用 kill -9 PID 3、过段时间再次被重启,说明有守护线程systemctl status PID查看其关联的守护进程,/tmp/kinsing /tmp/kdevtmpfsi删除rm -rf /tmp/kinsing rm -rf /tmp/kdevtmpfsi4、crontab -l 命令先看看 cront…

Unity遮挡剔除使用

(1)设置对象为遮挡物or被遮挡物 选中某个对象后,在其Occlusion窗口可以设置其Occluder Static和Occludee Static属性:遮挡物通过勾选一个对象的Occluder Static 可将其设置为静态遮挡物。理想的遮挡物应该是实心的,体积较大的物体。 原则1:可能阻挡到其它对象的对象才应该…

Uni-app 之IOS生成Universal Link(通用链接)

一、文档 https://uniapp.dcloud.net.cn/api/plugins/universal-links.html#%E8%83%8C%E6%99%AF%E4%BB%8B%E7%BB%8D 二、配置 1、登录苹果开发者中心找到对应的APPID,配置Associated Domains,如下: 2、创建apple-app-site-association文件(没有后缀){"applinks"…