# 💡 Summary
**MMoE = Multi-gate Mixture-of-Experts**(多门控混合专家模型)
MMoE 是 Google 在 2018 年提出的多任务学习架构,通过动态分配计算资源到不同的子网络(专家)来提升模型效率和性能
MMoE 是 Google 在 2018 年提出的多任务学习架构,通过动态分配计算资源到不同的子网络(专家)来提升模型效率和性能 [Sumit's Diary](https://blog.reachsumit.com/posts/2023/04/moe-for-recsys/)[Medium](https://medium.com/pinterest-engineering/multi-gate-mixture-of-experts-mmoe-model-architecture-and-knowledge-distillation-in-ads-08ec7f4aa857)
# 🧩 Cues
# 🪞Notes
## 通俗理解
### 为什么需要多任务学习?
在推荐系统中,我们通常要同时预测多个目标:
**电商场景**:
- 任务 1: 用户会不会**点击**(CTR - Click Through Rate)
- 任务 2: 用户会不会**购买**(CVR - Conversion Rate)
- 任务 3: 用户会不会**收藏**
**视频平台(YouTube)**:
- 任务 1: 用户会不会**看完视频**(engagement)
- 任务 2: 用户会不会**点赞**(satisfaction)
---
## MMoE 的核心思想
### 传统方法的问题
**Shared-Bottom(共享底座)** - 最简单的多任务学习:
```Java
输入特征
↓
[共享的神经网络] ← 所有任务共用一个底座
↓
┌─┴─┬─┴─┬─┴─┐
塔1 塔2 塔3 ← 每个任务一个输出塔
↓ ↓ ↓
任务1 2 3
```
**问题**:
- ❌ 当任务之间**相关性低**时,强制共享参数会导致"负迁移"
- ❌ 一个任务好了,另一个任务变差(跷跷板现象)
---
## MMoE 的解决方案
MMoE 引入 N 个门控网络(gates),每个任务一个,用于动态分配建模能力
### 架构图解
```Java
输入特征
↓
┌──────────────────┐
│ 多个专家网络 │ ← 比如 8 个"专家"
│ Expert1, 2, 3... │ 每个专家学习不同的模式
└──────────────────┘
↓ ↓ ↓ ↓
Gate1 Gate2 Gate3 ← 每个任务有自己的"门"
↓ ↓ ↓ 门决定"听哪个专家的"
塔1 塔2 塔3
↓ ↓ ↓
任务1 任务2 任务3
```
### 形象比喻
想象一个公司的咨询场景:
**传统 Shared-Bottom**:
- 只有 1 个顾问,所有客户都必须听他的建议
- 如果客户需求差异大,这个顾问很难满足所有人
**MMoE**:
- 有 8 个不同领域的专家(Expert)
- 每个客户有一个"秘书"(Gate)
- 秘书根据客户需求,决定该听哪些专家的意见,以及各占多少比重
---
## MMoE 的工作原理
MMoE 使用任务特定的门控网络,让不同任务以不同方式利用不同的专家,特别是当任务相关性较低时表现更好
### 数学表达(简化版)
对于任务 i:
```Java
Gate_i 输出权重 = [0.5, 0.3, 0.1, 0.1, ...] ← 8个专家的权重
最终输出 = 0.5×Expert1 + 0.3×Expert2 + 0.1×Expert3 + ...
```
不同任务的 Gate 会学到不同的权重组合!
---
## 实际应用案例
### 1. YouTube 视频推荐
YouTube 用 MMoE 替代了 Shared-Bottom 模型来预测用户参与度和满意度,取得了显著改进
### 2. Google Play 应用推荐
Google 使用 MMoE 训练排序模型,同时优化用户参与度和用户满意度目标
### 3. Pinterest 广告系统
Pinterest 使用 MMoE 架构来建模复杂的模式和关系,提升广告匹配质量
---
## 为什么 MMoE 是"不动产"?
原文说"多目标就上 MMoE+",因为:
|优势|说明|
|---|---|
|✅ **效果好**|在 Google、YouTube、Pinterest 等大厂验证|
|✅ **灵活**|自动学习任务关系,不需要手动设计|
|✅ **稳定**|解决了负迁移问题|
|✅ **高效**|保持了 Shared-Bottom 的计算效率|
|✅ **成熟**|2018 年至今,经过大量工程实践|
---
## MMoE 的改进版本
业界还有很多基于 MMoE 的改进:
- **PLE** (Progressive Layered Extraction): 分离共享专家和任务专家
- **CGC** (Customized Gate Control): 区分任务通用专家和任务特定专家
- **MoSE** (Mixture-of-Sequential-Experts): 针对序列数据
---
## 对比总结
|模型|适用场景|核心思想|
|---|---|---|
|**Shared-Bottom**|任务高度相关|一个底座,多个塔|
|**MMoE**|任务相关性中等/低|多个专家+多个门|
|**PLE**|任务差异很大|分离共享/私有专家|
---
## 最后总结
**MMoE 就是:**
- 雇佣多个专家(Expert)
- 每个任务配一个秘书(Gate)
- 秘书根据任务需求,动态决定听谁的、听多少
- 既保留了共享学习的好处,又避免了负迁移
这就是为什么它能成为多任务推荐系统的"不动产"——**实用、灵活、效果好,而且不需要花大价钱!** 🏗️
原文的焦虑其实正好说明:**即使 GPT-4 大火,工业界的主力军还是这些经典模型,因为它们稳定、可靠、性价比高!**