对负采样(negative sampling)的一些理解

负采样(negative sampling)通常用于解决在训练神经网络模型时计算softmax的分母过大、难以计算的问题。但在LightGCN模型论文的BPR LOSS中,负采样的概念可能与传统的softmax分母问题不完全一样。

在LightGCN模型中,不同于传统的协同过滤方法或基于矩阵分解的模型,它采用了一种轻量级的方式来学习用户和物品的嵌入表示。LightGCN的损失函数中包含了BPR损失(Bayesian Personalized Ranking),该损失函数用于推动模型更好地区分用户对已观察到的物品和未观察到的物品的兴趣。这是通过负采样来实现的。

具体来说,负采样在这里用于生成未观察到的物品(负样本),以便在BPR损失中比较已观察到的物品和未观察到的物品之间的差异。通过随机或其他采样策略,从未观察到的物品中选择一些物品作为负样本,然后计算它们与已观察到的物品之间的兴趣差异,如公式(15)所示。这有助于模型学习更好地排名观察到的物品高于未观察到的物品。
在这里插入图片描述
公式(15)代表了LightGCN模型中的损失函数,这是基于贝叶斯个性化排名(Bayesian Personalized Ranking,BPR)的损失函数。

首先,让我们看一下公式中的符号和变量:

LBPR 是BPR损失函数。
M 是用户的数量。
u=1 到 M 是用户索引的范围。
i ∈ Nu 表示用户 u 观察到的物品 i 的集合。
j ∈ N/ u 表示用户 u 没有观察到的物品 j 的集合,,“j ∈ N/ u” 这一步的目的是选择未与用户 u 直接交互的物品 j。换句话说,它表示从所有可能的物品中选择那些不在用户 u 的交互历史中的物品作为负样本。这是负采样的一部分,目的是与已观察到的物品 i 进行比较,以计算 BPR 损失,以便推动模型更好地区分用户对已观察到的物品和未观察到的物品的兴趣。在协同过滤和推荐系统中,通常存在大量未被用户交互过的物品(item),而用户的历史交互数据只包含了少量物品。如果要考虑所有可能的未交互物品来计算 BPR 损失,这将导致计算成本非常高,因为负样本的数量可能远远大于正样本(用户已交互的物品)的数量。因此,为了降低计算成本,推荐系统通常采用负采样策略,从未交互的物品中随机选择一部分作为负样本,然后使用这些负样本来计算 BPR 损失。这样可以在保持模型训练有效性的同时降低计算复杂性。就有一种我觉得是以部分代替整体的感觉。
ui 是模型预测用户 u 对物品 i 的兴趣。
uj 是模型预测用户 u 对物品 j 的兴趣。
σ(x) 是Sigmoid函数,它将实数映射到 (0, 1) 的范围内。
λ||E(0)||2 是正则化项,用于控制模型的复杂度。
BPR损失函数的目标是鼓励模型使观察到的物品的预测兴趣高于未观察到的物品的预测兴趣。这可以通过计算差异的负对数概率来实现。具体来说,对于每个用户 u,我们计算了观察到的物品 i 和未观察到的物品 j 之间的差异,然后通过负对数概率来量化这种差异。

式子中的第一项 -ln σ(ŷui - ŷuj) 是计算差异的部分。这里,σ(x) 是Sigmoid函数,它将模型预测的兴趣值映射到 (0, 1) 的范围内。ŷui - ŷuj 表示用户 u 对物品 i 和物品 j 的预测兴趣之差,通过Sigmoid函数将其映射到概率空间。因此,-ln σ(ŷui - ŷuj) 表示观察到的物品 i 的预测兴趣高于未观察到的物品 j 的负对数概率。

第二项 λ||E(0)||2 是正则化项,用于防止过拟合。这里,E(0) 是模型的第0层的嵌入矩阵,正则化项通过惩罚嵌入矩阵的大小来控制模型的复杂度。

综上所述,公式(15)是基于BPR思想的损失函数,用于训练LightGCN模型。它的目标是通过最小化差异的负对数概率来鼓励模型提高对观察到的物品的预测兴趣,同时使用正则化项来防止过拟合。这有助于LightGCN模型学习用户和物品之间的嵌入表示以进行推荐任务。

虽然负采样主要用于处理类似于传统softmax分母问题的难以计算的问题,但在这里它的目的是与BPR损失结合使用,以提高推荐质量,而不仅仅是减少计算复杂性。因此,在这个上下文中,负采样是一种用于训练推荐模型的技术,用于优化BPR损失。

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

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

相关文章

AR智能眼镜:提升现场服务技能、效率与盈利能力的利器(一)

随着技术的不断进步,现场服务组织正朝着远程支持转变,用以解决技能差距和生产力问题,提高员工培训和操作效率,同时为企业提高利润率,创造竞争优势。 本文将探讨增强现实(AR)、辅助现实&#xf…

使用Apache HttpClient爬取网页内容的详细步骤解析与案例示例

Apache HttpClient是一个功能强大的开源HTTP客户端库,本文将详细介绍如何使用Apache HttpClient来爬取网页内容的步骤,并提供三个详细的案例示例,帮助读者更好地理解和应用。 一、导入Apache HttpClient库 在项目的pom.xml文件中添加依赖&a…

【李沐深度学习笔记】损失函数

课程地址和说明 损失函数p2 本系列文章是我学习李沐老师深度学习系列课程的学习笔记,可能会对李沐老师上课没讲到的进行补充。 损失函数 损失函数是用来衡量预测值 y ^ \hat{y} y^​或 y ′ y y′与真实值 y y y的差别,下面给出常见的损失函数类型&am…

MySQL数据库记录的删除操作与特殊字符

在数据库管理中,除了添加和修改记录之外,删除操作也是一个重要的方面。同时特殊字符序列的处理也是必不可少的一步。 本文将深入探讨如何在MySQL数据库中进行表记录的删除操作,以及如何处理特殊字符序列。将使用《三国志》游戏数据作为示例来进行解释。 文章目录 表记录的…

科技资讯|AirPods Pro基于定位控制的自适应音频功能

在接受 TechCrunch 媒体采访时,苹果高管 Ron Huang 和 Eric Treski 谈到了关于 AirPods Pro 自适应音频(Adaptive Audio)功能的轶事,曾考虑基于 GPS 信号来控制自适应音频级别。 Treski 表示在探索自适应音频功能初期&#xff0…

uniapp 实现下拉筛选框 二次开发定制

前言 最近又收到了一个需求,需要在uniapp 小程序上做一个下拉筛选框,然后找了一下插件市场,确实有找到,但不过他不支持搜索,于是乎,我就自动动手,进行了二开定制,站在巨人的肩膀上&…

什么是GraphQL?它与传统的REST API有什么不同?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是GraphQL?⭐ 与传统的REST API 的不同⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣…

UnityAPI的学习——Application类

Application类不含实例属性和实例方法,在脚本通过直接调用Application类的静态属性和静态方法来控制程序的运行时数据,如场景的管理、数据的加载等。   Application类静态属性   在Application类中,涉及的静态属性主要有dataPath和loaded…

ESP32设备通信-两个ESP32设备之间HTTP通信

两个ESP32设备之间HTTP通信 文章目录 两个ESP32设备之间HTTP通信1、应用介绍2、软件准备3、硬件准备4、代码实现4.1 ESP32服务器节点代码4.2 ESP32客户端节点代码在本文中,我们将介绍如何在没有任何物理路由器或互联网连接的情况下使用 Wi-Fi 在两个 ESP32 开发板之间执行无线…

7.网络原理之TCP_IP(上)

文章目录 1.网络基础1.1认识IP地址1.2子网掩码1.3认识MAC地址1.4一跳一跳的网络数据传输1.5总结IP地址和MAC地址1.6网络设备及相关技术1.6.1集线器:转发所有端口1.6.2交换机:MAC地址转换表转发对应端口1.6.3主机:网络分层从上到下封装1.6.4主…

【新版】系统架构设计师 - 软件架构的演化与维护

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 软件架构的演化与维护考点摘要软件架构演化和定义面向对象软件架构演化对象演化消息演化复合片段演化约束演化 软件架构演化方式静态演化动态演化 软件架构演化原则软件架构演化评估方法大型网站架…

【Codeforces】 CF917D Stranger Trees

题目链接 CF方向 Luogu方向 题目解法 一个显然的转化是:恰好 k k k 条边不好求,所以把 恰好 转化成 至少,然后进行二项式反演 令 f i f_i fi​ 为恰好 k k k 条边 . . . ... ..., g i g_i gi​ 为至少 k k k 条边 . . . …

Ubuntu 20.04二进制部署Nightingale v6.1.0和Prometheus

sudo lsb_release -r可以看到操作系统版本是20.04,sudo uname -r可以看到内核版本是5.5.19。 sudo apt-get update进行更新镜像源。 完成之后,如下图: sudo apt-get upgrade -y更新软件。 选择NO,按下Enter。 完成如下&…

自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能

自定义注解实现Redis分布式锁、手动控制事务和根据异常名字或内容限流的三合一的功能 文章目录 [toc] 1.依赖2.Redisson配置2.1单机模式配置2.2主从模式2.3集群模式2.4哨兵模式 3.实现3.1 RedisConfig3.2 自定义注解IdempotentManualCtrlTransLimiterAnno3.3自定义切面Idempote…

问题记录 springboot 事务方法中使用this调用其它方法

原因: 因为代理对象中调用了原始对象的toString()方法,所以两个不同的对象打印出的引用是相同的

快速将iPhone大量照片快速传输到电脑的办法!

很多使用iPhone 的朋友要将照片传到电脑时,第一时间都只想到用iTunes 或iCloud,但这2个工具真的都非常难用,今天小编分享牛学长苹果数据管理工具的照片传输功能,他可以快速的将iPhone照片传输到电脑上,并且支持最新的i…

OpenCV实现模板匹配和霍夫线检测,霍夫圆检测

一,模板匹配 1.1代码实现 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]#图像和模板的读取 img cv.imread("cat.png") template cv.imread(r"E:\All_in\o…

【vue3】项目搭建

目录 简介脚手架引入axios引入sass引入element-plusvite.config.js路由配置全局状态管理完整main.js组合式API之Setup 简介 vue3:双向绑定改为ES6的Proxy;新的API风格,代码逻辑性更强、更易维护;性能提升,渲染更快、内…

JavaScript:立即执行函数

一、JS立即执行函数模式是一种语法,可以让你的函数在定义后立即被执行,这种模式本质上就是函数表达式(命名的或者匿名的),在创建后立即执行。 两种常见写法: 匿名函数包裹在一个括号运算符中,…

【数据库系统概论】关系数据库中的关系完整性

前言实体完整性参照完整性用户定义的完整性SQL Server中常用的完整性约束感谢 💖 前言 按照数据模型的三大要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。本篇文章将介绍这三部分内容中的第三部分即关系完整性。关于前两部分可…