论文笔记:多任务学习在美团推荐中的应用

©NLP论文解读 原创•作者 |小欣

 

导读

 

本文重点对2021年KDD的一篇关于多任务学习的论文(也是美团在多任务学习领域的一个应用)《Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising》进行解读。

 

在该论文的多任务学习部分,作者对前面经典的多任务学习模型做了简单的回顾,而且,该论文也是在之前的经典多任务学习模型的基础上进行改进的。

 

所以,本文第一部分也先带大家回顾一下经典的多任务学习模型,第二部分再解读美团的这篇新的论文。

 

经典的多任务学习模型回顾

(MLP方向)

 

论文笔记:多任务学习在美团推荐中的应用

 

经典模型一:MMOE模型

(由Basemodel到OMOE到MMOE))

 

该模型源于论文:

《Recommending What Video to Watch Next: A Multi-task Ranking System》,由谷歌提出。

 

1、Hard parameter sharing:

论文笔记:多任务学习在美团推荐中的应用

 

共享层+Tower层:

不同任务共用shared层的神经网络,不同task训练不同的tower层网络(和图中对应的(task-specific layers)。

 

该模型适用于task之间不冲突的问题(要求task 相似),如果task不相似,那么共享层只会使目标的预测变得糟糕。

 

2、Soft parameter sharing:

论文笔记:多任务学习在美团推荐中的应用

 

该模型并没有共享层,每个任务训练自己的模型,加入不同模型之间参数向量距离的正则化项。

 

从而使得训练中不同模型之间参数趋于相似。实际上也是利用了不同task之间的相似性,来对不同模型进行约束,这种模型由于不共享底层,现在实际应用中较少使用。

 

那么共享底层参数的意义是什么呢?共享底层参数可以减少单独训练模型的参数数量,有利于防止过拟合,提高模型训练速度。

 

更重要的是,共享底层参数能够挖掘出不同任务之间的关联并互相利用这种关联来对不同的任务训练提供帮助,这是单任务学习不能做到的。

 

要注意,模型要求task之间类似,只有当task之间类似(不存在冲突)时,底层共享网络才有意义,为什么要求多任务(task)之间要有相似性呢,两张图的例子清晰易懂:

 

任务相似的情况下:

论文笔记:多任务学习在美团推荐中的应用

 

当task之间存在冲突或者说相差甚远时,底层共享网络将失去它的意义:

论文笔记:多任务学习在美团推荐中的应用

 

下面开始介绍MMOE模型,MMOE模型就是基于hard parameter sharing的基础模型上改进的。

 

由base模型到OMOE模型:

(one-gate MoE)

one-gate MoE模型:单门混合专家模型,如下图所示:

论文笔记:多任务学习在美团推荐中的应用

 

OMOE模型理解:

在共享层中,有k个expert专家,每个expert专家层相当于一个多层神经网络,多个专家层就是多个多层网络,这些网络都属于共享层,由下游的不同task共同享用;

 

该模型使用多专家层实际就是使用多个多层网络来替代之前单一多层网络共享层,每个专家层经过前向传播后输出一个vector。相较于基础模型,输出了k个vector。

 

然后该模型中还添加了门控层:Gate层。Gate层是一个浅层的神经网路,最后经过softmax层,输出的是k个标量,给每个expert专家层分配一个权重参数,所有权重参数之和等于1;

 

gate层可以理解为一个简单的attention model,即给每个专家层分配不同的注意力权重。gate层也属于共享层。模型的Tower 层部分与basemodel完全一致。

 

由OMOE模型到MMoE模型

(Multi-gate Mixture-of-Experts)

 

多门多专家混合模型网络结构如下图所示:

论文笔记:多任务学习在美团推荐中的应用

 

MMoE模型跟OMoE模型唯一的不同之处:从不同task共享Gate层到不同task训练不同的Gate层。此时的Gate不再是共享层,不同task会训练出不同的Gate层。

 

Gate在这里的功能形象地说就是:针对不同的任务挑选出擅长此任务的专家来处理该任务,或者说给擅长处理特定任务的专家更多的话语权。

 

MMoE的实现:

https://github.com/hxyue/hub-recsys/blob/master/Deep/MMOE/mmoe.py

 

论文笔记:多任务学习在美团推荐中的应用

 

经典模型二:PLE模型

 

该算法来自[腾讯] RecSys2020最佳长论文-多任务学习模型PLE

 

《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》

 

该多任务学习算法的场景是腾讯视频app中的视频推荐,下图表示整个腾讯视频的推荐算法框架:

论文笔记:多任务学习在美团推荐中的应用

 

每个视频的最终得分计算

(Final score):

论文笔记:多任务学习在美团推荐中的应用

 

文中特别关注了其中的两个指标:VTR和VCR

 

VTR: View Through Rate(binary)是否看完整个视频,是一个二分类问题

 

VCR: View Completion Ratio (regression) 看了整个视频总长的比率,是一个回归问题

 

文中指出这两个指标的关系复杂,而对于关系比较复杂的两个任务,在传统的多目标推荐算法会存在的问题:

 

Seesaw phenomenon(跷跷板现象):某些任务表现的提高都要以降低其他任务的表现作为代价。

 

VCR任务预测准确率的提高,往往会以VTR任务预测准确率的降低为代价,反过来亦然。跷跷板现象具体的表现如下图所示:其中,表现最好的是我们接下来要介绍的PLE模型。

论文笔记:多任务学习在美团推荐中的应用

 

上图是使用传统模型的评价结果,

两个任务分别为VCR,VTR(关系复杂的两个任务)

使用到的传统模型如下:

论文笔记:多任务学习在美团推荐中的应用

 

论文笔记:多任务学习在美团推荐中的应用

 

所用的模型中,除了我们即将介绍的PLE模型外,我们前面介绍的MMOE模型在处理两个存在复杂关系的任务时,表现是最好的。

 

而PLE模型正是在MMOE模型的基础上改进而来的。作者先提出MMOE模型所存在的问题:然后再改进着两个问题,提出了PLE模型。问题如下:

 

问题1:

MMOE模型中,专家层是所有任务共享的,由于所有专家层是共享的,无法很好地获取到不同任务之间地复杂关系。

问题2:

不同地专家之间并没有很好的交互,进一步限制了多任务联合优化的性能,MMoE只有不同专家输出向量的简单叠加。

作者为解决问题1提出的模型:

Customized Gate Control(CGC)

论文笔记:多任务学习在美团推荐中的应用

 

论文笔记:多任务学习在美团推荐中的应用

 

CGC模型的专家中,既有共享的专家,又有每个任务独有的,能够更好地处理不同任务之间地关系。

 

具体的计算过程如上图所示。

作者为了解决问题二,于是又在CGC的基础上提出的模型:PLE模型,下图是PLE模型的完整结构。

论文笔记:多任务学习在美团推荐中的应用

 

PLE模型与上面CGC模型的区别在于:

Multi-Level Extraction Networks,即PLE模型存在不同专家之间的多层交互。

 

这样做的好处是:1:使得专家层更好地进行交流2:Extraction Networks除了针对特定任务的专家设置门外,还为共享的专家设置门控网络,将这一层所有专家的知识进行整合。

 

因此,PLE中不同任务的参数并没有像CGC那样在早期层完全分离,而是在多层中逐步分离。

 

上面是对多层感知机中经典的多任务学习模型做了介绍,下面开始解读美团在多任务领域的最新应用论文:《Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising》,将从一下几个方面对此论文进行解读:

 

1:论文的应用背景。

2:前面多任务学习算法的缺点和该论文尝试解决的问题。

3:论文提出的新的多任务学习算法。

4:实验结果。

 

1、论文的应用背景

该论文是解决美团的信用卡业务中多任务的预测问题,对于信用卡业务而言,有以下任务需要我们去预测:

 

曝光(Impression):意味着广告被展示给了特定的用户,这些用户是根据一些排序指标选中的,比如CTR、CVR等等。

 

点击(Click):用户如果对这个广告内容感兴趣的话,他会点击这个广告,点击后,就会进入申请表格页。

 

申请(Application):进入申请表格页后用户可以填写申请表格,并且点击申请按钮来申请一张信用卡。

 

核卡(Approval):也称授信,意味着用户信用良好,通过申请并被授予了一定的信用卡额度。在我们的系统中,这在多数情况下也是一个系统实时判断的过程。

 

激活(Activation):用户在授信并且收到邮寄的信用卡之后,可以激活信用卡并使用。是否激活的标签通常比较难获得,因为信用卡邮寄需要一定的时间,而且用户主动去激活也需要一定的表现期,所以这里类别不平衡更为严重。在这里,我们通常看用户是否会在核卡后14天内激活信用卡。

 

需要注意的是:以上的转化步骤有序列依赖,这意味着只有前一个步骤发生了,后一个步骤才可能发生。基于这个约束,用户只可能有5个不同的转化阶段如下图所示:

论文笔记:多任务学习在美团推荐中的应用

 

由上图可以看出,前面的任务跟后面的任务是强关联的。在我们的信用卡业务中,除了被动的曝光步骤外,我们建模了四个任务。

 

其中核卡、激活是主要任务,点击、申请是辅助任务。这是因为如果用户只完成了点击和申请步骤,而核卡步骤还没有完成,那么就不是一次有效转化,就会造成资源的浪费(例如计算和流量资源)。

 

因此,我们主要关注最后两个端到端的转化任务,即曝光->核卡和曝光->激活。

 

2、前面多任务学习算法的缺点和该论文尝试解决的问题

 

在前面所展示的美团信用卡的应用背景下,若使用前面提过的多任务学习模型,会有一下问题:

 

A:后两个任务的正样本数较少,且激活是延迟反馈的

 

B:前面的多任务学习模型中,tower部分,每个任务直接是没有交流的,而恰恰,tower部分的向量包含着更加丰富,更加有价值的信息。

 

C:前面的多任务学习模型虽然各个任务之间在shared层有交互,但是,并没有把多任务当成一个动作序列,没有考虑到前面动作对后面动作的影响。

基于此,该轮文针对序列依赖任务,提出了一种自适应信息迁移多任务(Adaptive Information Transfer Multi-task,AITM)框架,该框架通过自适应信息迁移(AIT)模块对用户多步转化之间的序列依赖进行建模,同时也加强了不同任务tower之间的信息交互。

 

AIT模块可以自适应地学习在不同的转化阶段需要迁移什么和迁移多少信息。此外,通过在损失函数中加入行为期望校准器,AITM框架可以更准确地识别端到端转化。

 

3、论文提出的新的多任务学习算法:AITM算法

 

下图是AITM算法的简单框架:

论文笔记:多任务学习在美团推荐中的应用

 

首先,输入特征经过任务共享的Embedding分别输出到多个Tower网络中。

 

通过共享Embedding模块,一方面可以用前边任务的丰富的正样本信息来学习Embedding表示,从而缓解后续任务的类别不平衡问题,另一方面可以减少模型参数。

 

Tower网络可以根据自己需要定制,这里我们只使用了简单的MLP,我们也可以使用其他经典的神经网络模块。这里的shared层和tower层其实跟我们前面学习的多任务学习模型并没有区别:

 

该模型的改进关键是在AIT模块和Info模块:

AIT模块利用当前任务Tower输出的向量以及前一个任务传来的信息来学习任务间如何融合信息。其实就是在对序列依赖进行建模,同时也加强了不同任务tower之间的信息交互。

 

AIT模块计算如下:

论文笔记:多任务学习在美团推荐中的应用

 

上面公式,第一个公式其实是在利用了特殊设计的注意力机制AIT来自动为迁移信息 和原始信息 来分配权重(注意力机制的设计下面在细究)。

 

而迁移的信息是通过函数来学习的,这里可以是一个简单的全连接层,用来学习两个相邻的任务间应该迁移什么信息。

 

这一步对应的是上图中的info模块,在上面公式中使用g函数表示。而该函数的输入是前一个任务的AIT模块的输出。

 

具体地,AIT模块中的注意力机制如下设计:(AIT来自动为迁移信息 和原始信息 来分配权重):

论文笔记:多任务学习在美团推荐中的应用

 

这里类似于self-attention的注意力机制。这里的、、函数表示的都是简单的多层神经网络(当然你也可以重新设计这部分)。

 

而公式中的 表示的是 或者,有且仅有这两个输入值。类似于self-attention机制,向量和 向量经过、、函数之后,分别得到类似于self-attention模型中的Value,Query,Key。然后通过内积和softmax函数计算两个不同Value(, )的权重。

 

也就是在自动地给迁移信息和原始信息来分配权重,最后两个向量的加权之和就是我们AIT模块最终输出的向量。

 

而对于第一个任务来说,由于没有前一个任务的信息输入,则。这便是整个AIT模块的学习过程,其中很大程度上借鉴了self-attention机制的思想。

 

最后,我们通过在损失函数中施加校准器来约束概率的输出尽量满足序列依赖。损失函数是交叉熵+校准器约束,其中定义了校准器约束强度:

论文笔记:多任务学习在美团推荐中的应用

 

后面一项是校准器:

论文笔记:多任务学习在美团推荐中的应用

 

加入该项约束的目的是我们的多任务是连续不可断的,如果前面的任务预测结果是:不发生,那么后面的所有任务都不能发生,加入该约束使得模型更符合我们的实际业务。

 

4、实验结果

 

论文中使用两个数据集进行了离线实验和在线实验。工业数据集是美团联名卡广告曝光的所有样本,我们取了一段时间的样本。

 

该数据集有4个任务,分别是点击、申请、核卡、激活。在我们的业务中,我们只关注核卡和激活的转化指标,这两步转化才是有效转化。

 

公开数据集是使用的阿里的点击转化预估数据集,这个数据集有点击、购买两个任务。最终的实验结果都是正向的.

 

具体可以去阅读论文:

https://arxiv.org/abs/2105.08489

该论文提出了一种自适应信息迁移多任务(AITM)框架来建模用户多步转化之间的序列依赖关系。

 

本文提出的自适应信息迁移(AIT)模块配合行为期望校准器,可以学习在不同的转化阶段需要迁移什么和迁移多少信息,以提高序列依赖多任务学习的表现。

 

离线和在线实验结果表明,与最新的基线模型相比该框架有显著的提升。

 

该框架被部署在美团App中,利用它来为对美团联名卡有高转化率的用户实时展示联名卡广告。

 

多任务学习模型应用广泛,我们将持续关注它的发展。

posted @ 2022-01-12 11:37  NLP论文解读  阅读(1053)  评论(0编辑  收藏  举报