论文笔记-COLING2025-LLMTreeRec

ops/2025/2/13 2:49:39/

论文笔记-COLING2025-LLMTreeRec: Unleashing the Power of Large Language Models for Cold-Start Recommendations

  • LLMTreeRec: 释放大语言模型在冷启动推荐中的力量
  • 摘要
  • 1.引言
  • 2.框架
    • 2.1项目树构建
    • 2.2以LLM为中心的基于树的推荐
      • 2.2.1推荐链策略
      • 2.2.2检索策略
  • 3.实验
    • 3.1实验设置
    • 3.2性能比较
    • 3.3token要求分析
    • 3.4超参数分析
    • 3.5prompt设计
    • 3.6案例分析
  • 4.工业表现
  • 5.总结

LLMTreeRec: 释放大语言模型在冷启动推荐中的力量

论文: LLMTreeRec: Unleashing the Power of Large Language Models for Cold-Start Recommendations
代码: LLMTreeRec

摘要

训练数据的缺乏导致推荐系统面临冷启动问题,使其难以提供有效的推荐。大语言模型可以根据其广泛的开放世界知识提供零样本结果。然而,大规模的项目语料库对LLMs构成了挑战,导致大量的令牌消耗。

为了解决这一挑战,本文提出了一种基于树的LLM推荐框架LLMTreeRec,该框架将所有项目结构化为一个项目树,以提高LLM的项目检索效率。LLMTreeRec在两个广泛使用的数据集下的系统冷启动设置中实现了先进的性能。

1.引言

冷启动挑战可以分为四类:(1) 用户冷启动:为历史记录有限的新用户推荐;(2) 项目冷启动:为用户交互有限的新项目推荐;(3) 用户-项目冷启动:为新用户和新项目推荐;(4) 系统冷启动:在没有可用训练集的假设下进行推荐。本文主要关注系统冷启动问题,即在没有任何训练集的情况下提供推荐结果。

大语言模型解决冷启动问题还存在两个挑战:(1) LLMs缺乏对候选项目内容的理解:LLMs的一般知识与推荐场景中所需的领域特定知识之间存在差距。(2) 输入长度限制LLMs无法同时处理以自然语言形式表示的项目:随着候选项目规模的增加,项目信息的顺序输入将显著增加LLMs所需的令牌数,并干扰LLMs的推理。

为了解决以上挑战,本文提出了LLMTreeeRec。具体而言,基于用户的交互历史生成自然语言形式的用户偏好,然后利用LLMs从大规模语料库中召回项目。为了使LLMs能够处理大规模项目语料库,开发了一种基于树的召回策略,按照类别、子类别和关键词等语义属性对项目进行组织。

本文的贡献为以下三点:

  • 提出了LLMTreeRec,利用用户偏好和以自然语言形式呈现的项目信息,在系统冷启动设置下进行推荐。

  • 设计了一种新颖的分层项目树结构,可以将大规模项目组织成包含在叶子节点中的较小、可管理的部分。该项目树可以减少LLM输入令牌的数量。

  • 在两个基准数据集上,LLMTreeRec在系统冷启动设置下实现了最先进的性能。此外,LLMTreeRec在华为系统的A/B测试中超越了基线,并已成功在线部署。

2.框架

整体框架如图1所示。
在这里插入图片描述

2.1项目树构建

本文使用分层树结构将项目组织到叶子节点中,如图2所示。项目i的语义信息可以表示为 S i = [ s 1 , s 2 , … , s k i ] S_i = [s_1, s_2, \ldots, s_{k_i}] Si=[s1,s2,,ski],其中 s j ​ s_j​ sj j = 1 , 2 , … , k i ​ j = 1, 2, \ldots, k_i​ j=1,2,,ki)表示不同层次的语义信息,包括类别、子类别、关键词及其他相关细节,粒度从粗到细; k i ​ k_i​ ki表示项目i的语义组成部分的总数。
在这里插入图片描述
树的根节点表示为 root ∈ T \text{root} \in T rootT root \text{root} root(以红色表示)对应于一个包含所有候选项目的集合。树中的项目根据其层次语义信息被划分为不同的子节点 node c ​ \text{node}_c​ nodec(以黄色表示),每个节点对应于一个集合,包含具有相同语义前缀 [ s 1 , … , s j ] [s_1, \ldots, s_j] [s1,,sj] 的项目,其中 j ≤ k j \leq k jk。树的叶节点 node l ​ \text{node}_l​ nodel(以绿色表示)对应于每个单独项目 i i i 可以被分类的最小子集。构建项目树后,每个特定项目可以在其对应的叶节点中被检索。

2.2以LLM为中心的基于树的推荐

2.2.1推荐链策略

本文设计了一种推荐链策略,包括以下步骤:

用户画像建模

使用每个用户 u u u 的互动历史 H = [ i 1 , … , i n u ] H = [i_1, \ldots, i_{n_u}] H=[i1,,inu] 作为 LLM 输入进行用户画像建模,可以定义为:
在这里插入图片描述
其中 I I I 是推断的兴趣。LLM 能够通过利用存储在 H H H 中的用户互动上下文历史和推断的兴趣 I I I 来捕捉用户偏好。这使得 LLM 能够成功地根据用户的偏好执行后续任务。

项目树检索

LLMTreeRec 从根节点遍历项目树到其子节点。当到达叶节点时,搜索停止。每一步根据用户的互动历史和兴趣推导并排名顶级类别。更多细节在第 2.2.2 节中。项目树搜索函数可以定义为:
在这里插入图片描述
其中 childnodes \text{childnodes} childnodes 表示 LLM 选择的子节点列表。LLM 在节点的子节点列表中进行搜索,基于子节点的语义信息、用户互动历史 H H H 和兴趣 I I I 进行推断,从而提供一个排名的子节点列表。LLM 会迭代执行项目树搜索,直至到达叶节点 node l ​ \text{node}_l​ nodel

叶子节点召回

每个叶节点对应于一个无法进一步根据语义信息划分的小项目子集。因此,描述该子集所有项目的文本可以轻松输入到 LLMTreeRec 中。然后,LLMTreeRec 会考虑用户互动历史和兴趣来召回顶级项目。函数定义为:
在这里插入图片描述

其中, i t e m s items items 表示召回的项目, s u b s e t subset subset 是从相应的叶节点 node l ​ \text{node}_l​ nodel 获取的子集,而 k k k 表示从子集中召回的数量。推荐的提示模板如图1所示。

2.2.2检索策略

为了快速检索到目标叶节点,在项目树上应用深度优先搜索(DFS)。具体而言,在每一步搜索中,仅选择排名靠前的节点进行进一步的 DFS 搜索,从而使 LLMTreeRec 能够绕过相关性较低的节点。当到达叶节点时,LLMTreeRec 将从该叶节点的项目子集中回忆出前 k k k 个项目。如果满足以下任一条件,则搜索结束:(i)遍历了所有叶节点,或 (ii)已回忆出所需数量的 n n n 个项目。参数 k k k 可以有效调节项目多样性。选择较小的 k k k 可以增加推荐的多样性,但会增加搜索时间。相反,较大的 k k k 通常会减少多样性,同时加快搜索过程。

LLMTreeRec 的详细流程如算法1。
在这里插入图片描述

3.实验

3.1实验设置

数据集:MIND和Amazon

评估指标:Recall和NDCG

基线:FM、DeepFM、NRMS、SASRec、Pop和LLM-Ranker

3.2性能比较

LLMTreeRec 和基线模型的整体性能如表2所示。
在这里插入图片描述

LLMTreeRec 框架与两类方法进行了比较,结论如下:

  • 对于系统冷启动设置下的方法。由于缺乏用户特定信息,基于流行度的方法表现出极低的项目召回率。LLMTreeRec 能够根据用户兴趣和项目树选择候选集,从而生成比 LLM-Ranker 更精细的候选集,进而提高了性能。

  • 对于带有训练集的传统推荐模型。表 2 展示了使用 20% 训练集的传统推荐系统的结果。LLMTreeRec不需要训练,且与需要训练的传统推荐模型相比,表现出一定的竞争力。

  • 此外,LLMTreeRec(GPT-4)方法的性能显著优于 LLMTreeRec(GPT-3.5)方法。

3.3token要求分析

LLMTreeRec 根据项目树从子集中召回项目,有效减少了模型在回忆阶段的 token 需求。图 5 显示了每个框架阶段的平均 token 消耗。
在这里插入图片描述

在输入消耗方面,LLMTreeRec 的第 3 阶段(从叶节点召回)将所有检索到的叶节点的项目 ID 输入 LLM,导致高 token 需求,占总需求的 50% 以上。至于输出消耗,由于第 3 阶段仅召回有限数量的项目,因此所有三个阶段的 token 消耗相对较低。总之,基于项目树的搜索消耗的 token 极少,使得 LLMTreeRec 成为一种成本高效的检索方法。

3.4超参数分析

叶节点中的召回数量 k k k 是 LLMTreeRec 中唯一的超参数。本文对其影响进行了研究,如图3所示。
在这里插入图片描述

随着 k k k 值的增加,模型从不同叶节点召回的项目数量稳步上升,指标在初期随着 k k k 的增加而上升,随后又下降。显然,随着 k k k 不断增加,从每个节点召回的项目数量也在增加,这表明模型倾向于推荐用户更感兴趣的子集中的项目。当 k k k 减小时,模型从更多的叶节点召回项目,从而导致检索结果的多样性提高。总之,参数 k k k 在模型中扮演着关键角色,影响着在不同类别下召回项目的数量与多样性之间的权衡。

3.5prompt设计

本文从兴趣、相关性、行动和推荐四个不同的角度为推荐设计了提示模板,各种角度设计的提示详细列在表 3 中,其中蓝色变体提示基于不同的角度进行了调整。
在这里插入图片描述

图 4 显示了模型在这四种提示设置下的性能。
在这里插入图片描述

从图4中可以看出,提示设计对模型性能有显著影响。使用相关性基础的提示仅获得了 1.24% 的回Recall和 0.0183 的 NDCG。相比之下,使用行动和推荐提示的模型获得了大约 2% 的Recall。此外,在基于兴趣的提示设计下观察到最佳性能,Recall和 NDCG 是相关性提示模型的两倍。这些结果强调了提示设计在非微调 LLM 推荐任务中的重要性。基于兴趣的提示设计能够有效利用 LLM 发掘用户兴趣,从而提升推荐的个性化和精准性。

3.6案例分析

LLMTreeRec(GPT-3.5)或 LLMTreeRec(GPT-4)在大多数情况下能够顺利完成整个流程。然而,在实验中,两者都有一些不理想的案例:(1) 即使在提示模板中明确了输出格式,但 LLM 并未严格按照指示输出项目,导致项目未能正确索引。(2) 产生幻觉的挑战。在用户画像建模阶段,LLM 总结用户兴趣并提供与兴趣相关项目的代表性示例。然而,这些示例在从叶节点回忆时可能会出现幻觉风险,导致错误的例子被包含在内。

4.工业表现

本文将 LLMTreeRec 与基线模型在华为在线推荐系统中进行了为期七天的 A/B 测试。该场景属于信息商业推荐,从库中召回出 1188 个独特项目,并最终展示在用户终端上。表 4 报告了在 662 次会话中比较的结果。
在这里插入图片描述

LLMTreeRec(基于华为 LLM)在 NDCG@10 上取得了显著提升,达到了 0.725,而基线模型为 0.577,增幅达 25.64%。在线 A/B 测试结果验证了 LLMTreeRec 的优越性能。它为在系统冷启动设置下处理大规模项目提供了高效的解决方案。

5.总结

本文提出了 LLMTreeRec,一个以 LLM 为中心的基于树的推荐框架,旨在应对系统冷启动挑战。为了处理大规模项目集合,设计了一种新颖的策略,将所有项目结构化为分层树结构,即项目树。基于项目树,LLM 通过利用这一分层结构进行搜索,有效地优化候选项目集合。在 MIND 和Amazon数据集上的大量实验表明,LLMTreeRec 在系统冷启动设置下能够实现与传统推荐模型相当的性能。此外,LLMTreeRec易于在工业推荐系统上部署。


http://www.ppmy.cn/ops/157935.html

相关文章

MacBook Pro M2安装deepseek

序 本文主要展示一下如何在MacBook Pro M2安装deepseek mac配置 芯片Apple M2,8核(物理),内存16G,os版本Ventura,磁盘500G 步骤 下载ollama 去https://ollama.com/下载mac版本 或者使用go来编译 git clone --depth 1 http…

音视频协议

1. 多媒体信息 1.1 多媒体信息的两个主要特点: 信息量很大 标准语音:64Kbits(8KHz采样,8位编码)高质量音频:3Mbps(100KHz采样,12位编码) 在传输多媒体数据时,对时延和时延抖动均有较高要求 1.2 处理时延…

NO.14十六届蓝桥杯备战|switch语句|break|default|2道练习(C++)

switch语句 除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。 switch (expression) { case value1: stat…

如何在 React 中使用 CSS Modules?

在 React 中使用 CSS Modules 是一种模块化 CSS 的方式,可以避免类名冲突,并为每个组件提供独立的样式。以下是如何在 React 项目中使用 CSS Modules 的步骤: 1. 创建 React 应用 如果你还没有创建一个 React 应用,可以使用 Create React App: npx create-react-app my…

基于FPGA的智能垃圾分类装置(论文+源码)

2.1总体目标 本文设计一种基于FPGA的智能垃圾分类装置,在控制器上采用了Altera的FPGA芯片EP4C6E6F17,并结合LU-ASR01语音识别、继电器、红外传感器、蜂鸣器等构成整个系统,在功能上,当用户通过语音的方式说出想要扔的垃圾时&…

webpack配置项之---output.asyncChunks

output.asyncChunks output.asyncChunks 是 Webpack 配置中的一个选项,它用于控制是否生成按需加载的异步代码块(chunks)。 一、作用与功能 按需加载:当 output.asyncChunks 设置为 true 时,Webpack 会为动态导入的…

Django在终端创建项目(pycharm Windows)

1.选择目录 选择或新建一个文件夹,作为项目保存的地方 2.右键在终端打开 3.确定django-admin.exe安装位置 找到自己安装django时,django-admin.exe安装的位置,例如 4.运行命令 使用django-admin.exe的绝对路径,在刚才打开的终端…

【RabbitMQ的监听器容器Simple和Direct】 实现和场景区别

在Spring Boot中,RabbitMQ的两种监听器容器(SimpleMessageListenerContainer和DirectMessageListenerContainer)在实现机制和使用场景上有显著差异。以下是它们的核心区别、配置方式及最佳实践: Simple类型 Direct类型 一、核心…