CoNRec:推荐里的 LLM-RL,开始显式补负反馈过滤层
背景
补完 R2Rank、DeepRec、VRec 和跨域新闻推荐里的 query carrier 之后,我原本已经比较习惯这样理解推荐里的 RL:
- 要么直接优化正向推荐列表。
- 要么控制 reasoning / tool-use 轨迹。
- 要么把推荐信号压成 profile、verbalized context 或 retrieval query。
但这轮用 arXiv API 按 recommendation + reinforcement learning + large language model 做增量检索,再回到论文摘要页、arXiv HTML、PDF 和 GitHub API 做定向核验后,我补到一个此前还没进 Story Lab 的入口:
核完之后,我更倾向于把它记成:
推荐里的 LLM-RL,不只在学“该推什么”,也开始显式学“哪些东西该被过滤掉”
也就是:
negative-interest modeling + offline filtering
核心判断
CoNRec 的关键,不是又一个负采样 trick,而是把负反馈建模单独做成系统层
这篇论文最值得单独记住的点,不是“推荐里也可以用 dislike signal”。
真正重要的是,它把负反馈从正向推荐任务的附属信号,推进成了一个独立 consumer:
- 输入不是纯正向历史,而是
negative feedback + positive interactions。 - 输出也不是正向 slate,而是一组“用户可能不想再看到”的 item。
- 最终部署位置不是替代 ranker,而是作为现有排序系统的
offline filter。
这和此前站里已经记过的大多数路线都不一样。
OneRec / GR4AD / R2Rank 主要还是在修正向推荐产出。
DeepRec / RecThinker 更像在修桥接、tool-use 和中间推理。
CoNRec 则是在补另一条此前没有单独成层的路线:
negative-interest filter
如果不把它单独记出来,后面很容易把它误写成普通负样本构造、普通 rerank penalty,或者普通“加一点 dislike feature”。
这条线的起点,是论文先证明了 next negative item 本身很脏
CoNRec 的动机实验很关键,因为它没有默认接受传统 next-item prediction 这套训练对象。
论文 Figure 2 直接给了两组很硬的数字:
- 只看下一个 negative item 时,它只覆盖用户主负兴趣的
7%,Top-4 也只有17%。 - 把 horizon 扩到未来
7天后,主负兴趣覆盖升到18%,Top-4 升到48%。
这说明负反馈场景里的一个核心问题是:
系统已经把用户讨厌的东西过滤掉了,所以“下一个负反馈 item”未必代表用户真正的负兴趣,只代表系统还放出来了什么。
这和正向推荐里“下一个点击 / 购买通常能代表兴趣”完全不是一回事。
因此 CoNRec 做的第一件事,不是把已有正向目标翻过来,而是先改 Ground Truth Set,把目标从:
single next negative item
改成:
future negative items + collaborative negative items
这也是它为什么要把 reward 重新设计一遍。
它还证明了:在负反馈场景里,正向上下文不是天然有益,反而会淹没真正的负信号
这篇 paper 的第二个关键实验,是它直接挑战了“上下文越多越好”。
论文 Figure 2(b) 写得很明确:
- negative 序列本来就远短于 positive 序列。
- 把 positive history 一起喂进去后,模型注意力会被长得多的正向上下文吞掉。
- 在
LC-Rec上,negative + positive相比negative only,HR@20直接掉了45%,candidate accuracy 掉了50%。
这组结果很重要,因为它说明:
负反馈任务里,“把所有历史都扔给 LLM”并不是一个稳妥默认值。
所以 CoNRec 的 Progressive GRPO 不是花哨训练名词,而是在修一个很具体的问题:
怎样逐步引入上下文,而不是一开始就让正向历史把负向兴趣冲掉。
论文把这件事拆成了三段:
- 先只用过去
3天的负反馈序列。 - 再扩到完整负反馈序列。
- 最后再把正向历史加进来。
这让它更像一种:
negative-context curriculum
而不是普通 GRPO 套皮。
整条 pipeline 的真正结构,是 semantic compression -> item alignment -> progressive GRPO
CoNRec 不是只在 reward 上改了一点。
论文 Figure 3 写得很清楚,它至少有三层连续结构:
Context Compression
用多模态 encoder + RQ-VAE 把 title / image 压成 hierarchical semantic ID,避免商品文本过长、冗余和冷启动 item 不可生成的问题。
Context Understanding
先做传统 SID <-> title 双向翻译,再额外做 item-level alignment,强迫模型区分“同一用户会买的 item”和“同一用户会点不感兴趣的 item”。
Context Utilization
再进入 Progressive GRPO,用扩展过的 Ground Truth Set 和 future positive penalty 去训最终 policy。
这让它和普通“给 LLM 一个用户画像,让它猜用户不喜欢什么”的 prompt baseline 已经不是同一种对象。
更准确的说法应该是:
CoNRec 在把 negative recommendation 写成一条独立的训练栈,而不是一条推理时 prompt trick。
它最值得记的 reward 设计,是把 future positive 也拉进来做惩罚
CoNRec 对 reward 的处理也很有启发,因为它没有停在“未来负反馈越像越好”。
论文 Table 4 比较了几种 reward scheme,最终最好的是:
future negative similarity - future positive similarity penalty
对应的 scheme (c) 指标是:
FHR@20 = 0.0441LUF@20 = 0.0297LIF@20 = 0.0496
而只看 future negative 的 scheme (a) 则是:
FHR@20 = 0.0434LUF@20 = 0.0268LIF@20 = 0.0452
这说明这条线不是单纯把更多负反馈聚过来,而是在明确学:
哪些 item 像用户将来会厌恶的东西,同时又要避开那些将来仍可能被用户正向接受的东西。
所以它更像:
negative-interest boundary modeling
而不是普通 hit-based 负向预测。
它最终消费的位置,不是替换现有 ranker,而是作为 ranking 之后的过滤器
这篇论文最容易被忽略,但对系统角色最关键的一点,在 Figure 4。
CoNRec 的工业应用并不是“在线实时生成整条负向列表,再重排全系统”。
它的写法更克制:
- 现有 ranking stage 先产出 target item。
CoNRec根据用户正负历史做 beam search,生成一个Predict Set。- 把 target item 和 predict set 都重建回 embedding。
- 如果 target 与任一 predict item 的最大相似度超过阈值,就把 target 过滤掉。
也就是说,它在系统里更像:
post-ranking negative filter
这对 Story Lab 很重要,因为这说明 LLM-RL 在推荐系统里不一定总是一个“主推荐器”。
它也可以是:
用户体验保护层
而且这层当前已经能被写成独立的 offline industrial application。
这条线也逼着 Story Lab 重新看负反馈任务的评测口径
CoNRec 还做了一件很值得记的事:
它没有继续用正向推荐里熟悉的 NDCG 当默认总指标。
论文明确说,负反馈过滤任务里传统 NDCG 并不合适,于是它另外引入:
FHR@20
未来 7 天只要命中任一真实负反馈 item 就算 hit。
LUF@20
long-tail user 版本的 FHR@20。
LIF@20
long-tail item 版本的 FHR@20。
Candidate Accuracy
在 1 个真负例 + 19 个同日曝光 distractors 组成的 20 选 1 设置里测判别能力。
这意味着 Story Lab 后面记录负反馈相关路线时,不能再默认沿用正向 ranking 的指标习惯。
更合理的记法,至少要把:
ground-truth horizon / future-positive penalty / filter-oriented metric
单独记出来。
主结果说明这条线修的不是局部小点,而是整个 negative filter workflow
这篇 paper 的主结果也很整齐。
正文 Quantitative Results 明确给出,相比 LC-Rec (Neg. Only),CoNRec 达到:
HR@20 +11.5%FHR@20 +13.7%LUF@20 +15.1%LIF@20 +24.9%Candidate Accuracy +101.3%
如果看 Table 2 的增量消融,这个结构也不是靠单个模块硬抬:
- baseline 的 candidate accuracy 是
0.2764 - 加
Item Level Alignment后到0.5088 - 再加
Progressive-Context GRPO到0.5476 - 加
Negative Future Rewards到0.6532 - 最后加
Positive Future Rewards到0.6950
这说明 CoNRec 修的不是某个单点技巧,而是从上下文组织、目标定义到 reward 边界的一整套负反馈 workflow。
对 Story Lab 的直接影响
补完这篇论文之后,我觉得统一方法表里,集成层 至少还要再补一个位置:
negative-interest filter
否则下面这些会被误写成同一种“推荐里的 RL”:
OneRec / GR4AD这种正向生成器。DeepRec / RecThinker这种 bridge / tool-use 系统。R2Rank这种 candidate-level reasoning ranker。CoNRec这种offline negative-interest filter。
更进一步说,这条线还逼着 Story Lab 给负反馈任务单独记:
ground-truth horizonpositive-signal penaltyfilter-oriented metric
否则 negative recommendation 会被粗暴并入正向 ranking。
公开边界
这条线当前更适合先记成:
paper-first negative-feedback filtering route
我这轮按论文全标题和 arXiv id 2601.15721 做 GitHub API 精确检索,截至 2026-03-22 仍未看到稳定官方仓。
所以当前可以稳定回溯的是:
- arXiv 摘要页
- arXiv HTML / PDF 正文
- GitHub 搜索结果里“暂无官方 repo”这条公开边界
还不能把它写成已公开 workflow。
中文传播层
这一轮我也继续补做了:
CoNRec 推荐 中文Context-Discerning Negative Recommendation with LLMs 中文site:xiaohongshu.com CoNRec 推荐site:xiaohongshu.com 负反馈 推荐 大模型xhslink 负反馈 推荐 大模型
截至 2026-03-22,稳定结果仍主要是 arXiv 原文页、自动摘要页、日报索引和噪声,没有拿到足够强的中文机制稿,也没有拿到可复用的稳定 xhslink。
所以这条线当前仍应以 arXiv 一手材料为准。
证据与来源
CoNRec: Context-Discerning Negative Recommendation with LLMs:论文摘要主入口;可直接核到2026-01-22的提交时间、Alibaba / Taobao 背景、item-level alignment、Progressive GRPO与负反馈建模定位。CoNRecarXiv HTML:正文关键入口;Figure 2-4和Section 3-4直接给出7% / 17% / 48%的动机实验、45% / 50%的额外上下文退化、offline filtering 用法、Table 2 / Table 4的增量消融与 reward scheme 对比。CoNRecPDF:便于稳定复核Table 1-5、LC-Rec对照、+101.3%candidate accuracy 提升、Qwen3-14Bbackbone、10M翻译语料与4Mitem alignment 样本等实验设置。GitHub仓库搜索:"CoNRec: Context-Discerning Negative Recommendation with LLMs":本轮用于复核公开边界;截至2026-03-22,未见稳定官方 repo。
下一步
- 把
CoNRec和OneRec / GR4AD / DeepRec / R2Rank并入同一张结构表,新增negative-interest filter这一层,避免把正向生成、bridge、reasoning ranker 和负反馈过滤写成同一种对象。 - 如果后续出现官方仓、数据接口或线上部署细节,再回头修正这条线的公开边界。
- 继续跟踪中文传播层是否出现更强的机制稿或稳定
xhslink;当前仍然明显偏弱。