惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
T
Tor Project blog
T
Troy Hunt's Blog
C
CERT Recently Published Vulnerability Notes
C
Cisco Blogs
W
WeLiveSecurity
Cloudbric
Cloudbric
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
爱范儿
爱范儿
Google Online Security Blog
Google Online Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
F
Full Disclosure
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
I
Intezer
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
腾讯CDC
L
LangChain Blog
L
LINUX DO - 热门话题
H
Help Net Security
S
Schneier on Security
N
Netflix TechBlog - Medium
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
P
Privacy & Cybersecurity Law Blog
Cyberwarzone
Cyberwarzone
A
About on SuperTechFans
NISL@THU
NISL@THU
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
Recorded Future
Recorded Future
雷峰网
雷峰网
AWS News Blog
AWS News Blog
V2EX - 技术
V2EX - 技术

博客园 - ExplorerMan

大模型sft微调参数优化2 大模型RAG实战,从被骂不靠谱到成为部门MVP,这是我的踩坑全记录【转】 推荐 Prompt 模板(大幅提升 JSON 质量) 渐进式SFT内化 Agno - 轻量级Python多智能体系统框架 Open WebUI:打造友好且强大的自托管 AI 平台 【gradio】使用Gradio快速开发前端界面:基础知识 文本切割方案进化概览:从“机械切割”到“智能解构” 大模型RAG的上下文压缩与过滤 SemanticChunker 语义相似拆分 基于LangChain 实现 Advanced RAG-后检索优化(上)-Reranker 基于LangChain 实现 Advanced RAG-后检索优化(下)-上下文压缩与过滤 多Agent协作入门:基于A2A协议的Agent通信(中) ollama部署与open-webui 0基础也能看懂!从0到1手把手教你本地部署大模型Ollama 什么是 AutoModel 大模型基础应用框架(ReACT\SFT\RAG)技术创新及零售业务落地应用 - ExplorerMan - 博客园 多模态Embedding模型:从文本到多模态的全面选型指南! rag 查询检索轮换
[推荐]双塔模型(介绍)
ExplorerMan · 2026-01-16 · via 博客园 - ExplorerMan

个人总结

其核心思想是通过两个独立的神经网络(用户塔和物品塔)分别处理用户和物品的特征,最终通过相似度计算实现匹配或召回任务。

用户侧和物品侧的特征分别经过各自的深度神经网络(DNN)处理后,得到用户嵌入(user embedding)和物品嵌入(item embedding),然后通过相似度计算(如内积或余弦相似度)来评估用户和物品之间的匹配程度‌.

2个塔, 2个深度神经网络.

左边用户塔user, 右边物品塔item

用在召回阶段, 而不是排序阶段

计算2个向量的相似度来打分, 根据分数的高低, 从而进行召回.

一、什么是双塔模型?

双塔模型(Dual Tower Model)是一种基于深度学习的两分支神经网络架构,其核心特点是两个独立的编码器网络("塔")分别处理两种不同类型的数据,最后在向量空间中进行相似度计算。

基本架构

        左塔(用户侧)          右塔(物品侧)
         ↓                       ↓
    [编码器网络]             [编码器网络]
         ↓                       ↓
    [用户向量u]                [物品向量v]
         \                     /
          \                   /
           ↘  相似度计算  ↙
            [匹配分数]

二、核心特点

  1. 对称/非对称双塔

    • 对称双塔:两个塔结构相同(如Siamese网络)
    • 非对称双塔:根据输入特征不同设计不同的网络结构
  2. 解耦合设计

    • 两个塔独立处理各自的特征
    • 只在最后的向量层进行交互
  3. 向量化检索

    • 将实体映射到统一的向量空间
    • 通过向量相似度进行匹配

三、主要应用场景

1. 推荐系统(最主要应用)

  • 用户-物品匹配:左塔处理用户特征,右塔处理物品特征
  • 召回阶段:从百万/千万级候选集中快速筛选出几百个候选
  • 典型应用
    • YouTube推荐:2016年论文《Deep Neural Networks for YouTube Recommendations》
    • 新闻推荐、电商商品推荐、短视频推荐等

2. 信息检索与搜索

  • 查询-文档匹配:左塔编码查询query,右塔编码文档
  • 语义搜索:超越关键词匹配,理解语义相似性
  • 广告检索:查询与广告的匹配

3. 自然语言处理

  • 句子相似度计算:两个文本编码器
  • 问答匹配:问题与答案的匹配
  • 对话系统:对话上下文与回复的匹配

4. 计算机视觉

  • 图像-文本检索:CLIP模型(图像编码器+文本编码器)
  • 跨模态检索

5. 其他场景

  • 药物-靶点匹配:生物信息学领域
  • 求职匹配:简历与职位的匹配

四、为什么使用双塔模型?

优势:

  1. 高效检索

    • 物品向量可以离线计算并存储
    • 在线服务时只需计算用户向量,然后做向量相似度检索
    • 支持近似最近邻搜索(ANN),实现毫秒级响应
  2. 可扩展性

    • 新增物品只需计算其向量,无需重新训练整个模型
    • 适合大规模动态更新的候选集
  3. 灵活性

    • 两个塔可以根据数据类型独立设计
    • 支持多模态输入(文本、图像、行为序列等)
  4. 缓解冷启动

    • 通过特征工程,可以处理新用户/新物品

劣势:

  1. 特征交互不足

    • 用户user和物品item特征在早期就分离,缺乏细粒度交叉
    • 不适合精细排序(通常用于召回,排序阶段用更复杂的模型)
  2. 信息损失

    • 压缩到低维向量会损失信息

五、技术实现细节

1. 特征工程

用户塔特征:
├── 用户画像特征(年龄、性别、地域)
├── 历史行为序列(点击、购买历史)
├── 实时行为特征(最近点击)
└── 上下文特征(时间、设备)

物品塔特征:
├── 物品属性(标题、类目、价格)
├── 内容特征(文本描述、图像特征)
├── 统计特征(点击率、销量)
└── 嵌入特征(预训练的ID嵌入)

2. 相似度计算方式

  • 点积:score = u·v
  • 余弦相似度:score = (u·v)/(||u||·||v||)
  • 带温度系数的softmax:score = exp(u·v/τ)

3. 损失函数

  • 多分类softmax损失(采样负样本)
  • Triplet Loss
  • 对比学习损失(如InfoNCE Loss)
  • BPR损失(贝叶斯个性化排序)

4. 负样本采样策略

  • 随机负采样
  • 批量内负采样(In-batch Negative)
  • 困难负样本挖掘(Hard Negative Mining)
  • 曝光未点击作为负样本

六、工业实践案例

YouTube双塔召回模型

  1. 用户塔

    • 输入:观看历史序列、搜索历史、人口统计特征
    • 结构:Embedding + MLP + 特征交叉
  2. 视频塔

    • 输入:视频ID、频道ID、视频主题
    • 结构:Embedding + 平均池化
  3. 训练

    • 任务:预测用户下一个观看的视频
    • 负样本:随机采样+流行度加权
  4. 服务

    • 离线:预计算所有视频向量存入向量数据库
    • 在线:计算用户向量,ANN检索Top-K

七、最新演进方向

  1. 多兴趣双塔:为用户生成多个兴趣向量
  2. 序列建模增强:使用Transformer等捕获长序列依赖
  3. 跨塔信息交互:在早期引入轻量级交叉
  4. 多任务学习:同时优化多个相关目标
  5. 与图神经网络结合:融入社交关系、知识图谱

八、典型架构示例

# 简化版伪代码
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
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。