尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

实用指南:【第五章:计算机视觉-项目实战之推荐/广告系统】1.推荐系统基础与召回算法-(6)召回算法之u2i: FM、deepFM、召回双塔原理精讲与实战

实用指南:【第五章:计算机视觉-项目实战之推荐/广告系统】1.推荐系统基础与召回算法-(6)召回算法之u2i: FM、deepFM、召回双塔原理精讲与实战
📅 发布时间:2026/6/20 0:34:18

实用指南:【第五章:计算机视觉-项目实战之推荐/广告系统】1.推荐系统基础与召回算法-(6)召回算法之u2i: FM、deepFM、召回双塔原理精讲与实战

2025-11-16 16:34  tlnshuju  阅读(0)  评论(0)    收藏  举报

第五章:计算机视觉-项目实战之推荐/广告系统

第一部分:推荐系统基础与召回算法

第六节:召回算法之u2i: FM、deepFM、召回双塔原理精讲与实战


一、u2i召回简介:目标是“理解用户”

如果说上一节 i2i(item-to-item)召回的思想是:

“看你喜欢的内容,预测你还会喜欢什么相似内容”

那么 u2i(user-to-item)召回则换了角度:

“从用户特征出发,直接召回适合他的物品 embedding”

区别是:

类别输入本质建模对象适用场景
i2iitem → item物品相似度适合强序列场景
u2iuser → item用户兴趣向量个性化、用户中心推荐

u2i 的核心问题 = 如何构建 user embedding,并与 item embedding 匹配

因此,本节我们学习的三个模型可视为渐进关系:

模型目标
FM建立特征交互(user–item 特征点击概率)
DeepFM用深度学习增强特征建模能力
Two-Tower(双塔召回)将 user 和 item 映射到同一向量空间,用向量相似度召回

最后落地到行业主流召回结构:

u_embedding  →   ANN 向量检索   →   召回 item topK

二、FM 原理讲解:特征交叉的精髓

FM(Factorization Machines)是点击率模型中最经典的特征交叉模型,公式非常关键:

\hat{y} = w_0 + \sum_i w_i x_i + \sum_{i<j} \langle v_i, v_j\rangle x_i x_j

解释:

项目含义
w_0偏置
w_i x_i所有特征的一阶贡献
\langle v_i, v_j\rangle x_i x_j所有特征对的二阶组合(FM的核心)

在推荐系统中,FM特别适合表达:

特征交互示例意义
(用户性别, 类目)男性更喜欢数码
(城市, 价格区间)一线城市偏高价位

优点:可解释性强、对稀疏特征友好
缺点:表达能力有限,不够深


三、DeepFM:FM + DNN 的强强联合

为提升建模能力,DeepFM提出结构:

        →  FM(显式特征交叉)
Input  →→  DNN(隐式高阶交叉)

输出 CTR / 点击概率:

\hat{y} = \sigma(y_{FM} + y_{DNN})

优点: 可拟合复杂兴趣
行业事实:现在主流 CTR/召回模型仍由 DeepFM 演化而来

但 DeepFM仍不是召回最适合模型 —— 因为召回的核心是 向量相似,而不是概率排序

这就引出了工业界真正最常用的召回模型:


四、Two-Tower(召回双塔模型):工业主流 u2i之王

Two-Tower结构示意:

       ┌───────────────┐│ User Tower    │  →  user_embedding
user → │  DNN / MLP    │└───────────────┘│ dot/cosine┌───────────────┐
item → │ Item Tower    │  →  item_embedding│  DNN / MLP    │└───────────────┘

训练目标:

\max \ \text{cos}(u, i^+) - \text{cos}(u, i^-)

即:

  • 拉近用户与正样本的向量

  • 推开用户与负样本向量

推理阶段非常高效:

召回 = ANN( user_embedding ) → topK item

优点(工程面试要点)

优点解释
召回高效向量检索 O(logN),适配 Milvus / Faiss
冷启动友好靠特征而非行为
可扩展可插入 Transformer、注意力、多兴趣网络

五、双塔召回完整实战代码(可直接运行)

import torch
import torch.nn as nn
import torch.nn.functional as F
class TwoTowerModel(nn.Module):def __init__(self, user_dim, item_dim, embed_dim):super().__init__()self.user_tower = nn.Sequential(nn.Linear(user_dim, 128),nn.ReLU(),nn.Linear(128, embed_dim))self.item_tower = nn.Sequential(nn.Linear(item_dim, 128),nn.ReLU(),nn.Linear(128, embed_dim))def forward(self, user, item):u = F.normalize(self.user_tower(user))i = F.normalize(self.item_tower(item))score = torch.sum(u * i, dim=-1)return score

训练损失采用 对比损失 / 负样本采样 NCE:

loss = - torch.log_softmax(pos_score - neg_score, dim=-1).mean()

六、本节总结

模型在召回的作用
FM做特征交互
DeepFM提升模型表达能力
Two-Tower真正用于 ANN 向量召回(工业主流)

一句话总结:

i2i学相似,u2i学兴趣 — i2i补召回覆盖,u2i做主召回路径,双塔是工业标准

相关新闻

  • 实用指南:On-Page SEO完全指南:从关键词策略到内容优化
  • Java位运算符概览
  • 自动化测大样例

最新新闻

  • DeepSeek-V4高效长上下文推理技术解析
  • 技术解析-CPR曲面重建:从血管拉直到三维可视化的核心算法与临床价值
  • S12XS中断系统XINT配置详解:从原理到汽车电子实战
  • 【新】5p229基于python的新能源汽车数据分析系统的设计与实现3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • MCU系统集成模块(SIM)解析:复位、中断与低功耗设计实战
  • 从零到一:基于JasperGold的FPV实战入门与避坑指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号