多类目 MoE 模型在京东电商搜索中的应用

star2017 1年前 ⋅ 7287 阅读

图片

文章作者:肖茁建博士 京东 算法工程师
编辑整理:Hoh
出品平台:DataFunTalk

导读: 商品搜索引擎是电商平台满足用户购物需求的一个重要系统,它根据用户输入的搜索词,返回个性化的排序列表,以供用户选择。本文主要介绍 MoE 模型在京东搜索精排中的应用,以及结合实际场景对 MoE 模型进行的一系列改进。

01 背景介绍

1. 类目差异

当用户在电商平台购买不同类目的商品时,用户的关注点也会发生变化。例如:当用户搜索食品零食相关商品时,会更倾向于选择销量高的;而当搜索服饰、户外运动等类目的商品时,对风格、店铺、品牌等信息会更敏感。

2. 小类目学习

对于一些小类目的商品,在训练集样本量上和大类目相比差距悬殊,在模型训练过程中会被大类目商品的样本所影响和主导(dominate)。

我们针对类目差异和小类目学习这两个问题,提出了多类目 MoE 模型。

02 MoE 模型介绍

在介绍多类目 MoE 模型之前,首先介绍一下典型的 MoE 模型结构和 Top-K gating 的 MoE 结构。

MoE 模型是一个经典的神经网络模型,主要包括两个核心组件:一个门网络(gating network)和多个专家网络(expert network)。门网络的输出作为对应的专家网络的权重,用于对专家网络的输出进行加权求和。MoE 模型的输出可以写成下面的公式:

图片

其中,N 表示专家网络的个数,E 表示专家网络,G 表示门网络。

Google 在 2017 年的一篇文章[1]中,改进了 MoE 模型中的门网络结构,提出了一种 Top-K gating 的结构。当模型对一个样本进行预测时,首先会根据门网络的输出,选择最大的 K 个权重所对应的专家网络,然后只对选中的 K 个专家网络的输出进行加权求和。具体的计算公式如下:

图片

从公式可以看出,如果一个专家网络对应的权重值不是最高的 K 个,则经过 softmax 之后权重会变成 0。在模型训练和预测的过程中,对于这些不在 Top K 中的专家网络,不会激活,从而降低模型的计算复杂度。

03 我们的改进

图片

京东的电商平台有一套完整的多层级的类目结构,并且以树形结构组织。如图,是一个两层级类目结构的示意图。在类目结构上,自顶向下看(从 Top-Categories 到 Sub-Categories),不同的 Top-Categories 之间,用户的购物行为会有比较明显的差异,但是同一个 Top-Categories 下的 Sub-Categories 之间,用户的购物行为一般都比较接近。

图片

针对类目差异和小类目学习两个问题,我们利用了现有的层级类目信息,在 Top_K MoE 的模型结构上做了相对应的改进,提出了多类目 MoE 的模型结构,如下图:

图片

图中的模型结构分为两部分:专家网络(中间部分)和门网络(右边部分)。首先介绍专家网络,它由一组结构相同的 MLP 组成,我们将 query 和 item 的所有特征都拼接在一起作为专家网络的输入。同时,将 Sub-Category 的 embedding 作为门网络(绿色)的输入,从门网络的输出中选择 Top-K 计算权重,并且激活相对应的专家网络(绿色部分)。Sub-Category 作为门网络的输入,可以让模型对不同的类目,选择激活不同的专家网络,并且给予不同的权重。

同时,我们在上述 Top_K MoE 模型框架下,还提出了两个改进结构:

1. Hierarchical Soft Constraint(HSC)

HSC 结构可以利用现有的层级类目结构,在模型训练过程中,协助小类目样本更好的学习。具体的做法是:在模型训练时,增加一个 HSC 门网络(HSC gate,图中蓝色部分),这个 gate 结构的输入是 Top-Category,输出与 MoE 的 gate 结构维度一致,代表了不同专家网络对于 Top-Category 的重要程度。我们将选择激活的专家网络对应的权重和 HSC 门网络对应的权重的 L2 距离作为模型训练的一个损失项,加入到模型的训练过程中。

HSC loss 的具体表示形式如下:

图片

其中,U_topk 表示激活的 K 个专家网络的 index 集合。



图片

这样做可以让相同 Top-Category 下的所有 Sub-Category 所激活的专家网络尽量的接近。尤其对于样本量少的小类目,可以利用到相同 Top-category 下的其他类目信息,能一定程度上解决小样本学习难的问题。

2. Adversarial Regularization

Adversarial Regularization 是我们提出的第二个改进结构。由于我们使用的 Top_K 的门网络结构,所以对于每条样本,专家网络都会分为两部分:激活的专家网络和没有激活的专家网络。Adversarial Regularization 的目的是在训练过程中增加不同专家网络之间的区分性,避免专家网络的预测结果趋同。换句话说,我们鼓励没有被激活的专家(disagreeing experts)给出差异较大的预测结果。

Adversarial Regularization 具体计算如下:

图片

其中,U_topK 表示激活的专家网络集合,U_d 表示没有被激活的专家网络集合。为了降低计算复杂度,我们在实际模型训练过程中,只从没有被激活的专家网络中随机选择一个,用于计算 Adversarial Regularization。

增加了 HSC 和 Adversarial Regularization 之后,模型训练时的损失函数变成下面的形式:

图片

04 实验结论

我们在 Amazon 数据集以及 In-house 数据集上分别评测了多类目 MoE 模型的指标。以 DNN 和传统的 MoE 模型作为 baseline,Adv-MoE 和 HSC-MoE 分别表示只有 Adversarial Regularization 和 HSC loss 的两个模型,Adv&HSC-MoE 是我们最终的多类目模型。下图是我们在 amazon 数据集上的 AUC 指标,同时为了检测指标提升的显著性,我们也计算了对应的 p 值。

图片

同时,我们在 In-house 数据集上做了多组实验,分别评测了模型的整体效果、类目差异的效果以及在小样本类目上的提升。下图是模型在 AUC 和 NDCG 两个指标上的评测结果。

图片

我们也评测了使用单独类目的训练集训练模型和使用合并多个类目的训练集训练模型两种模型训练方式。下图是具体结果,其中 M 表示手机类目,B 表示图书类目,C 表示服饰类目。

图片

由于 MoE 模型的门网络输出表示了不同的专家网络的权重,所以我们分析了不同类目下,门网络的输出,以便观察模型对于类目差异的学习效果。如下图所示:

图片

我们将门网络的输出做 T-SNE 降维,观察不同类目的聚类效果,图上不同的颜色代表不同的类别(蓝色表示日用百货相关类目,绿色表示电器相关类目,红色表示流行服饰相关类目)。可以从图上明显的看出,我们提出的方法在聚类效果更好,也说明对于相似的类目,我们的模型更倾向于选择相似的专家网络,差异大的类目,更倾向于选择不同的专家网络。

最后,我们评测了模型在不同样本量类目上的 AUC 提升效果,如下图所示,横轴从左到右表示类目的样本量越来越多,柱状图表示样本量的大小。不同颜色的曲线表示模型相比于 base 模型的提升。

图片

更多关于多类目 MoE 模型以及实验的细节请参考我们发表在 ICDE 2021 上的文章:

https://arxiv.org/abs/2007.12349

参考文献:

[1] Shazeer, Noam, et al. "Outrageously large neural networks: The sparsely-gated mixture-of-experts layer." arXiv preprint arXiv:1701.06538 (2017).

[2] Xiao, Zhuojian, et al. "Adversarial Mixture Of Experts with Category Hierarchy Soft Constraint." 2021 IEEE 37th International Conference on Data Engineering (ICDE). IEEE, 2021.

今天的分享就到这里,谢谢大家。


本文地址:https://www.6aiq.com/article/1628373195066
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: