摘录:在大语言模型时代如何改进推荐系统与搜索

原文链接:

Improving Recommendation Systems & Search in the Age of LLMs

一篇综述性质的生成式推荐博文,背景是2023年,彼时生成式推荐刚开始在工业界被各个大厂探索。


过去,推荐系统和搜索一直深受语言模型(Language Modeling)的启发。例如,早期有将 Word2vec 用于学习物品向量嵌入(Embedding-based Retrieval),以及使用 GRUTransformerBERT 来预测下一步最优物品(Ranking)。如今的大语言模型(LLM)浪潮与之前并无本质不同,只是规模和影响力更大。

以下将讨论过去一年左右工业界在搜索和推荐领域的演进,重点涉及模型架构、数据生成、训练范式以及统一框架:


LLM/多模态增强的模型架构

许多推荐模型正在融合语言模型和多模态内容,以克服传统基于 ID 的方法所面临的局限。借助内容理解与行为建模的结合,这些混合架构能更好地应对冷启动与长尾物品推荐等难题。

Semantic IDs(YouTube) 提出用内容生成的特征代替传统的哈希 ID,解决用户对新物品和长尾物品偏好预测困难的问题。该方法使用两阶段框架:

  1. 第一阶段:视频编码器(类似 Video-BERT 的 Transformer)将视频内容提取为高维稠密向量(dense embedding)。随后,使用残差量化变分自编码器(RQ-VAE)将这些向量压缩为离散的 “Semantic IDs”。
  2. 第二阶段:将训练好的 RQ-VAE 冻结,用它把视频内容转换为 Semantic IDs,再把这些 Semantic IDs 用来训练实际生产环境中的大规模排序模型。

在 RQ-VAE 中,编码器将内容向量映射到 256 维的潜在向量空间,然后残差量化器将潜在向量离散化,解码器再把它还原回原始向量。原始内容向量来自带 VideoBERT 骨干网络的 Transformer,维度为 2048,能捕捉视频主题等信息。

Semantic IDs

要把 Semantic IDs 整合到排序模型中,作者提出两种方法:N-gram 和 SentencePiece Model (SPM)。其中 N-gram 以固定长度分组,SPM 则可以自适应地学习变长 “子词” 片段。排序模型是多任务的生产环境排序模型,目标是根据用户历史和当下所观看的视频推荐下一个视频。

实验结果: 直接将稠密内容向量输入排序模型,效果居然还比随机哈希 ID 更差。作者推测,大规模 ID-based Embedding Table 可以记忆大量细节,而单纯的固定稠密向量不利于模型记忆,导致点击率(CTR)下降。不过,N-gram 和 SPM 的 Semantic IDs 都比随机哈希好,尤其在冷启动场景中表现更优。消融实验还显示:在嵌入表尺寸较小时(比如 8×K 或 4×K^2),N-gram 略占优势;而随着嵌入表变大,SPM 的泛化和效率更好。

Semantic IDs

虚线表示直接使用稠密向量,比用随机哈希(橙色实线)更差。

相似思路的 M3CSR(Kuaishou) 则引入多模态内容向量(视觉、文本、音频),然后通过 K-means 聚类将它们转换为可训练的 “类别 ID”,使静态内容向量变得可随行为动态调整。
M3CSR 使用双塔结构(user tower 和 item tower),便于线上推理时预先计算并通过近似最近邻进行检索。具体地,item 端会先用 ResNet、Sentence-BERT、VGGish 获得视觉、文本和音频向量,再拼接成单个向量,然后用 K-means 对上千万视频聚成约 1000 个聚类。
之后,聚类后的 “类别 ID” 会经过一个 Modal Encoder(多层感知机)将内容特征映射到和用户行为一致的空间,并给每个聚类 ID 分配可训练的向量。

M3CSR

在用户侧,M3CSR 从用户行为序列中提取兴趣,并额外模型化用户在不同模态(如视频、文本、音频)方面的偏好。它把物品 ID 再映射回同一个 Modal Encoder,从而获得与模态对应的向量,这样可捕捉用户对各模态的细分喜好。

实验结果: M3CSR 在 VBPR、MMGCN、LATTICE 等多模态基线之上取得了更好成绩。消融实验显示,建模用户在不同模态上的喜好是关键;而多模态特征相比单一模态特征有更好表现,在 Amazon、TikTok、Allrecipes 数据集都一致成立。线上 A/B 测试表明:点击量提升 3.4%,点赞提升 3.0%,关注提升 3.1%。而且在冷启动场景下,M3CSR 也有显著增益,冷启动速度提升 1.2%,冷启动视频覆盖率提升 3.6%。

FLIP(Huawei) 展示如何将 ID-based 推荐模型与 LLM 对齐,使用遮掩的表格数据(ID)与文本数据进行交叉重构,从而在两种模态间实现细粒度对齐。
它分三步走:

  1. 模态转化:把表格数据(用户 ID、物品 ID 等)转换为文本,通过特定提示模板呈现;
  2. 模态对齐预训练:对文本和表格数据做联合的 Masked Language Modeling(MLM)与 Masked Tabular Modeling(MTM)来深度对齐;还用 Instance-level Contrastive Learning(ICL)使两种模态的全局表示靠近;
  3. 自适应微调:将 TinyBERT(LLM 部分)与 DCNv2(ID-based 部分)分别添加输出层预测点击率,再对两者输出做加权融合,权重在训练中自适应学习。

FLIP

最后在 CTR 任务上微调模型,得到一个既能处理 ID 特征、又能处理文本特征的统一预测结构。
实验结果: FLIP 比单纯只用 ID、只用 LLM,或简单拼接 ID+LLM 的模型表现更优。消融实验也证明:MLM 和 MTM 两种目标都有贡献,字段级(field-level)遮掩比随机遮掩更有效,跨模态联合重构是性能提升的关键。

同样,beeFormer 通过在用户-物品交互数据中加入文本信息来训练纯文本 Transformer,希望兼顾语义相似度和用户交互相似度。
beeFormer 的流程大致是:先用句子 Transformer 为物品生成文本向量,再用 ELSA(scalablE Linear Shallow Autoencoder)来建模用户-物品的交互模式,并实现低秩近似。当进行推荐时,ELSA 计算 item-to-item 的权重矩阵;然后通过推荐损失反向传播,让 Transformer 也能学习到用户偏好(而不仅是文本语义相似度)。

beeFormer

在大规模训练时,使用了梯度检查点、梯度累加、负采样等技术控制内存与效率。
实验结果: beeFormer 在离线评测中超过了 mpnet-base-v2 和 bge-m3 等基线(但这些基线并未在目标数据上微调,比较并不算完全公平)。有意思的是,跨域训练(如用电影+图书)比单域训练更好,说明可能存在一定的跨域迁移效应。

CALRec(Google) 则提出了一个两阶段微调预训练 LLM(PaLM-2 XXS)来做序列推荐的框架,输入和输出都以文本形式表示。
具体做法:把用户交互历史中物品的各种属性(标题、类别、品牌、价格等)转成类似 “属性名: 属性信息” 的结构化文本,拼接后再加上 “下一个物品” 的提示,让模型以续写方式生成用户下一个会购买的物品描述。

CALRec

CALRec 的微调分两步:

  1. 跨类别训练:让模型初步适应不同类别下的序列推荐模式;
  2. 再在特定类别的物品数据上进一步训练。
    它同时用生成损失(预测下一个物品文本)和对比损失来对齐用户和物品表示。线上推理时,则用温度采样生成多条候选,然后用 BM25 和分数排序去重,取 top k。
    实验结果: 在 Amazon Review Dataset 2018 上,CALRec 超过了 ID-based 和文本-based 的基线模型(如 SASRec、BERT4Rec、FDSA、UniSRec)。消融实验显示,两阶段训练不可或缺,多类别预训练帮助不小,对比学习也带来额外 0.8%~1.7% 的收益。

EmbSum(Meta) 则利用文本摘要来构建内容型推荐,通过提取用户行为历史和候选内容的关键信息,然后再用 T5-small(61M 参数)进行编码。同时,它还用 Mixtral-8x22B-Instruct 来生成可解释的用户兴趣摘要,再把摘要输入 T5 编码器来获得最终的用户、物品向量。
EmbSum 的核心是 UPE(User Poly-Embeddings)和 CPE(Content Poly-Embeddings):

  • 对用户来说,通过会话分割和多次编码得到的向量,最后在解码器的 [EOS] 位置拼接,经过多头注意力层来提炼多粒度的兴趣向量。
  • 对内容来说,也采用类似多向量方式。
    训练用带噪对比学习和摘要学习的联合损失来提升推荐效果。

EmbSum

实验结果: EmbSum 超过了一些现有的内容推荐方法。但值得注意的是,跟行为型推荐的直接对比尚缺乏,后续效果还需要更多验证。作者也做了消融实验,发现 CPE(内容多向量)贡献最大,其次是会话分割、用户多向量和摘要损失。用 GPT-4 做评估也表明其生成的用户兴趣摘要质量不错。


LLM辅助的数据生成与分析

另一个共同趋势是用 LLM 来丰富数据,包括缓解数据不足、提升数据质量、合成或解析数据等。有不少案例:

  • 生成网页元数据(Bing)
  • 生成不良职位匹配的训练样本(Indeed)
  • 生成查询语义标签(Yelp)
  • 生成探索型搜索查询(Spotify)
  • 丰富音乐歌单元数据(Amazon)

这些做法显著改善了实际搜索和推荐效果。

Recommendation Quality Improvement(Bing) 讲述了 Bing 如何利用 LLM 生成网页标题、摘要,并训练一个新的 LLM 来预测点击和质量得分,进而提升网页互推(webpage-to-webpage recommendations)质量。
原先 Bing 的网页表示依赖抽取式摘要,常导致查询理解不准确。为此,他们用 GPT-4 为 200 万个网页生成更精准的标题和摘要,然后又用这些数据去微调了一个 Mistral-7B 模型,得到更大规模可部署的文本生成能力。
还在排序端采用 MiniLM 的跨编码器(cross-encoder)做多任务学习,同时预测点选倾向和页面质量,然后把它与 LightGBM 排序模型的得分线性组合。
为了理解用户搜索意图,还定义了 16 种场景,用精心编写的提示词让 Mistral-7B+GPT-4 的输出进行分类,从而量化不同场景下质量的变化。

Recommendation Quality Improvement

实验结果: 改进后系统使点击诱导类内容减少 31%、低权威内容减少 35%、重复内容减少 76%,同时高权威内容占比升 18%,跨媒介推荐升 48%,更具深度的推荐升 20%。即便 “点击诱导” 内容往往 CTR 较高,但组合后的质量模型仍能显著提升整体推荐品质。

(👉 值得一读) Expected Bad Match(Indeed) 介绍 Indeed 如何用 LLM 生成的标注来识别不良职位匹配。
他们先从 250 个职位-候选人匹配示例中精挑细选,得到 147 个高置信度标注,然后尝试用多种 LLM(如 Llama2、Mistral-7B)根据招聘标准去评估匹配质量。但这些模型无法很好地消化复杂长文本。GPT-4 效果最好,但成本过高。
于是他们从 GPT-4 输出中选择 200 多条高质量案例,用它去微调 GPT-3.5,能在匹配质量判断上逼近 GPT-4,同时费用和延迟都降低。然而,即便如此,单次推理仍需 6.7 秒,不适合实时线上。
最终,他们把微调后的 GPT-3.5 输出用来给一个小型分类器(eBadMatch)做训练监督,模型只需少量特征(职位、简历、用户行为的类别特征等),就能快速判别不良匹配。生产中会每天抽样生成新数据来微调这个分类器,并在生产环境对不良匹配做后处理过滤。

Expected Bad Match

结果: eBadMatch 在不良匹配检测上 AUC-ROC 可达 0.86,线上实验表明:设置 20% 阈值可使每日批量匹配减少 17.68%,退订率下降 4.97%,投递率上升 4.13%,同时主页推荐也有类似提升。

(👉 值得一读) Query Understanding(Yelp) 介绍 Yelp 如何用 LLM 改进搜索查询理解(segmentation)以及生成更恰当的点评摘要(review highlights)。
在查询切分(segmentation)中,需要识别查询中的主题、地点、时间等多种意图标签。实验中发现拼写校正也可与切分一并进行,还采用检索增强生成(RAG)提供业务名和类目信息,帮助模型更精确地理解意图。
在点评摘要(review highlights)生成里,使用 LLM 为已有点评短语生成更多同义扩展,结合 RAG 注入业务类别等上下文,离线人工标注验证后再做线上测试。最终,他们通过把最常见的查询缓存成批处理,大规模覆盖 95% 的流量;对于长尾查询再用小模型处理。
结果: Yelp 的查询切分对定位意图检测更准确,而改进后的点评摘要提升了会话和搜索 CTR,特别是对长尾查询收益明显。

Query Recommendations(Spotify) 则阐述了如何为用户提供探索性搜索建议(而非只给定直接结果),以支持 Spotify 向播客、有声书、多种内容扩张,让用户可以通过建议查询的方式进行探索。
他们基于以下多种来源生成推荐查询:

  • (i) 从目录里的标题、歌单名、播客文本中提取;
  • (ii) 从用户搜索日志中挖掘;
  • (iii) 利用用户近期搜索记录;
  • (iv) 通过元数据和扩展规则(如 “艺人名 + covers”);
  • (v) 用 LLM(Doc2query 或 InPars)生成合成查询,平衡可探索性并减少检索偏差。
    之后,用一个点状得分模型对这些查询与常规检索结果一起排序,特征包括文本匹配、查询统计、检索分数和用户行为等。

Query Recommendations

结果: 更新后的系统让探索意图的查询量增长 9%,用户每次会话的最大查询长度增长 30%,平均查询长度也提升 10%,说明用户更愿意表达复杂意图。若移除该查询推荐层,点击率会下降 20%,可见它的价值。

Playlist Search(Amazon) 介绍了如何在歌单搜索场景中使用 LLM 生成和丰富歌单元数据,解决社区歌单标签不足、评估规模化难等问题。
社区歌单往往只有标题缺乏描述,为了补足元数据,他们先让一个 “LLM curator” 根据歌单前 15 首歌曲生成主题、风格、活动等描述,再微调 Flan-T5-XL 进行规模化生成。
还用一个 “LLM labeler” 生成合成的查询-歌单训练样本,并筛选出质量较高的正负例,用来训练双塔检索模型。最后,用 “LLM judge” 来辅助评估过程。
结果: 新增元数据后,测试集召回率大幅提升,且在规模化生成和评估方面减少了大量人工成本。


Scaling Laws、迁移学习、蒸馏、LoRA 等

受到大型语言模型(LLM)和计算机视觉领域的启发,很多推荐场景也开始研究类似的训练方法:如探讨模型容量与数据量的扩展规律(Scaling Laws)、用知识蒸馏从大模型迁移到小模型、跨域迁移、低秩微调(LoRA)等。

(👉 值得一读) Scaling Laws 探索了在序列推荐中,模型规模增大和训练数据扩充对表现的提升是否符合可预测的幂律关系。结果发现,随模型和数据增大,性能确实逐渐提升,且在 MovieLens-20M 和 Amazon-2018 两个数据集上都呈稳定规律。
他们用 decoder-only 的 Transformer,规模从 9.83×10^4 参数到 0.8×10^9 参数不等。数据只使用用户与物品的交互序列,最多序列长度 50,超过则截断。训练目标是预测下一个物品 ID。
为解决大模型不稳定,他们引入了分层自适应 dropout(越靠前层 dropout 越大,越靠后层越小)和“先用 Adam 再切换 SGD”的优化器组合。这样能快速收敛又可在后期避免 Adam 的泛化劣势。

Scaling Laws

结果: 增加模型容量(不算嵌入表的参数)会持续降低交叉熵损失,与幂律曲线吻合。大模型在小数据集上也能比小模型更快收敛。例如,75.5M 参数模型只需一半数据(920 万交互)就达到与 9.83×10^4 参数模型用 1850 万交互类似的损失。
而在训练多个 epoch 时,大模型依然能持续降低损失(比如跑 2~5 轮都有收益),小模型收益却有限。尝试改变模型形状(层数、宽度)影响不大。对长尾物品和冷启动用户,大模型也表现出更明显优势。

Scaling Laws

PrepRec 探讨如何把预训练思路带入推荐系统,实现跨域或零样本(zero-shot)推荐,而不依赖物品的显式属性,只靠用户交互中的 “受欢迎度(popularity)” 动态特征。
做法是提取物品在粗粒度(月度)和细粒度(周度)的热度指标,再将这些指标映射成向量;同时建模用户的行为间隔和序列位置等信息。对所有物品不再建独立的 ID 嵌入表,参数更少,便于跨域。
结果: PrepRec 在零样本场景下,性能仅比目标域直接训练的 SasREC 或 BERT4Rec 低 26% 而已。若在目标域从头再训练,PrepRec 的表现与甚至超过其它序列模型,且只需要它们 15% 的参数。消融实验显示建模时间间隔和多尺度热度对于捕捉用户演变兴趣都很重要。

E-CDCTR(美团) 则利用外卖/到店等有机数据(organic data)来帮助广告 CTR 预测,解决广告数据稀疏的问题。
它由三部分组成:

  1. 轻量级预训练模型(TPM):使用 6 个月的有机数据,每月训练一次,得到用户和物品的长周期嵌入;
  2. 完整预训练模型(CPM):再用近 1 个月的有机数据每周训练,初始化 CTR 模型;
  3. 广告 CTR 模型(A-CTR):在 CPM 基础上每天用广告数据做微调,同时继续使用 TPM 得到的用户、物品嵌入作为输入。
    这样能借助有机场景中丰富的交互数据来提升广告场景的预估精度。

E-CDCTR

结果: E-CDCTR 表现优于其它跨域策略(KEEP、CoNet、DARec、MMoE),消融也证明 TPM 和 CPM 都不可或缺,尤其 CPM 提升更大。扩展用户/物品历史到 3 个月也可带来更多收益,而单纯把广告和有机数据混在一起训练收益不明显。

Bridging the Gap(YouTube) 讲述如何在大规模个性化视频推荐中应用知识蒸馏(teacher-student),并避免直接蒸馏造成的偏差。
YouTube 的多目标排序模型往往会同时预测 CTR、长时价值等多个指标。teacher 模型比 student 模型参数大 2~4 倍,但若简单用 teacher 的 soft label 蒸馏,很容易把 teacher 的噪声或偏差带给 student。为此,他们提出了 “辅助蒸馏”(auxiliary distillation),在预测层把硬标签和 teacher 的软标签分离。这样 student 可以同时学到 teacher 的信息,又不会把硬标签和软标签混为一体。

Bridging the gap

另外,为了降低多次训练 teacher 的开销,他们让一个 teacher 同时服务多个 student。对 teacher 的得分做离线计算并存储,这样 student 训练时可直接读取。
结果: 辅助蒸馏在 E(LTV) 预测上提升了 0.4%,且对大 teacher 中的噪声有更好抑制;而常规直接蒸馏方式与不蒸馏几乎没差异。teacher 越大,提升越明显(2x student 大小可带来 0.42% 参与度和 0.34% 满意度提升;4x 带来 0.43% 和 0.46% 提升)。

类似地,Self-Auxiliary Distillation(Google) 提出了自辅助蒸馏策略,通过让模型只在高质量样本上用硬标签训练,而对负例等较弱样本用模型估计的“软标签”来增强分辨率,达到更有效的训练。
具体而言,模型有一个共享底层和两个头:主头(teacher)用真实标签训练并产出校准过的 soft label;辅助头(student)学到主头的 soft label 并结合原始标签,再由一个选择器(比如 max(y, y′))确定最终训练目标。

Self-auxiliary distillation

结果: Self-auxiliary 在多个领域(应用、购物、视频)都提升了 CTR 预测稳定性和质量。只用硬标签或只用软标签都不如两者结合效果好。

DLLM2Rec 则面向 “如何把 LLM 中学到的推荐知识蒸馏到传统序列模型” 这一问题。它主要解决三个挑战:LLM 教师输出噪声、师生能力差距大、两者语义空间差异大。
方法是提出 “重要性加权的排序蒸馏”(优先学高置信度排名)和 “协同嵌入蒸馏”(用可学习 MLP 将教师嵌入映射到学生空间)。具体地,教师是 BIGRec(基于 Llama2-7B),学生是 GRU4Rec、SASRec、DROS 等普通序列模型。
结果: DLLM2Rec 在三个数据集(Amazon Video Games、MovieLens-10M、Amazon Toys and Games)上的 HR@k、NDCG@k 平均提高了 47.97%。推理时间大大缩短——教师要 36 小时,而学生只要 1.61.8 秒。

MLoRA(Alibaba) 研究在多域 CTR 场景下使用 LoRA(低秩适配器)来进行高效微调。核心是先用多个域的大规模数据预训练 “通用骨干”(backbone),再针对每个域加上不同的 LoRA 层进行调整,可缓解数据稀疏和域间差异。
在实现上,由于 CTR 模型各层维度不同于语言模型(后者一般每层维度一致),所以需要逐层适配不同的 LoRA rank。在实际实验中:

  • 预训练阶段,用 13 亿条、10 个域、90 天的数据;
  • 微调阶段,用 32 亿条单域、21 天的数据。

MLoRA

结果: MLoRA 在 Taobao-10、Amazon-6、MovieLens 等多个数据集提升约 0.5% AUC。简单模型(MLP)用 rank=32 就够,复杂模型(DeepFM)可用 64~128。线上 A/B 显示 CTR 提升 1.49%、转化率提升 3.37%、付费买家提升 2.71%,模型复杂度仅增加 1.76%。

Taming One-Epoch(Pinterest) 关注深度 CTR 模型往往在训练仅一轮 epoch 后就过拟合的问题,主要原因是长尾物品和 ID 嵌入表所带来的自由度过大。
他们发现:如果移除 ID 嵌入,只用较小模型,可以多轮训练都有效;但一旦加入 ID 嵌入,往往一轮之后就过拟合了。
为此,他们把训练分成两阶段:

  1. 用一个简洁的点积模型和对比损失来预训练 ID 嵌入,并可用更大规模数据;
  2. 再在下游任务中把这些预训练嵌入作为初始化,用多轮训练来微调。比直接冻结 embeddings 效果更好。

Taming One-Epoch

结果: 只用二元交叉熵训练往往在第一轮就过拟合,而对比损失更稳定。单阶段训练甚至比基线还差,而双阶段训练在首页和相关 Pin 场景都超过基线 1~2 个百分点。线上实验也有 2.2% 的整体参与度提升。

Sliding Window Training(Netflix) 提出 “滑动窗采样” 方法,让模型在训练时得以学习用户长期行为,又不必一次性输入超长序列。
常规做法若截断序列,会丢掉宝贵的老交互信息,但一次性处理超长序列又会占用大量显存。Netflix 这里在每个 epoch 都换一个滑动窗口段,让模型能逐步见到不同部分的历史数据。还可以混合策略:一半 epoch 用滑动窗口,一半只看最近交互,这样兼顾近期兴趣和长时偏好。

Sliding Window Training

结果: 离线评测显示,纯滑动窗对 recall 有显著 +7.01% 提升,对 MAP 也有 +1.5%,但对 MRR 略降 1.2%。把滑动窗和最近交互结合,或把序列长度扩到 500/1000,综合效果最佳,但困惑度略有上升,表现出准确率和自信度之间的平衡。


搜索与推荐的统一架构

最后一个趋势是,将搜索与推荐融合为统一的检索和排序框架,类似 “大一统” 的基础模型(foundation model)。与其为每种场景单独做一个模型,不如用同一个架构同时支持多种上下文任务。在 LinkedIn 的 360Brew、Netflix 的 UniCoRn、Spotify 等案例中,统一模型常常能与或超过原本的单任务模型,且减少维护负担。

Bridging Search & Recommendations(Spotify) 展示了如何用一个统一的生成式检索模型,同时学 “搜索” 和 “推荐” 两种任务,并且多任务训练常常优于单任务。
思路是:

  • “生成式推荐”:给定用户过往交互,预测下一首音乐等的 ID;
  • “生成式搜索”:给定文本查询,预测相关内容 ID。
    模型基于 Flan-T5-base 扩展词表,把所有可能的 item ID 都映射为新的 token。训练时用自回归方式预测正确 item ID 的序列。推理时,对推荐就输入用户历史,对搜索就输入查询文本,让模型直接生成 item ID。

Bridging search and recsys

结果: 多任务版相比单任务版,平均 recall@30 提升 16%,在播客数据集上甚至 +33%。对“腰部”物品也有显著增益。然而,对比传统推荐(如 SASRec、BERT4Rec)或搜索(BM25、双塔 Bi-encoder)基线,生成式方法仍有较大差距,说明要彻底替代现有方案尚需时日。

Bridging search and recsys

(👉 值得一读) 360Brew(LinkedIn) 则是把多个 ID-based 排序模型合并到一个 150B 大模型里,并支持自然语言接口。它在 Mixtral-8x22B 基础上继续预训练,再做指令微调(instruction fine-tuning)和有监督微调(SFT),在统一架构下预测二元点击或互动概率。
数据来自 3~6 个月、约 4500 万月活的各种交互:职位、帖子、用户资料等,都转成文本。最大上下文长度可到 16K,通过打包(packing)方式提升效率。最后通过 vLLM、RoPE scaling 做推理部署。
结果: 360Brew 在领英多个场景(超过 30 个)里,表现可与传统单任务模型相当或更优,而且对冷启动用户效果更好。一开始小规模训练确实效果不好,但当训练数据增大至三倍后,就明显超越单任务模型;同时更大模型(8x22B)也优于较小模型(8x7B、7B)。

360Brew

相似地,UniCoRn(Netflix) 提出了支持搜索和推荐共用的单一排序器,通过给模型输入查询、来源页面等上下文,让它预测目标物品被点击的概率。
UniCoRn 会在特征层面把搜索和推荐区分开:比如对搜索任务,会有查询长短等特征;对推荐任务则会有用户历史。missing 的特征则填充成 null。然后把用户 ID、查询文本、物品 ID 等都映射到同一模型的嵌入层中,通过多任务二分类(点击或不点击)进行训练。

Unicorn

结果: UniCoRn 整体性能与原本多个专用模型持平或更好,减少了大量基础设施开销。对比不同的个性化程度后发现:联合训练能取得 10% 的推荐提升和 7% 的搜索提升,且单独显式加入 “task type” “查询长度” 等上下文特征很有帮助。

(👉 值得一读) Unified Embeddings(Etsy) 介绍了如何把 Transformer-based、Term-based、Graph-based 三类向量结合在一个双塔模型里。目的在于同时提升 Etsy 在搜索查询的词匹配、语义匹配,以及利用用户行为图。
两端分别是 “产品编码器” 和 “查询-用户编码器”——产品端融合了 Transformer 文本向量、双向图嵌入、产品标题/属性向量等;查询-用户端则融合了查询文本、位置信息、行为数据等。负采样方面,他们采用 in-batch、全局 uniform,以及动态 hard negative 三种方式提升训练效果。
同时,还通过在向量上拼接额外的质量评分(如评分、转化率等),在 ANN 检索时兼顾相关性和质量。离线建立 FAISS 4-bit 压缩索引,在线阶段实时将查询向量检索得到一批候选,再做重排,平均时延 <20ms@p99。

Unified Embeddings

结果: 新模型在 A/B 测试中站点整体转化率提升 2.63%,自然搜索购买提升 5.58%。离线上,融合图向量贡献最大(+15% recall@100),其次是文本描述(+6.3%)和产品属性(+3.9%)。地理位置对美国用户也带来额外 +8% recall@100。移除 hard negative 会让效果掉 7%。

Embedding Long Tail(Best Buy) 则聚焦如何优化语义检索应对长尾查询,提出了两阶段数据过滤、LLM 生成合成查询,以及一个自研双塔结构。
首先,他们从全站用户交互中提取产品页面信息,并对数据进行两次过滤(至 1/10),保证覆盖面和质量平衡。然后,为每个产品用 Llama-13B 生成 10 个合成查询,填补长尾产品的训练数据空白。
模型端,他们基于自研的 RoBERTa 变体,前 5 层同时初始化到查询塔和物品塔,再用多类交叉熵训练并用 in-batch 负例。部署时用 Solr 既做倒排索引又存向量,并加缓存避免重复计算。
结果: 在线上 A/B 测试中,结合语义检索后转化率提升 3%。离线则表明,两阶段过滤 (+0.24%)、合成查询 (+0.7%)、添加产品特征 (+1.15%)、先 query-to-query 后 query-to-product 的逐步微调 (+2.44%)、模型权重合并 (+4.67%) 等都带来增益。最终他们的定制模型性能超越 all-mpnet-base-v2,且只用了对方一半的参数(50M vs 110M)。

User Behavioral Service(YouTube) 提出了一个思路:将大型用户序列模型的计算与主推荐模型拆分,异步更新用户向量,以降低实时推理延迟和成本。
原理是:用户模型(User Model)独立部署,通过批量或异步方式算出用户序列嵌入并放进一个高速缓存。主排序模型(可能是多任务大模型)来取这个用户嵌入。如果缓存里还没有,就返回空向量并异步触发更新。这样用户侧可以做得非常大而不会阻塞实时请求。

User Behavioral Service

结果: 在 6 个排序任务上都有不同程度提升,其中把序列长度从 20 扩到 1000 时,离线点评指标可提升 0.01%~0.40%,线上互动量也增长 0.38%。而若直接将大用户模型和主模型合在一起,成本会增 28.7%,分离后只增 2.8%。

(👉 值得一读) Modern Ranking Platform(Zalando) 展示了如何为搜索和浏览场景搭建通用排序平台,包含多路候选生成、多层级排序,以及策略层支持业务需求。
平台核心原则:

  • 可组合性:可纵向(多层排序)或横向(集成多种候选源)组合;
  • 可扩展性:先用轻量候选生成,再用精排,符合经典的多级推荐系统设计;
  • 共享设施:最大化地重用同一个特征存储、向量索引等;
  • 可控性:在策略层可调整,如推广新商品、保持结果多样性等。

Modern Ranking Platform

候选生成用双塔:用户塔接收最近行为和上下文,商品塔是预先算好的 Embedding(存入向量数据库),线上通过点积近似检索。用户塔用一个 Transformer 编码器预测下一个点击的商品。
精排部分是多任务学习,输出点击、加心愿单、加购物车、购买等多个行为概率。线上可调整各行为的重要权重。
最后在策略层进行商业逻辑干预(如 epsilon-greedy 方式增加探索,避免重复展示等)。

Modern Ranking Platform

结果: 统一平台在四次 A/B 测试中获得 +15% 的用户交互和 +2.2% 的营收提升。细分来看:引入可训练 Embedding 的候选生成带来 +4.48% 交互、+0.18% 营收;进阶排序和策略叠加再增 +4.04% 交互、+0.86% 营收;加入上下文数据又带来 +2.40% / +0.60% 的进一步提升。


过去的一些工作在 2023 年初尝试将 LLM 应用于推荐与搜索时,效果常不及预期,但本文汇总的最新实践表明,越来越多的团队正找到合适的方式,将 LLM 与多模态或传统 ID-based 方法相结合,或在数据生成与模型训练中运用 LLM 思路,实打实在工业环境中提升了搜索和推荐效果,且减少了人工特征工程与标注的负担。这些成果意味着,LLM 在推荐和搜索领域大有可为,未来仍有更广阔的空间与可能性。

2025/9/14 于苏州