2.1.4. Two-Tower Models(双塔模型)

核心思想一句话概括

Two-Tower Model 是一种通过两个独立的深度神经网络(“双塔”)分别学习查询(Query)和候选(Candidate)的向量表示,并通过计算这两个向量之间的相似度(如点积)来进行匹配、排序或推荐的模型架构。

它的核心目标是:将从不同模态(如文本、图像、ID)来的查询和候选,映射到同一个向量空间(Embedding Space),从而在这个空间里,相似度的计算变得简单且高效。


模型结构:为什么叫“双塔”?

顾名思义,该模型由两个并行的、结构相似但参数不共享的神经网络组成,形似两座塔。

  1. 查询塔(Query Tower)

    • 输入:代表用户意图的信息。在推荐中,这可以是用户的历史行为序列、用户画像特征、当前的上下文(如时间、地点)等。在搜索中,这就是搜索词(Query)。

    • 输出:一个固定长度的低维稠密向量,称为查询向量(Query Embedding),记为 u

  2. 候选塔(Candidate Tower)

    • 输入:代表被推荐物品的信息。在推荐中,这可以是物品的ID、标题、标签、封面图等特征。在搜索中,这就是文档、商品或视频。

    • 输出:一个同样固定长度的低维稠密向量,称为候选向量(Candidate Embedding),记为 v

  3. 相似度计算(Similarity Score)

    • 最终的输出分数是这两个向量之间的相似度,最常用的是点积(Dot Product)余弦相似度(Cosine Similarity)

    • 分数 = uv


双塔模型的核心特点和工作流程

1. 离线计算(候选塔的预计算)- 高效的关键

这是双塔模型能应用于超大规模推荐(百万甚至十亿级别候选池)的最关键优势

  • 由于候选物品(如视频、商品)是相对固定的,我们可以提前用候选塔计算出所有候选物品的向量 v,并将其存入高效的向量数据库(如FAISS, ScaNN)中。

  • 当用户的请求(Query)到来时,我们只需要实时地用查询塔计算一次用户向量 u

  • 然后,在向量数据库中进行最近邻搜索(Approximate Nearest Neighbor, ANN),快速找到与 u 点积最大的Top-K个候选向量,这些就是最终要推荐的物品。

这种“离线计算候选,在线计算查询”的模式,使得模型能承受极高的并发请求,延迟极低。

2. 在线服务

  • 输入:用户实时请求。

  • 步骤

    1. 查询塔实时计算用户向量 u

    2. u 发送到向量数据库。

    3. 数据库通过ANN搜索返回最相似的N个候选物品ID。

    4. 将这些ID返回给用户。

整个过程在毫秒级别内完成。


双塔模型的优势

  1. 极高的服务效率:如上述,在线计算量极小,非常适合大规模候选集的召回(Matching/Candidate Generation)阶段。

  2. 灵活性:双塔可以处理多种类型的特征(稀疏特征、稠密特征、文本、图像),通过不同的网络结构(如MLP, CNN, Transformer)学习其表示。

  3. 解耦性好:查询和候选的编码过程是完全独立的,这意味着可以方便地单独更新某一塔(例如,只更新物品塔加入新物品特征,而无需改动用户塔)。


双塔模型的劣势与挑战

  1. 信息损失:由于双塔在最终点积之前没有任何交互,查询和候选的早期特征交叉信息丢失了。这与精排模型(如DeepFM, DIN)允许大量特征交叉相比是一个劣势。因此,双塔通常只用于召回阶段,而不是最终排序。

  2. 负采样挑战:模型的训练严重依赖于负样本(用户未点击的物品)的质量。如何选择负样本(随机采样?困难负样本采样?)对模型效果影响巨大。

  3. 热度偏差:容易偏向于推荐热门物品,因为热门物品的向量范数可能更大,点积更容易占优。


应用场景

  1. 推荐系统召回层:这是最经典的应用。从百万物品库中快速召回几百个用户可能感兴趣的物品。

  2. 广告召回:从海量广告中快速匹配可能对当前用户感兴趣的广告。

  3. 语义搜索/文本匹配:一塔编码查询文本,另一塔编码文档文本,学习语义层面的匹配。

  4. 跨模态检索:例如,一塔编码文本描述(“一只黑猫”),另一塔编码图片,实现文搜图或图搜文。

总结

Two-Tower Model 是一种为大规模检索和匹配任务而设计的高效神经网络架构。它通过“双塔”结构分别学习查询和候选的嵌入表示,并通过近似最近邻搜索实现毫秒级的海量数据检索。尽管它在特征交叉上存在不足,但其无可比拟的服务效率使其成为现代工业级推荐系统、搜索和广告系统中召回阶段不可或缺的核心技术。