在得物社区推荐的实践中,我们发现用户兴趣容易收敛到少数几个主兴趣上,难以做到有效的兴趣拓展。通过将大语言模型与推荐系统结合,我们在兴趣拓展方向上取得了突破,获得了显著的业务收益并全量上线。我们将相关工作中采用的核心算法与模型策略总结整理,投稿至AAAI-PerFM,入选了长论文《Enhancing Serendipity Recommendation System by Constructing Dynamic User Knowledge Graphs with Large Language Models》。以下为正文的详细介绍。
背景介绍
得物社区作为App的首个标签页,承载着用户分享生活、发现好物的内容生产与消费需求。与其他内容平台一样,其推荐系统也存在“推荐 → 用户反馈 → 再推荐”的反馈闭环问题,导致系统倾向于推送相似内容,造成结果收敛、同质化,形成信息茧房,降低用户的新鲜感与满意度。
随着大语言模型的发展,世界知识提取的效率得到提升,这为打破信息茧房、提升内容消费新鲜感带来了新机遇。我们提出利用大语言模型动态构建用户知识图谱,并在图谱上进行可控推理以挖掘用户“潜在兴趣”,再将这类兴趣以工程化方式接入工业推荐链路,在得物社区取得了显著的消费指标收益。
下图是得物App社区页面的一个示例:

问题与挑战
- 为了打破信息茧房并提升用户体验,新颖性推荐需要兼顾意外性和相关性,即推荐用户意料之外但又有兴趣点击的物品。然而,意外发现数据本身稀缺,近年来的研究往往只能采用小模型或在有偏数据上做扩充,这可能反而强化反馈循环,增加打破信息茧房的难度。
- 大语言模型虽具备丰富的世界知识和卓越的推理能力,但在落地实践中发现,通过单跳推理难以正确生成复杂问题的答案。
- 工业推荐系统对实时性要求极高(通常在100ms内响应)。基于大模型的新颖性推荐延迟较高,计算成本昂贵。
- 当推理出用户潜在兴趣后,如何在推荐系统中高效召回相关物品候选集,既要保证与兴趣的相关性,又要具备高消费效率(如更好的点击率),是决定工业场景能否取得收益的关键。
优化方案
我们的整体框架如下图所示:

该方案的核心思路包括:
- 采用大语言模型替代传统小模型:从用户行为中提取潜在兴趣,缓解显式兴趣发现数据稀缺的问题。
- 提升推理准确性与稳定性:通过两跳推理与多智能体多轮辩论机制,保障输出质量。
- 缓解推理时延挑战:采用近线召回架构进行工程部署,满足推荐系统的实时响应要求。
- 确保召回内容质量:引入对比学习,将大模型提取的兴趣与现有用户兴趣表征对齐,确保召回内容既符合潜在偏好,又具备高相关性及高转化效率。
基于LLM大模型兴趣提取过程
两跳推理
将用户的静态画像(年龄、性别)以及历史行为(过去30天的搜索词)作为初始输入节点,利用大模型作为用户动态知识图谱的构建工具。
大模型动态构建节点和关系 G=(V,E),其中 V 是实体集合,E 是关系集合。给定两个实体 v1 和 v3,目标是通过两跳推理判断它们之间是否存在潜在兴趣关系。
- 第一步:从用户静态画像和搜索词 v1 出发,找到满足上位关系的节点 v2。即找到所有满足 (v1, v2) ∈ E 的 v2。v2 是 v1 背后的核心诉求和动机。
- 第二步:从 v2 出发,找到所有满足用户核心诉求的同位或下位节点 v3。即找到所有满足 (v2, v3) ∈ E 的 v3。为了避免不相关输出并减少幻觉,v3 被限制在商品、商品类目、话题范围内。
用户兴趣推理流程图清晰地展示了两跳推理的过程:

多智能体多回合辩论
仅通过提示工程完成两跳推理,仍可能出现推理路径错误或潜在兴趣不相关的问题。为此,我们采用了多智能体辩论的方法来改进推理过程和输出响应:让多个语言模型实例在多轮中提出并辩论各自的响应和推理过程,以得出共同的最终答案。这种方法显著增强了两跳推理能力,提高了生成内容的事实有效性,减少了谬误和幻觉。
具体而言,我们首先提示每个智能体独立解决给定任务。在每个智能体生成回复后,我们向每个智能体提供一个共识提示(如下图所示),指示其根据其他智能体的回复更新自身回复。此共识提示可以反复迭代使用。

SFT
为了降低部署成本,我们采用知识蒸馏策略:首先使用参数量较大的推理模型 deepseek-r1 构建用户动态图谱(思考过程)并生成潜在兴趣,然后将其蒸馏到参数量更小的模型 qwq-32b。将思考过程和潜在兴趣转换为文本化的 SFT 数据集 D,其中每个条目是一个元组 (x, y)。这里,x 代表输入提示,y 代表输出(即思考过程和潜在兴趣)。随后,遵循以下公式,对 qwq-32b 进行监督微调得到 interestGPT,以提高其生成期望答案的概率。
ℒ_SFT = -E_(x,y)~D (log π_θ(y|x))
= -E_(x,y)~D (Σ_(t=1)^T log π_θ(y_t|x, y_1:t-1))
大模型兴趣在推荐系统中的应用
为了兼顾 i2i 召回的相关性和 u2i 召回的消费效率优势,我们设计了一种兼具 i2i 召回能力的 u2i 召回模型。具体而言,该双塔召回模型采用多任务目标:在传统双塔 u2i 的 BCE 损失基础上,于用户塔中引入了基于兴趣对齐的对比学习损失。该损失通过最大化相同兴趣下用户嵌入与物品嵌入的相似性,同时最小化不同兴趣下的相似性,从而在预估阶段能够基于用户新兴趣生成高相关度的用户嵌入向量。这样得到的嵌入用于向量检索召回,召回的物品集合既与新兴趣高度相关,又保持了 u2i 召回消费效率高的优点。
模型整体架构如下图所示:

一些符号与定义
f^u:用户特征
f^v:物品特征
z:单个兴趣向量
z_k^u:用户的第 k 个兴趣向量
Z:兴趣向量空间
V:物品塔的向量空间
U:用户塔的向量空间
U(·):用户塔的编码器
V(·):物品塔的编码器

模型输入
- 用户塔输入:包括用户静态画像(如年龄、性别等,通过 id-embedding 表征为
f^u)和用户兴趣(通过文本编码器获得 embedding z)。训练阶段,用户兴趣正样本是用户点击过的物品,负样本为 batch 内采样的其他物品;推理阶段,用户兴趣是通过两跳推理生成的潜在新兴趣。文本编码器可选 CLIP、BERT、USE、BGE 等模型,实验中我们选择了 CLIP。注意:大模型推理出的新兴趣仅在推理时使用,不参与训练。
- 物品塔输入:物品的静态特征,如类目体系、品牌、标签等,通过 id-embedding 表征为
f^v。
双塔模型
- 用户塔:将用户特征
f^u 和历史兴趣 z 拼接,通过两层全连接层得到 U(z, f^u)。
U(z, f^u) = FC(FC(concatenate(f^u, z)))
- 物品塔:将物品特征
f^v 和历史兴趣 z 拼接,通过两层全连接层得到 V(z, f^v)。
V(z, f^v) = FC(FC(concatenate(f^v, z)))
训练阶段
通过双塔模型训练用户点击样本的同时,我们希望对于同一用户,不同的兴趣 z 输入用户塔后得到的表征具有较大区分度:z 兴趣下的用户表征 U(z, f^u) 应与同为 z 兴趣的物品表征 V(z, f^v) 更相关,其关联度应大于其他兴趣 z' 下的用户表征 U(z‘, f^u) 与 z 兴趣物品表征的关联度。这样就能尽可能确保,当输入用户的潜在兴趣时,能获取到与之对应且不与已有兴趣混淆的新颖性兴趣表征。
为此,我们引入了对比学习损失 ℒ_CL:
ℒ_CL = e<U(z,f^u),V(z,f^v)> / e<U(z,f^u),V(z,f^v)> + ∑_z′≠z,z′∈ℤ e<U(z′,f^u),V(z,f^v)>
综合以上考虑,采用多目标联合训练,损失函数由对比学习损失和二分类交叉熵损失构成:
ℒ = ℒ_BCE + λ_1ℒ_CL + λ_2||Θ||^2,
其中,Θ 是模型的参数集合,λ₁ 和 λ₂ 是超参数。
交叉熵损失用于建模用户对历史物品的点击偏好,公式为:
ℒ_BCE = -[y log(ŷ) + (1 - y) log(1 - ŷ)]
其中,ŷ 是对物品 v 的点击概率的预测值。
预估阶段
在预估阶段,首先将用户的某个潜在新兴趣 z_k^u (1 <= k <= n,n为用户u潜在新兴趣总数) 连同用户特征一起输入用户塔,获得用户新兴趣表征向量 û_k。利用 û_k 进行近似最近邻检索得到物品集合,作为该潜在兴趣的召回结果。将用户所有潜在新兴趣的召回结果归并,与其他召回通道的内容一同送入后续推荐链路。
ŵ_k = U(f^v, z_k^u)
实验效果
我们在得物App上进行实验,得物是一个拥有数千万用户的潮流电商平台。我们随机选取了得物社区10%的流量进行A/B实验,目标是基于用户历史搜索词和静态画像生成潜在兴趣,并为其推荐意外物品。我们以原有的社区推荐召回系统作为基线,使用CLIP模型作为兴趣文本编码器,并在此基础上为新颖性推荐新增一个召回渠道。
我们使用8个指标衡量在线性能:人均时长(AVDU)、UVCTR、人均阅读量(ACR)、UV互动渗透(ER)、人均一级类目点击数(ACC-1)、人均三级类目点击数(ACC-3)、一级类目新颖性曝光占比(ENR)和一级类目新颖性点击占比(CNR)。其中,ACC-1和ACC-3用于评估多样性。我们将一级类目新颖性定义为:当某物品的一级类目不在用户最近200次点击记录的一级类目集合内时,该物品的曝光或点击即具有一级类目新颖性。通过计算ENR和CNR,评估推荐系统的新颖性表现。
我们使用deepseek-r1生成的3万条数据作为标注样本,对qwq-32b模型进行SFT后得到interestGPT。在1万条测试集上的离线评估中,抽样1000个用户的评估结果如下:0分占比1%,1分占比3%,2分占比96%。评分标准如下:

在线A/B测试中,我们在基线基础上新增了一个新颖性召回渠道。在该渠道中,基于用户最近30天的搜索行为进行潜在兴趣拓展,每个用户最多选16个潜在兴趣,每个兴趣召回40个对应物品,再与其他渠道结果融合。
最终的线上实验效果对比如下表所示:

与基线相比,我们的方法显著提升了推荐结果的多样性和新颖性。AVDU相对提升0.15%,UVCTR、ACR和ER分别提升0.07%、0.15%和0.3%。在多样性方面,ACC-1和ACC-3分别取得0.21%和0.25%的提升。在新颖性方面,ENR和CNR分别取得了4.62%和4.85%的显著提升。
新颖性召回渠道对多样性和新颖性的改善是持续的。对照组的曝光新颖率为14.24%,实验组中新颖性召回通道的召回新颖率为26.53%,其他通道的召回新颖率也提升至16.17%。这说明,当新颖性召回引入新信号并引发用户新的交互、产生相关训练数据后,其他召回通道也能迅速捕捉到用户的新兴趣信号,从而有助于打破反馈循环和推荐茧房。
结论
本项工作提出利用大模型构建用户动态知识图谱并通过两跳推理,以解决推荐系统中的信息茧房问题。它包括两个主要阶段:利用大语言模型基于用户静态画像和历史行为动态构建知识图谱并进行两跳推理;以及用于高效工业部署的近线自适应工程架构。同时,设计了一种兼具i2i召回能力的u2i模型,使得召回物品集合既与用户新兴趣高度相关,又保持了u2i召回消费效率高的优点。
通过部署训练推理解耦的召回模型,利用大模型产出的新兴趣生成对应的多兴趣用户嵌入,成功将用户潜在兴趣召回结果集成到推荐系统中。无论是离线评估还是在线A/B测试均取得了显著收益,证明该方案完全可在大规模工业系统中部署并创造价值。
总结与展望
目前,我们的兴趣挖掘模型主要基于得物App中的用户搜索行为。由于搜索行为本身具有较高的稀疏性,未来将引入点击、浏览、收藏等更丰富的交互行为,以探究在多行为数据融合下大语言模型对用户潜在兴趣的刻画能力,并验证兴趣建模是否存在与数据规模相关的扩展规律。
在系统应用层面,除了在召回环节引入用户新兴兴趣外,还可进一步将兴趣表征融合至粗排、精排及重排等排序阶段,从而提升新兴趣场景下的物品评分准确性。此外,也可结合推荐场景中的实时用户反馈数据,对模型输出的多元兴趣进行动态校准,避免兴趣过度发散,确保其与用户真实需求的相关性。
在大模型生成式架构基础上,我们同步探索并构建了生成式召回模型,目前已取得初步成果,并在得物推荐场景中全面上线应用。未来,我们将持续加大该方向的研发投入。每一次技术迭代,其最终目标始终是服务于用户体验的提升。正如得物始终秉持的初心——我们希望通过智能推荐技术的持续进化,助力每一位用户更精准、更愉悦地「得到美好事物」。
探索前沿技术并将其工程化落地,是提升产品体验的核心驱动力。对深度学习和推荐算法感兴趣的开发者,欢迎在云栈社区交流探讨,共同推动技术进步。