<论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐

一、摘要

本文介绍微软和深圳大学合作发表于2025年5月的论文《Avoid Recommending Out-of-Domain Items: Constrained Generative Recommendation with LLMs》。论文主要研究如何解决大语言模型(LLMs)在推荐系统中推荐域外物品的问题,提出了 RecLM-ret 和 RecLM-cgen 两种方法。

译文:

大语言模型(LLMs)因其在用户交互方面的变革性能力,在生成式推荐系统中展现出了潜力。然而,确保它们不推荐域外(OOD)物品仍然是一个挑战。我们研究了两种不同的方法来解决这个问题:RecLM-ret,一种基于检索的方法;以及RecLM-cgen,一种受限生成方法。这两种方法都能与现有的大语言模型无缝集成,以确保域内推荐。在三个推荐数据集上进行的全面实验表明,RecLM-cgen在消除域外推荐的同时,在准确性上始终优于RecLM-ret和现有的基于大语言模型的推荐模型,使其成为更优的采用方法。此外,RecLM-cgen保持了强大的通用能力,并且是一个轻量级的即插即用模块,便于集成到大型语言模型中,为社区提供了有价值的实际益处。

二、核心创新点

论文的目标是避免推荐域外item,使基于大模型的推荐系统在工业服务中更可靠。 从根本上说,有两种范式可以实现这一点:域内检索范式和受限生成范式。作者设计了一个简单的框架,只需要对backbone大模型进行小幅度的修改就能够适配这两种方法。

1、特殊item指示标记符(special item indicator token)

作者在backbone模型的词汇表中添加了两个特殊的token:<SOI>和<EOI> 。这些token分别表示item开始和item结束,即start-of-item和end-of-item。将使用推荐数据集进行微调的大模型称为RecLM,则每当RecLM推荐一个item时,它首先会输出<SOI>标记,随后输出<EOI>标记,例如序列:<SOI>item标题<EOI>。**通过利用这两个特殊标记,大模型的生成过程可以分为两个不同的阶段:item生成阶段和通用文本生成阶段。**当大模型输出一个<SOI>时,意味着item生成阶段的开始,而输出<EOI>时则意味着item生成阶段结束,模型转换回通用文本生成阶段。在这个框架的基础上,在item生成阶段可以采用域内检索范式(得到RecLM-ret)或者受限生成范式(得到RecLM-cgen),以防止生成预定义域之外的item。

2、RecLM-ret

在这种方法中,作者首先通过将目标域中每个item的标题、描述和类别信息连接起来作为输入文本,在使用bge-m3模型为每个item(记为 i )生成embedding嵌入(记为)。由此,可以得到领域item的基础嵌入

接着,当RecLM输出<SOI>标记时,提取与该标记相关联的最后一层隐藏层表示。r然后应用一个投影层将和与生成的基础嵌入集合的向量空间对齐。最后根据相似度得分来检索推荐的item,检索到的item标题和结束标记<EOI>将与当前生成的文本连接起来。

训练阶段,作者使用一个prompt模板来将用户行为转化成监督微调数据的样例<Instruction:X, Response:Y>。包含了用户历史交互的item列表,这将作为Instruction:X中的用户配置信息。是被推荐给用户的包含k个item的列表,这将作为Response:Y的标签。此外,作者还进行了一定的数据增强。令表示基线模型的可训练参数,有:

其中,为大模型训练损失,。接着,作者构造了一个检索任务的损失来训练模型学习如何检索相关的item。首先,获取所有在Response:Y中的k个item的隐藏层向量,然后将这些向量输入到投影层,随后,在投影后的向量和所有item的嵌入集合 之间进行相似度匹配。由此损失函数可表示为:

其中,是softmax函数,目的在于在所有的item中最大化真实item的相似度。最后,总的训练损失为:

其中,表示权重超参数。

3、RecLM-cgen

在这种方法中,作者使用前缀树约束生成的策略。首先,根据目标域中的所有item标题构建前缀树。在生成阶段,一旦大模型生成<SOI>标记,就激活受限生成,从而将大模型的生成空间限制在领域内item的标题上。在生成<EOI>标记时停用受限生成,从而使得模型能够过渡到常规的通用文本生成阶段。

3.1 作用域掩码训练(Scope Mask Training)

考虑到在前缀树上进行token解码时,模型的下一个token概率并非针对整个token词汇表,而是限制在前缀树中可见的token子集,因此作者在RecLM-cgen的训练过程中引入作用域掩码损失,以保持训练和推理之间的一致性。在计算与item标题相关的token的损失时,softmax函数的分母中仅包含前缀树中的token:

其中,是一个函数,给定一个前缀token序列,它会根据指定的推荐域返回可能的下一个token集合。如果当前的token 在通用的文本部分,例如在<EOI>后面出现,则该函数返回整个token词汇表。如果当前的token 在item标题部分,即出现在<SOI>和<EOI>之间,函数返回基于前缀树的候选token集合。

3.2 多轮对话数据(Multi-round Conversation Data)

作者观察到,如果只包含像<Instruction:X, Response:Y>这样的单轮监督微调样本,模型往往会倾向于给出单轮推荐,这会显著降低模型的通用能力。因此,作者将大约10%的多轮对话数据样本纳入到训练集中。这些样本是通过从ShareGPT语料库中随机选择一个数据样本,并将其与一个单轮推荐任务样本相结合而创建的。推荐任务的样本有50%的概率出现在ShareGPT对话之前,50%的概率出现在其之后。

相关推荐
千宇宙航22 分钟前
闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
图像处理·人工智能·深度学习·神经网络·计算机视觉·fpga开发
onceco1 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
森焱森1 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
QuantumStack3 小时前
【C++ 真题】P1104 生日
开发语言·c++·算法
jndingxin4 小时前
OpenCV CUDA模块设备层-----高效地计算两个 uint 类型值的带权重平均值
人工智能·opencv·计算机视觉
Sweet锦4 小时前
零基础保姆级本地化部署文心大模型4.5开源系列
人工智能·语言模型·文心一言
写个博客4 小时前
暑假算法日记第一天
算法
绿皮的猪猪侠4 小时前
算法笔记上机训练实战指南刷题
笔记·算法·pta·上机·浙大
hie988945 小时前
MATLAB锂离子电池伪二维(P2D)模型实现
人工智能·算法·matlab
晨同学03275 小时前
opencv的颜色通道问题 & rgb & bgr
人工智能·opencv·计算机视觉