您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

多任务多场景问题解决方案与实践

时间:2023-11-08 14:19:17  来源:微信公众号  作者:转转技术

1 多任务多场景问题概述

1.1 背景介绍

面向C端用户提供服务的应用,特别是业务范围广、规模大的,普遍存在多任务多场景问题,多任务,也称多目标,是综合衡量用户体验的多个指标,如搜推算法场景中常见的点击率、转化率、收藏率等;多场景,用户可以在多个场景内表达不同兴趣,产生多种不同的行为模式,如激发兴趣的推荐Feed流场景,满足需求的搜索场景等。多任务多场景给算法系统的优化带来了诸多挑战。

多场景:不同场景的用户行为以及物料供给可能存在差异,如果每个场景都训练一个单独的模型,成本会比较高,且后续迭代效率堪忧,同时会暴露信息茧房的问题,多个场景的数据信息很难互通;而如果考虑多个场景统一建模,又可能因为多个场景的用户行为以及流量分布等无法对齐,导致统一模型无法对多个场景数据学习充分,进而造成场景之间的跷跷板现象(即某场景因流量或样本的优势,主导模型效果,导致其他场景效果受影响),同样的问题也可能发生在多任务之间。

多任务:不同任务/目标之间同样存在样本空间的差异,比如CTR和CVR,两个目标之间存在依赖性,而且通常CVR任务的稀疏性要强于CTR任务。类似的数据不平衡问题,容易导致排序模型在训练与线上推理阶段的样本空间不一致问题,从而影响模型效果。

1.2 多任务问题解决方案

从 Shared-Bottom 到 MMoE[1],再到 PLE[2] 算法,是解决多任务/目标问题的重要演进路径之一。

Shared-Bottom 是多个目标共享底层网络,每个任务在共享网络之上构建独立的网络结构,其优点是浅层参数共享,能够起到任务之间的补充学习,对有相关性的多目标学习较友好,当多个目标之间没有相关性时,可能会影响模型结果。MoE[3] 为解决这个问题,提出了利用一组专家网络和一个门控网络对共享网络的输出加权组合的思路,一定程度上缓解了不相关任务联合学习效果不佳的问题,MMoE 则是在 MoE的基础上,丰富了门控网络的应用,不同任务对专家网络的输出进行不同的权重组合。共享网络+独立网络的研究思路目前已经演进出了 PLE 这样复杂的网络结构(如下图所示),一方面利用共享网络提取多任务间的共性,另一方面利用独立网络捕捉任务间的各向异性,在实践中取得了不错的效果。

多任务多场景问题解决方案与实践图片

多任务的另外一条支线是以阿里的 ESMM[4] 算法为代表的,适用于存在条件关系的多个目标之间的学习算法,比如电商场景经典的点击率和转化率的多目标学习,该算法同时解决了训练和线上推理阶段样本空间不一致的问题,论文提及在实践应用中取得了可观的准确率提升。

多任务多场景问题解决方案与实践图片

1.3 多场景问题解决方案

LHUC(Learning Hidden Unit Contributions)[5] 是最初应用在语音识别领域,后又迁移到搜推等算法场景的模型。以推荐系统为例,精排阶段的模型多采用深度神经网络,根据输入特征,通过隐向量表达个性化,然而在多场景的情况下,尤其是当特征工程刻画不够丰富时,不同场景的不同用户,有可能出现相同/相似的向量表示,从而导致模型的输出相同/相近,带来一定程度的模型坍塌。借鉴语音识别领域,为每个 speaker 单独调整 dense 参数可以带来效果上的提升,推荐系统可以为不同场景和用户构建个性化网络,并以动态权重的形式作用于模型,从而提升模型的表达能力。

多任务多场景问题解决方案与实践图片

基于动态权重的思路同样衍生出了不少经典算法结构,如快手的PE.NET[6],阿里的M2M[7]、AdaSparse[8]、STAR[9] 等。

解决多任务多场景问题的算法模型多种多样,但大多数都可以归结为不同的 Gating 技术的应用方式,利用门控网络进行信息的筛选或重组。

2 业界解决方案简述

多任务多场景问题联合建模的业界案例也有不少,本节节选部分代表算法进行简述。

快手 PEPNET(Parameter and Embedding Personalized Network)

多任务多场景问题解决方案与实践图片

PEPNet 借助 GateNU 的门控网络,表达个性化信息,并分别作用于 EPNet 和 PPNet,EPNet 和 PPNet 分别为表征个性化网络和参数个性化网络,分别利用门控网络处理后的场景信息调整底层 embedding ,得到结合场景/任务的 embedding 向量,从而解决多场景特征对齐/多任务间相互依赖的问题。

百度MTMS(Multi-Task and Multi-Scene)[10]

快手的 PEPNet,其网络结构采用共享底层的思路,而百度的MTMS则属于拆分多塔的思路。

多任务多场景问题解决方案与实践图片

MTMS 基于 ESMM 的思路,在 embedding 更新,以及模型训练方式上做了改进,损失函数也有所不同。

底部 embedding 层,ESMM 采用多任务共享 embedding 的方式,而 MTMS 为不同场景不同任务构建了独立的 embedding;

模型训练阶段,与 ESMM 直接端到端的训练不同,MTMS 采用两阶段训练方式,第一阶段为学习表示阶段,多个场景、多个任务构造各自独立的 embedding,分别训练,直到收敛;第二阶段为 fine-tune 阶段,将第一阶段得到的多个任务的 embedding 进行拼接,上层叠加 MLP(更新时只更新上层 MLP 的参数)学习不同场景的不同目标;

损失函数,与 ESMM 将CVR作为中间变量不同,MTMS 相对传统,直接建模 CTR 和 CVR,同时辅助 CTCVR 损失,具体如下:

美团HiNet(Hierarchical Information Extration Network)[11]

美团针对多场景多任务的推荐问题,在 MMoE 的基础上,采用分层抽取信息的思路,为模型增加跨场景传递信息的能力,同时保留场景和任务的特定特征。

多任务多场景问题解决方案与实践图片

HiNet 主要包含以下两个模块:

场景抽取模块,用于获取场景的表征,具体又包括了场景共享专家网络,场景独有专家网络,以及场景敏感的注意力网络(SAN),分别刻画场景共享信息,场景独有信息,以及场景间的关联信息;

任务抽取模块,复用 MMoE 的网络结构,多个专家网络通过门控网络重新组合成不同的 embedding,输入不同的任务预测网络。

3 转转的多业务多场景问题及解决实践

3.1 问题与解决方案

转转自大力发展有保障的官方验服务以来,从手机3C类产品,向其他数码、电脑办公,以及家电等多品类渗透,卖场的服务种类随之多元化,同时以搜索、推荐为基本能力,发散出组货、帮选、尖货等多种类型的业务场景,除了多场景、多任务问题之外,还伴随着多业务的问题,即不同的业务有不同的运营方式,对应不同的物料库,且不同种类的物料需要关注的重点也不同。下图是节选的转转多个不同场景(对应存在多种业务,多个目标)的展示图:

多任务多场景问题解决方案与实践图片

 

本节介绍多场景多任务,叠加多业务问题下,转转搜索系统的解决方案。

同 MTMS 算法思路相同,转转的搜索系统,对多任务/目标问题(主要包括 CTR 和 CVR)的求解也是传统的单独直接建模的思路。但是对多场景问题的求解,跟 MTMS 构建单独 embedding,拆分多个独立塔的方式有所差异,考虑到转转的多场景之间存在明显的数据不平衡问题,可能会导致小场景的塔在 fine-tune阶段无法训练充分。此外,除了多场景,转转还面临多业务的问题,不同的业务背后对应不同特性的物料,若底层采用统一预训练好的 embedding 表示,不同物料的独有特征可能无法充分表达。

针对转转的多场景多业务问题,采用 EPNET + 特征级动态权重的网络结构刻画场景信息,网络结构如下图所示:

多任务多场景问题解决方案与实践图片

整个模型结构可以分成两大模块:表征生成模块与目标预测模块,与百度 MTMS 的两阶段学习方式相仿,却有本质上的区别,本文的模型是端到端学习的,其中表征生成部分是多业务多场景,以及物料、用户和 query 信息的集中表达;目标预测部分,即利用生成的表征做 ctr(或其他任务)的预测。

表征生成部分主要包括以下工作:

(1)场景信息通过场景对应的商品所在类目集合描述;

(2)用户、query与物料(包含常规特征与独有特征)特征均包含在 SparseFeatures 与 DenseFeatures中;

(3)DomAInNet 对所有特征做处理,输出特征权重,作用在除场景特征外的其他特征上,最终集成为全局的向量表征。

上层的任务预测模块复用经典的DCN(Deep & Cross Network)[12]结构。

该模型的上线,在转转搜索场景带来了全品类点击率6%+,以及支付转化率2%+的提升,尤其是流量相对较小的品类上,相对涨幅超过了全品类,由此可见该模型对多业务问题的解决效果。

3.2 未来规划

多业务多场景模型在转转搜索场的成功实践,为后续在其他目标(如CVR)、其他算法场(如推荐系统)上的推广应用奠定了信心与基础,这也是未来工作的一部分。

与此同时需要注意到,该模型在兼容新增场景或物料库新增独有特征时并不友好,需要解决冷启动的问题,这可能成为限制模型全站推广应用的瓶颈,后续也会继续沿着该思路进行深耕和优化。

关于作者

李光明,算法工程师,参与转转搜索算法、推荐算法、用户画像等系统的算法体系建设,在GNN、小样本学习、对比学习、NLP等相关领域有实践经验,微信号:gmlldgm,欢迎建设性交流。

参考资料

[1]MMoE: Modeling_Task_Relationships_in_Multi-task_Learning_with_Multi-gate_Mixture-of-Experts

[2]PLE: Progressive_Layered_Extraction_(PLE):A_Novel_Multi-task_Learning(MTL)_Model_for_Personalized_Recommendations

[3]MoE: Adaptive_Mixtures_of_Local_Experts

[4]ESMM: Entire_Space_Multi-Task_Model:_An_Effective_Approach_for_Estimating_Post-Click_Conversion_Rate

[5]LHUC: Learning_Hidden_Unit_Contribution_for_Unsupervised_Speaker_Adaptation_of_Neural_Network_Acoustic_Models

[6]PEPNet: Parameter_and_Embedding_Personalized_Network_for_Infusing_with_Personalized_Prior_Information

[7]M2M: A_Multi-Scenario_Multi-Task_Meta_Learning_Approach_for_Advertiser_Modeling

[8]AdaSparse: Learning_Adaptively_Sparse_Structures_for_Multi-Domain_Click-Through_Rate_Prediction

[9]STAR: One_Model_to_Serve_All:_Star_Topology_Adaptive_Recommender_for_Multi-Domain_CTR_Prediction

[10]MTMS: Multi-Task_and_Multi-Scene_Unified_Ranking_Model_for_Online_Advertising

[11]HiNet: Novel_Multi-Scenario_&_Multi-Task_Learning_with_Hierarchical_Information_Extration

[12]DCN: Deep_&_Cross_Network_for_Ad_Click_Predictions



Tags:多任务   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
多任务多场景问题解决方案与实践
1 多任务多场景问题概述1.1 背景介绍面向C端用户提供服务的应用,特别是业务范围广、规模大的,普遍存在多任务多场景问题,多任务,也称多目标,是综合衡量用户体验的多个指标,如搜推...【详细内容】
2023-11-08  Search: 多任务  点击:(227)  评论:(0)  加入收藏
通用机器人里程碑?谷歌展示全球首个多任务AI智能体 已学会套圈、搭积木、抓水果……
《科创板日报》6月22日讯(编辑 宋子乔) 人工智能和机器人,总是不可避免地产生交集:前有人形机器人Optimus在特斯拉 AI日横空出世,后有OpenAI投资挪威人形机器人公司1X。如今,谷歌...【详细内容】
2023-06-22  Search: 多任务  点击:(152)  评论:(0)  加入收藏
300行代码实现一个多任务OS
本期主角:cola_os,它是一个300多行代码实现的多任务管理的OS,在很多MCU开发中,功能很简单,实时性要求不强,任务多了管理不当又很乱。如果使用RTOS显得太浪费,这时候可以尝试使用使...【详细内容】
2022-09-25  Search: 多任务  点击:(374)  评论:(0)  加入收藏
Google 多任务学习框架 MMoE
基于神经网络的多任务学习已经过成功应用内许多现实应用中,比如说之前我们介绍的阿里巴巴基于多任务联合学习的 ESMM 算法,其利用多任务学习解决了 CVR 中样本选择偏差和样本...【详细内容】
2020-06-16  Search: 多任务  点击:(967)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条