# 💡 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 大火,工业界的主力军还是这些经典模型,因为它们稳定、可靠、性价比高!**