多目标建模算法PLE

2023-02-01 17:13:14 浏览数 (2)

1. 概述

在现如今的推荐系统或者搜索中,都存在多个目标,多目标的算法在现如今的系统中已然成为了标配。在多目标的建模过程中,如果不同的学习任务之间较为相关时,多个任务之间可以共享一部分的信息,这样最终能够提升整体的模型学习效果。但是如果多个任务之间的相关性并不强,或者说多个任务之间存在某种冲突,这样通过部分的共享就会起到事与愿违的效果,这便是通常所说的在多任务建模中出现的负迁移(negative transfer)现象,即在相关性不强或者无相关性的多任务环境下进行信息共享,最终影响整体的网络效果,MMoE[1]便是在这样的情况下被提出。在MMoE中,通过共享多个专家(expert)实现信息的共享,同时针对每一个上层任务(task)都有对应的门控函数(gate),学习到多个专家对于特定任务的贡献程度,即专家的分布。以此,实现了对任务之间的关联和区别的学习。

然而,在多任务建模过程中,还存在另外一种现象,称为跷跷板现象(seesaw phenomenon)。简单来说,跷跷板现象就是在对多个目标进行优化的过程中,一个任务指标的提升伴随着另外一些任务指标的下降。出现这种现象的主要原因是多个任务之间出现较多的共享,MMoE算法中也不能有效解决这样的一个问题。PLE(Progressive Layered Extraction)[2]模型在MMoE的基础上通过对共享的网络结构优化,在原先的共享部分,又增加了task-specific的部分,同时,为了增强网络的效果,构造了多层的网络结构。

2. 算法原理

2.1. Customized Gate Control

为解决上述提出的两个问题,参考[2]中首先提出了CGC(Customized Gate Control)网络。在CGC网络中,在共享专家网络的基础上,又针对特定的任务有特定的专家网络,以此增强每个任务的效果。CGC的网络结构如下图所示:

在CGC的网络结构中,其底层网络包括了shared experts和task-specific expert两个部分,且每一个expert部分都是由多个expert组成,上层针对每一个任务都有一个门控网络,且门控网络的输入是共享的experts和该任务对应的experts。由此可见,在CGC网络中,既包含了task-specific网络针对特定任务独有的信息,也包含了shared网络共享的信息,以上图为例,假设

left [ E_{left ( k,1 right )}^T,E_{left ( k,2 right )}^T,cdots, E_{left ( k,m_k right )}^T right ]

为指定任务

k

对应的多个专家的输出,

left [ E_{left ( s,1 right )}^T,E_{left ( s,2 right )}^T,cdots, E_{left ( s,m_s right )}^T right ]

为共享部分的多个专家的输出,这两个输出组合成上层门控网络的输入

S^kleft ( x right )

S^kleft ( x right )=left [ E_{left ( k,1 right )}^T,E_{left ( k,2 right )}^T,cdots, E_{left ( k,m_k right )}^T, E_{left ( s,1 right )}^T,E_{left ( s,2 right )}^T,cdots, E_{left ( s,m_s right )}^T right ]

门控网络的计算输出

g^kleft ( x right )

为:

g^kleft ( x right )=w^kleft ( x right )S^kleft ( x right )

其中,

w^kleft ( x right )=Softmaxleft ( W_g^kx right )

,且

W_g^kin mathbb{R}^{left ( m_k m_s right )times d}

2.2. Progressive Layered Extraction

在深度学习中,为了使得模型能够具有更好的泛化能力,通常的方法是构建更深的网络。同样,为了能够得到更具有泛化能力的网络,可以将上述网络构建得更深,这便有了PLE结构。简单来说,PLE结构可以看做是CGC网络结构的扩展,由single-level的CGC衍生为multi-level的PLE。具体的PLE网络结构如下图所示:

与CGC网络相比,除了第一个Extraction Network的输入是原始的Input,其余的Extraction Network的输入是上一个Extraction Network的输出,即包含两个大的部分,即特定任务对应的专家网络输出,如上图中的Experts A和Experts B的输出,另外一个是共享专家网络的输出,如上图中的Experts Shared的输出。

2.3. 损失函数

在多任务重,其损失函数为各任务损失的加权求和,即为:

L_kleft ( theta _1,cdots ,theta _K,theta _s right )=sum_{k=1}^{K}omega _kL_kleft ( theta _k,theta _s right )

其中,

omega _k

为第

k

个任务的权重,对于权重的设置,参考[2]中给出了如下的迭代公式:

omega _k^{left ( t right )}=omega _{k,0}times gamma _k^t

其中,

gamma _k

为更新率。对于任务

k

的损失函数

L_kleft ( theta _k,theta _s right )

,参考[2]中给出了如下的公式:

L_kleft ( theta _k,theta _s right )=frac{1}{sum_{i}delta _k^i}sum_{i}delta _k^i;loss_kleft ( hat{y}_k^ileft ( theta _k,theta _s right ),y_k^i right )

因为存在不同任务上的样本空间不一致的问题,因此在特定的任务中计算损失函数时,选择在其空间上的样本,即对于

delta _k^i

,其取值为

0

或者

1

,表示的是第

i

个样本是否属于第

k

个任务的样本空间。

3. 总结

为了解决多任务模型中普遍存在的负迁移和跷跷板现象,在MMoE模型的基础上提出了CGC模型,在共享专家的基础上增加了针对特定任务的专家网络,可以针对特定任务学习到独有的网络部分,从而避免任务之间的相互影响,同时为了进一步提升整体网络的泛化效果,在CGC的基础上通过堆叠Extraction Network构造了更深的网络结构,进一步提升多任务模型的学习效果。

参考文献

[1] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 1930-1939.

[2] Tang H, Liu J, Zhao M, et al. Progressive layered extraction (ple): A novel multi-task learning (mtl) model for personalized recommendations[C]//Fourteenth ACM Conference on Recommender Systems. 2020: 269-278.

0 人点赞