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

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 向量,从而解决多场景特征对齐/多任务间相互依赖的问题 。


推荐阅读