共享Embedding
概述
共享Embedding是指在机器学习模型中多个组件或子网络共享同一套嵌入向量参数的技术。这种设计常见于推荐系统中的CTR预估模型,如DeepFM,其中FM组件和DNN组件共享同一套特征Embedding。
关键内容
- 技术定义:
- 共享Embedding是指在多任务或多组件模型中,不同子网络使用相同的嵌入层参数
- 对于每个输入特征,其Embedding向量同时服务于模型的不同部分
-
这种设计避免了为不同组件分别学习相同特征的嵌入向量
-
核心优势:
- 参数效率:嵌入层通常占据模型参数量的绝大部分(因类别特征维度极高),共享可显著减少总参数量
- 联合优化:不同组件的梯度信号可以共同优化Embedding,使嵌入同时适配多种任务需求
-
消除预训练:无需像FNN等模型那样需要预训练步骤,可以端到端训练
-
在DeepFM中的应用:
- DeepFM的FM组件和Deep组件使用完全相同的Embedding层参数
- 对于每个特征i,其Embedding向量Vi同时用于FM的二阶交互计算⟨Vi, Vj⟩和Deep组件的拼接输入
-
这使得FM的二阶交互信号和DNN的高阶交互信号可以共同优化Embedding
-
与其他技术的比较:
- 相比独立Embedding:减少了参数冗余,提高训练效率
- 相比多任务学习:共享低层表示但保持高层任务特异性
-
相比参数绑定:更灵活,允许不同组件使用相同的嵌入进行不同类型的计算
-
应用场景:
- 推荐系统中的Wide&Deep、DeepFM等模型
- 多模态学习中的特征对齐
- 预训练模型中的参数共享策略
来源
- 09-deepfm.md — 共享Embedding在DeepFM中的详细介绍
- [DeepFM: A Factorization-Machine based Neural Network for CTR Prediction] — 原始论文