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

论文笔记-WWWCompanion2024-LLM as Data Augmenters for Cold-Start Item Recommendation

论文笔记-WWW Companion 2024-Large Language Models as Data Augmenters for Cold-Start Item Recommendation

  • 大语言模型作为冷启动项目推荐的数据增强器
  • 摘要
  • 1.引言
  • 2.前言
  • 3.LLMs作为数据增强
    • 3.1增强数据生成
    • 3.2成对比较损失
  • 4.实验
    • 4.1实验设置
    • 4.2结果和分析
    • 4.3超参数实验
  • 5.总结

大语言模型作为冷启动项目推荐的数据增强器

论文: Large Language Models as Data Augmenters for Cold-Start Item Recommendation
代码: 无

摘要

传统推荐系统在没有历史交互的情况下难以推荐冷启动项目。为了解决这一问题,本文提出利用 LLM 作为数据增强工具,以弥补训练期间对冷启动项目的知识差距。

首先,使用 LLM 根据用户历史行为的文本描述和新商品描述推断用户对冷启动项目的偏好。然后,通过辅助的成对损失将增强的训练信号纳入下游推荐模型的学习中。在公共 Amazon 数据集上的实验证明了 LLM 能有效增强冷启动项目的训练信号,从而显著改善各种推荐模型对冷启动项目的推荐效果。

1.引言

基于 ID 的嵌入方法在推荐新内容和冷门内容时面临重大挑战,因为这些内容缺乏模型学习准确嵌入所需的交互数据,这就是冷启动问题。为了解决这一长期存在的问题,基于内容的推荐系统利用商品的元特征来辅助商品表示学习,即通过元特征的转换或其组合来替代基于 ID 的商品嵌入。利用 LLM 进行推荐需要对大型预训练模态编码器进行微调以适应推荐任务,这需要巨大的工作量。此外,针对每个用户请求提供 LLMs 或大型基础模型的延迟,通常超过推荐平台所期望的响应时间。

为了将 LLM 的能力转移到解决长期存在的推荐冷启动问题上,本文并不在服务阶段直接使用 LLM,而是探索 LLM 在训练阶段填补数据空白的潜力。通过这种与模型无关的方法,可以避免 LLM 推理的慢速 API 调用,并解决冷启动项目的数据稀疏问题。此外,增强过程作为数据预处理步骤,可以集成到任何工业规模的推荐系统中,为利用 LLM 的泛化能力提供了一种可扩展的方法。

本研究的主要贡献包括:

  • 提出了成对比较的提示方法,利用 LLM 基于用户的历史交互推断用户在商品对之间的偏好。

  • 将 LLM 生成的合成用户偏好与成对损失结合,作为常规推荐任务的补充。

  • 在两个真实世界的数据集上进行了实验,结果表明合成用户偏好可以显著提升冷启动项目的性能。

2.前言

U = { u 1 , u 2 , … , u G } U = \{ u_1, u_2, \ldots, u_G \} U={u1,u2,,uG} 为用户集, I warm = { i 1 , i 2 , … , i P } I_{\text{warm}} = \{ i_1, i_2, \ldots, i_P \} Iwarm={i1,i2,,iP} I cold = { i P + 1 , i P + 2 , … , i P + N } I_{\text{cold}} = \{ i_{P+1}, i_{P+2}, \ldots, i_{P+N} \} Icold={iP+1,iP+2,,iP+N} 分别表示平台上的热启动和冷启动项目。每个项目都映射到与其 ID 相关的可训练嵌入。生成个性化推荐主要是预测用户与项目之间的兼容性,从中检索与用户高度兼容的项目,以构成用户的独特推荐列表。

潜在因子模型通过相应的潜在因子向量的点积来近似用户与项目之间的兼容性。设 v u ​ v_u​ vu v i ​ v_i​ vi 分别表示用户 u u u 在项目 i i i 上的潜在因子向量,潜在因子模型通过 y ^ u , i = v u T v i \hat{y}_{u,i} = v_u^T v_i y^u,i=vuTvi 计算它们的兼容性。然而,冷启动项目没有训练信号来获取 v i v_i vi。为了解决这一知识差距,本文提出生成合成数据以模拟用户对冷启动项目的交互。

3.LLMs作为数据增强

3.1增强数据生成

本文直接使用 PaLM 系列模型的生成能力,而不进行微调。遵循相关研究,将用户交互的项目描述放入提示中。具体而言,给定训练集中的用户查询 U i ​ U_i​ Ui,采用描述性项目标题来表示每个历史交互。为了从这个描述性的用户查询中推断用户的偏好,可以选择询问用户是否希望获取特定的冷启动项目(逐点方式),或者询问他们更喜欢冷启动项目 A 还是 B(成对方式)。

研究表明,大模型在校准的逐点相关性估计上表现不佳,但在成对比较任务中展现了更好的能力。因此,本文探讨利用 LLM 生成冷启动项目之间的成对偏好,给定用户查询。具体来说,在冷启动项目中随机抽取一对项目( A , B A, B A,B),并构建提示以检索用户对 A A A B B B 的偏好,如图1。
在这里插入图片描述
提示中的成对比较确保从 LLM 调用中获取训练信号,以指示用户对两个冷启动项目的偏好。相比之下,针对用户随机冷启动项目的逐点推断更可能导致负标签(不感兴趣),而正标签则较为稀少。

3.2成对比较损失

为了在训练过程中结合这一增强信号,将冷启动项目对的成对偏好预测作为辅助任务,补充常规推荐任务。LLM 返回的答案被视为正项( pos \text{pos} pos),而另一个项目则为负项( neg \text{neg} neg)。假设用户 u u u 更喜欢冷启动项目 pos \text{pos} pos 而非冷启动项目 neg \text{neg} neg,可以得到以下基于贝叶斯个性化排序(BPR)损失的成对损失:
在这里插入图片描述
其中 σ \sigma σ 是 Sigmoid 激活函数。然后,将这一成对 BPR 损失加到通常用于训练推荐模型的损失中。成对损失将梯度反向传播到正负冷启动项目的嵌入。

4.实验

4.1实验设置

数据集:Amazon的Beauty and Sports

Backbones:NeuMF和 SASRec

三个变体:

  1. w/o aug:不带增强的方法,使用原始训练数据训练推荐系统。

  2. content-based:基于内容的方法,采用词袋表示项目,结合其类别和标题,这是一种处理冷启动项目的常见方法。

  3. w/ aug:带增强的方法,结合了 LLM 生成的增强,并在训练过程中补充了成对比较损失。

4.2结果和分析

在这里插入图片描述

结论:

  1. 通过成对损失学习到的冷启动项目的增强训练信号,可以促进 NeuMF 和 SASRec 的表示学习,并显著提升冷启动推荐的性能。

  2. 增强信号和成对比较损失在较高 K 值时提高了召回率,因为它们使模型能够对更广泛的冷启动项目进行排序,包括一些相关性较低的项目。

4.3超参数实验

在这里插入图片描述

结论:

  1. 图 2 (a) 表示模型规模影响增强的性能。众所周知,较大的模型能够更好地推理用户的历史行为,并更准确地推断用户偏好。

  2. 图 2 (b) 表示通过生成更多用户查询的增强训练信号,可以进一步提升冷启动推荐的性能。尽管在某个点(40%)之后,添加更多的合成数据并未带来进一步的改善。

5.总结

解决用户与冷启动项目之间缺乏交互的问题对提升推荐效果至关重要。本文提出使用 LLM 来为推荐系统中的冷启动项目生成增强训练信号,使用成对比较提示,利用 LLM 推断用户对一对冷启动项目的偏好。这种与模型无关的设计为冷启动项目提供了有用的训练信号,而不会在服务时引入额外的计算开销。对公共数据集的实验表明,该方法生成了有效的增强训练信号,并改善了冷启动项目的推荐效果。

相关文章:

论文笔记-WWWCompanion2024-LLM as Data Augmenters for Cold-Start Item Recommendation

论文笔记-WWW Companion 2024-Large Language Models as Data Augmenters for Cold-Start Item Recommendation 大语言模型作为冷启动项目推荐的数据增强器摘要1.引言2.前言3.LLMs作为数据增强3.1增强数据生成3.2成对比较损失 4.实验4.1实验设置4.2结果和分析4.3超参数实验 5.总…...

Java 语法新特性(Records、Pattern Matching、Sealed Classes)深度解析(11/17/21)✨

一、Records(Java 16) 📝 核心价值:简化不可变数据载体的定义 // 传统POJO vs Record public record User(String name, int age) {} // 自动生成:构造方法/equals()/hashCode()/toString() User user new User(&qu…...

QUdpSocket的readyRead信号只触发一次

问题 QUdpSocket的readyRead信号只触发一次。 原因 on_readyRead槽函数里必须读出现有数据后&#xff0c;才能触发新的事件。 解决办法 在on_readyRead槽函数里取出数据。 void MainWindow::on_readyRead() {qDebug() << "on_readyRead in";while (m_udp…...

jsherp importItemExcel接口存在SQL注入

一、漏洞简介 很多人说管伊佳ERP&#xff08;原名&#xff1a;华夏ERP&#xff0c;英文名&#xff1a;jshERP&#xff09;是目前人气领先的国产ERP系统虽然目前只有进销存财务生产的功能&#xff0c;但后面将会推出ERP的全部功能&#xff0c;有兴趣请帮点一下 二、漏洞影响 …...

测试data_management函数

测试data_management函数 这是我最近正在开发的AI工具信息平台的部门功能模块测试&#xff0c;基于streamlit架构。整理出来与大家分享&#xff0c;也为我以后自己回溯找到资源。 为了测试 data_management 函数并结合 Excel 文件中的 “Tools” 表单内容&#xff0c;我们需要…...

微信小程序---计划时钟设计与实现

微信小程序-计划时钟已上线,欢迎各位小伙伴的测试和使用~(微信小程序搜计划时钟即可使用) 在这篇博客中,我们将探讨如何在微信小程序中设计和实现一个任务管理功能,该功能允许用户添加、删除和查看任务。任务管理系统的核心是基于日期和时间的任务管理,可以设置任务的开…...

深度学习之图像回归(二)

前言 这篇文章主要是在图像回归&#xff08;一&#xff09;的基础上对该项目进行的优化。&#xff08;一&#xff09;主要是帮助迅速入门 理清一个深度学习项目的逻辑 这篇文章则主要注重在此基础上对于数据预处理和模型训练进行优化前者会通过涉及PCA主成分分析 特征选择 后…...

深入理解HttpSecurity的设计

一、HttpSecurity的应用 在前章节的介绍中我们讲解了基于配置文件的使用方式,也就是如下的使用。 也就是在配置文件中通过 security:http 等标签来定义了认证需要的相关信息,但是在SpringBoot项目中,我们慢慢脱离了xml配置文件的方式,在SpringSecurity中提供了HttpSecurity…...

15增减字符串匹配(贪心)思路解析+源码

文章目录 题目[](https://leetcode.cn/problems/di-string-match/)算法原理贪心证明源码总结题目 假设s="I D I D"也就是增降增降,在0-4中,每两个数存在这种方式数组为【1, 3,2, 4,0】;(如下图) 算法原理 解法:贪心 1.当遇到“I”:选择当前最小的那个数 2…...

Java NIO与传统IO性能对比分析

Java NIO与传统IO性能对比分析 在Java中&#xff0c;I/O&#xff08;输入输出&#xff09;操作是开发中最常见的任务之一。传统的I/O方式基于阻塞模型&#xff0c;而Java NIO&#xff08;New I/O&#xff09;引入了非阻塞和基于通道&#xff08;Channel&#xff09;和缓冲区&a…...

14.7 LangChain Experimental 模块解析:解锁 Auto-GPT 开发新范式

LangChain Experimental 模块解析:解锁 Auto-GPT 开发新范式 关键词:LangChain Experimental、Auto-GPT 实现、自主智能体开发、Agent 架构设计、实验性功能实践 1. LangChain Experimental 模块的定位与核心能力 模块定位解析: #mermaid-svg-4xz2OlZBUFjkBmqw {font-fami…...

wps中的js开发

严格区分大小写 /*** learn_js Macro*/ function test() {Range(D7).Value2Selection.Value2; // Selection.formula "100" }function Workbook_SheetSelectionChange(Sh, Target) {if(Sh.Name Sheet1) {test();}}function test2() {// 把I4单元格及其周边有数的单…...

day16_推荐系统和总结

文章目录 day16_推荐系统和总结一、推荐实现1、基于流行度推荐&#xff08;掌握&#xff09;1.1 近期热门商品推荐1.2 个人热门商品推荐 2、基于隐语义模型的协同过滤推荐&#xff08;了解&#xff09;2.1 ALS算法介绍2.2 推荐代码 3、基于物品的协同过滤推荐&#xff08;了解&…...

一文说清楚编码、摘要、加密、公钥、私钥、解密、签名、验签

编码 对信息进行编码&#xff0c;没有信息损失&#xff0c;任何人都能通过编码方式对信息进行解码。例如 ASCII 码&#xff0c;base64 编码。 例如下面是 ASCII 编码表&#xff1a; ​ 摘要 对信息计算摘要值&#xff0c;有信息损失&#xff0c;例如 md5 摘要&#xff0c;sh…...

Repeated Sequence

记suma[1]a[2]a[3]...a[n]。 该序列以a[1]&#xff0c;a[2]&#xff0c;a[3]....a[n]为循环节&#xff0c;明显的&#xff0c;问题可转化为:s%sum是否为该序列的某个连续子序列和。 断环为链。将a复制一份。 枚举a[i]为左端点的所有区间的和。再查找s是否存在。二分O&#x…...

CT dicom 去除床板 去除床位,检查床去除

1. 前言 医院拍摄患者CT与MRI 图像&#xff0c; 但是CT图像中就会出现检查床的区域&#xff0c;来看CT扫描设备是什么样子的&#xff0c;红色标出区域 可以在图中看到&#xff0c;在头部位置安装有固定头部的类似支架的东西&#xff0c;这个东西拍摄出来时什么样子呢&#xff…...

react 踩坑记 too many re-renders.

报错信息&#xff1a; too many re-renders. React limits the number of randers to prevent an infinite loop. 需求 tabs只有特定标签页才展示某些按钮 button要用 传递函数引用方式 ()>{} *还有要注意子组件内loading触发 导致的重复渲染...

YOLOv8与BiFormer注意力机制的融合:提升多场景目标检测性能的研究

文章目录 1. YOLOv8的改进背景2. BiFormer注意力机制的核心原理2.1 Bi-level Attention结构2.2 路由策略与加权融合 3. YOLOv8与BiFormer的结合3.1 YOLOv8架构概述3.2 BiFormer与YOLOv8的融合策略 4. 实现代码示例5. 结果分析与实验5.1 数据集与实验设置5.2 实验结果 6. 进一步…...

Ubuntu24.04LTS的下载安装超细图文教程(VMware虚拟机及正常安装)

&#x1f638;个人主页&#x1f449;&#xff1a;神兽汤姆猫 &#x1f4d6;系列专栏&#xff1a;开发语言环境配置 、 Java学习 、Java面试 、Markdown等 学习上的每一次进步&#xff0c;均来自于平时的努力与坚持。 &#x1f495;如果此篇文章对您有帮助的话&#xff0c;请点…...

c++贪心系列

各位小伙伴们新年好呀&#xff0c;这是年后的第一篇文章&#xff0c;那么还是一样&#xff0c;我们继续学习这个贪心算法。 第一题 题目链接 2418. 按身高排序 - 力扣&#xff08;LeetCode&#xff09; 题目解析 代码原理 方法一 1.先创建一个下标数组&#xff0c;将两个数…...

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

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

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...