RetrievalFormer: A Dual-Encoder Transformer for Efficient Approximate Nearest Neighbor Retrieval and Cold-Item Recommendation
论文把搜索与推荐放进共享双塔索引,要求新物品只凭内容或属性特征即可进入 ANN 召回。公开日志中 38.6% 的查询曝光涉及从未展示或访问的物品;用户冷启动时,99 个采样负例的 Recall@20 为 0.9595,暖启动为 0.9510,未见明显损失。作者还发现 19.7% 用户受 float32 时间戳排序 bug 影响,强调离线切分校验。
INSIGHT社区内容冷启动可以先从“特征可检索”做起,而不是等 item ID 积累交互后再接入推荐索引。双塔方案适合把标题、正文、图片和作者特征统一成可增量更新的向量;同时应把时间戳、留一法目标和全目录评估做成数据质量门禁,避免看似提升其实来自切分错误。
1. 问题与动机
RetrievalFormer讨论的是搜索与推荐共用一个item索引时,推荐侧究竟要为这个共享架构付出什么代价。核心矛盾在于:推荐模型常用ID-softmax或序列Transformer,依靠每个item一个输出向量,暖启动精度好但新item必须先进入训练词表;搜索没有专门的探索位,新内容不能靠被随机曝光积累交互后再变热,因此共享索引必须从item的内容和属性特征直接给冷item打分。作者在同时承载搜索与推荐的公开日志上发现,留出的一周查询搜索曝光中有38.6%涉及此前没有被展示或访问过的item,说明冷内容不是边缘情况。
论文的动机并不是宣称双塔一定更准,而是把开放性、精度、训练可扩展性和服务成本放到同一套受控协议下衡量。双塔可以对新item零样本编码,却通常使用采样InfoNCE而不是catalog-wide full softmax,可能牺牲暖启动质量;full softmax又需要每步重算全catalog item tower,在240K item的实现中会耗尽加速器内存。作者还指出,很多公开推荐结果受到数据切分、目标排序和调参预算影响:他们发现标准库的float32时间戳量化会让MovieLens-1M中19.7%的用户留一目标发生重排。因此,问题同时是建模问题、系统问题和评估协议问题。
2. 方法详解
RetrievalFormer是非对称双塔。item tower只接收item特征,输出可离线预计算和索引的向量f_i(features_i);user tower用Transformer编码交互历史,输出f_u(history_u)。推荐相关性就是共享空间内的点积s(u,i)=f_u(history_u)^T f_i(features_i),在线通过精确扫描或ANN搜索取Top-K,新item只需经item tower计算,不需要新增ID输出参数。
item和user两侧共享embedding tables。单值类别、多值标签、文本派生token先经过各自lookup和线性投影,组成H=[W_1E_f1(f_1);…;W_ME_fM(f_M)]。AttentionFusion采用Set-Transformer式块:Z=LayerNorm(H+MultiHeadAttn(H,H,H)),U=LayerNorm(Z+FFN(Z)),最后mean-pool得到实体表示。它对特征集合置换不敏感,能学习类别、标签、文本和上下文之间的交互;共享表使同一个类别或属性在item元数据、用户历史和用户画像中使用同一向量,作者在实现中观察到embedding参数大约可减少到原来的三分之一,并使新item的属性能复用已有语义。
user tower把每次历史交互融合成一个enriched token,里面既有被交互item的融合特征,也有评分和时间字段。输入序列形如[history, SEP, profile token, output token],采用prefix-LM attention和last-token readout:历史部分按时间建模,profile block可以双向读取,最后一个token作为user embedding。最佳配置还把item ID作为输入特征并绑定输出head,以提升暖启动;冷item路径天然没有这个ID通道。训练时有两类成套recipe:采样InfoNCE,以及一起变更loss、score、负采样和学习率schedule的exact full-softmax cross-entropy。作者强调不能只替换loss,因为比较会同时改变训练和评分机制。
配置搜索覆盖schedule、dropout、学习率、batch size、模型容量、深度和history cap。提交配置为Transformer width d_model=256、FFN=512、AdamW,weight decay=5×10^-4且不衰减embedding;user tower学习率3×10^-4,item tower为1×10^-3,使用cosine schedule、best-validation checkpoint和bf16。训练加入feature-noising:5%的已观测类别特征替换为reserved unknown token,使推理时部分属性缺失的冷item情况在训练分布中出现。
实验把MovieLens-1M、MIND和AliEC分别用于暖启动、配对目标和跨benchmark检查,还在Avito上下文广告日志验证搜索面的冷覆盖。MovieLens约3.4K items,MIND约9.4K;搜索日志覆盖112.2M次query search、286.8M次自然浏览和36.9M广告catalog。严格冷item切分时,冷item不能泄漏到训练;推荐侧比较GRU4Rec、SASRec、BERT4Rec、SASRecF、FDSA、DIF-SR以及DropoutNet、Heater、ALDI等专门冷启动方法。
3. 核心技术贡献
第一,论文把双塔推荐的“新item可被打分”定义为共享搜索/推荐索引的硬约束,而不是附加能力。item tower从属性生成向量,允许item在没有交互和没有新增ID参数时进入索引;这比ID-softmax模型只能重训后接纳新item更适合内容高频更新的平台。
第二,AttentionFusion和共享embedding把异构属性、行为上下文和用户画像放入同一个可索引空间。贡献重点不在提出新的ANN索引,而在说明特征编码和索引开放性之间的耦合:共享表大约减少三倍embedding参数,还让新item属性可以使用在其他上下文里学到的语义。
第三,论文系统地量化了开放性带来的quality–scale trade-off。full softmax是精度杠杆,但catalog-wide重算形成内存墙;采样目标更可扩展,却可能损失暖启动质量。严格协议下,模型暖启动达到最强重训基线的94.8%,冷item Recall@20达到0.172±0.006,是三种可重训冷启动方法最强者ALDI的1.4倍。
第四,作者把评估协议和服务成本作为研究贡献的一部分:修正时间戳导致19.7%用户目标重排;在真实embedding上HNSW保留精确Recall@20的99.98%,但ANN只有在百万级catalog后才成为主要成本。这个诊断价值对线上推荐系统往往不低于一个新网络模块。
4. 实验结果分析
暖启动结果使用修正后的MovieLens-1M chronological-last目标,全部基线都重新训练并做五轮验证调参,三seed均值如下:
| 模型 | Recall@20 | NDCG@20 | Echo@20 |
|---|---|---|---|
| GRU4Rec | 0.3687±0.0039 | 0.1799 | 3.11 |
| SASRec | 0.3893±0.0024 | 0.1876 | 3.87 |
| BERT4Rec | 0.3453±0.0024 | 0.1542 | 4.22 |
| SASRecF | 0.3851±0.0015 | 0.1911 | 3.33 |
| DIF-SR | 0.3944±0.0019 | 0.1883 | 3.99 |
| RetrievalFormer | 0.3739±0.0013 | 0.1693 | 4.42 |
RetrievalFormer达到最强DIF-SR Recall的94.8%,比GRU4Rec略高,但NDCG低于SASRecF,说明点积双塔在开放索引上的收益伴随暖启动排序质量损失。作者没有把这个损失隐藏在未调参基线后面:所有基线都重新跑,且调参本身可让四个模型再提升0.009到0.040。更强的ID/CF记忆通道能提升暖启动,但不能解决新item问题。
严格item冷启动结果更能体现设计目标:
| 模型/通道 | Cold Recall@20 | Warm Recall@20 | Overall |
|---|---|---|---|
| Last-item text cosine | 0.058 | 0.018 | — |
| MF tuned | 0.031±0.004 | 0.276±0.001 | 0.125 |
| DropoutNet meta | 0.094±0.013 | 0.241±0.001 | 0.109 |
| Heater meta | 0.106±0.005 | 0.256±0.002 | 0.116 |
| ALDI | 0.124±0.007 | 0.267±0.000 | 0.121 |
| RetrievalFormer content-only | 0.172±0.006 | 0.113±0.005 | 0.067 |
| + tuned MF score fusion | 0.172±0.006 | 0.276±0.001 | 0.125 |
| + instruction-tuned encoder fusion | 0.195±0.008 | 0.276±0.001 | 0.125 |
content-only塔的冷Recall是ALDI的1.4倍、Heater的1.6倍、训练无关floor的3倍,但暖Recall只有0.113;把冻结内容塔与冻结调优MF在score层融合后,冷端保持0.172,暖端回到0.276,不需额外训练。反直觉结果是,把一个更强的0.6B MTEB文本encoder直接替换进原配方,冷Recall反而相对下降19%,说明embedding几何与训练recipe需要共同重调,不能把通用embedding榜单分数等同于推荐收益。
目标函数消融显示full softmax在MIND-small上让测试Recall@20提升54%,MovieLens-1M提升6.9%,但240K item时训练内存耗尽。采样InfoNCE的主要价值是可扩展,精确目标的主要价值是精度。搜索面上,Avito一周留出曝光中38.6%涉及此前从未展示或访问的item;99负例协议下,冷Recall@20为0.9595±0.0008,暖为0.9510±0.0008,但作者用全catalog检查后认为两者差异统计上不可区分,明确把结论限定为“没有可测冷启动惩罚”,不是冷启动优势。服务成本也有尺度效应:1M items以内精确扫描p90低于30ms,10M时精确扫描约292ms而激进IVF-PQ约1ms,但后者只保留2.8%的精确Top-K;MIND-large上HNSW保留率99.98%,IVF-Flat为99.86%。
5. 局限与未来方向
论文第5节明确列出多项局限。首先,暖启动和大部分冷启动网格在MovieLens-1M上,MIND与AliEC只是配对目标或跨benchmark检查,数据规模和任务覆盖仍有限。其次没有做参数量对齐,RetrievalFormer的配置搜索比每个基线的五轮调参更广,构成偏向本模型的预算不对称;MovieLens基线通常只使用50步history,作者没有为基线重训更长窗口,因此不能把长上下文收益与架构收益完全分开。AliEC上模型仍落后两个最强基线15%。
冷启动对比只重训了三种专门方法,第四种CLCRec因实现没有通过许可审查而未纳入。残余差异的归因主要依靠history-context消融,监督密度和loss variants尚未完全隔离。10K以上扫描时间来自单主机合成embedding,运行间约有15%波动,绝对延迟依赖硬件;ANN只测一个索引族、两个probe设置,百万级catalog的端到端效果仍未完成。最关键的是,驱动架构的10^5级catalog没有做head-to-head accuracy comparison,240K处只测内存墙没有配套精度读数;特征塔还会继承元数据质量偏差,描述稀疏或损坏的长尾item可能得到更差表示。
搜索实验的相关性信号来自延迟交互日志,BM25比较是未调优版本,全catalog冷启动样本只有约2000条且单seed,统计功效不足以排除小幅差异。作者把query tower和调优搜索基线的直接对比留作未来工作。迁移到社区UGC时,还需额外验证中文短文本、图片、多模态噪声、作者质量与内容安全特征。
6. 工业实践意义
对社区搜索与推荐,最直接的启发是把新内容开放性作为索引级SLO,而不是等冷启动策略在精排层补救。新帖子只要有标题、正文、图片、话题、作者和时间等特征,就应由item tower生成向量并写入共享索引;用户塔可统一编码搜索query、历史点击、收藏和浏览序列。这样搜索侧不需要给新帖额外探索曝光,推荐侧也能复用同一套内容表示。若业务需要更强暖启动效果,可以像论文那样把ID/CF记忆通道与内容通道做冻结score fusion,冷内容仍走内容塔,老内容享受协同过滤的记忆,不必把两个目标强行共训为一个网络。
模型结构上,AttentionFusion适合社区的异构字段:标题和正文的语义向量、话题集合、作者属性、媒体模态和上下文可以作为可变长feature set;共享embedding能减少重复词表,并把用户历史中的语义学习迁移给新内容。但要做特征质量分桶,识别空标题、低质OCR、删除文本和过期作者信息。5% feature noising是一个低成本的冷启动正则化起点,配合unknown token可以把缺字段情况显式纳入训练。
训练和评估应先修数据协议,再讨论模型大小。推荐团队需要固定按时间切分、留一目标、负采样、seen-item mask和全catalog/采样两套指标;尤其要检查时间戳精度,避免目标错排。建议同时报告warm Recall/NDCG、cold Recall、coverage、new-item exposure、echo rate和ANN exact-retention,不能只报一个采样Recall。若catalog在百万级以内,先用精确或高召回索引测清楚模型质量;超过百万后再以p90、probe数和Top-K保真度共同选择IVF/HNSW/PQ配置。
部署层面,双塔的item向量可离线或流式增量更新,user tower保留实时请求计算;在新内容极多的社区场景,关键瓶颈通常是内容编码、索引写入和删除/版本同步,而不是ANN本身。建议设置新帖首个向量可用延迟、向量版本一致性、冷帖召回率、缺字段率和安全过滤通过率监控。最后应把论文的限制转化为上线门禁:搜索query tower必须在真实搜索日志上单独训练和评估,BM25要用调优版本做基线,千万级catalog要做真实端到端ANN测试,不能把小数据集上的冷启动结果直接外推到生产。