WWW 2025 | 中南、微软提出端到端双重动态推荐模型,释放LLM在序列推荐中的潜力...

c17357158e6a8326594e33a8f7c51032.gif

©PaperWeekly 原创 · 作者 | 殷珺

单位 | 中南大学硕士研究生

研究方向 | 大语言模型、推荐系统

16020df88163a10cacb01ceace2498a0.png

论文题目:

Unleash LLMs Potential for Sequential Recommendation by Coordinating Dual Dynamic Index Mechanism

论文链接:

https://openreview.net/pdf?id=GE71TxvTH3

代码链接:

https://github.com/Esperanto-mega/ED2

论文录用:

The ACM Web Conference Research Track 2025 (Oral)

21c822ddf64cd9548f874319316df9b7.png

摘要

由于大型语言模型(Large Language Models,LLMs)在语义理解和逻辑推理方面表现出前所未有的能力,它们在下一代序列推荐系统(Recommender Systems,RSs)的开发中展现出了巨大的潜力。

然而,现有的基于 LLM 的序列推荐系统大多将索引生成与序列推荐分离,这导致语义信息与协同信息的融合不够充分。此外,对用户相关信息的忽视限制了基于 LLM 的序列推荐系统对高阶用户-物品交互模式的挖掘。

为了解决上述问题,我们提出了端到端双重动态(End-to-End Dual Dynamic, ED2)推荐模型,这是首个采用双重动态索引机制的基于 LLM 的序列推荐系统。该机制不仅能够将索引生成和序列推荐整合到统一的 LLM 主干流程中,还使得基于 LLM 的序列推荐系统能够有效利用用户相关信息。

具体而言,为了提升 LLM 对双重动态索引的理解能力,我们提出了一种多粒度 Token 调节器,该调节器基于 LLMs 的语义知识,在多个表示粒度上构建对齐监督。此外,我们特别设计了用户集合数据及一系列新颖的指令微调任务,以捕捉高阶用户-物品交互模式。

在三个公开数据集上的广泛实验表明,ED2 的性能优越,在命中率(Hit-Rate)上平均提升 19.62%,在归一化折损累计增益(NDCG)上平均提升 21.11%。

395f2c5d1ec441259bff60455bbd615a.png

动机

dabd7f1fafb2c9c0334a1496bab76d0a.png

尽管取得了显著成就,当前基于 LLM 的序列推荐系统仍然面临以下局限:

(i)静态索引机制限制了 LLM 对语义信息和协同信息的融合。如图 1b 所示,现有的基于 LLM 的序列推荐系统大多采用静态索引机制,将索引生成过程与序列推荐过程分离。

在推荐系统优化过程中,静态索引保持不变,因此无法考虑物品之间的协同相似性。例如,电影《变形金刚》(2007年7月3日)与教学视频《Transformer详细讲解》(2021年10月28日)在文本内容上高度相似,但在用户交互记录中的重叠度却极低。 

(ii)忽视用户相关信息,限制了 LLM 对高阶用户-物品交互模式的挖掘。如图 1b 所示,大多数主流的基于 LLM 的序列推荐系统(如 FDSA、TIGER 和 LC-Rec)仅依赖物品相关信息(即物品文本内容和交互物品序列)进行下一个物品的预测,而不考虑用户相关信息。这使得基于 LLM 的序列推荐系统难以捕捉和利用高阶用户-物品交互模式。

在传统的序列推荐系统中,高阶用户-物品交互模式至关重要,并对推荐结果有着巨大贡献。例如,用户共同购买模式(co-purchase pattern)能够识别出具有相似兴趣的用户,而用户偏好模式(user preference pattern)则反映了用户在长时间跨度上的一致性喜好。

4526cf81e087061822cd22070dc12949.png

方法

9b00d034087626d3240d99dfe9e1ff72.png

3.1 端到端双重动态语义推荐系统

端到端双重动态(ED2)推荐模型由共享的 LLM 主干网络和双重动态索引生成器组成。共享的 LLM 主干网络负责理解用户/物品的文本特征,并推理序列推荐结果。双重动态索引生成器能够将 LLM 主干网络提供的用户/物品表示量化为离散索引。

具体而言,语义信息首先在 LLM 主干网络的帮助下从文本内容中提取,然后通过双重动态索引生成器压缩为紧凑的索引,最终通过面向序列推荐的微调与协同信息融合。

3.1.1 语义信息提取

为了充分利用与用户和物品相关的语义信息,我们基于它们的文本特征初始化用户/物品表示。

对于每个用户 及其交互序列 ,我们查找并组织对应的文本特征,形成集合 。在 LLM 主干网络的文本编码器 中,LLM 的分词器(Tokenizer)首先将文本内容转换为标记索引(token indices),然后标记嵌入层(token embedding layer)将标记索引投影为标记嵌入(token embeddings)。

最终,LLM 基于其内在的语义知识,将标记嵌入转换为语义表示。语义信息提取过程可以表示为:

d1bbfb7b93bcbced51908f9515ae9288.png

其中,d 表示 LLM 的隐藏层特征维度。

3.1.2 双重动态语义索引生成

基于 LLM 主干网络文本编码器提取的语义表示,双重动态索引生成器将其中的语义信息压缩为离散索引。由于双重动态索引的离散性,下游的 LLM 主干推荐器能够直接生成推荐结果的索引,从而充分激发 LLM 主干的自然语言生成能力。

通常,每个用户/物品都与一个唯一标识符(如 <user_9974>、<item_161>)相关联。一种朴素的策略是将所有唯一标识符直接添加到 LLM 词表中,但这种方法会导致词表大小随用户和物品数量线性增长。

借鉴序列量化(sequential quantization)技术,我们在设计双重动态索引生成器式采用了分层架构,通过 M 个索引标记(每个标记有 N 种可能取值)的组合来表示每个用户、物品。

例如,如图 2 中双重动态索引生成阶段所示,物品 <item_5175> 可表示为 =<a2,b4,c5,d7>,其中 M=4,N=8。在该分层索引机制下,表达空间随索引长度 M 指数级增长。

一个长度为 M 基数为 N 的分层索引理论上可以表示 个不同的对象,而新引入的索引标记总数仅为 N×M。以物品 为例,量化过程将以残差方式执行 M 次,其数学表达如下:

9df496ee39f16a1aa68691c7c08337f6.png

最终,物品 的语义索引可表示为: .

3.1.3 生成式序列推荐

为了让 LLM 主干网络理解序列推荐任务,我们通过自然语言指令将双重动态索引与用户交互序列进行聚合。具体而言,交互序列中的原始用户索引 和物品索引 被替换为相应的双重动态索引。由此,交互记录被重组为一个由自然语言 Token 和双重动态索引 Token 组成的异构序列。在我们的实现中,一条异构自然语言指令的示例如下:

“You are an expert in sequential recommendation. Based on the historical interaction sequence: , could you please predict the most suitable item for user ?”

记异构自然语言指令为 ,LLM 主干网络首先将自然语言指令 转换为隐藏表示 。然后,在 LLM 主干网络的基础上附加一个扩展的语言模型头,用于将隐藏状态 投影到索引标记词表,表示如下,

0b0aa7755a4f637118c097e2da367232.png

其中, 是推荐结果的索引表示。若有需要,可以通过逆查找操作(inverse look-up)将索引转换回原始物品 ID。基于异构指令提示的序列推荐任务可以自然地转化为语言生成任务,其优化目标定义为负对数似然(Negative Log-Likelihood, NLL),具体如下:

318db2e843a5b012ce3aeeae37dfc0d0.png

其中,F 是由 LLM 主干网络与扩展的语言模型头组成的整体模型,B 表示批量大小(batch size), 和 分别为第 个样本的真实索引与自然语言指令。

3.2 多粒度 Token 调节器

给定动态索引 和对应的文本特征 ,值得注意的是, 和 从两个不同的角度描述了同一实体。因此,LLM 对动态索引 的理解应当与对文本特征 的理解相似。

606869324d8e252946c78b5a5cb4b016.png

如图 3 所示,多粒度 Token 调节器模块在索引层和标记层构建了对齐监督。我们提出的基于索引层对齐监督优化目标公式如下,

a8604fee2f5f446b443efb9fec23fb69.png

其中, 为批量大小, 和 分别为动态索引 和文本特征 的 LLM 表示。具有相似表示的用户/物品往往会分配相似的索引,这些索引共享一部分相同的标记。因此,我们提出了基于标记层对齐监督的优化目标,公式如下,

5f086c4f3c1299298294e6c86d0f7098.png

其中 是第 个量化器的输入, 是与索引标记 对应的码字。

3.3 高阶交互模式挖掘

我们设计了高阶用户-物品交互模式的挖掘方法,使得 LLM 能够捕捉这些隐式模式。具体而言,我们首先根据历史行为构建相关的用户集合数据。对于每个物品 ,与之有过历史交互的用户被记录为一个关联集合 ,其中 表示用户 的交互序列。

作为序列推荐任务的对称任务,我们设计了用户预测任务,旨在挖掘用户共同购买模式。LLM 主干网络推荐系统通过提示多个历史上与特定物品有过交互的用户,然后指示其生成另一个喜欢相同物品的用户的索引。下面是异构指令的示例:

“You are a professional recommendation system. The item is historically purchased by the following users: . Could you please predict another user who may be interested in this item?”

为了挖掘用户偏好模式,我们还设计了基于用户最近评论、搜索查询和整体个人资料的指令调优任务。

bf9234551cd1db0bab5cf83db7b8d946.png

实验结果

4.1 序列推荐性能

8caf56b6aabdc743eed1b3e88862773a.png

结论:1)融合语义信息和协同信息是提高序列推荐性能的有效方法;2)双重动态索引机制释放了 LLM 在序列推荐中的潜力;3)针对高阶用户-物品交互模式的特定指令调优至关重要。

4.2 消融实验

4.2.1 模型架构消融

cc3938d589af82a98eb323a7c7699f7a.png

结论:1)多粒度 Token 调节器(m-GTR)促进了 LLM 对动态索引标记的理解;2)引入用户相关信息存在加剧静态索引机制局限性的风险;3)简单地引入用户相关信息对序列推荐任务没有实质性的帮助。

4.2.2 索引方法消融

我们变化双重动态索引长度,并引入了动态局部敏感哈希(LSH)索引和静态 LSH 索引(分别表示为 D-LSH 和 S-LSH)作为对比变体。

c7af75c22f1a34400d49d5f415751fdb.png

结论:1)在商品、用户数量为 10K~45K 的数据规模下,用 4 个索引标记表示每个商品、用户是合适的;2)动态索引机制的优越性在局部敏感哈希索引上同样明显。

更多阅读

548175c56ab21d448e72c2526f77fc09.png

c6b1bf1885988b94ae25f143b7ad0d36.png

7317dd64854585f319cb24150d823fb0.png

ce142cb53763846252ca3971f226eb87.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

3375abd33984b2a7198accc9e4063106.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

e08fc97f23dbb83163343796fff77371.jpeg

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

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

相关文章

c# 2025/2/17 周一

16. 《表达式&#xff0c;语句详解4》 20 未完。。 表达式&#xff0c;语句详解_4_哔哩哔哩_bilibili

数据结构与算法面试专题——堆排序

完全二叉树 完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 设计目标&#xff1a;完全二叉树的设计目标是高效地利用存储空间&#xff0c;同时便于进行层次遍历和数组存储。它的结构使得每个节点的子节点都可以通过简…

iOS开发书籍推荐 - 《高性能 iOS应用开发》(附带链接)

引言 在 iOS 开发的过程中&#xff0c;随着应用功能的增加和用户需求的提升&#xff0c;性能优化成为了不可忽视的一环。尤其是面对复杂的界面、庞大的数据处理以及不断增加的后台操作&#xff0c;如何确保应用的流畅性和响应速度&#xff0c;成为开发者的一大挑战。《高性能 …

微信小程序的制作

制作微信小程序的过程大致可以分为几个步骤&#xff1a;从环境搭建、项目创建&#xff0c;到开发、调试和发布。下面我会为你简要介绍每个步骤。 1. 准备工作 在开始开发微信小程序之前&#xff0c;你需要确保你已经完成了以下几个步骤&#xff1a; 注册微信小程序账号&…

LabVIEW 中dde.llbDDE 通信功能

在 LabVIEW 功能体系中&#xff0c;位于 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\dde.llb 的 dde.llb 库占据着重要的地位。作为一个与动态数据交换&#xff08;DDE&#xff09;紧密相关的库文件&#xff0c;它为 LabVIEW 用户提供了与其他…

gitte远程仓库修改后,本地没有更新,本地与远程仓库不一致

问题 &#xff1a;gitte远程仓库修改后&#xff0c;本地没有更新&#xff0c;本地与远程仓库不一致 现象&#xff1a; [cxqiZwz9fjj2ssnshikw14avaZ rpc]$ git push Username for https://gitee.com: beihangya Password for https://beihangyagitee.com: To https://gitee.c…

组合模式详解(Java)

一、组合模式基本概念 1.1 定义与类型 组合模式是一种结构型设计模式,它通过将对象组织成树形结构,来表示“部分-整体”的层次关系。这种模式使得客户端可以一致地对待单个对象和组合对象,从而简化了客户端代码的复杂性。组合模式的核心在于定义了一个抽象组件角色,这个角…

LabVIEW危化品仓库的安全监测系统

本案例展示了基于LabVIEW平台设计的危化品仓库安全监测系统&#xff0c;结合ZigBee无线通信技术、485串口通讯技术和传感器技术&#xff0c;实现了对危化品仓库的实时无线监测。该系统不仅能提高安全性&#xff0c;还能大幅提升工作效率&#xff0c;确保危化品仓库的安全运营。…

【私人笔记】Web前端

Vue专题 vue3 vue3 页面路径前面添加目录 - 路由base设置 - vite设置base https://mbd.baidu.com/ma/s/XdDrePju 修改vite.config.js export default defineConfig({base: /your-directory/,// 其他配置... }); vue2 uniapp 【持续更新】uni-app学习笔记_uniapp快速复制一…

数仓搭建:DWB层(基础数据层)

维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中&#xff0c;相关的维度数据被合并到一个宽表中&#xff0c;减少了查询时需要进行的表连接操作。例如&#xff0c;在销售数据仓库中&#xff0c;客户信息、产品信息和时间信息等维度可能会被合并到一…

【Linux】进程间通信——进程池

文章目录 进程池什么进程池进程池的作用 用代码模拟进程池管道信息任务类InitProcesspool()DisPatchTasks()任务的执行逻辑&#xff08;Work&#xff09;CleanProcessPool() 封装main.ccChannel.hppProcessPool.hppTask.hppMakefile 总结总结 进程池 什么进程池 进程池&#…

13-跳跃游戏 II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…

Qt的QToolBox的使用

QToolBox 是 Qt 框架中的一个控件&#xff0c;用于创建一个可折叠的“工具箱”界面&#xff08;类似 Windows 资源管理器的侧边栏&#xff09;。每个子项可以展开或折叠&#xff0c;适合用于分组显示多个功能模块。以下是其基本用法和示例&#xff1a; 1. 基本用法 创建并添加…

《DeepSeek 一站式工作生活 AI 助手》

最近国产AI工具DeepSeek在全球火出圈&#xff0c;登顶多个国家应用商店&#xff0c;下载量一路飙升。这匹AI “黑马” 到底凭什么征服全球用户&#xff1f;让我们全方位解锁DeepSeek——从基础入门到高阶玩法&#xff0c;从实用技巧到隐藏功能。 DeepSeek是一款功能强大的国产A…

Java中CompletableFuture异步工具类

参考&#xff1a;CompletableFuture 详解 | JavaGuide 实际项目中&#xff0c;一个接口可能需要同时获取多种不同的数据&#xff0c;然后再汇总返回&#xff0c;举个例子&#xff1a;用户请求获取订单信息&#xff0c;可能需要同时获取用户信息、商品详情、物流信息、等数据。…

Oracle Rac 多路径链路不稳定引发IO降速-光弱

一、背景 今天突然被异地的同事拉来开远程会议&#xff0c;会议内容是开发反馈每天9点左右有个sqlldr 命令的脚本调用突然执行很慢&#xff0c;以前几秒的导入操作现在需要30-60s左右&#xff0c;而且数据量基本相同。 二、分析 1&#xff09;、查看ASH报告 从报告上确认是数…

哈希表-两个数的交集

代码随想录-刷题笔记 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 内容: 集合的使用 , 重复的数剔除掉&#xff0c;剩下的即为交集&#xff0c;最后加入数组即可。 class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer…

[JVM篇]分代垃圾回收

分代垃圾回收 分代收集法是目前大部分 JVM 所采用的方法&#xff0c;其核心思想是根据对象存活的不同生命周期将内存划分为不同的域&#xff0c;一般情况下将 GC 堆划分为老生代(Tenured/Old Generation)和新生代(Young Generation)。老生代的特点是每次垃圾回收时只有少量对象…

汉诺塔问题详解:递归与分治的经典案例

嘿&#xff0c;小伙伴们&#xff01;今天我可算撞见了个超有意思的东西&#xff0c;就是那大名鼎鼎的汉诺塔问题&#xff01;我这好奇心一下子就被勾起来了&#xff0c;迫不及待地想深挖一下&#xff0c;然后把那些好玩的、烧脑的、让人拍案叫绝的解题思路和奇妙故事都分享给大…

vue中如何动态的增减组件的类名(class)

在 Vue.js 2 中&#xff0c;你可以通过计算属性或直接在模板中使用 v-bind:class 来动态地改变组件的类名。下面是一个简单的示例&#xff0c;说明如何在某个条件被复核后为组件添加一个 selected 类&#xff08;此处为组件添加一个默认的类&#xff08;例如 radio&#xff09;…