Self-supervised Graph Learning for Recommendation 详解

目录

摘要

引言

预备知识

方法

        3.1 图结构数据增强

        3.2 对比学习

        3.3 多任务学习

        3.4 理论分析


摘要

        基于用户-物品图的推荐表示学习已经从使用单一 ID 或交互历史发展到利用高阶邻居。这导致了图卷积网络(GCNs)在推荐方面的成功,如 PinSage 和 LightGCN。尽管具有有效性,但我们认为它们存在两个局限性:(1)高阶节点对表示学习的影响更大,使低阶(长尾)项目的推荐恶化;(2)由于邻域聚集方案进一步扩大了观测边缘的影响,表征容易受到噪声相互作用的影响。

        在这项工作中,我们探索了用户项图的自监督学习,以提高GCNs推荐的准确性和鲁棒性。其思想是用一个辅助的自监督任务来补充经典的推荐监督任务,通过自我区分来加强节点表示学习。具体来说,我们生成一个节点的多个视图,最大限度地提高同一节点的不同视图与其他节点的一致性。我们设计了三个操作符来生成视图——节点丢弃、边丢弃和随机游走——它们以不同的方式改变图的结构。我们将这种新的学习范式称为自监督图学习(SGL),并在最先进的LightGCN模型上实现它。通过理论分析,我们发现SGL具有自动挖掘难负样本的能力。在三个基准数据集上的实证研究证明了SGL的有效性,它提高了推荐的准确性,特别是在长尾项目上,以及对交互噪声的鲁棒性。我们的实现可以在https://github.com/wujcan/SGL上获得。

        总结:使用节点丢弃、边丢弃和随机游走三种策略改变图结构,使用辅助的自监督任务训练以增强节点表示,进而增强推荐效果。最终表明,该方法在长尾项目上,以及应对交互噪声上,有良好的表现。

引言

        基于用户-物品二部图推荐的表征表示学习已经从使用单一ID或交互历史演变到利用高阶邻居学习。基于这个思想,图卷积网络(graph convolution networks,GCNs)在推荐系统中取得了巨大成功。例如PinSage,LightGCN。尽管基于GCN的方法取到了不错的效果,但我们认为这些方法仍然受到了一些限制:

  • 监督信号稀疏(数据稀疏):目前大多数推荐学习任务都是基于监督学习的范式,其中监督信号一般指用户和物品的交互数据。然而这些交互数据通常来说是异常稀疏的,不足以学习高质量的表征。
  • 倾斜的数据分布(幂律分布):推荐系统的交互数据通常呈现幂律分布,其中长尾部分low-degree的物品节点缺乏监督信号。然而,high-degree的物品节点在邻居聚合和监督学习损失中占据了主导地位,对表征学习影响更大。因此,基于GCNs的方法倾斜于high-degree物品节点,牺牲了low-degree物品推荐的性能。
  • 交互噪音:用户提供的交互大多数是隐式的(clicks,views),而不是显式的(ratings,likes,dislikes)。因此,收集到的交互通常包含噪声,如用户误点击了一个物品。而GCNs中的邻居聚合操作则会加大这些交互噪音的影响,使得模型训练更容易受到交互噪音的影响。

        本文意在探索自监督学习(Self-supervised Learning, SSL)在用户-物品二部图上的应用,辅助推荐模型训练学习,应用self-discrimination来学习更加鲁棒的节点表征。具体来说,通过基于图结构的数据增强来生成一个节点的多个视图,最大化同一节点不同视图间(正样本对)的一致性(agreement)以及最小化不同节点视图间(负样本对)的一致性。本文设计了三张数据增强操作 —— node dropout, edge dropout, and random walk,并将这种新的学习范式称为Self-supervised Graph Learning(SGL)自监督图学习。下面章节将会具体介绍SGL。

        总结:在该段提出了使用GCN来做推荐的三个问题,分别是数据稀疏问题、长尾问题、交互噪音影响节点表示问题,并提出了解决策略。

预备知识

总结:该部分讲了 GCN 如何用在推荐上,如何学习节点的表示。以及讲解了监督学习的 loss 使用的是 BPR loss。

方法

        本节将定义自监督图学习(Self-supervise Graph Learning, SGL)范式,作为监督学习任务的补充,实验证明非常有效。图1展示了SGL的流程,简单来说,自监督学习任务从输入数据之间的关联构建监督信号。

        下面,我将介绍如何对图结构进行数据增强生成多个视图,然后基于生成的表征进行对比学习来建立自监督学习(Self-supervised Learning, SSL)任务,之后SSL与基于GCN的方法结合进行多任务学习,随后,我将从梯度的角度对SSL进行理论分析,解析SSL与难负样本挖掘的关联,最后我将简单分析一下模型时间复杂度。

        3.1 图结构数据增强

        使用节点丢失(对节点有概率的丢失)、边丢失(对边有概率的丢失)和随机游走

        3.2 对比学习

    

        总结:对比学习的学习目标是将同一节点不同视图学习一致性,不同节点不同视图强化差异性。

        3.3 多任务学习

        

        3.4 理论分析

        为什么 SGL 的效果好?

        因为 SGL 具有挖掘难负样本的能力,难负样本对梯度下降进行了有效的指导。

        

        实验(待补充)

        结论(待补充)

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

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

相关文章

从零开发短视频电商 JMH压测真实示例DEMO

文章目录 原理依赖基础示例结果main 关键注解示例BenchmarkWarmupMeasurementBenchmarkModeOutputTimeUnitForkThreadsStateSetup 和 TearDownParam 问题DeadCode常量折叠Loops JMH 测试的对象可以是任一方法,颗粒度更小,例如本地方法,Rest A…

SpringSecurity 三更草堂 学习笔记

SpringSecurity从入门到精通 0. 简介 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的…

最优化理论复习--单纯形方法

文章目录 上一篇单纯形方法原理使用表格的单纯形方法两阶段法大M法其他情况下一篇 上一篇 最优化理论复习–线性规划性质 单纯形方法原理 c B B − 1 P j − c j c_BB^{-1}P_j - c_j cB​B−1Pj​−cj​为正的的话目标函数值 f ( x ) f(x) f(x) 还可以再减小 ⇒ \Rightarrow…

0基础学java-day14

一、集合 前面我们保存多个数据使用的是数组,那么数组有不足的地方,我们分析一下 1.数组 2 集合 数据类型也可以不一样 3.集合的框架体系 Java 的集合类很多,主要分为两大类,如图 :[背下来] package com.hspedu.c…

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 (HIL)实现例程测试 📍相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程(在Simulink 中不是选择的STM32xxxbased类型的)。 🔖STM32xxx…

香港科技大学广州|机器人与自主系统学域博士招生宣讲会—北京专场!!!(暨全额奖学金政策)

在机器人和自主系统领域实现全球卓越—机器人与自主系统学域 硬核科研实验室,浓厚创新产学研氛围! 教授亲临现场,面对面答疑解惑助攻申请! 一经录取,享全额奖学金1.5万/月! 时间:2023年12月09日…

Linux 进程地址空间

文章目录 进程地址空间进程地址空间结构页表虚拟内存写时拷贝 进程地址空间 进程地址空间难以定义,因为它更像是一个中间件。 程序从磁盘中加载到内存,程序的执行需要硬件资源,所以每个程序启动时会创建至少一条进程,进程作为组…

SpaceSight、Echo 联合升级,打造更懂场景的 AI 「超级门店」

当各领域都在谈论「增长」,门店业务的增长又该从哪里开始着手…… 在日常运营中,「高效」和「细致」是否无法同时实现?「任务下达」和「任务执行」之间有多大偏差? 在客户洞察上,如何用「过去」的数据预测「未来」&…

11-30 SpringBoot2

热部署 开发过程中,修改代码,不需要重启,自动更新 项目上线,一定要关闭 SpringBoot热部署的实现?? ideal默认阻止class类更新 2.需要手动构建项目,可以使用快捷键激活此功能ctrl F9 / build project 自动构建项目 允许程序运行…

【Proteus】绘制简单的电路图

参考书籍:微机原理与接口技术——基于8086和Proteus仿真(第3版)(作者:顾晖等),p111 1.放置元件 以8086为例: 确保处于元件模式,点击对应的按钮: 在元件库中…

Spring Boot 项目的创建、配置文件、日志

文章目录 Spring Boot 优点创建 Spring Boot 项目创建项目认识目录网页创建(了解) 约定大于配置Spring Boot 配置文件配置文件格式读取配置项properties 配置文件yml 配置文件基本语法进阶语法配置对象配置集合yml 设置不同环境的配置文件 Spring Boot 日…

http和https的区别有哪些

目录 HTTP(HyperText Transfer Protocol) HTTPS(HyperText Transfer Protocol Secure) 区别与优势 应用场景 未来趋势 当我们浏览互联网时,我们经常听到两个常用的协议:HTTP(HyperText Tra…