【论文笔记】On Generative Agents in Recommendation
论文信息
标题: On Generative Agents in Recommendation
会议: SIGIR '24 —— CCF-A
作者: An Zhang, Yuxin Chen, Leheng Sheng
文章链接: On Generative Agents in Recommendation
代码链接: On Generative Agents in Recommendation
文章领域: LLM-Agents,LLM4Rec
论文介绍
研究背景
推荐系统中离线指标与线上效果的长期脱节问题制约了行业发展。本文提出基于大语言模型的用户模拟器 Agent4Rec,模拟真实用户行为,弥合离线与在线评估的鸿沟。
主要贡献
-
开发了Agent4Rec,一个电影推荐模拟器,利用LLM授权的生成代理来模拟和推断用户个性化的偏好和行为模式。这些代理,其精心设计的模块量身定制的建议设置,使人类认知机制的仿真。
-
深入到Agent4Rec的能力和局限性进行广泛的评估生成代理为基础的模拟推荐系统。我们采用统计指标和测试的用户对齐评估,并提出了一个双重的并行评估,同时考虑离线性能和模拟反馈。
-
使用Agent4Rec作为数据收集工具,我们复现了一个普遍的问题-过滤器气泡效应( the filter bubble effect)-并揭示了嵌入在推荐系统场景中的潜在因果关系。这些观察结果展示了Agent 4 Rec激发新研究方向的潜力。
方法创新
论文的所有创新都围绕 Agent4Rec 框架。 该框架分为两部分 Generative agents (生成式智能体)和 Recommendation Environment (推荐环境)。下图展示了Agent4Rec框架的概述,该框架是通过修改LangChain开发的,所有代理都由ChatGPT的gpt-3.5-turbo版本提供支持。
【任务定义】 给定用户 u ∈ U u \in \mathcal{U} u∈U 和物品 i ∈ I i \in \mathcal{I} i∈I,令 y u i = 1 y_{ui} = 1 yui=1 表示用户 u u u 与物品 i i i 发生过交互,并为其评分 r u i ∈ { 1 , 2 , 3 , 4 , 5 } r_{ui} \in \{1, 2, 3, 4, 5\} rui∈{1,2,3,4,5};反之, y u i = 0 y_{ui} = 0 yui=0 表示用户未采纳该物品。每个物品 i i i 的质量可通过公式 R i = ˙ 1 ∑ u ∈ U y u i ∑ u ∈ U y u i ⋅ r u i R_i \dot{=} \frac{1}{\sum_{u \in \mathcal{U}} y_{ui}} \sum_{u \in \mathcal{U}} y_{ui} \cdot r_{ui} Ri=˙∑u∈Uyui1∑u∈Uyui⋅rui表示,其流行度记为 P i P_i Pi。此外,物品的类别集合为 G i ⊂ G G_i \subset \mathcal{G} Gi⊂G。模拟器的核心目标是忠实提炼用户 u u u 对未被见过的推荐物品 i i i 的真实偏好,例如 y ^ u i \hat{y}_{ui} y^ui 和 r ^ u i \hat{r}_{ui} r^ui。
生成式智能体的三大核心模块设计
设计忠实地模仿用户个性化偏好和人类认知推理的代理架构。
-
用户画像模块 (User Profile):该模块包含用户的社会特征与独特品味两部分。基于真实数据集(MovieLens-1M, Steam, AmazonBook)初始化用户的社会特征(social traits)与独特品味(unique tastes)。社会特征包含三个特性,活跃度、从众性、多样性 (activity, conformity, and diversity)。
注: 在Agent4Rec中,某些个人标识符,如姓名、性别、年龄和职业,被故意掩盖,以确保广泛的适用性并解决隐私问题。
-
活跃度:活跃度量化了用户与推荐项目互动的频率和广度,区分了广泛观看和评价多个项目的用户和将自己限制在最小范围内的用户。
-
一致性:深入研究了用户的评分与平均项目评分的一致程度,区分了具有独特观点的用户和观点与流行情绪密切相关的用户。
-
多样性:反映了用户对各种项目类型的倾向或对特定类型的倾向。
为了用自然语言对用户的个性化偏好进行编码,我们从每个用户的观看历史中随机选择25个项目。将用户评级为3或以上的项目归类为“喜欢”,而评级低于3的项目则被视为“不喜欢”。然后,我们利用ChatGPT提取和总结用户表现出的独特品味和评分模式。这些个性化的商品口味作为第二个组成部分被纳入用户配置文件。
-
-
记忆系统模块(Memory Module):人类的记忆分为两类
-
事实记忆(Factual Memory):记录用户与推荐系统的交互行为(如浏览、评分)。
-
情感记忆(Emotional Memory):捕捉用户情感状态(如满意度、疲劳度),并设计情感驱动的反思机制。
其中,情感记忆是个人历史的核心,对决策的影响更大。尽管对 agent 中有关于memory的研究,但情感记忆在很大程度上被忽视了。
我们以两种格式存储记忆:自然语言描述和向量表示。前者是为了便于人类理解而设计的。而向量表示则为高效的内存检索和提取做好了准备。
为了帮助代理与推荐环境交互,我们引入了三种内存操作:内存检索、内存写入和内存反射。
-
内存检索 (Memory Retrieval): 此操作有助于代理从其存储模块中提取最相关的信息。
-
内存写入(Memory Writing): 此操作可以将代理模拟的交互和情绪记录到记忆流中。
-
内存反射(Memory Reflection): 鉴于情绪对用户行为的影响,我们引入了一种情绪驱动的自我反思机制。这与传统的智能体记忆设计(如自我总结、自我验证 和 自我修正)形成对比,后者主要关注归纳或推理高级事实知识,往往忽视情感因素。当智能体的行为超过预设次数时,它会触发反思过程。
批注: 就是基于向量存储的种种操作。
-
-
行为模拟模块(Action Module):在Agent4Rec中,我们设计了一个专门为推荐领域量身定制的动作模块,其中包括两大类动作:
-
兴趣驱动行为(Taste-driven Actions):浏览、评分、生成观看后反馈。
-
情感驱动行为(Emotion-driven Actions):退出系统、评价推荐列表、参与访谈。
-
推荐环境设计
构建一个确保其可靠性、可扩展性和适应性的推荐环境。
-
项目简介生成 (Item Profile Generation): 我们通过构建物品档案捕捉关键特征(质量、流行度、类型、摘要)。质量基于历史评分,流行度基于评论数,类型和摘要由大语言模型(LLM)生成。目标包括模拟真实用户推荐场景,并检测LLM对物品的潜在幻觉(如错误分类)。方法上,采用小样本学习,仅通过物品标题要求LLM将其分类至18种预设类型并生成摘要。若LLM分类与真实数据一致,则表明其具备相关知识;分类不一致的物品将被剔除,以减少幻觉风险,确保代理模拟用户行为的可信度。
-
逐页推荐场景 (Page-by-Page Recommendation Scenario): 我们的模拟器反映了 Netflix、YouTube 和豆瓣等真实世界推荐平台的运行情况,以逐页方式运行。用户最初会看到每个页面上的项目推荐列表。根据用户的互动、偏好和反馈,后续页面可设置为进一步定制推荐,以获得更精致的用户体验。
-
推荐算法设计 (Recommendation Algorithm Designs): 在 Agent4Rec 中,推荐算法的结构是一个独立的模块,核心重点是可扩展性。这种设计包含了预先实施的基于协同过滤的策略,包括随机、最流行的矩阵因式分解(MF)、LightGCN 和 MultVAE。此外,它还采用了开放式接口,使研究人员和从业人员能够毫不费力地集成外部推荐算法。这种适应性确保了 Agent4Rec 在未来可以成为一个多功能平台,用于综合评估和收集有价值的用户反馈。
论文实验
采用基于协同过滤的推荐算法,通过分页交互模式开展系统性评估。RQ1:LLM智能体能在多大程度上真实模拟人类在推荐系统中的自主行为?
1. 用户对齐评估(Agent Alignment Evaluation)
1.1 用户口味对齐(User Taste Alignment)
- 目标:验证生成代理是否能准确识别用户偏好的物品。
- 实验设置:
- 使用三个真实数据集(MovieLens-1M、Steam、Amazon-Book),每个代理随机分配20个物品(已交互与未交互的比例为1:m,m∈{1,2,3,9})。
- 评估指标:准确率(Accuracy)、召回率(Recall)、精确率(Precision)、F1分数。
- 结果:
- 代理在准确率(65%)和召回率(75%)上表现稳定,但精确率和F1分数随干扰项增加显著下降。
- 归因:LLM的幻觉导致代理倾向于固定选择一定数量的物品,而非完全遵循真实偏好。
1.2 评分分布对齐(Rating Distribution Alignment)
- 目标:验证代理生成的评分分布是否与真实数据(MovieLens-1M)一致。
- 结果:
- 代理生成的评分分布与真实数据高度一致(评分4占主导,低分1-2较少)。
- 局限性:代理极少给出1-2分,因LLM基于电影先验知识提前过滤低质量内容。
1.3 社交特质对齐(Social Traits Alignment)
- 目标:验证代理的社交特质(活跃度、从众性、多样性)是否影响行为。
- 方法:
- 根据MovieLens统计数据将代理分为高、中、低三个层级。
- 消融实验对比有无社交特质的代理行为差异。
- 结果:
- 社交特质显著影响行为(如活跃度高的代理互动更多)。
- 例外:多样性特质区分度低,可能与MovieLens电影类型重叠有关。
2. 推荐策略评估(Recommendation Strategy Evaluation)
- 目标:比较不同推荐算法在模拟环境中的表现。
- 方法:
- 使用协同过滤算法(随机、热门、MF、LightGCN、MultiVAE)。
- 评估指标:平均观看率(( \overline{P}{view} ))、平均点赞数(( \overline{N}{like} ))、用户满意度(( \overline{S}_{sat} ))。
- 结果:
- LightGCN表现最优(满意度3.85),算法推荐显著优于随机和热门推荐。
- 结论:模拟器能有效区分推荐算法优劣,支持A/B测试替代方案。
3. 逐页推荐增强(Page-by-Page Recommendation Enhancement)
- 目标:模拟实时反馈驱动的推荐改进。
- 方法:
- 将代理观看/未观看的影片加入训练数据,重新训练推荐算法。
- 评估指标:Recall@20、NDCG@20、用户满意度。
- 结果:
- 观看数据增强后,算法性能提升(如MF的Recall@20从0.1506升至0.1570)。
- 未观看数据导致用户体验下降,验证了反馈机制的有效性。
4. 案例研究:感觉访谈(Case Study of Feeling Interview)
- 目标:通过访谈获取人类可理解的代理反馈。
- 结果示例:
- 代理指出推荐系统倾向于推荐热门电影,忽略多样性需求。
- 访谈反馈补充了传统指标,增强了对推荐系统的可解释性。
5. 扩展实验:模拟现实问题
RQ2: Agent4Rec能否就推荐领域中未解决的问题提供一些见解?
5.1 过滤泡沫效应(Filter Bubble Effect)
-
目标:验证模拟器能否复现推荐内容同质化现象。
-
方法:
- 分四轮迭代训练MF推荐算法,评估内容多样性 ( N ‾ g e n r e s 、 P ‾ t o p 1 − g e n r e ) ( \overline{N}_{genres}、 \overline{P}_{top1-genre} ) (Ngenres、Ptop1−genre)。
-
结果:
- 随着迭代次数增加,推荐内容多样性下降 ( N ‾ g e n r e s 减少) (\overline{N}_{genres} 减少) (Ngenres减少),主导类型占比上升 ( P ‾ t o p 1 − g e n r e 增加 ) ( \overline{P}_{top1-genre} 增加) (Ptop1−genre增加)。成功复现了过滤泡沫效应。
5.2 因果发现(Causal Discovery)
- 目标:挖掘推荐系统中的潜在因果关系。
- 方法:
- 收集电影质量、流行度、曝光率、观看次数、评分数据。
- 使用DirectLiNGAM算法构建因果图。
- 结果:
- 电影质量(主因)和流行度(次因)共同影响评分。
- 流行度偏差通过反馈循环放大(高流行度电影获得更多曝光)。
6. 实验总结与意义
- 优势:
- Agent4Rec能高保真模拟用户行为,支持多维度评估(传统指标+模拟反馈)。
- 成功复现现实问题(过滤泡沫效应),并揭示因果机制。
- 局限性:
- LLM幻觉导致低分模拟困难、行为多样性不足。
- 动作空间有限(未考虑社交网络、广告等外部因素)。
- 未来方向:
- 扩展动作空间,优化LLM微调以减少幻觉。
- 结合在线数据提升模拟真实性。
局限性和未来工作
-
数据的限制: Agent4Rec仅利用离线数据集实现,主要受两个关键因素的限制。首先,LLM需要关于推荐项目的先验知识,这使得大多数离线数据集(只有ID或缺乏详细的项目描述)不适合这项任务。此外,虽然在线数据无疑与模拟器更自然地对齐,为评估其有效性提供了一个无偏见的视角,但获取这些数据带来了相当大的挑战。
-
有限的行为空间: Agent4Rec的行动空间目前有限,忽略了影响用户决策的关键因素,如社交网络、广告和口碑营销。虽然这种简化有助于在简单场景下对LLM授权的代理进行可靠的评估,但它也在现实世界的用户决策过程中引入了差距。我们未来工作的一个关键方向是包含更广泛的影响因素,以更好地捕捉用户行为的多面性,确保模拟更普遍地代表推荐场景。
-
LLM的幻觉: 在模拟中偶尔会观察到幻觉,例如LLM未能准确模拟人类用户对采用的项目提供不利评级,制造不存在的项目并对其进行评级,或者不遵守所需的输出格式。这种不一致性可能会导致模拟结果不准确。鉴于这些观察结果,我们未来的目标是微调LLM,专门用于模拟推荐场景中的用户行为,以提高模拟器的稳定性和精度。
模拟实验的费用: 请注意,所有实验均由 ChatGPT-3.5 支持,涉及 1000 个用户的完整模拟将花费约 16 美元(0.016 美元/用户)。
相关文章:

【论文笔记】On Generative Agents in Recommendation
论文信息 标题: On Generative Agents in Recommendation 会议: SIGIR 24 —— CCF-A 作者: An Zhang, Yuxin Chen, Leheng Sheng 文章链接: On Generative Agents in Recommendation 代码链接: On Generative Agents…...
使用 Spring Boot 和 Canal 实现 MySQL 数据库同步
文章目录 前言一、背景二、Canal 简介三、主库数据库配置1.主库配置2.创建 Canal 用户并授予权限 四.配置 Canal Server1.Canal Server 配置文件2.启动 Canal Server 五.开发 Spring Boot 客户端1. 引入依赖2. 配置 Canal 客户端3. 实现数据同步逻辑 六.启动并测试七.注意事项八…...

vue3 在element-plus表格使用render-header
在vue2中 element表格render-header 源码是有返回h()函数的 在vue3 element-plus 表格源码 render-header函数没有返回h函数了 所以需要用render-header方法中创建虚拟DOM节点的话需要引用h方法 <el-table-column header-align"right" align"right" …...

算法——结合实例了解Minimax算法(极小化极大算法)
计算机科学中最有趣的事情之一就是编写一个人机博弈的程序。有大量的例子,最出名的是编写一个国际象棋的博弈机器。但不管是什么游戏,程序趋向于遵循一个被称为Minimax算法,伴随着各种各样的子算法在一块。本篇将简要介绍 minimax 算法&#…...

使用 DeepSeek 生成商城流程图
步骤 1.下载 mermaid 2.使用 DeepSeek 生成 mermaid 格式 3.复制内容到 4.保存备用。 结束。...
什么是GraphQL?
如果你在寻找漏洞利用方式,请参考下面的文章 GraphQL API 漏洞 |网络安全学院 GitHub - swisskyrepo/PayloadsAllTheThings: A list of useful payloads and bypass for Web Application Security and Pentest/CTF GraphQL 查询(Query) GraphQL 既不是…...
Spring Boot 的约定优于配置,你的理解是什么?
Spring Boot 的“约定优于配置”:开发效率的革命性提升 在软件开发中,开发者常常需要花费大量时间编写繁琐的配置文件,尤其是在传统的 Java EE 或 Spring 框架中。而 Spring Boot 通过“约定优于配置”(Convention Over Configur…...

C#开源大型商城系统之B2B2C+O2O一体化_OctShop
一、应用背景与引言 在当今数字化商业的浪潮中,电子商务平台的构建成为众多企业拓展业务、提升竞争力的关键举措。C# 语言以其强大的功能、高效的性能以及良好的开发框架支持,在商城系统开发领域占据着重要地位。独立开源的大型 C# 商城系统,…...
gitte远程仓库修改后,本地没有更新,本地与远程仓库不一致
问题 :gitte远程仓库修改后,本地没有更新,本地与远程仓库不一致 现象: [cxqiZwz9fjj2ssnshikw14avaZ rpc]$ git push Username for https://gitee.com: beihangya Password for https://beihangyagitee.com: To https://gitee.c…...
【对比】Pandas 和 Polars 的区别
Pandas vs Polars 对比表 特性PandasPolars开发语言Python(Cython 实现核心部分)Rust(高性能系统编程语言)性能较慢,尤其在大数据集上(内存占用高,计算效率低)极快,利用…...

el-input无法输入0.0001的小数,自动转换为0在vue3中的bug
今天遇到个bug,el-input中只能输入0.1或者输入0.1再加上00成为0.001,不能直接输入0.001,否则自动转换为0。需要去掉 v-model.number后面的 .number 源代码: <el-table-column label"实发数量" width"120"…...

Ubuntu 下 systemd 介绍
系列文章目录 Linux内核学习 Linux 知识(1) Linux 知识(2) WSL Ubuntu QEMU 虚拟机 Linux 调试视频 PCIe 与 USB 的补充知识 vscode 使用说明 树莓派 4B 指南 设备驱动畅想 Linux内核子系统 Linux 文件系统挂载 QEMU 通过网络实现…...
BERT文本分类(PyTorch和Transformers)畅用七个模型架构
(PyTorch)BERT文本分类:七种模型架构 🌟 1. 介绍 使用BERT完成文本分类任务(如情感分析,新闻文本分类等等)对于NLPer已经是很基础的工作了!虽说已迈入LLM时代,但是BERT…...

两步在 Vite 中配置 Tailwindcss
第一步:安装依赖 npm i -D tailwindcss tailwindcss/vite第二步:引入 tailwindcss 更改配置 // src/main.js import tailwindcss/index// vite.config.js import vue from vitejs/plugin-vue import tailwindcss from tailwindcss/viteexport default …...
【vmware虚拟机安装教程】
以下是在VMware Workstation Pro上安装虚拟机的详细教程: 准备工作 下载VMware Workstation Pro 访问VMware官网下载并安装VMware Workstation Pro(支持Windows和Linux系统)。安装完成后,确保已激活软件(试用版或正式…...

文字转语音(三)FreeTTS实现
项目中有相关的功能,就简单研究了一下。 说明 FreeTTS 是一个基于 Java 的开源文本转语音(TTS)引擎,旨在将文字内容转换为自然语音输出。 FreeTTS 适合对 英文语音质量要求低、预算有限且需要离线运行 的场景,但若需…...

string类详解(上)
文章目录 目录1. STL简介1.1 什么是STL1.2 STL的版本1.3 STL的六大组件 2. 为什么学习string类3. 标准库中的string类3.1 string类3.2 string类的常用接口说明 目录 STL简介为什么学习string类标准库中的string类string类的模拟实现现代版写法的String类写时拷贝 1. STL简介 …...

Visual Studio Code使用ai大模型编成
1、在Visual Studio Code搜索安装roo code 2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用...

外贸跨境订货系统流程设计、功能列表及源码输出
在全球化的商业环境下,外贸跨境订货系统对于企业拓展国际市场、提升运营效率至关重要。该系统旨在为外贸企业提供一个便捷、高效、安全的订货平台,实现商品展示、订单管理、物流跟踪等功能,满足跨境业务的多样化需求。以下将详细阐述外贸订货…...

TraeAi上手体验
一、Trae介绍 由于MarsCode 在国内由于规定限制,无法使用 Claude 3.5 Sonnet 模型,字节跳动选择在海外推出 Trae,官网:https://www.trae.ai/。 二、安装 1.下载安装Trae-Setup-x64.exe 2.注册登录 安装完成后,点击登…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...