当前位置: 首页 > news >正文

TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering

TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering

在这里插入图片描述

摘要

在推荐和协同过滤领域,图对比学习(Graph Contrasive Learning,GCL)已经成为一种有影响的方法。然而,对比学习有效性的原因还没有得到很好的理解。本文对传统的随机扩充图结构或嵌入空间的方法提出了质疑,因为这些方法可能会破坏图神经网络的结构和语义信息.此外,固定速率的数据增强被证明与具有自适应速率的增强相比效率较低。在初始训练阶段,较大的扰动更适合,而随着训练接近收敛,较温和的扰动产生较好的结果。我们引入了一个双编码器来代替随机增强,证明了传统增强技术的冗余性。双编码器更新机制确保在早期阶段生成更多样的对比视图,随着训练的进行过渡到具有更大相似性的视图。此外,我们还从超球面上的对齐和均匀性的角度研究了学习表示,以更有效地进行优化。我们提出的孪生图对比学习模型- TwinCL -在保持超球面上嵌入的一致性的同时,对齐用户和项目嵌入的正对以及来自孪生编码器的表示。

引言

为了克服这些挑战,我们在本文中提出了一个双图对比学习模型的建议,称为TwinCL。关于第一个挑战,在追求简化GCL的协同过滤,我们放弃了传统的随机扩增应用到图结构或嵌入空间。受CL中动量更新机制[9,17]的启发,我们采用了一种使用动量更新的孪生编码器与主图编码器进行对比学习的策略。双编码器从主编码器迭代地更新自身,实现历史参数值与主编码器的当前梯度之间的平衡。这种基于孪生的模型具有在稀疏的用户-项目交互图中保留关键信息并以减少的计算操作有效地细化表示的优点。此外,它提供了不同的对比视图在初始阶段,过渡到更相似的视图在后期阶段,由于其更新机制,这被证明是有效的,以加强对比学习。关于第二个挑战,我们从[32]中推导出对齐和均匀性损失,并直接优化推荐任务,而无需负采样[44]。通过优化用户和项目嵌入内的对齐和均匀性属性,训练过程获得更快的收敛,同时表现出对过拟合的敏感性降低,从而增强鲁棒性。此外,对准和均匀性的设计,与双编码器相结合,协同有助于实现增强的性能。在最初的几个时期,模型受益于对齐和均匀性的优化,允许图形编码器更新到更合适的参数。通过从图形编码器获取更高质量的参数,双编码器可以通过从主图形编码器提取知识来迭代地细化其自身的参数,从而生成上级节点表示。

贡献:

  1. 我们提出了一种新的图对比学习范式TwinCL,它使用动量更新的孪生编码器,而没有对图和节点嵌入进行任何随机扩增。
  2. 我们将对齐和一致性的优化与我们的双图对比学习模型相结合,提高了性能,效率和对流行偏见的鲁棒性

孪生图对比学习

在这里插入图片描述

TwinCL利用孪生编码器生成有效的对比视图,而无需对图结构或节点表示进行扩充。此外,TwinCL利用对齐和一致性的特性来测量表示的质量,从而提高了双编码器的有效性。

现有的基于图的推荐方法通常依赖于随机扩增,这可能引入噪声并干扰图的结构和语义信息,特别是当图稀疏且用户-项目交互很少时。此外,这些方法需要反复试验选择增强方法和参数。我们需要选择一种具有适当扰动幅度的增强方法,例如辍学率[38]或噪声率[42,48]。然而,我们注意到,增强的最佳丢弃率或噪声率根据训练时期和迭代而不同。在训练的初始阶段,采用较高的丢弃率或扰动导致增强的对比学习结果。然而,随着模型达到一定数量的时期,为了减轻过拟合并促进进一步的改进,降低丢失率变得合乎需要,从而促进增强视图之间的更大相似性并实现上级结果。为了减轻固定丢弃率的不利影响,另一种方法涉及使用可学习的神经生成器[16]来创建对比视图。然而,这种方法在协同过滤场景中可能不是有效的,因为训练额外的生成器可能是繁重的。我们的目标是确定一种计算效率高的方法,并允许在训练的早期阶段进行较大的扰动,在后期阶段过渡到较稳定的扰动。

此外,GCL模型中对齐和一致性优化的未充分利用代表了改进推荐性能的未开发机会。大多数现有的GCL方法[23,42,48]只是分析学习表示的对齐和一致性,而没有利用这些属性。因此,我们的研究致力于设计一种GCL模型,该模型放弃了随机增强,有利于直接优化对齐和均匀性,寻求克服数据稀疏性,并在训练的早期阶段受到显著扰动时增强鲁棒性。

预备知识

1. 对齐、均匀

在对比学习领域,对齐和均匀性被认为是衡量表征质量的两个关键属性。给定一个正对的分布,对齐被定义为对比学习中正对的归一化嵌入之间的期望距离。
在这里插入图片描述

换句话说,均匀性是嵌入分布均匀程度的度量。
在这里插入图片描述

对齐和一致性度量非常适合对比学习的中心目标:正实例的嵌入应该彼此靠近,而随机实例的嵌入应该分散在超球面上。此外,这两个指标同样与协同过滤密切相关[32],其中用户感兴趣的项目可以与用户形成正对。这里类似地,正用户-项目对的归一化嵌入应该保持接近,而所有用户和项目的归一化嵌入应该均匀分布在超球体上:
在这里插入图片描述

孪生图对比学习

动机

现有的基于图的推荐方法通常依赖于随机增强,这会引入噪声并干扰图的结构和语义信息,特别是当图稀疏且用户-项目交互很少时。此外,这些方法需要反复试验选择增强方法和参数。我们需要选择一种具有适当扰动幅度的增强方法,例如丢弃率[38]或噪声率[42,48]。然而,我们注意到,用于增强的最佳丢弃率或噪声率取决于训练时期和迭代而不同。在训练的初始阶段,采用较高的丢弃率或扰动导致增强的对比学习结果。然而,随着模型达到一定数量的时期,为了减轻过拟合并促进进一步的改进,降低丢失率变得合乎需要,从而促进增强视图之间的更大相似性并实现上级结果。为了减轻固定丢弃率的不利影响,另一种方法涉及使用可学习的神经生成器[16]来创建对比视图。然而,这种方法在协同过滤场景中可能效率不高,因为训练额外的生成器可能很繁重。
我们的目标是确定一种计算效率高的方法,并允许在训练的早期阶段进行较大的扰动,在后期阶段过渡到较温和的扰动。此外,GCL模型中对齐和一致性优化的未充分利用代表了改进推荐性能的未开发机会。大多数现有的GCL方法[23,42,48]只是分析学习表示的对齐和一致性,而没有利用这些属性。因此,我们的研究致力于设计一种GCL模型,该模型放弃了随机增强,有利于直接优化对齐和均匀性,寻求克服数据稀疏性,并在训练的早期阶段受到显著扰动时增强鲁棒性。

双编码器

在这里插入图片描述

双编码器更新机制

主编码器通过梯度来训练模型参数,孪生网络不需要训练,每次从主网络中来拷贝部分参数来优化孪生网络。

在这里插入图片描述
双编码器更新机制保证了双编码器之间的多样性,并在训练的早期阶段生成对比视图。随着模型接近收敛,双编码器之间的相似性显著增加。与固定速率扰动方法相比,该功能增强了对比学习的性能,同时还确保了对比视图的有效生成。

	主编码其和其孪生网络通过图编码器生成用户、物品嵌入,用于对比学习。

在这里插入图片描述

对比学习

主编码器和孪生编码器之间的对比学习是为了最大化由双编码器和双编码器生成的正对的表示之间的相似性,同时鼓励嵌入空间中的均匀性。
在这里插入图片描述

对齐和均匀性优化

本文深入研究了如何为我们的协同过滤模型调整对齐和一致性的优化的细节。在传统的推荐系统中,贝叶斯个性化排序(BPR)[28]损失是优化项目排序的流行选择。但是,它也有自己的一系列限制,主要是由于它对负采样的敏感性以及捕获复杂的用户-项目交互的困难。负采样的性能可能会受到采样负样本的低质量和缓慢收敛的影响。为了克服这些限制,我们的模型采用了两种主要的优化损失。对齐损失确保了图中相似用户和项目的嵌入在表示空间中更接近,从而导致更准确的推荐均匀性损失确保嵌入均匀地分布在表示空间上,从而减少模型过度拟合特定项目或用户类别的机会,并使模型更加稳健和可推广

	bpr损失

在这里插入图片描述
当用户和项目的正对表示具有完美对齐且所有表示在超球面上均匀分布时,BPR损失最小.因此,对齐和均匀性损失可以替代BPR损失来优化推荐模型。通过直接优化对齐损失Lalign和均匀性损失Luniform,该模型在保证正用户-项目对的均匀分布的同时,内在地对齐了正用户-项目对的嵌入,从而得到了比依赖于BPR损失的传统方法更丰富的表示。在这里插入图片描述

TwinCL 算法

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

相关文章:

TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering

TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering 摘要 在推荐和协同过滤领域,图对比学习(Graph Contrasive Learning,GCL)已经成为一种有影响的方法。然而,对比学习有效性的原因还没有…...

如何区分实例化网格中的每个实例

1)如何区分实例化网格中的每个实例 2)项目在模拟器上切换程序后有概率画面冻结 3)Unity工程导入团结引擎,GUID会变化,导致引用关系丢失 4)Mask在Android平台下渲染异常 这是第407篇UWA技术知识分享的推送&a…...

理解 WordPress | 第一篇:与内容管理系统的关系

初步了解 WordPress 在互联网世界里,WordPress 是一个家喻户晓的名字。它是一个开源的内容管理系统(Content Management System,简称 CMS),帮助用户轻松创建和管理网站。WordPress 诞生于 2003 年,最初是一…...

Python游戏脚本之实现飞机大战(附源码)

一.游戏设定 游戏界面如下图所示: 游戏的基本设定: 敌方共有大中小3款飞机,分为高中低三种速度; 子弹的射程并非全屏,而大概是屏幕长度的80%; 消灭小飞机需要1发子弹,中飞机需要8发,大飞机需要20发子弹; 每消灭一架小飞机得1000分,中飞机6000分,大飞…...

使用Spring Boot搭建简单的web服务

1 引言 1.1 Spring Boot简介 Spring Boot是由Pivotal团队提供的一套开源框架,旨在简化Spring应用的创建及部署。 一、核心设计思想 Spring Boot的核心设计思想是“约定优于配置”(Convention Over Configuration,简称COC)。这…...

【IF-MMIN】利用模态不变性特征进行缺失模态的鲁棒多模态情感识别

代码地址:github地址传送 文章是基于MMIN的改进 -> MMIN传送 abstract 多模态情感识别利用跨模态的互补信息来获得性能。然而,我们不能保证所有模式的数据总是存在于实践中。在跨模态数据缺失预测研究中,异质性模态之间的固有差异即模态…...

RGB图像,排列方式NHWC适合CPU计算,NCHW适合GPU计算

之前写过笔记OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列,HWC格式排列,那么内存位置计算公式是? 在比较NHWC(channels_last)和NCHW(channels_first)这两种图像数据通道格式的效率时…...

布朗运动

内容来源 数理金融初步(原书第3版)Sheldon M. Ross著 冉启康译 机械工业出版社 布朗运动 定义 如果随机变量集合 X ( t ) X(t) X(t) 满足以下条件 X ( 0 ) X(0) X(0) 是一个给定的常数 对所有正数 y y y 和 t t t,随机变量 X ( y t …...

WPF+MVVM案例实战(二十二)- 制作一个侧边弹窗栏(CD类)

文章目录 1、案例效果1、侧边栏分类2、CD类侧边弹窗实现1、样式代码实现2、功能代码实现3 运行效果4、源代码获取1、案例效果 1、侧边栏分类 A类 :左侧弹出侧边栏B类 :右侧弹出侧边栏C类 :顶部弹出侧边栏D类 :底部弹出侧边栏2、CD类侧边弹窗实现 1、样式代码实现 在原有的…...

集成旺店通旗舰版售后单至MySQL数据库

旺店通旗舰版-售后单集成到MySQL的技术实现 在数据驱动的业务环境中,如何高效、准确地将旺店通旗舰奇门的数据集成到MySQL数据库,是许多企业面临的重要挑战。本文将分享一个具体的系统对接案例:旺店通旗舰版-售后单-->BI泰海-售后订单表(…...

【Linux】从零开始使用多路转接IO --- epoll

当你偶尔发现语言变得无力时, 不妨安静下来, 让沉默替你发声。 --- 里则林 --- 从零开始认识多路转接 1 epoll的作用和定位2 epoll 的接口3 epoll工作原理4 实现epollserverV1 1 epoll的作用和定位 之前提过的多路转接方案select和poll 都有致命缺点…...

爬虫学习4

from threading import Thread#创建任务 def func(name):for i in range(100):print(name,i)if __name__ __main__:#创建线程t1 Thread(targetfunc,args("1"))t2 Thread(targetfunc, args("2"))t1.start()t2.start()print("我是诛仙剑")from …...

CTF之web题集详情随手笔记

《Web安全》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484238&idx1&snca66551c31e37b8d726f151265fc9211&chksmc0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene21#wechat_redirect 1 WEB 1 靶场目…...

TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势

随着物联网、车联网等领域的快速发展,企业所面临的数据采集量呈爆炸式增长,这对 IT 基础设施和数据库提出了严峻挑战。传统单机版数据库逐渐无法应对高并发的数据写入和复杂的查询需求。因此,底层数据库必须具备水平扩展能力,以确…...

MATCH_DIRECT_BOOT_AWARE和MATCH_DIRECT_BOOT_UNAWARE

PackageManager.MATCH_DIRECT_BOOT_AWARE和PackageManager.MATCH_DIRECT_BOOT_UNAWARE 在Android系统中,PackageManager类提供了一些标志位,用于控制查询系统中的应用和组件时的行为。其中,MATCH_DIRECT_BOOT_AWARE和MATCH_DIRECT_BOOT_UNAWA…...

LabVIEW离心泵性能优化测试系统

开发了一套基于LabVIEW平台开发的离心泵性能优化测试系统。系统集成了数据采集、流量控制、数据存储、报表生成等功能,提供了低成本、便捷操作的解决方案,适用于工业场景中对离心泵性能的精确测评。 项目背景 随着工业化进程的加速,离心泵在…...

token和jwt区别

Token 和 JSON Web Token (JWT) 都是用于身份验证和授权的技术,但它们之间有一些重要的区别。下面是它们的主要区别和各自的特性: 1. 概念上的区别 Token: 广义概念:Token 是一个通用术语,指的是任何形式的令牌,用于在客户端和服务器之间传递身份验证和授权信息。实现方…...

新闻稿件管理:SpringBoot框架实战指南

3系统分析 3.1可行性分析 通过对本新闻稿件管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻稿件管理系统采用SSM框架,JAVA作为开发语…...

AI运动小程序开发常见问题集锦二

截止到现在写博文时,我们的AI运动识别小程序插件已经迭代了23个版本,成功应用于健身、体育、体测、AR互动等场景;为了让正在集成或者计划进行功能扩展优化的用户,少走弯路、投入更少的开发资源,针对近期的咨询问题&…...

nginx安装

下载地址 https://nginx.org/en/download.html选择 把下载好的压缩包放在 解压 tar -zxf nginx-1.27.2.tar.gz下载 yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel ./configuremake&&make install这样表示安装成功 接下去启动nginx…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂&#xff…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦&#xff0…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...