赞
踩
1 多任务多目标学习
多任务(Multi Task Learning)是深度学习时代非常普遍的建模方式。在NLP、CV、CTR诸多领域有非常广泛的应用。
多目标(Multi Objective Learning)是MTL中的一种。在业务场景中,经常面临既要又要的多目标问题。而多个目标常常会有冲突。如何使多个目标同时得到提升,是多任务多目标在真实业务场景中存在的意义。如下图,视频推荐任务,既要点击率又要完播率;电商排序,既要点击率又要转化率。如今,CTR预估领域采用多任务多目标是非常主流的建模方式。值得我们深入研究。
首先来厘清一些名词概念。如下图,解释了Multi-Task 与 Multi-Label等相关概念的关系。
Multi-Task learning:多任务学习建模多个任务之间的关联关系,任务输入可以是不同的feature/sample,如BERT的MLM预训练任务与NSP任务,两个任务先后训练,输入是不同的feature和sample。这是Multi-Input & Multi-Output (MIMO) 的类型,常用的训练模式是pre-train+finetuning 和 多任务co-train交替训练。
Multi-Label learning:还有一种是Single-Input & Multi-Output (SIMO) ,就是非常常见的Multi-Label Learning,建模相同feature、相同Sample上多个label之间的关系。也常称之为多目标Multi-Objective。如CV领域中,对同一image,可以同时对semantic classification,depth regression,instance regression等诸多经典任务目标共同学习。CTR领域,对同一输入样本同时预估点击率、转化率多个目标。常用的训练模式是Joint-train的模式,形式化地表达如下:
其中\theta^{sh}是多任务共享参数,\theta^{t}是任务t 的独享参数,Joint-train的总Loss是各个子任务对应Loss的带权求和。本文后面称的多任务多目标学习,默认是这种建模方式。
2 优势&挑战
多目标共同学习的结果,有4种状态,如下示意图。“well done”: 最好的状态,所有share任务实现共同提升。“还不错”:其次的状态,所有任务不降低,至少一个任务提升。如果是主任务 + 辅助任务的搭配,能够实现牺牲辅助任务达到主任务提升的效果,也是well done。“不理想”:跷跷板现象,任务有涨有跌。“无法接受”:负迁移现象,所有任务都不如从前。
多任务多目标学习的优势:有潜力做到“还不错”和“well done”。
多任务多目标学习的挑战:
(1)如何把“无法接受”和“不理想”两个状态往“还不错”和“well done”迁移;
(2)最大限度激发“还不错”和“well done”的效果;
共享参数!1 + 1 > 2 【还不错/well done】
共享参数在效果 + 性能层面带来很多优势。效果层面,多任务的优势通过隐式数据增强达到。多个相关任务共同学习,参数共享,相互借鉴,缓解某些任务的样本稀疏带来的过拟合现象,获得更好的泛化性能。在性能层面,多任务较N个单任务网络参数量总和显著降低,在实时预测场景下MTL模型效率也更高。
共享参数! 1 + 1 < 1 【无法接受/不理想】
多任务多目标为了实现 1+1>2,在任务参数空间上设置了假设,例如:任务参数应该彼此靠近,w.r.t.一些距离度量,共享一个共同的概率先验,或驻留在一个低维子空间或流形。当所有任务都是相关的时候,这些假设可以很好地工作,但是如果在不相关的任务之间发生信息共享,则大概率导致效果下降,出现跷跷板、负迁移现象。
因此,引出了领域研究的核心问题:如何能够利用好“共享参数”,让多个任务和谐共存、相辅相成、相得益彰?
研究上述核心问题,有两个方向,一个是Architectures,一个是Optimization Strategy,如下图所示。
Architectures从网络结构设计方向思考哪些参数共享,在什么位置,如何共享。
Optimization Strategy多目标优化策略从loss、Gradient的视角去思考任务与任务之间的关系。平衡loss体量(Magnitude),调节loss更新速度(velocity),优化Gradient更新方向(direction)。在微观层面缓解梯度冲突,参数撕扯,在宏观层面达到多任务的balance。
1 多任务多目标网络结构设计
Architectures从网络结构设计方向思考哪些参数共享,在什么位置,如何共享。合理的共享网络结构设计对于效果提升有举足轻重的作用。至今,多任务的研究焦点依然在于如何结合任务来设计共享结构。本文主要介绍CTR领域的多任务结构。如上图,较为常见的结构有Share-Bottom【hard】,无需赘述。2018年google提出MMOE,将hard的参数共享变成多个expert,通过门控来控制不同loss对每个expert的影响,2019年google提出SNR
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。