
基本信息
- 论文标题:Large Reasoning Embedding Models: Towards Next-Generation Dense Retrieval Paradigm
- 作者单位:阿里巴巴
- 论文链接:https://arxiv.org/abs/2510.14321
- 来源:arxiv
一、问题
电商emb召回场景,目前的方法都是直接字面语义上的对比学习训练(direct-embedding methods),即q2i的对比学习训练。对于复杂、困难的query,语义理解能力不足,比如下图Fig1中的query=“比茶更提神的饮料”,仍然会召回很多茶,因为字面理解没有理解query背后的深层含义。

二、方法
使用LLM强大的推理能力(reasoning),先推理出CoT,然后基于CoT再产emb。比如上面的例子中,经过LLM推理之后,推理出咖啡、红牛等关键词,通过这些关键词再去产emb然后召回,效果就好很多。
2.1 训练样本构造方法
如下图Fig2中的Data Construction部分:
- 收集线上query,尤其是那种困难query,就是在现有direct-embedding表现不好的query
- 把这些query喂给现有召回模型,得到召回商品集合①
- 然后使用强大的Qwen3-30B-A3B-Instruct生产CoT扩展信息
- Unconstrained Reasoning:首先不加任何限制地生产CoT,尽可能利用大模型的世界知识和推理能力,生产充分完全的CoT信息
- Information Extraction:由于上一步产出的CoT信息太长了,不利于线上推理,因此把上一步产出的CoT和原始query再次输入给大模型,让大模型抽取其中的关键信息,以keyword list形式输出
- Post Processing:最后对上一步抽取的关键词进行后处理,去除重复词,去除query中已有的词等,得到精简、干净的关键词列表,列表最大长度是16
- 接着把query和CoT喂给已有的向量召回模型,得到扩展的召回商品集合②
- 由于要训练模型的Reasoning能力,所以只取出集合②-①的差集部分,这部分是CoT带来的增益商品集合
- 最后使用相关性模型对商品集合②-①进行过滤,过滤出相关的商品
- 通过上述步骤,产出约7.5kw的<query, CoT, item>三元组
- 把上述样本划分成两部分,7.1kw的<query, CoT, item>三元组用于Cold start预训练;剩余400w的<query, item>用于RL微调

2.2 Cold Start预训练
对应图Fig2左下角部分,该模块通过大规模的<query, CoT,item>三元组数据预训练,想要达到两个目的:一是让基础模型具备think能力;二是让基础模型产出的emb和下游q2i任务对齐。
这里使用的基础模型是Qwen2.5-3B-Instruct,比生产CoT的模型(Qwen3-30B-A3B-Instruct)小,其实也有点蒸馏的感觉,把大模型的CoT能力蒸馏到小模型中。
训练任务包括两个,一个是CoT的NTP loss(对应图中的SFT loss),另一个是q2i的对比学习InfoNCE loss。query塔和item塔共享参数,他们的emb都是最后一个特殊token <emb> 的emb。

Loss组合:

2.3 RL微调
上一步的SFT主要进行模仿学习,模仿更大的大模型的think能力,小模型本身的reasoning能力受限,接下来需要用GRPO对小模型进行RL微调。RL微调同时对生产CoT和生产emb两个任务都有作用,具体看下面的reward:
RL微调设计了3个reward:
- Format Reward:产出的CoT格式符合“<think> Specific CoT </think><emb>”就得1分,否则得0分
- Length Reward:产出的CoT格式符合长度限制(<=16)就得1分,否则得0分
- Retrieval Accuracy Reward:联合原始query和产出的CoT产出的增强query emb,与batch内所有的item emb求相似度,正确item所在的排名为\(rank(d_i)\),再根据公式12计算一个排名的reward。核心思想是:正确的item与query的相似度排名越高则reward越大(即rank值越小则reward越大)。

最后,上述3个reward通过三个β系数组合起来:

RL的训练目标,GRPO loss如下:

在RL阶段,除了有GRPO loss,原有的InfoNCE对比学习loss也还在,两个loss通过系数γ组合起来,如公式16所示。
2.4 训练细节
- 产CoT的推理模型:Qwen3-30B-A3B-Instruct
- emb基座模型:Qwen2.5-3B-Instruct
- 训练资源:128 GPUs
- 预训练阶段:
- CoT最大长度:16
- loss系数:\(\lambda_1=0.1, \lambda_2=1\),也就是InfoNCE loss是主导的,NTP的loss权重很小
- batchsize=128
- lr=1e-5,cosine scheduler with a warmup ratio of 0.03
- 训练1个epoch
- RL阶段:
- GRPO每次采样8个CoT
- length reward长度阈值16
- 三个reward系数:\(\beta_1=0.5, \beta_2=0.2, \beta_3=1\),\(\beta_3\)最大,即准度的reward最重要
- loss系数\(\gamma_1=1,\gamma_2=0.1\),即GRPO的loss权重最大
- batchsize=256,RL阶段的batchsize是预训练阶段的2倍
- lr=1e-6,cosine scheduler with a warmup ratio of 0.03,RL阶段的lr比预训练小
- 训练1个epoch
三、结果
- 如下图所示,最后一行LREM(Cold Start+RL)效果最好,但是LREM(Cold Start)效果很差啊,比Qwen2.5的好几个base都差。。。这就很奇怪了,理论上LREM(Cold Start)去掉CoT和SFT loss的结构和Qwen2.5 (Uni-Attn. Last)的结构是完全一样的,但是前者的指标比后者差很多,难道是加了CoT和SFT loss有负向影响?
- LREM(Cold Start+RL)比LREM(Cold Start)提升非常大,也能说明LREM(Cold Start)效果很差。但是不应该呀,RL的几个reward,理论上在预训练阶段都有训练到,即使对于准度的reward3,其实也相当于positive在in-batch内的相似度要大于其他negative,本质上和InfoNCE loss的目的是一致的,为啥换成RL的形式后提升这么大?

- 作者还分析了CoT的作用,把CoT换成空的、随机字符串、或者单纯重复query,效果都下降很多,说明CoT很重要。

四、评价
- 问题切入点很好,特别是在相关性、召回场景,query更加多样,困难的query也更多,而且本文主要就是解决困难query的场景,但是这种情况在线上的占比应该很小?作者没讲
- CoT数据的生产经过了很多步骤,看得出来经过了多轮迭代优化,也说明这个环节有很多坑,直接用更大模型产出的无约束的CoT可能效果不行。。。
- 本文只针对query进行了CoT扩张,能不能对item也扩展一下呢?
- 本文最终效果提升很大,但是这个提升真的来自RL吗,感觉有点怀疑呀。个人感觉CoT的信息可能更重要一点,需要补充一个对比实验,即用emb基座模型直接加入本文产出的CoT进行对比学习预训练,不加后面的RL,看看效果怎么样。就是CoT只作为附加特征,相当于LREM(Cold Start)基础上去掉SFT loss,感觉这样就能取得不错的效果吧。