0%

Multi-gate Mixture-of-Experts

Multi-gate Mixture-of-Experts (MMoE)

本笔记为王树森发表在youtube频道推荐系统的视频课程学习随笔,笔记中图片亦截取自王树森视频课件,原始资料出处为王树森youtube视频

网络结构

首先上一张图,说明网络的完整结构。

image.png

输入特征

MMoE的输入特征由 用户特征物品特征统计特征场景特征构成。 其中,用户特征和物品特征与召回层的特征一致。

专家网络

专家网络可以有多个,上图中只画出了三个,但是在实践中可能尝试四个五个或者多个。每个专家网络都不共享参数,他们是独立的。各个专家网络输出维度相同的向量。

专家网络的数量是一个超参数,通常会试一试四个或者八个。

指标网络

指标网络有多个,其网络个数与使用的指标的数量一致,例如上图我们假设P输出为点击率,Q输出为点赞率,当然,再添加网络还可以输出转发率等等。每一个指标网络是独立的,不共享参数,且他们的输出层都使用softmax作为激活函数,所以他们的输出的向量含义可以解释为概率或者权重,其维度与专家网络的个数一致。

上层网络(预测网络)

上层网络的输入是下层网络(专家网络,指标网络)的输出组合。先上一个网络结构图。

image.png

我不知道上层的每个分支网络应该叫做什么名字,我就在笔记中擅自叫它们 预测网络 。 预测网络的输入为指标网络的输出作为权重,将每个专家网络的输出加权平均, 所以预测网络的输入维度与专家网络的输出维度一致。

预测网络全连接层可以有一层,也可以有多层,其输出为一个标量数值,代表参考了所有专家网络后对该指标的预测值。

极化现象

什么是极化现象

MMoE网络训练中容易出现极化现象。 所谓极化现象,就是指标网络的softmax输出中,其中一个元素非常接近于1而其他元素接近于0。此种输出下,与专家网络进行加权平均时,会使的部分专家网络的输出被忽略(此指标权重接近0),只选取个别专家网络的输出,而且,不同的指标网络会选择不同的专家网络输出。这种状况下,多专家网络失去了其意义。我们希望指标网络均衡的考虑各专家网络的意见。

image.png

如何解决极化现象

  1. 在训练时,对softmax的输出使用dropout。此方法基本可以避免极化。

总结

  1. MMoE是一个排序层的网络,它对召回的结果进行输出分数以供排序。
  2. MMoE网络的思想是建立多个专家网络,让这些网络根据输入提出自己的“意见”,判别网络综合所有专家的意见对它所负责的指标进行预测,根据真实的指标值进行监督学习,从而训练出一个可以近乎准确预测指标的网络。
  3. MMoE会发生极化现象,要避免极化现象的发生,可以在Softmax层使用dropout方案。
  4. MMoE网络不一定对指标有提升,实际的工程上,也有很多MMoE不生效的情况。