← Back to list
RAR_GPT

Retrieval Augmented Conversational Recommendation with Reinforcement Learning

判别式推荐 Google
Abstract 7 Reading 6 Rating —
2026-04-06
Zhenrui Yue, Honglei Zhuang, Zhen Qin, Zhankui He, Huimin Zeng, Julian McAuley, Dong Wang
University of Illinois Urbana-Champaign, Google DeepMind, UC San Diego
提出RAR框架,通过两阶段检索增强(retriever + LLM generator)和在线强化学习偏好优化,对齐检索与生成阶段,在多个对话推荐基准上超越SOTA
rl pretrained-lm academic cold-start

1. 研究背景与动机

对话推荐系统(Conversational Recommender Systems, CRS)通过自然语言多轮交互为用户提供个性化推荐。近年来 LLM 被广泛应用于 CRS,但存在两个核心问题:

  1. 知识缺失:LLM 依赖预训练知识,缺乏对新物品的检索机制,无法推荐训练数据之外的物品
  2. 检索-生成不对齐:当检索器返回次优候选集时,LLM 会放大这些缺陷,导致冷启动和长尾物品推荐效果更差

此外,现有对话推荐数据集规模较小(如 REDIAL 仅约 7k 部电影),且缺乏统一的富元数据语料库支持 embedding-based 检索。

2. 核心贡献

  1. 首个大规模 embedding-based 检索增强对话推荐研究:构建了包含 337,731 部电影的统一文本语料库,包含 title、year、genre、director、cast、plot 等完整元数据
  2. RAR 框架:两阶段检索增强对话推荐框架,retriever 生成候选集 + LLM 生成最终推荐,并通过在线 RL 偏好优化对齐两个阶段
  3. 多基准数据集验证:在 Inspired、Redial、Reddit 三个数据集上一致超越传统 CRS、序列推荐和 SFT 基线方法

3. 方法论

3.1 问题形式化

对话 $\mathcal{C} = (r_t, s_t, I_t)_{t=1}^T$ 包含 $T$ 个回合,$r_t$ 为角色(seeker/recommender),$s_t$ 为对话内容,$I_t$ 为提及的物品。两阶段框架:

  • Retrieval 阶段:检索模型 $f_{\text{ret}}$ 使用历史物品作为查询,选择初始候选集 $C_t = f_{\text{ret}}(\{I_\tau\}_{\tau=1}^{t-1})$
  • Generation 阶段:LLM $f_{\text{llm}}$ 基于对话历史和检索到的候选物品生成最终推荐 $\hat{I}_t = f_{\text{llm}}(\{s_k\}_{k=1}^{t-1}, C_t)$

3.2 语料库构建

从 IMDb genre、IMDb media、Inspired 等多个来源收集电影数据,与 MovieLens、Redial、Reddit 中的条目进行交叉引用和去重。最终语料库包含 337,731 部电影,时间跨度从 1888 年到 2029 年,约覆盖 IMDb 截至 2025 年 12 月所列电影的一半。每部电影包含 title、year、genre、director、cast、plot 等结构化元数据。

3.3 Retriever

采用 LRURec(Linear Recurrent Units for Sequential Recommendation)作为检索模型,基于状态空间模型(SSM):

$$h_t = Ah_{t-1} + Be_t, \quad o_t = Ch_t + Ie_t$$

其中 $A, B, C$ 为 $\mathbb{R}^{H \times H}$ 的矩阵,$I$ 为单位矩阵。$h, e, o$ 分别为隐状态、物品 embedding 和输出隐状态。LRURec 利用线性特性通过并行扫描将时间复杂度降至 $\mathcal{O}(\log(t))$。使用 Qwen3 构建 embedding 表,输出状态 $o_t$ 用于计算与语料库所有条目的相似度,取 top-$k$ 作为候选集 $C_t$。

3.4 Generator

使用黑盒 LLM $f_{\text{llm}}$,将对话历史、候选物品的详细元数据组合为 prompt,指示 LLM 生成 $k$ 个推荐。对话按 recommender 回合进行切分,排除已在之前回合出现的 ground truth 物品以避免 shortcut learning。

3.5 Retriever 偏好优化(RL)

由于 retriever 和 generator 不是端到端可微的,采用强化学习来优化 retriever。核心目标:

$$\max_\theta \mathbb{E}_{C \sim \mathcal{X}, t \sim \{1,...,T(C)\}, C_t \sim f_{\text{ret}}(\{I_\tau\}_{\tau=1}^{t-1})} [r(f_{\text{llm}}(\{s_k\}_{k=1}^{t-1}, C_t), I_t)]$$

其中 $r$ 为基于排序的奖励(如 NDCG 分数),通过最大化排序奖励来更新 $\theta$,对齐检索和排序阶段。

候选集采样使用 Plackett-Luce 模型定义概率:

$$P_\theta(C_t | \{I_\tau\}_{\tau=1}^{t-1}) = \prod_{i=1}^{k} \frac{\exp(s_{\sigma(i)})}{\sum_{j \in \Sigma \setminus \{\sigma(1),...,\sigma(i-1)\}} \exp(s_j)}$$

DPO 变体

采样两个候选集,NDCG 更高的为 $C_w$,较低的为 $C_l$,最小化:

$$\mathcal{L}_{\text{dpo}} = -\log \sigma(\beta \log \frac{\pi_\theta(C_w | \{I_\tau\}_{\tau=1}^{t-1})}{\pi_{\text{ref}}(C_w | \{I_\tau\}_{\tau=1}^{t-1})} - \beta \log \frac{\pi_\theta(C_l | \{I_\tau\}_{\tau=1}^{t-1})}{\pi_{\text{ref}}(C_l | \{I_\tau\}_{\tau=1}^{t-1})})$$

GRPO 变体

采样 $g$ 组候选集,标准化优势 $\hat{A}_i = \frac{r_i - \text{mean}(\{r_1,...,r_g\})}{\text{std}(\{r_1,...,r_g\})}$:

$$\mathcal{L}_{\text{grpo}} = \mathbb{E}_{C \sim \mathcal{X}, t \sim \{1,...,T(C)\}, \{C_i\}_{i=1}^g \sim f_{\text{ret}}(\{I_\tau\}_{\tau=1}^{t-1})} \left[ -\frac{1}{g} \sum_{i=1}^{g} \log \pi_\theta(C_i | \{I_\tau\}_{\tau=1}^{t-1}) \hat{A}_i \right] + \beta \mathbb{D}_{\text{KL}}$$

联合训练目标

为稳定 RL 训练,加入监督负对数似然项 $\mathcal{L}_{\text{nll}}$:

$$\mathcal{L} = \mathcal{L}_{\text{nll}} + \mathcal{L}_{\text{rl}}$$

4. 实验设置

4.1 数据集

Dataset #Train #Val #Test
MovieLens 536,127 67,015 67,015
Inspired 1,507 206 183
Redial 24,095 2,647 3,445
Reddit 12,481 2,947 1,511

MovieLens 20M 用于 retriever 预训练,Inspired/Redial/Reddit 为对话推荐评估数据集。

4.2 基线方法

  • 传统 CRS:KBRD、KGSF、UniCRS
  • 序列推荐:SASRec、FMLPRec、LRURec
  • SFT 检索增强:SFT_Qwen、SFT_Gem、SFT_GPT(对 retriever 进行监督微调 + LLM 生成)
  • RAR 变体:RAR_Qwen、RAR_Gem、RAR_GPT(本文方法,在 SFT 基础上加 RL 偏好优化)

LLM backbone:Qwen3-8B、GPT-5 mini、Gemini 3 Flash。评估指标:NDCG@5/10、Recall@5/10,最大历史长度 64,检索大小 $k=25$。

5. 实验结果

5.1 主实验(Table 1)

Method Inspired N@5 R@5 N@10 R@10 Redial N@5 R@5 N@10 R@10 Reddit N@5 R@5 N@10 R@10
KBRD .0466 .0815 .0472 .0732 .0388 .0582 .0453 .078 .0066 .0079 .0078 .0098
KGSF .0656 .0815 .0673 .0434 .0672 .0497 .0864 .0258 .0155 .0172 .0155 .0172
UniCRS .0676 .0927 .0750 .1032 .0425 .0646 .0504 .0887 .0376 .0363 .0479 -
SASRec .0564 .0870 .0655 .1304 .0558 .0795 .0681 .1176 .0288 .0401 .0339 .0545
FMLPRec .0620 .0815 .0726 .1141 .0504 .0784 .0639 .1123 .0315 .0434 .0342 .0534
LRURec .0671 .0978 .0793 .1359 .0539 .0771 .0650 .1111 .0316 .0430 .0346 .0522
SFT_Qwen .0609 .0938 .0626 .0990 .0454 .0684 .0526 .0907 .0344 .0484 .0394 .0633
SFT_Gem .0859 .1076 .1034 .1544 .0574 .0828 .0662 .1097 .0455 .0604 .0497 .0708
SFT_GPT .0997 .1214 .1091 .1491 .0599 .0887 .0700 .1197 .0489 .0651 .0558 .0843
RAR_Qwen .0693 .0980 .0773 .1241 .0491 .0704 .0569 .0947 .0368 .0536 .0444 .0770
RAR_Gem .0916 .1145 .1046 .1587 .0632 .0894 .0721 .1169 .0502 .0661 .0531 .0799
RAR_GPT .1091 .1422 .1180 .1700 .0620 .0932 .0718 .1236 .0557 .0716 .0593 .0846

实验结论

  1. 整体性能:RAR 在所有数据集和指标上一致超越传统 CRS、序列推荐和 SFT 基线,平均提升 7.60%
  2. LLM 影响:GPT backbone 表现最佳,Gemini 次之,Qwen 第三,体现闭源模型在推荐场景的优势
  3. RAR vs SFT:RAR 相比 SFT 在 Qwen、Gemini、GPT backbone 上平均提升 11.9%、7.5%、7.7%,验证 RL 后训练的有效性
  4. Top-k 指标:@5 指标提升(9.33%)显著大于 @10 指标提升(5.86%),说明偏好优化策略特别擅长将最相关物品推到列表顶部

5.2 Retriever 模型对比(Table 2)

Retriever N@10 R@10 N@20 R@20
GRU4Rec .1250 .2015 .1351 .2558
BERT4Rec .1469 .2337 .1598 .2889
SASRec .1430 .2363 .1637 .3086
FMLPRec .1460 .2411 .1689 .3125
LRURec .1483 .2508 .1700 .3365

实验结论:LRURec 在 MovieLens 预训练评估中全面领先,N@20 达到 0.1700、R@20 达到 0.3365。FMLPRec 为次优竞争者。LRURec 的训练和推理效率优势使其成为 RAR 的最佳检索器选择。

5.3 DPO vs GRPO(Table 3)

Dataset Method N@5 R@5 N@10 R@10
Inspired DPO .0693 .0980 .0773 .1241
Inspired GRPO .0753 .0997 .0807 .1162
Redial DPO .0491 .0704 .0569 .0947
Redial GRPO .0493 .0706 .0575 .0954
Reddit DPO .0368 .0536 .0444 .0770
Reddit GRPO .0385 .0547 .0450 .0765

实验结论:GRPO 在多数指标上略优于 DPO,尤其在 N@5 上提升明显(Reddit 上 0.0385 vs 0.0368)。这归因于 GRPO 的多轨迹采样为 top-k 排序提供了更稳健的相对优势估计。但因 GRPO 推理开销更大且训练更慢,RAR 默认采用 DPO(保留 GRPO 98.6% 的平均性能)。

5.4 SimPO vs DPO(Table 4)

Method N@5 R@5 N@10 R@10
SimPO_Qwen .0499 .0699 .0575 .0946
SimPO_Gem .0635 .0825 .0718 .1136
SimPO_GPT .0727 .1011 .0792 .1203
DPO_Qwen .0517 .0740 .0595 .0986
DPO_Gem .0683 .0900 .0766 .1185
DPO_GPT .0754 .1023 .0830 .1260

实验结论:DPO 在所有 LLM backbone 和所有指标上一致优于 SimPO,验证了 DPO 在两阶段对话推荐中捕捉用户偏好的有效性。

5.5 超参数分析

检索物品数量(Figure 3)

随检索物品数增加,NDCG 和 Recall 均稳步提升。NDCG 在 45 个物品时仍保持上升趋势,说明 LLM generator 具有强大的筛选和排序能力,不会被噪声淹没。

$\beta$ 值影响(Table 5)

$\beta$ N@5 R@5 N@10 R@10
0 (SFT) .0469 .0702 .0515 .0843
0.05 .0513 .0741 .0580 .0953
0.1 .0482 .0692 .0547 .0893
0.2 .0485 .0711 .0544 .0888

实验结论:$\beta = 0.05$ 为最优值。引入少量 $\beta$ 显著提升性能(N@10 从 0.0515 到 0.0580,R@10 从 0.0843 到 0.0953)。最优范围在 $[0.05, 0.1]$,RAR 对超参数选择表现出较强鲁棒性。

5.6 显式推理对推荐的影响(Table 6)

Method Inspired N@5 R@5 N@10 R@10 Redial N@5 R@5 N@10 R@10 Reddit N@5 R@5 N@10 R@10
Qwen_on .0730 .0997 .0764 .1210 .0438 .0626 .0501 .0826 .0367 .0525 .0402 .0629
Qwen_off .0693 .0980 .0773 .1241 .0491 .0704 .0569 .0947 .0368 .0536 .0444 .0770
GPT_on .1006 .1327 .1115 .1648 0.646 .0975 .0748 .1285 .0575 .0748 .0615 .0872
GPT_off .1091 .1422 .1180 .1700 .0620 .0932 .0718 .1236 .0536 .0711 .0585 .0859

实验结论:显式推理(thinking)的效果不一致。Qwen 关闭推理在多数场景下表现更好且推理成本更低;GPT 则因数据集而异。这表明强制额外推理并不一定带来更好的推荐效果,其效用取决于底层模型和数据分布。

5.7 流行度偏差与幻觉(RQ6)

  • 流行度偏差:非热门物品的 NDCG@10 远低于整体(如 Reddit 上非热门仅 0.0013)。但 RAR 对非热门物品的提升接近 4 倍(相比纯 LLM baseline),语义 embedding retriever 和 RL 后训练有效缓解了流行度偏差
  • 幻觉:RAR 将不匹配标题比例降至 1% 以下,检索增强设计有效减少了幻觉

5.8 更多 LLM 泛化实验(Table 9)

Method Inspired N@5 R@5 N@10 R@10 Redial N@5 R@5 N@10 R@10 Reddit N@5 R@5 N@10 R@10
SFT_Qwen2.5 .0741 .0869 .0741 .0869 .0507 .0736 .0543 .0843 .0291 .0410 .0305 .0450
SFT_GPT4o .0547 .0652 .0600 .0815 .0514 .0742 .0585 .0959 .0340 .0467 .0371 .0556
SFT_Gem2 .0793 .0867 .1032 .1250 .0588 .0870 .0684 .1163 .0418 .0543 .0477 .0623
RAR_Qwen2.5 .0793 .1132 .0793 .1032 .0540 .0780 .0583 .0907 .0326 .0444 .0330 .0457
RAR_GPT4o .0768 .0978 .0820 .1141 .0522 .0771 .0595 .0994 .0369 .0510 .0393 .0582
RAR_Gem2 .0831 .1087 .0995 .1576 .0620 .0934 .0755 .1349 .0449 .0583 .0477 .0669

实验结论:RAR 方法在 Qwen 2.5、GPT-4o mini、Gemini 2.0 Flash 上均一致优于 SFT 基线,验证了框架的模型无关性。RAR_Gem2 整体表现最佳。

6. 关键设计决策

  • 不训练 LLM:将 LLM 视为黑盒,仅优化轻量级 retriever,使 RAR 可适配任意开源/闭源 LLM
  • 省略参考模型:实际实现中省略 DPO 的参考模型约束($\pi_{\text{ref}}$),因为联合训练的 $\mathcal{L}_{\text{nll}}$ 已足够防止策略漂移,且 dropout 导致参考模型的对数似然计算不稳定
  • Embedding 编码:使用 Qwen-8B embedding 模型对物品元数据(key-value 格式)进行编码

7. 总结

RAR 是首个将 embedding-based 检索增强与在线 RL 偏好优化结合的对话推荐框架。通过构建 30 万+电影的统一语料库,使用 LRURec 作为高效检索器,配合黑盒 LLM 生成器,并通过 DPO/GRPO 在线优化 retriever-generator 对齐,RAR 在 Inspired、Redial、Reddit 三个基准上一致超越现有方法。框架的模型无关性设计使其可以无缝适配不同的 LLM backbone。