多任务基础知识学习

ops/2024/11/27 11:41:40/

一、单任务与多任务的区别

学习链接:https://zhuanlan.zhihu.com/p/27421983  多任务学习:单模型解决多个问题_什么是单任务模型-CSDN博客

SingleTask: Train one model for each task, respectively

多任务学习(Multi-Task Leamning,MTL)是机器学习只领域一个重要的研究方向,它旨在利用同一个模型同时解决多个相关的任务。与传统的单任务学习(Simngle-Task Learning,STL)相比,MTL能够利用不同任务之间的相关性,从而提高整体学习效果,降低过拟合风,险,增强模型泛化能力。

单任务:STL(SingleTask Learning)   多任务:MTL(Multitask Learning)

单任务的限制:

  1. 很多问题不能分解为一个一个独立的子问题
  2. 把现实问题当做一个个独立的单任务处理,忽略了问题之间所富含的丰富的关联信息
  3. 相关联的多任务学习比单任务学习能去的更好的泛化

单任务与多任务图示对比:

多任务定义及基础知识:

定义:基于共享表示(shared representation),把多个相关的任务放在一起学习的一种机器学习方法。【多任务学习是指利用同一个模型同时解决多个相关的任务,通过任务之间的共享表征和参数,实现知识的迁移和信息的交互,从而提高整体的学习效果。】

共享表示shared representation目的是为了提高泛化(improving generalization)

  • 基于参数的共享(Parameter based):比如基于神经网络的MTL,高斯处理过程。
  • 基于约束的共享(regularization based):比如均值,联合特征(Joint feature)学习(创建一个常见的特征集合)。

优势:多任务学习与单任务学习相比,有哪些优势_多任务学习的优势-CSDN博客

共享表征、信息交互、降低过拟合、参数高效利用、效率提升、加速学习、防止过拟合、实用性

多任务学习内容结构划分:

  1. 多任务学习(Multitask learning)是迁移学习算法的一种。
  2. 多标签/目标学习(Multilabel learning)是多任务学习中的一种,建模多个label之间的相关性,同时对多个label进行建模,多个类别之间共享相同的数据/特征。【我们现在的研究内容形式是属于这个小类吗】不同目标输入相同的feature进行联合训练,是迁移学习的一种。
  3. 多类别学习(Multiclass learning)是多标签学习任务中的一种,对多个相互独立的类别(classes)进行建模。

 二、Shared-Bottom vs OMOE

论文地址:Adaptive Mixtures of Local Experts(Neural Computation 1991)

学习链接:推荐业务多目标建模算法介绍:MMOE、OMOE、Shared-Bottom_mmoe和moe-CSDN博客

Shared-Bottom的思路就是多个目标底层共用一套共享layer,在这之上基于不同的目标构建不同的Tower。这样的好处就是底层的layer复用,减少计算量,同时也可以防止过拟合的情况出现。

OMOE指的是one gate MOE, MMOE指的是multi gate MOE,从字面意思理解,MMOE一定是比OMOE更全面的。

MOE类型的算法介绍了,MOE是Mixture of experts的缩写,也就是说MOE结构的算法底层是有多个experts组成,这些experts网络是彼此独立的,最终的输出结果其实是目标在多个experts上的概率分布结果。MOE可以通过一个Gate去控制,Gate network也叫门控网络,可以控制在不同应用场景下每个expert的参与权重。

【可以学习一下对结果的分析】

论目标Correlation是什么数值,MOE结构的算法的loss永远低于Shared-Bottom类型的,显然MOE结构更优.而OMOE在目标相关性最高的情况下(Correlation=1)和MMOE的效果相似,其它情况下不如MMOE。也就是说,目标相关性越低MMOE较其它二者的优势越明显,相关性非常高的情况下MMOE会近似于OMOE。【通过我们的实验结果可以发现,几个任务之间的相关性比较高】

另外,解释下相关性Correlation的概念,可以理解为业务正相关性。比如点赞和踩,这两个行为肯定是相关性很低的,如果一个模型既要支持点赞率提升,也支持踩提升,一定要选MMOE。比如收藏和点赞,这两个目标就是相关性非常高的目标。

三、MMoE

论文链接: Modeling Task Relationships in Multi-task Learning with Multi-Gate Mixture-of-Experts (KDD 2018)

学习链接:

MMOE通过在多任务学习中引入Mixture-of-Experts(MoE)层,显式的学习了各个子任务之间关系,同时利用门控网络以优化每个任务。

MMoE的核心思想是集成学习,整个思想范畴在随机森林里面,不过表达方式用了深层Net,这样每个专家可以专注一个方向去学习表达力门控网络来计算每个专家网络跟目标匹配的权重

实验表明,当任务相关性较低时,MMoE比基线方法具有更好的效果,并且会带来额外的可训练性好处,具体取决于训练数据和模型初始化中不同程度的随机性。

但是在实际应用中,多任务学习模型并不总是能在所有任务上都胜过相应的单任务模型,许多基于DNN的多任务学习模型对数据分布差异和任务之间的关系之类的因素都很敏感,任务差异带来的内在冲突实际上会损害至少一部分任务的预测,尤其是在所有任务之间广泛共享模型参数的时候。

MMOE的每个Gate网络都可以根据不同任务来选择专家网络的子集,所以即使两个任务并不是十分相关,那么经过 Gate 后也可以得到不同的权重系数,此时,MMOE 可以充分利用部分 expert 网络的信息,近似于单个任务;而如果两个任务相关性高,那么Gate的权重分布相差会不大会类似于一般的多任务学习

四、PLE

论文链接:  (RecSys 2020 best paper)Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations

学习链接:【阅读笔记】多任务学习之PLE(含代码实现)_ple模型-CSDN博客

在MMoE的基础上改进,提出了全新的多任务学习框架Progressive Layered Extraction(PLE),通过分离Shared Experts和Task-Specific Experts逐层提取深层信息,有利于解决多任务学习中的负迁移问题和跷跷板问题。

专家权重分布【课题也会涉及权重的分析,可以借鉴图的画法】

总结

提出了一种新的MTL模型Progressive Layered Extraction(PLE),该模型将任务共享和任务特定参数显式分离,并引入了一种创新的递进路由方式(即多层提取结构),避免了负迁移和跷跷板现象,实现了更高效的信息共享和联合表示学习。在工业数据集和公共基准数据集上的离线和在线实验结果表明,与SOTA MTL模型相比,PLE模型有显著和一致的改进。
创新点

  1.  在MMoE的基础上,将所有Shared Experts显示分离,分为Shared Experts和Task-Specific Experts,减少公共知识和特定任务知识之间的的干扰,称为Customized Gate  Control(CGC)。
  2.  引入多层专家和门控网络,采用分层渐进路由机制**(分层萃取)**,低层专家提取深层信息,越往高层专家逐渐分离任务特定参数。
  3.  以往的研究都没有明确地解决表示学习和路由的联合优化问题,特别是以不可分割的联合方式进行联合优化,而本研究首次在联合学习和路由的总体框架上提出了一种新的渐进分离方式。

思考

  1.  PLE可以有效地解决多任务学习中的跷跷板问题,无论是在推荐系统或是回归预测等领域都有突出的表现,具有非常强的适用性。
  2.  由于PLE将Expert分成两部分,因此对于相关性不强的任务间的信息共享有更出色的效果。
  3.  从模型结构上来看,PLE在每个模块中都引入了多个expert,并且采用多层提取的模式,导致模型结构复杂度大大提升,是否是因为模型参数的增加导致性能的提升是一个值得讨论的问题。
  4.  对于过于稀疏的目标,拥有独享专家会增加过拟合的风险。

五、AITM

侧重解决的任务间存在先后顺序问题的多任务推荐问题。

AITM的框架则考虑到前一任务对后一任务的影响,通过attention机制对前一任务的信息与当前信息进行加权,并输入给当前任务tower层,完成对当前任务的预测。

论文链接:(KDD 2021)

Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising 学习链接:https://zhuanlan.zhihu.com/p/707501843

论文要解决的多任务场景具有一个特点:任务之间是具有依赖关系的,即先有点击行为才有领取行为。工业界有两种通用的办法去解决多任务推荐模型。将这些主要研究分为两大类:

(1)控制多任务模型底部的专家模块如何在任务间参数共享1,2,3,顶部的多塔模块分别处理每个任务

(2)在不同任务的输出层中迁移概率我们称之为*概率迁移(Probability-Transfer)*模式。概率迁移模式只能通过标量乘积传递简单的概率信息,而忽略了向量空间中更丰富、更有用的表示,导致了信息的损失。如果其中任何一个概率没有被准确预测,多个任务将会受到影响。

针对序列依赖任务,提出了一种自适应信息迁移多任务(Adaptive Information Transfer Multi-task,AITM)框架,该框架通过自适应信息迁移(AIT)模块对用户多步转化之间的序列依赖进行建模AIT模块可以自适应地学习在不同的转化阶段需要迁移什么和迁移多少信息。此外,通过在损失函数中加入行为期望校准器,AITM框架可以更准确地识别端到端转化。该框架被部署在美团App中,利用它来为对美团联名卡有高转化率的用户实时展示联名卡广告。

上图给出了一个多任务排序系统示意图。在我们的信用卡业务中,除了被动的曝光步骤外,我们建模了四个任务。其中核卡、激活是主要任务,点击、申请是辅助任务。这是因为如果用户只完成了点击和申请步骤,而核卡步骤还没有完成,那么就不是一次有效转化,就会造成资源的浪费(例如计算和流量资源)。因此,我们主要关注最后两个端到端的转化任务,即曝光>核卡和曝光>激活。由于后两个任务的正样本数较少,且激活是延迟反馈的,而前两个辅助任务的正样本数较多,因此可以通过前两个任务来缓解后两个任务的类别不平衡问题【侧重解决的点不一样】

优化是不是可以考虑增加注意力机制,优化权重分配

 六、MetaHeac

论文链接:  (KDD 2021)Learning to Expand Audience via Meta Hybrid Experts and Critics for Recommendation and Advertising

学习链接:推荐系统论文精读——MetaHeac-CSDN博客       百度安全验证

目的:识别并拓展潜在受众

应用场景:公告/营销活动 推广

七、MoE

混合专家模型

学习链接:https://zhuanlan.zhihu.com/p/680190127

混合专家模型(MoE)是一种稀疏门控制

的深度学习模型,它主要由一组专家模型和一个门控模型组成。MoE的基本理念是将输入数据根据任务类型分割成多个区域,并将每个区域的数据分配一个或多个专家模型。每个专家模型可以专注于处理输入这部分数据,从而提高模型的整体性能。

MoE架构的基本原理非常简单明了,它主要包括两个核心组件:GateNet和Experts。GateNet的作用在于判定输入样本应该由哪个专家模型接管处理。而Experts则构成了一组相对独立的专家模型,每个专家负责处理特定的输入子空间。

八、AutoMTL


http://www.ppmy.cn/ops/137070.html

相关文章

微信小程序中会议列表页面的前后端实现

题外话:想通过集成腾讯IM来解决即时聊天的问题,如果含语音视频,腾讯组件一年5万起步,贵了!后面我们改为自己实现这个功能,这里只是个总结而已。 图文会诊需求 首先是个图文列表界面 同个界面可以查看具体…

java框架Netty网络编程——问鼎篇

Netty进阶 01 初识 Netty:为什么 Netty 这么流行? 粘包现象 案例 服务端代码 public static void main(String[] args) {NioEventLoopGroup bossGroupnew NioEventLoopGroup(1);NioEventLoopGroup workerGroupnew NioEventLoopGroup(2);try {ServerBoo…

对比C++,Rust在内存安全上做的努力

简介 近年来,越来越多的组织表示,如果新项目在技术选型时需要使用系统级开发语言,那么不要选择使用C/C这种内存不安全的系统语言,推荐使用内存安全的Rust作为替代。 谷歌也声称,Android 的安全漏洞,从 20…

网络研讨会——如何使用Figma、Canva或Sketch设计Delphi移动应用程序

2024年11月30日星期六 - 北京午夜12点 如何使用Figma、Canva或Sketch设计Delphi移动应用程序 专业设计应用程序Figma、Sketch和Canva有大量优秀的应用程序设计等着你去实现。我们看看有什么可用的,并使用一些最好的设计来创建应用程序。。。 立即报名免费在线研讨会…

Redis(非关系型数据库)的作用 详细解读

edis(Remote Dictionary Server)是一个开源的、高性能的、基于内存的数据结构存储系统。它具有极高的读写性能,并且能够支持多种数据结构的存储。Redis 最初的设计目标是作为一个缓存解决方案,但随着其功能的不断扩展,…

VMware安装CentOS 9 及mysql的安装

VMware安装CentOS9 Linux下安装Mysql windows ide 连接Linux mysql数据库报错 DBMS: MySQL (no ver.) Case sensitivity: plainmixed, delimitedexactConnection timed out: connect. No appropriate protocol (protocol is disabled or cipher suites are inappropriate).解…

uniapp vue2项目迁移vue3项目

uniapp vue2项目迁移vue3项目,必须适配的部分 一、main.js 创建应用实例 // 之前 - Vue 2 import Vue from vue import App from ./App Vue.config.productionTip false // vue3 不再需要 App.mpType app // vue3 不再需要 const app new Vue({ ...App }) …

MATLAB支持的距离度量

距离度量是用于量化两个点或样本之间差异的一种方法。在不同的领域和应用场景中,距离度量的选择可能会有所不同。 欧几里得距离(Euclidean Distance):这是最直观的距离定义,适用于n维空间中的两点。对于二维空间中的点…