






















其核心思想是通过两个独立的神经网络(用户塔和物品塔)分别处理用户和物品的特征,最终通过相似度计算实现匹配或召回任务。
用户侧和物品侧的特征分别经过各自的深度神经网络(DNN)处理后,得到用户嵌入(user embedding)和物品嵌入(item embedding),然后通过相似度计算(如内积或余弦相似度)来评估用户和物品之间的匹配程度.
2个塔, 2个深度神经网络.
左边用户塔user, 右边物品塔item
用在召回阶段, 而不是排序阶段
计算2个向量的相似度来打分, 根据分数的高低, 从而进行召回.
双塔模型(Dual Tower Model)是一种基于深度学习的两分支神经网络架构,其核心特点是两个独立的编码器网络("塔")分别处理两种不同类型的数据,最后在向量空间中进行相似度计算。
左塔(用户侧) 右塔(物品侧)
↓ ↓
[编码器网络] [编码器网络]
↓ ↓
[用户向量u] [物品向量v]
\ /
\ /
↘ 相似度计算 ↙
↓
[匹配分数]
对称/非对称双塔:
解耦合设计:
向量化检索:
高效检索:
可扩展性:
灵活性:
缓解冷启动:
特征交互不足:
信息损失:
用户塔特征:
├── 用户画像特征(年龄、性别、地域)
├── 历史行为序列(点击、购买历史)
├── 实时行为特征(最近点击)
└── 上下文特征(时间、设备)
物品塔特征:
├── 物品属性(标题、类目、价格)
├── 内容特征(文本描述、图像特征)
├── 统计特征(点击率、销量)
└── 嵌入特征(预训练的ID嵌入)
score = u·vscore = (u·v)/(||u||·||v||)score = exp(u·v/τ)用户塔:
视频塔:
训练:
服务:
# 简化版伪代码
class DualTowerModel(nn.Module):
def __init__(self):
super().__init__()
self.user_tower = nn.Sequential(
nn.Embedding(user_vocab_size, 256),
nn.Linear(256, 128),
nn.ReLU(),
nn.Linear(128, 64)
双塔模型是大规模推荐/检索系统的基石性架构,以其高效的向量化检索能力和良好的可扩展性在工业界得到广泛应用。虽然它在精细特征交互方面存在局限,但作为召回阶段的解决方案,其在性能与效率的平衡上具有不可替代的优势。随着技术的发展,双塔模型也在不断演进,融合更多先进技术以适应更复杂的业务需求。
作者:import_random
链接:https://juejin.cn/post/7586942589321592868
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted on 2026-01-16 11:43 ExplorerMan 阅读(72) 评论() 收藏 举报
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。