*— layout: post title: Meta AdaTT介绍 description: modified: 2024-1-2 tags: —
meta在《AdaTT: Adaptive Task-to-Task Fusion Network for Multitask Learning in Recommendations》提出了AdaTT的多任务建模方法。
摘要
多任务学习(MTL)旨在通过同时在多个任务上训练机器学习模型来提高它们的性能和效率。然而,MTL研究面临两个挑战:
- 1)有效地建模任务之间的关系以便实现知识共享,
- 2)共同学习任务特定(task-specific)知识和共享知识
本文提出了一种名为自适应任务融合网络(AdaTT:Adaptive Task-to-Task Fusion Network)的新模型,以解决这两个挑战。AdaTT是一个深度融合网络,具有多层的专有任务单元(task-specific unit)和可选共享融合单元。通过利用一个残差机制(residual)和一个门控机制(gating)来进行任务间融合(task-to-task fusion),这些单元可以自适应地同时学习共享知识和专有任务知识。为了评估AdaTT的性能,我们使用各种任务组在公共基准和工业推荐数据集上进行实验。结果表明,AdaTT明显优于现有的最先进基线。此外,我们的端到端实验表明,与替代方案相比,该模型表现更好。
1.引言
在线推荐系统旨在为用户生成个性化的高质量推荐。这些系统的有效性通常取决于它们准确学习用户偏好的能力,这通常需要同时优化多个目标。例如,一个短视频推荐系统应该考虑用户观看视频(watch)的可能性(likelihood)和他们喜欢视频(like)的可能性(likelihood)。多任务学习(MTL)是这些用例的典型解决方案。通过在单个框架内联合训练多个任务,MTL提供了几个好处:
- 首先,它增加了计算效率,这对于大规模在线推荐系统非常重要
- 此外,它通过跨任务正则化(cross-task regularization)和知识共享(knowledge sharing),增强了模型表现
然而,MTL也面临着独特的挑战。其中一个主要挑战是建模任务之间的关系。由于每个任务可能与其他任务具有不同程度的相关性,仅仅建模所有任务的一般共性是不够的。这个问题的复杂性随着任务数量的增加而增加。有效的任务关系建模是实现任务自适应知识共享(task-adaptive knowledge sharing)的关键。例如,“分享视频(share)”任务共享的知识可以在类似于“喜欢视频(like)”的任务中得到很大的权重,同时也可以从具有丰富示例的其它任务中吸取不同方面的知识,例如“观看视频(watch)”。另一方面,它会最小化与高度不相关的任务的共享学习(shared learning)。
- 先前的工作[2、19]通常采用静态共享表示(static shared representations)。
- 其他工作,如cross-stitch network[24](如图2(c)所示),学习矩阵来建模多个子网络之间的关系。然而,权重对于所有样本保持不变,子网络只是松散的特定任务。
- 最近的方法,如MMoE[22](如图2(b)所示)和PLE[29](如图2(e)所示),使用专门的门控网络(gating networks)来动态组合共享的子模块以实现灵活的共享,但是这些方法建模的任务之间的关系是模糊和间接的。
图2 我们实验中使用的MTL模型。在多级MTL模型中,使用两个融合level来说明它们的设计。模块用不同的颜色表示:共享模块为蓝色,任务A特定模块为黄色,任务B特定模块为紫色
除了共享学习,专有任务学习(task-specific learning)也是多任务学习的一个重要组成部分。在两者之间取得适当的平衡对于解决任务冲突(task conflicts)和实现跨任务正则化(cross-task regularization)非常重要。
- 一方面,MTL可能会遇到,负迁移(negative transfer)的问题:其中对一个任务的优化会对另一个任务的性能产生负面影响,特别是当任务具有冲突的目标时。在这种情况下,MTL模型应该自适应地强调专有任务学习。
- 另一方面,专有任务学习过度和共享不足可能会导致过拟合,降低跨任务正则化的效益。每个任务的训练数据的数量和分布也会影响学习的重点:具有更多数据的任务可以更多地依赖于它们的专有学习,而那些具有较少数据或高度倾斜数据的任务可以更多地集中于共享学习。
考虑到样本之间的差异可以使两者之间的权衡更加动态。因此,自动学习平衡这两种类型的学习非常重要。许多软参数共享模型(soft parameter sharing)可以在不需要繁琐的手动调整[2]或学习所有样本的静态结构。然而,进一步的研究是 需要理解:如何建模在共享任务学习与专有任务学习间的交互,以便提升效果。
为了共同应对这些挑战,我们提出了一种新颖的MTL模型,自适应任务到任务融合网络(AdaTT)。为了实现共享学习和可解释性,我们提出引入特定任务的专家、共享专家和门控模块,以明确地模拟任务对任务以及所有任务层面的交互。为了协同进行特定任务学习和共享学习,我们将它们区分并在独立的融合模块中进行建模,每个模块应用不同的专家和融合策略。然后通过残差机制[12]结合融合结果。此外,我们采用多级融合,每级针对不同的功能进行专门化处理,以提高学习性能。
为了评估AdaTT的性能,我们在一个真实世界的短视频推荐系统上进行了实验。我们调整实验组以检查其对不同任务关系的适应性。此外,我们还使用了一个公共基准测试进一步展示了其泛化能力。在所有这些实验中,AdaTT在不同数据集和任务组上始终表现优于基线模型。
为了评估AdaTT在大规模上的性能,我们对其超参数进行了研究,特别关注融合层次和专家数量。此外,我们设计了一项消融研究和可视化分析,以深入了解AdaTT的内部机制。消融研究验证了残差设计的有效性,通过分别建模的融合模块实现了互补的任务特定和共享学习。深度和浅层融合层次上专家权重的可视化提供了对不同且具有意义的在不同融合层级、任务以及任务组之间共享所习得的模式。
本文的贡献总结如下:
- 我们提出了一种新颖的MTL模型,自适应任务间融合网络(AdaTT),它同时实现了自适应任务间的知识共享和稳健的任务特定学习。
- 通过对真实世界基准数据和大规模视频推荐系统的彻底实验,我们评估了AdaTT与各种基线模型的有效性。
- 我们通过对其各个融合模块进行消融研究,并探究其融合单元在浅层和深层知识融合中的操作情况,展示了模型的可解释性。
2.相关工作
多任务学习在各个领域都有广泛的应用,包括计算机视觉[16, 19, 24, 34]、自然语言处理[5, 11]、语音识别[6]、机器人学[32]和推荐系统[10, 22, 29, 35]。许多研究都集中在开发创新的MTL架构上。这些模型可以分为两类:硬参数共享和软参数共享。硬参数共享涉及使用预定义的模型架构,在该架构中某些层在所有任务之间共享,而其他层则特定于单个任务。
共享底层模型(Share Bottom Model)[2]是硬参数方法中最广泛使用的模型之一。该模型利用共享的下层进行表示学习,并在其顶部添加特定于任务的层。多线性关系网络[20]通过在对特定任务层的参数施加张量正则化先验来改进这一结构。另一个例子是UberNet[16],它使用图像金字塔方法联合解决不同层次的低级、中级和高级视觉任务。它使用特定于任务的层和共享层处理金字塔中的每个分辨率。硬参数共享模型通常具有紧凑的结构,但需要大量的人工努力来确定共享什么,并且缺乏适应性。此外,在不相关或冲突的任务之间过度共享可能导致负迁移,这可能对模型性能产生负面影响。
为了更好地应对这些挑战,已经提出了许多软参数共享的迁移学习(MTL)模型。
- 交叉拼接网络(Cross-stitch network)[24]和闸门网络(sluice network)[26]使用可训练参数线性组合每一层的输出。然而,它们应用的线性组合是固定的,因此不能完全反映单个示例上的任务关系区分。其他工作提出使用注意力或门控模块,并根据输入动态组合或提取每个任务的知识。例如,
- MTAN[19]采用注意力模块产生逐元素掩码,从共享表示中提取特定于任务的知識。
- MMoE[22]引入了专家混合,并使用门控网络动态融合它们以适应每个任务
- PLE[29]被提出来进一步增强知识共享的灵活性。PLE明确引入了特定于任务的专家与共享专家相结合。此外,PLE提出使用门控模块进行渐进式分离路由,以选择性和动态地融合知识。
在这一系列中工作原理中,PLE与我们的工作最为相关。不同之处在于,我们的工作引入了两种互补的融合模块,分别用于模型特定任务学习和共享学习。此外,除了明确引入共享模块以学习所有任务间的共性外,我们还利用基于输入的直接任务对融合,以最大化知识共享的灵活性。
- 神经架构搜索(NAS)[8, 17, 18, 25, 36]方法已被应用于多任务学习(MTL),以自动学习模型结构。
- 分支多任务网络[30]通过基于亲和度分数对任务进行聚类,并将不相似的任务分配到不同的分支中来生成树状结构。[9]利用Gumbel-Softmax采样进行分支操作,而不是预先计算的亲和度分数,从而实现端到端的训练。
- 软层排序技术[23]识别了传统固定顺序共享方法在MTL模型中的局限性,并提出学习特定于任务的比例参数,以实现每个任务共享层的灵活排序。
- AdaShare [28]学习一个特定于任务的策略,以选择执行哪些层来处理每个特定任务。
- 子网络路由(SNR)[21]将共享层分割成子网络,并学习它们与潜在变量的连接。
NAS方法消除了大量手动工作,并提高了MTL模型中共享模式的灵活性。然而,由于对所有可能模型配置的穷举搜索在组合上是复杂的,这些方法通常依赖于简化假设,如分支[9, 30]、路由[21]、层排序[23]、层选择[28]等,以限制搜索空间。此外,生成的结构不会适应个别示例。
除了专注于多任务学习架构设计的工作外,另一条研究路线旨在改进多任务优化。
- 基于不确定性的加权[15]根据任务的不确定性来学习每个任务的权重。
- GradNorm[3]控制不同任务的梯度大小以平衡它们的训练速率。
- GradDrop[4]概率性地选择一个符号并移除相反符号的梯度。
- 梯度手术(PCGrad)[33]将冲突的任务梯度投影到彼此的正交平面上。
- RotoGrad[14]操纵任务梯度的大小和方向以缓解冲突。
- [27]将多任务学习视为一个多目标优化问题,目标是找到帕累托最优解。
- [31]引入了具有欠参数化小塔的自辅助损失,以平衡帕累托效率和跨任务泛化。
虽然这些方法可以带来改进,但仅依赖它们而没有强大的模型架构可能会限制模型性能的上限。
3.模型结构
为了共同学习自适应共享表示并增强专有任务学习,我们提出了一个新模型:自适应任务融合网络(AdaTT)。AdaTT利用门控和残差机制来自适应地融合多个融合层中的专家(experts)。考虑一个具有两个预测任务的多任务学习场景。我们使用两个融合层在图1中说明了AdaTT的架构。AdaTT由多层融合网络(multi-level fusion network)和任务塔(task towers)组成。融合网络(fusion networks)由任务特定和可选共享融合单元构成,而任务塔建立在融合网络之上,并与最终融合层中的任务特定单元相连。我们的框架是通用的,支持灵活选择专家模块、任务塔网络、门控模块和可配置数量的专家和融合层。 在接下来的章节中,我们首先介绍AdaTT的一个特殊case:称为AdaTT-sp,它仅使用任务特定融合单元(如图1(a)所示)。然后,我们将描述通用的AdaTT设计,如图1(b)所示。
图1 AdaTT-sp和具有2个fusion levels的通用AdaTT。任务A和B的特定和共享模块通过颜色区分:A为黄色,B为紫色,共享为蓝色。为了说明,我们为每个任务特定单元使用了2个专家。在通用AdaTT中,我们添加了一个共享融合单元,其中只有一个专家作为示例。请注意,通用AdaTT中的共享模块并不是必需的,因此使用虚线表示。当不存在共享模块时,通用AdaTT会回退到AdaTT-sp。
3.1 AdaTT-sp
AdaTT-sp的详细设计如下所示。给定输入𝑥用于𝑇个任务,任务𝑡(𝑡=1,2,…,𝑇)的预测被公式化为:
\[y_t=h_t(𝑓_𝑡^L(𝑥))\]…(1)
其中:
- L:是融合层数量
- $h_t$:表示任务𝑡的任务塔
- $𝑓_t^L$:表示在第𝐿个融合层产生任务𝑡的融合单元的函数
这里,$𝑓_𝑡^L(𝑥)$通过使用等式(2)和(3),从底部到顶部应用融合层来计算:
\[𝑓_1^0(𝑥)=𝑓_2^0(𝑥)=\cdots=𝑓_T^0(𝑥)=𝑥\]…(2)
\[𝑓_𝑡^l(𝑥)=𝐹𝑈_𝑡^l(𝑓_1^{(𝑙−1)}(𝑥), 𝑓_2^{𝑙−1}(𝑥), \cdots, 𝑓_𝑇^{l-1}(𝑥)), 𝑙=1 \cdots L\]…(3)
这里,FU表示融合单元。
3.1.1 融合单元(fusion unit)
下面我们详细介绍引入等式(3)中的$𝐹𝑈_𝑡^l$的构造。对于任务𝑡,在接收到前一个融合层(fusion level)的所有输出后,我们首先会使用函数$e_{𝑡,𝑖}^l$,和输入$𝑓_t^{l-1}(𝑥)$,来为该任务构造$𝑚_𝑡$个本地专家(naive experts),表示为$𝐸_{𝑡,𝑖}^l$,即:
\[𝐸_{𝑡,𝑖}^l=e_{𝑡,𝑖}^l(f_𝑡^{l-1}(𝑥))\]…(4)
其中:
- $i=1,2,\cdots,𝑚_t$
- $𝐸_{𝑡,𝑖}^l \in R^{1×𝑑^𝑙}$
在第𝑙层,每个专家网络(expert network)会产生长度为$𝑑^𝑙$的向量。为了简化表示,在第𝑙层,我们使用:
- $𝐸_𝑡^l$:表示属于任务𝑡的experts的所有垂直拼接(vertical concatenation)
- $𝐸^𝑙$:表示跨任务的所有experts的所有垂直拼接
具体而言,$𝐸_𝑡^l$ 和$𝐸^𝑙$表示为:
\[𝐸_𝑡^l=[𝐸_{𝑡,1}^l, 𝐸_{𝑡,2}^l,\cdots,𝐸_{𝑡,𝑚_t}^l]\]…(5)
\[𝐸^𝑙=[𝐸_1^l,𝐸_2^l, \cdots, 𝐸_𝑇^l]\]…(6)
其中:
- $𝐸_𝑡^l \in R^{𝑚_t \times 𝑑^𝑙}$
- $𝐸^𝑙 \in R^{(𝑚_1+𝑚_2+…+𝑚_𝑇)×𝑑^𝑙}$
在上述等式中:
- $[,]$:表示将向量或子矩阵垂直堆叠成较大矩阵的操作。
由于任务可能与其他任务具有不同的相关性,$𝐹𝑈_𝑡^l$直接使用门控模块$𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹_𝑡^l$来结合所有任务的专家$𝐸^𝑙$来模拟任务间的知识融合。此外,我们利用 轻量级线性组合 $𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹_𝑡^l$来融合任务𝑡的本地专家,即$𝐸_𝑡^l$。概念上,门控模块模拟共享学习,本地专家的线性组合(linear combination)模拟专有任务学习。具体而言,任务𝑡在第𝑙层的特定单元的输出被公式化为:
\[𝑓_𝑡^l(𝑥) = AllExpertGF_𝑡^l(𝐸^𝑙, 𝐺_𝑡^l) + NativeExpertLF_t^l(𝐸_𝑡^l)\]…(7)
在公式7中,专家被融合如下:
\[𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹_t^l(𝐸_𝑡^l)=(𝑣_𝑡^l)^T 𝐸^{𝑡^l}\]…(8)
其中:
- 在𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹中,$𝐸^𝑙$ 乘以由一个函数$𝑔_𝑡^l$生成的门控权重$𝐺_𝑡^l \in R^{(𝑚_1+𝑚_2+\cdots+𝑚_𝑇)\times 1}$
- 在𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹中,相似的,$𝐸_𝑡^l$仅由一个可学习的向量$v_𝑡^l \in R^{𝑚_𝑡 \times 1}$组合在一起
当$𝑚_1=𝑚_2=\cdots=𝑚_𝑇=1$时,即所有融合单元仅有一个专家时,为了简化起见,$𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡 𝐿𝐹_𝑡^l(𝐸_t^l)$回退到$𝐸_𝑡^l$,将一个单位权重分配给本地专家。有许多设计选项可用于$𝑔_𝑡^l$。常见的一种是使用由softmax激活的单层MLP:
\[𝑔_𝑡^l(𝑓_𝑡^{𝑙−1}(𝑥))=𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊_𝑡^l 𝑓_𝑡^{𝑙−1}(𝑥)^T)\]…(10)
这里:
- $𝑊_𝑡^l \in R^{(𝑚_1+𝑚_2+\cdots+𝑚_𝑇)} × 𝑑^{𝑙−1}$是一个学习的矩阵。
3.1.2 简化
为了实现效率,考虑到公式8和公式9,我们实际上可以用零填充$(𝑣_𝑡^l)^T$以匹配$(𝐺_t^l)^T$的大小,加权并执行单个乘法来组合所有专家。因此,公式7可以简化为:
\[𝑓_𝑡^l(𝑥)=(𝑝𝑎𝑑(𝑣_𝑡^{lT} )+𝐺_𝑡^{lT}) 𝐸^𝑙\]… (11)
正如我们所看到的,包含线性融合模块会导致计算量的最小增加。
3.2 常规版本的AdaTT(General AdaTT)
在其一般形式中,如图1(b)所示,AdaTT采用可选的共享融合单元(shared fusion units)。从概念上讲,专有任务模块pairs间的融合模拟了细粒度共享(fine-grained sharing),而专有任务模块和共享模块间的融合则传递了适用于所有任务的广泛知识。这导致了高效灵活的任务间知识共享。通用AdaTT的计算方式与AdaTT-sp类似,除了最后一个fusion level,共享融合单元不执行任何融合操作,只为专有任务融合单元产生专家输出进行处理。
总之,AdaTT明确地学习任务特定知识并自适应地与共享知识融合。融合是任务自适应的,因为:
- 1.门控模块学习与任务本地专家相关的残差
- 2.每个任务特定单元使用特定的门控模块融合专家,该门控模块以输入为条件(从第二个融合级别开始是唯一的)
通过允许每个任务直接而灵活地从其他任务中学习共享知识,AdaTT相比于仅依赖于共享专家作为媒介的PLE具有更大的灵活性。此外,AdaTT可以选择仅使用任务特定专家。与PLE不同,它在每个融合单元内的不同线性融合模块中单独融合本地专家,而不是在单个门控模块中处理所有选定的专家。这种设计增强了每个融合级别后任务特定学习的鲁棒性。尽管它很简单,但我们的实验表明,它胜过了PLE,后者将选择应用于不同的融合单元中的专家,并使用不同的路由路径来区分这些专家。
4.实验
在本节中,我们提供了全面的实验结果,以突出我们提出的AdaTT模型的有效性,并更好地理解它。
本节分为四个部分。我们:
- 首先在第4.1节简要描述基线模型。
- 其次,我们通过在实际工业和公共数据集上的实验评估AdaTT相对于最先进的多任务学习模型的有效性。
对于工业数据集,我们使用三组不同的预测任务来检验这些多任务学习模型在各种场景下的性能。
- 第4.2节和第4.3节分享了结果。
- 接下来,我们在第4.4节和第4.5节分别介绍各个组件研究。
我们简化NativeExpertLF模块以验证AdaTT残差设计的重要性,该设计包含分离的模块以融合不同的专家。我们还可视化每个任务特定单元中学习的专家权重,以展示AdaTT如何学习任务之间的适当交互,这对于有效的知识共享至关重要。最后,在第4.6节中,我们对AdaTT的超参数进行研究,以理解融合层级数量与专家数量之间的关系以及AdaTT的性能。
4.1 基线模型
我们采用了Shared-bottom、MMoE、Multi-level MMoE(原始单级MMoE的扩展)、PLE和Cross-stitch Networks作为我们的基线。在这些模型中,MMoE、PLE和Cross-stitch Networks利用了软参数共享技术。
- MMoE [22]:该模型为每个任务学习一个专用的门控模块,用于融合多个共享的专家模块。给定𝑛个专家模块𝑒₁, 𝑒₂, …, 𝑒ₙ,任务𝑡的任务塔模块ℎₜ与门控模块𝑔ₜ,任务𝑡的预测结果计算如下:
…(12)
其中:
\[f_t(x) = g_t(x)[e_1(x), e_2(x), ..., e_n(x)]\]…(13)
这里:
-
[ ]表示将向量垂直堆叠成矩阵。
- 多层MMoE(ML-MMoE):该模型在原始单层MMoE的基础上引入了多层融合机制。在ML-MMoE中,高层专家以经过不同门控模块融合后的低层专家作为输入。与原始MMoE类似,所有门控模块都基于相同的原始输入进行条件化。
- Cross-stitch [24]:该模型引入了交叉拼接单元,通过学习得到的权重对不同任务的隐藏层进行线性组合。
- PLE [29]:该模型显式地引入了任务特定专家与共享专家,并采用渐进分离路由策略。门控模块用于融合任务特定单元和共享单元中所选的专家。在PLE中,共享单元可以融合同一层的所有专家,而任务特定单元仅融合其自身的专家及共享专家。该模型与AdaTT最为接近。
上述所有模型如图2所示,以便于对比。
图2:我们实验中使用的MTL模型。在多层MTL模型中,使用两个融合层来说明其设计。模块使用不同的颜色表示:共享模块为蓝色,任务A的特定模块为黄色,任务B的特定模块为紫色。
4.2 大规模短视频推荐系统评估
本节我们将展示在短视频推荐系统上的实验结果。该系统展示一个根据多个任务得分排序后生成的推荐视频列表。这些任务大致可以分为两类:
- 参与度任务(engagement tasks):即考虑用户显式反馈的任务(例如对视频进行评论);
- 消费任务(consumption tasks):即反映用户隐式反馈的任务(例如视频观看行为)。
4.2.1 任务分组
我们构建了三组任务,以全面评估这些模型在不同任务关系下的表现:
- 第一组: 包含一个参与度任务和一个消费任务,这两个任务预期相关性较低。
- 第二组: 由两个相关性较高的消费任务组成。其中第一个任务与第一组中的消费任务相同,第二个任务的选择使其具有与第一组中参与度任务相当的正样本事件率。第1组和第2组都仅包含二分类任务。
- 第三组: 我们将任务数量增加到五个,并选取了高度多样化的任务。其中三个为消费任务,两个为参与度任务。其中一个消费任务为回归任务,其余四个为二分类任务。从用户情绪角度来看,我们包含了一个反映用户“不喜欢”行为的任务,以及四个关于正反馈的事件任务。其中一个正样本极其稀疏的参与度任务被用作辅助任务。
在汇报所有任务组的结果时,我们首先展示回归任务(如果存在),随后按正样本比例从高到低的顺序展示分类任务。
4.2.2 实验设置
我们收集了约700亿条样本用于模型训练,并在约1000亿条样本的测试集上评估其性能。在特征处理方面,我们将所有稀疏特征转换为稠密嵌入向量,并与稠密特征进行拼接。所有任务使用相同的输入。所有模型均在同一框架下进行训练和测试,采用相同的优化设置,如优化器、学习率和批量大小等。对于训练,我们对二分类任务使用交叉熵损失(Cross Entropy Loss),对回归任务使用均方误差损失(MSE Loss)。所有任务的损失函数求和后以相等权重进行联合优化。在测试阶段,我们对二分类任务使用归一化熵(Normalized Entropy, NE)[13],对回归任务使用均方误差(MSE)。
4.2.3 模型超参数
在我们的实验中,所有模型都包含 3 个使用 ReLU 激活函数的隐藏层。对于每一组实验,我们进行了两项对比。
首先,我们将 MMoE、PLE 和 AdaTT 与共享底层(shared-bottom)模型进行比较。为了公平起见,PLE、ML-MMoE 和 AdaTT 都具有两级融合。在这两级融合中,我们分别使用单层MLP专家模块,其隐藏层维度分别为256和128。MMoE(多门混合专家)则由两层MLP专家模块构成,其隐藏层维度为[256, 128]。我们还对每一级融合中的专家总数设置了上限。这些模型中的所有门控模块均采用一层带有softmax激活函数的MLP。值得注意的是,与专家模块相比,门控模块所需的计算量要小得多。尽管这两类模块共享相同的输入维度,但门控模块的总输出维度几乎小了两个数量级。所有模型的任务塔(task tower)都包含一个具有64个单元的单一隐藏层。在这种设置下,所有模型的计算量相当,其中任务塔和专家模块占据了主要的计算资源。
在我们的实验中,我们对PLE(渐进式分层专家)和AdaTT模型调节了任务特定专家与共享专家的数量;而对于MMoE,则调节了专家的总数。
在另一项独立实验中,我们将AdaTT与交叉缝合模型(cross-stitch model)在共享底层模型(shared-bottom model)上的表现进行了对比。AdaTT使用了与前述实验相似的超参数,但为了与交叉缝合模型具有可比性,每个任务仅使用1个专家且不设置共享专家。交叉缝合模型包含2个交叉缝合单元,并采用与AdaTT相同的隐藏层结构。
4.2.4 关于参与度(engagement)与消费(consumption)任务组的实验
对于这一组任务,我们在分别使用100亿、300亿和700亿样本进行训练后,展示了各模型相对于共享底层模型在每个任务上的归一化熵(NE)差异结果,并同时提供了测试集上的结果。表1和表2分别展示了消费任务与参与度任务的结果。
表1:消费+互动任务组中,消费型任务的表现
表2:消费+互动任务组中,参与度任务的表现
结果表明,在这两类任务上,AdaTT的表现均优于其他所有模型,不仅收敛速度更快,而且预测质量更高。在使用100亿样本进行训练后,两个AdaTT模型在这两项任务上均已展现出显著的NE提升。就基线模型而言,PLE在消费任务上的收敛速度明显更慢。而交叉缝合模型与AdaTT相比差距较大,这凸显了在任务关系建模中自适应融合的重要性。
值得注意的是,与消费任务相比,PLE和AdaTT在参与度任务(该任务中正样本事件较少)上展现出了更大的改进幅度。然而,这种趋势在MMoE和ML-MMoE中并不明显,这突显了任务特定学习的重要性。
有趣的是,尽管ML-MMoE通过增加额外的融合操作拥有更高的灵活性,但其在两项任务上的表现却均不如MMoE,说明其在专家融合方面的性能较差。这很可能是由于其设计中缺乏区分性以及未引入先验知识所导致。共享专家高度对称,所有门控模块都会使用这些专家,且没有明确建模的任务特定专家。此外,所有门控模块接收的都是相同的原始输入。融合层数的增加带来了更多的路径选择,使得ML-MMoE更难为预测每一个特定任务学习到不同的权重组合。
4.2.5 关于两项消费任务组的实验
由于多任务学习(MTL)模型的性能可能对任务之间的相关性较为敏感,我们设计了一组实验,用于评估它们在两项相关性较高的消费任务上的表现,与前述任务组1(任务间相关性较低)形成对比。如表3所示,该组中所有模型在两项任务上的改进情况较基线模型更为相近。这并不令人意外,因为当任务之间关联更强时,负迁移现象较轻,两项任务都能从更高程度的共享知识中受益。
表3 表3:消费任务组的表现
即使采用较简单共享机制的MTL模型也能取得不错的效果,因此不同模型间的NE差异不那么显著。然而,即便如此,AdaTT仍然在所有MTL模型中展现出了最佳的性能表现。
4.2.6 五项多样化任务实验。
在这一组任务中,我们通过使用五个高度多样化的任务,评估模型处理复杂跨任务关系的能力。我们对四个主要任务进行了调优,并将结果展示在表4中。由于辅助任务中正样本稀疏且噪声较大、性能不稳定,因此未将其纳入比较。结果表明,AdaTT在所有主要任务上均以显著优势超越所有对比模型,显示出其在处理复杂任务关系方面的优越性。
表4 表4:模型在5项任务组上的表现
4.3.1 公开数据集评估
4.3.1 数据集描述。我们使用了从1994年和1995年当前人口调查中提取的“人口普查收入”数据集[7]。该数据集包含40个特征和299,285个实例,其中199,523个为训练样本,99,762个为测试样本。我们将测试样本随机等比例划分为验证集与测试集。任务包括:
- 1)预测收入是否超过5万美元;
- 2)预测婚姻状态是否为“从未结婚”;
- 3)预测教育程度是否至少为大学水平。
4.3.2 模型超参数设置。
本实验采用了一个改编自文献[1]的框架,用于训练和测试ML-MMoE、PLE和AdaTT模型。模型结构与第4.2.3节类似,但隐藏层维度和专家数量有所调整。实验分为两组进行,每组融合层中的专家数量分别为6个和9个。对于PLE和AdaTT,共享专家的数量𝑚𝑠经过调优,任务特定专家的数量则分别计算为$6−m_s$和$9−m_s$。为保证公平性,其他所有超参数在各模型间保持一致。在调优$𝑚_𝑠$后,每个模型使用不同初始化训练100次,并报告测试集上的平均AUC值。
4.3.3 实验结果。
结果如表5所示。AdaTT在所有任务上均优于基线模型。
表5:UCI人口普查收入数据集上3个任务的性能。我们使用两级融合比较PLE、ML-MMoE和AdaTT。专家网络和任务塔网络是单层多层感知机(MLP),并列出了它们的隐藏维度。仅利用特定于任务的专家的AdaTT-sp设置,使AdaTT能够实现其最佳结果。
4.4 𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹 模块的消融实验
本节中,我们研究了融合单元中采用 𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹 模块时残差机制的作用。我们通过消融掉 𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹 模块,仅使用 𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹 模块来融合每个融合单元中所有专家的输出。我们采用了与第4.2.3节类似的模型结构,并设定每个任务固定使用三个专家,且不设置共享专家。两个模型均在700亿个样本上进行训练,在1000亿个样本上进行测试。实验结果如表6所示。
表6:NativeExpertLF模块的消融研究。各项任务上的性能下降均表明了残差机制与单独融合的重要性。
尽管从理论上讲,𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹 模块能够学习灵活的专家组合方式,但我们的实验仍然表明:将原生专家(即各任务专属专家)单独进行组合,并将 𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹 的输出作为残差加回去,这一做法具有重要作用。具体而言,当消融掉 𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹 模块时该术语在所有任务中都会导致损失增加,在分类任务中归一化误差(NE)上升了0.107%–0.222%,在回归任务中均方误差(MSE)上升了0.158%。
4.5 门控模块专家权重分布的可视化
在图3中,我们通过将来自𝑁𝑎𝑡𝑖𝑣𝑒𝐸𝑥𝑝𝑒𝑟𝑡𝐿𝐹和𝐴𝑙𝑙𝐸𝑥𝑝𝑒𝑟𝑡𝐺𝐹两个模块的权重进行叠加,可视化了专家权重的分布情况,以探究AdaTT的内部融合机制。为了评估专家的利用情况,我们选取了三个任务:两个消费类任务和一个参与度类任务。具体来说,我们在消费类任务中选择了一个回归任务,并在参与度和消费类任务中选择了两个正事件率最高的分类任务。我们实现了两个层次的融合,每个任务使用一个专家,且不共享专家。这两个融合层次中的专家分别为单层MLP,其隐藏层维度分别为256(第一层融合)和128(第二层融合)。在训练模型后,我们将其应用于测试数据集,计算所有测试样本上的平均权重,并为每个融合层次绘制了一个3×3的权重矩阵。其中有一些值得注意的观察结果:
图3:在两级AdaTT-sp任务中,每个融合层学习到的专家权重分布可视化。任务和专家按照消费回归任务、消费分类任务和参与任务的顺序排列。请注意,此图显示了NativeExpertLF和AllExpertGF模块的权重总和。由于每个任务只有一个本地专家,NativeExpertLF模块为它们分配单位权重(映射到图中的对角网格)。
首先,在较低的融合层次(第0层),我们的模型能够识别出任务之间的关系。消费类任务与参与度类任务组之间存在明显区分。此外,在两个消费类任务之间还存在一种非对称的共享模式:分类类的消费任务主要使用专家2,而回归类的消费任务大致平均地使用了专家1和专家2。
在较高的融合层次(第1层),由于监督更紧密且捕捉到了丰富的语义信息,我们的模型通过跨任务的共享模式展示了软参数共享的优势。虽然原生专家在任务特定学习中发挥了重要作用,但所有专家都被灵活使用,共同促进了共享学习。在这一层次上,消费类分类任务通过利用专门用于参与度分类任务的专家3以及专门用于消费类回归任务的专家1,来实现学习的多样化。同时,正信号较少的参与度任务则从两个消费类任务中受益于知识迁移。相比之下,消费类回归任务主要依赖于其原生专家1以及另一个消费类任务所对应的专家。在所有专家中,专家1因其从第0层的专家1和专家2的混合中学到了最多样化的知识,而在所有任务中都获得了较高的权重。
总体而言,我们可以清晰地看到专业化的现象,即在不同任务、任务分组以及融合层次上,模型都学到了不同的权重分布模式。
4.6 超参数研究
我们开展超参数研究,以探究专家数量与融合层数的影响。两项研究均采用与第4.2.6节类似的5个预测任务,使用700亿条样本进行训练,100亿条样本进行测试。在这两项研究中,我们均采用AdaTT-sp作为模型架构。
4.6.1 任务特定专家数量的影响
为了考察任务特定专家数量的影响,为简化起见,我们在所有任务中保持任务特定专家数量一致,并将其在1至4之间变化。这些专家由一层多层感知机(MLP)构成,在两个融合层级上分别使用256维和128维的隐藏层。该分析的结果见表7.
表7:AdaTT在不同任务专家数量下的表现。
可以观察到,随着专家数量的增加,所有任务的性能都有所提升。然而,这种提升并不是一致的:在本研究中,当专家数量增加到2时,参与度任务在NE(参与度指标)上相比消费类任务仅表现出轻微的改善。但随着专家数量进一步增加到3和4时,趋势发生了逆转,参与度任务在各项指标上展现出了更为显著的差异。
4.6.2 融合层级的影响
我们还通过为每个任务使用单个专家,研究了不同融合层级的配置。我们逐步增加融合层级的数量,并为每个层级使用单层MLP(多层感知机)。我们在不同融合层级下训练了四个模型,其MLP专家的隐藏维度分别为[256, 128]、[512, 256, 128]、[1024, 512, 256, 128] 和 [2048, 1024, 512, 256, 128]。对于任务塔,每个模型均采用隐藏维度为64的单层MLP。结果如表8所示。正如预期,增加更多的融合层级会带来更大的性能提升。即使将融合层级增加到五层,所有任务仍然都能观察到显著的改进。
表8:AdaTT的性能随着融合级别提升的变化情况。我们在第一列中表示每个融合级别的专家隐藏维度。
5 结论
在本工作中,我们提出了一种新的多任务学习模型,称为自适应任务间融合网络(AdaTT)。通过利用其自适应融合机制,AdaTT能够有效建模复杂的任务间关系,并促进任务特定知识与共享知识的联合学习。通过在具有多样化任务组的真实工业数据集以及公共数据集上的全面评估,我们证明了AdaTT的有效性与泛化能力。结果表明,AdaTT在性能上显著优于当前最先进的多任务学习模型。我们希望我们的工作不仅能在多任务学习领域带来益处,也能在需要不同相关专业化模块协同学习的更广泛应用中发挥作用。