王树森推荐系统公开课 排序02:Multi-gate Mixture-of-Experts (MMoE)
专家模型
与上一节相同,模型的输入是一个向量,包含用户特征、物品特征、统计特征、场景特征,把向量输入三个神经网络,三个神经网络都是由很多全连接层组成,但是并不共享参数,三个神经网络各输出一个向量,分别记作 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3。这三个神经网络被叫作专家,就是 Mixture-of-Experts 中的 Experts。实践中通常不止使用三个专家,这是一个超参数,需要手动调整,通常会试一试四个、八个。
上文输入的向量还会输入另外两一个神经网络,在神经网络的最后加一个 Softmax 激活函数,输出一个三维的向量,之后会作为权重与 x x x 向量加权平均。由于是 Softmax 的输出,向量的三个元素都大于 0,且总和为 1。
极化现象
极化(polarize):Softmax 的输出值有一个接近于 1,其余均接近 0。这样没有使所有专家融合,只使用了一个专家。我们不希望这种情况出现。
解决极化问题
一种方法是在 Softmax 的输出使用 dropout,输出的 n n n 个数值被 mask 的概率都是 10%,这样每个专家被随机丢弃的概率都是 10%。
注意
MMoE 不一定能提升,有人用了有提升,有人则没有提升,可能是实现的不够好,可能是不适用于特定的业务场景。