论文阅读:Heterogeneous Graph Contrastive Learning for Recommendation(WSDM ’23)

news2024/11/24 7:29:09

在这里插入图片描述
论文链接

Motivation:

在推荐系统中,图神经网络在建模图结构数据上已经变成一个强有力的工具。但是现实生活的推荐语义通常涉及异质关系(像用户的社交关系,物品知识关系的依赖),这些都包含丰富的语义信息去提升表征能力的学习。同时,对比自监督学习在推荐系统中也取得了巨大进步。
鉴于此,本文提出异质图对比学习[Heterogeneous Graph Contrastive Learning (HGCL)],它利用在不同角度的对比学习知识迁移把异质关系融合到用户-物品的交互建模中。由于用户和物品的异质关系对用户-物品交互的影响是不同的,所以在HGCL中关于自适应对比增强设计了元网络来做个性化知识转换。

本文所面对的挑战:
1.如何有效的在不同视图中转换异质关系。
2.如何在个性化增强中执行异质关系的对比学习。

Contribute:

1.提出推荐系统中的异质图对比学习,它提供了普遍和通用的框架在一个图对比学习范式中去融合异质边信息进入推荐系统。
2.HGCL通过在对比学习中融合元网络,在特定于用户和特定于物品的知识转换中去自适应增强。
3.在真实生活推荐数据集中做了大量实验,证明了HGCL框架的有效性。

Method:

预定义:
对于用户-物品交互、用户-用户交互(social relation)、物品-物品交互(item relation)分别建立三张图Gui、Guu、Gii和对应的三个邻接矩阵Aui、Auu、Aii。

在这里插入图片描述
HGCL包含3大部分:
1.在用户-物品图、用户-用户图和物品-物品图中做异构图内表征的提取和融合。
2.在辅助视图和交互视图中利用元网络建模个性化跨试图关系。
3.在异构关系视图中,对于自适应对比学习做联合参数优化。

一:异质图关系学习

1.异质图Embedding初始化

用户-物品图初始化:传统推荐embedding(Eu、Ei)。

用户-用户图初始化和物品-物品图初始化作者设计了self-gating module,设计想法是不仅可以共享用户-物品交互初始embedding的共同语义,而且也可以在自己图中灵活建模用户-用户、物品-物品的关系。如下所示:

用户-用户图初始化:Euu

在这里插入图片描述

物品-物品图初始化:Eii

在这里插入图片描述
2.异质消息传播
用户-物品交互图、用户-用户交互图和物品-物品交互图分别进行图卷积,过程同LightGCN
在这里插入图片描述
3.异质信息聚合

信息每次迭代都会从异质关系中聚合信息。
在这里插入图片描述
f函数是element-wise mean pooling.
在这里插入图片描述
最终生成L层的表征与初始化的表征做聚合,形成最终的Eu和Ei。
同理Euu和Eii会聚合L层和初始化的表征,只不过之前没有经过f函数。f函数只把辅助(U-U、I-I)关系融合到交互关系(U-I)中。

二:跨视图元学习

1.提取元知识

元知识是包含丰富内容信息,它作为输入信息去生成对于用户和物品边知识的个性化知识转移函数。

对于用户-用户视图的元知识:用户-物品视图的用户Node、用户-用户视图的用户Node、用户-物品视图的用户Node的所有邻居Node(物品Node)的和。

对于物品-物品视图的元知识:用户-物品视图的物品Node、物品-物品视图的物品Node、用户-物品视图的物品Node的所有邻居Node(用户Node)的和。
在这里插入图片描述

2.个性化跨视图转换

利用上述的元知识作为输入信息,经过f1和f2元知识学习器生成参数知识转换网络,下面公式是针对用户-用户视图生成两个定制转换矩阵,作为转换函数的参数。物品-物品视图同理。

f1和f2均是激活函数是PReLU的两层MLP。
在这里插入图片描述
所以EMuu是针对用户-用户社交关系视图的定制映射函数转换后的用户信息。
在这里插入图片描述

与Eu和Euu做加权和形成最终的EFu。

在这里插入图片描述
物品-物品视图同理。

三:用户增强的异质关系对比学习

跨视图对比学习

设计了跨视图对比学习范式去增强异质关系学习
在这里插入图片描述
s(·)是cosine similarity function

对于物品也同理。

最终用户和物品的对比学习loss如下:
在这里插入图片描述

Model Training

在这里插入图片描述
最终Loss
在这里插入图片描述

Dataset:

在这里插入图片描述

Experiments:

在这里插入图片描述
Baseline:

在这里插入图片描述在这里插入图片描述

Performance Comparison (RQ1)
在这里插入图片描述
Ablation Study (RQ2)
在这里插入图片描述
Performance varying Data Sparsity (RQ3)
在这里插入图片描述
Hyperparameter Analysis (RQ4)
在这里插入图片描述
Qualitative Evaluation

在CIAO数据集上进行了案例研究,来可视化学习到的个性化对比转换矩阵(R16×16),以反映辅助视图(例如社会关系)和用户-项目交互视图之间的不同影响。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下实现C语言程序

一.情况说明 写这篇博客的情况比较复杂,首先我本来是参加新星计划按照规划现在去学习shell脚本语言的,但是博主现在由于其他原因需要了解makefile,makefile是Linux系统下的一种工具,makefile的一些背景要涉及链接库的知识&#xf…

从0开始搭建一个简单的前后端分离的XX系统-vue+Springboot+mybatis-plus+mysql

一、准备工作 1.安装node 2.idea 旗舰版** idea**教程 上述教程中的idea**工具 3.安装mysql任意版本 mysql 4.安装mysql workbench(没用上) 5.安装navicate 参考文章:百度-从小白到架构(作者)-Navicat16** Nav…

Thinkphp获取项目最近更改变动的所有文件

导读: 企业级的网站项目都是要不断优化迭代更新的,做为一名后端程序员,在编写更新模块时,如何能快速获取最近修改的文件,然后打包压缩成更新补丁呢?我们先来看一下最终效果图: 步骤&#xff1a…

使用FFMPEG分离mp4/flv文件中的264视频和aac音频

准备 ffmpeg 4.4 一个MP4或flv格式的视频文件 分离流程 大致分为以下几个简单步骤: 1.使用avformat_open_input 函数打开文件并初始化结构AVFormatContext 2.查找是否存在音频和视频信息 3.构建一个h264_mp4toannexb比特流的过滤器,用来给视频avpa…

Hudi 数据湖技术之集成Flink

目录 1 安装Flink2 快速入门2.1 集成Flink概述2.2 环境准备2.3 创建表2.4 插入数据2.5 查询数据2.6 更新数据 3 Streaming query3.1 创建表3.2 查询数据3.3 插入数据 4 Flink SQL Writer4.1 Flink SQL集成Kafka4.2 Flink SQL写入Hudi4.2.1 创建Maven Module4.2.2 消费Kafka数据…

【C++】了解设计模式、 stackqueue的使用与模拟实现

文章目录 1.设计模式2.stack1.stack的使用1.stack的结构2.stack的接口 2.stack的模拟实现1.stack的结构2.接口实现 3.queue1.queue的使用1.queue的结构3.queue的接口 2.queue的模拟实现1.queue的结构2.接口实现 4.了解deque1.deque的原理介绍2.deque的底层结构3.deque的迭代器设…

Codeforces Round 861 (Div. 2)(A~D)

A. Lucky Numbers 给出边界l和r,在区间[l, r]之间找到幸运值最大的数字。一个数字的幸运值被定义为数位差的最大值,即数字中最大的数位和最小的数位的差。 思路:因为涉及到至少两位,即个位和十位变化最快,最容易得到相…

Android四大组件之广播接收者BroadcastReceiver

一、全局广播 Android中的广播可以分为两种类型:标准广播和有序广播 标准广播:一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序。无法进行…

Vector-常用CAN工具 - 入门到精通 - 专栏链接

一、CANoe篇 1、CANoe入门到精通_软件安装 2、CANoe入门到精通_硬件及环境搭建 3、CANoe入门到精通_软件环境配置 4、CANoe入门到精通_Network Node CAPL开发 5、CANoe入门到精通_Node节点开发基本数据类型 6、CANoe入门到精通_Test Node节点开发设置 7、CANoe入门到精通…

《Cocos Creator游戏实战》AIGC之将草稿内容转为真实内容

目录 前言 训练AI 从识别结果中提取必要数据 发送图片并生成最终代码 总结与提高 资源下载 前言 当创作灵感来的时候,我们可能会先把灵感记录在草稿上,之后再去实现它。比方说有一天,我突然来了游戏创作灵感,想着那可以先把…

gpt 怎么用-免费gpt下载使用方法

gpt 怎么用 GPT(Generative Pre-trained Transformer)是一种基于Transformer的神经网络模型,用于自然语言处理任务,例如文本生成、摘要生成、翻译、问答等。以下是使用GPT进行文本生成的一般步骤: 首先,您…

编译预处理

编译预处理 1、宏定义1.1、 无参宏定义1.2、使用宏定义的优点1.3、宏定义注意点1.4、带参数的宏(重点)1.5、条件编译1.6、宏定义的一些巧妙用法(有用)1.7、结构体占用字节数的计算原则(考题经常考,要会画图)1.8、#在宏定义中的作用&#xff0…

转型产业互联网,新氧能否再造辉煌?

近年来,“颜值经济”推动医美行业快速发展,在利润驱动下,除了专注医美赛道的企业之外,也有不少第三方互联网平台正强势进入医美领域,使以新氧为代表的医美企业面对不小发展压力,同时也展现出强大的发展韧性…

六、CANdelaStudio入门-通信参数编辑

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的通信参数编辑,欢迎各位朋友订阅、评论,…

Kubernetes 笔记(16)— 集群管理、使用名字空间分隔系统资源、给名字空间设置资源限额、默认资源配额的使用

1. 为什么要有名字空间 首先要明白,Kubernetes 的名字空间并不是一个实体对象,只是一个逻辑上的概念。它可以把集群切分成一个个彼此独立的区域,然后我们把对象放到这些区域里,就实现了类似容器技术里 namespace 的隔离效果&…

MATLAB符号运算(七) 更新中...

目录 1、实验目的: 2、实验内容: 1、实验目的: 1)掌握定义符号对象和创建符号表达式的方法; 2)掌握符号运算基本命令和规则; 3)掌握符号表达式的运算法则以及符号矩阵运算&#xf…

93、Dehazing-NeRF: Neural Radiance Fields from Hazy Images

简介 论文:https://arxiv.org/pdf/2304.11448.pdf 从模糊图像输入中恢复清晰NeRF 使用大气散射模型模拟有雾图像的物理成像过程,联合学习大气散射模型和干净的NeRF模型,用于图像去雾和新视图合成 通过将NeRF 3D场景的深度估计与大气散射模…

【牛客刷题专栏】23:JZ22 链表中倒数最后k个结点(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…

LeetCode-344. 反转字符串

题目链接 LeetCode-344. 反转字符串 题目描述 题解 题解一(Java) 作者:仲景 直接双指针前后一直交换即可 class Solution {public void reverseString(char[] s) {if (s.length 1)return;// 双指针int lp 0, rp s.length - 1;while (lp…

【百度智能云】基于http3的xcdn 开放直播方案设计与实践

大神:柯老师 现有的融合CDN 0 需要集成sdksdk 是集成在端侧缺点 sdk 对端侧有影响多云模式下,sdk不互通、 XCDN 设计目标 :保持现有cdn的优势 承载各种业务:直播点播让各家的cdn互通cdn 厂家屏蔽了差异性,集成起来比较简单,对接简单开发的互联网生态。使用统一的http3标…