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

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 参数也可以拿到收益的现象,推荐系统可以为不同场景、用户构建个性化网络,并以动态权重的形式作用于模型,从而提升模型的表达能力。

基于动态权重的思路同样衍生出了不少经典算法结构,如快手的PEPNet[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,分别训练,直到 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)、其他算法场(如推荐系统)上的推广应用奠定了信心与基础,这也是未来工作的一部分。

与此同时需要注意到,该模型在兼容新增场景或物料库新增独有特征时并不友好,模型需要冷启动训练,这也可能成为限制模型全站推广应用的瓶颈,后续也会继续沿着该思路深耕,新场景可以进一步分成新场景已有物料与新场景新物料的情况,前者可以做到兼容,而新物料(独有特征)问题会成为重点与难点。

参考资料

[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

> 转转研发中心及业界小伙伴们的技术学习交流平台,定期分享一线的实战经验及业界前沿的技术话题。

> 关注公众号「转转技术」(综合性)、「大转转FE」(专注于FE)、「转转QA」(专注于QA),更多干货实践,欢迎交流分享~

相关推荐
羊小猪~~3 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
软工菜鸡4 小时前
预训练语言模型BERT——PaddleNLP中的预训练模型
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·bert
哔哩哔哩技术5 小时前
B站S赛直播中的关键事件识别与应用
深度学习
deephub5 小时前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
___Dream5 小时前
【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习
人工智能·深度学习·机器学习·transformer·人机交互
极客代码5 小时前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
王哈哈^_^6 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
是瑶瑶子啦7 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
wangyue48 小时前
c# 深度模型入门
深度学习
xmst8 小时前
短视频如何引流?抖音小红书视频号的引流策略
搜索引擎