本文是蚂蚁集团和武汉大学共同提出的, 一种面向多场景多任务优化的自动稀疏专家选择方法。论文题目为《Automatic Expert Selection for Multi-Scenario and Multi-Task Search》,它通过简洁有效的架构,实现了样本级细颗粒度的自动网络结构学习,对各种场景结构有较强的普适性。论文已被 SIGIR2022 录用,同时已经在支付宝数金搜索场景上进行了全流量推全,获得了显著的业务效果。
一、业务背景和问题
支付宝数金搜索是财富、保险等多个业务的重要流量入口。其搜索场景入口如下:
图 1:数金搜索场景各个入口和详情页实例。
由于业务种类与目标的丰富性,数金搜索较一般的垂类搜索面临更多的挑战。以基金搜索为例,它包含:
多入口场景:
主搜(即支付宝首页顶端的搜索框,包含小程序, 生活号,理财等内容)
理财 TAB(指支付宝下方第二个 tab 理财的搜索框,又叫垂搜,专注于数金服务,如理财和保险)
多种卡片:不同的搜索词类型会触发不同的搜索卡片,例如:
热门基金:指用户搜索 “基金”,“股票基金” 等品类词时,会展示类似推荐逻辑的 “热门基金” 卡。
基金产品:指搜索精准产品名,或板块词(如新能源,白酒基金等),会展示 “基金产品” 卡。
多维度目标:点击 (PVCTR)、购买转化 (CTCVR),且用户交互行为相对电商更加复杂,决策周期更长。
在单场景上进行分别迭代,带来了巨大的维护成本;同时,各个场景都比较重要但又有较大差异。主搜流量大,用户新,但成交相对稀疏。理财 TAB (指垂搜),流量较小,但成交金额是主搜的 3.96 倍,且用户多为资深用户。有部分用户会同时使用主搜和垂搜,如果用户行为信号不能实现迁移,也较难得到满意的线上效果。因此,在多个场景使用统一模型是十分必要且急迫的。
但是,将所有线上样本进行混合,直接使用 hard embedding sharing 的网络结构带来了比较严重的负迁移问题。经过近一年来从 MMOE, PLE 等方法的应用和研究,并调研了 STAR 等多场景方法, 我们提出了一种新颖的,基于自动专家选择的多场景多任务搜索框架(AESM^2,Automatic Expert Selection for Multi-Scenario and Multi-Task Search 下文简称 AESM)。
AESM 用一个框架,并以相同的视角同时解决多场景和多任务问题,它通过简洁有效的架构,实现样本级细颗粒度的网络结构学习,如下图所示。值得注意,该方法不仅可应用于搜索,还能应用到其他多场景多任务的算法场景。
将 AESM 模型部署在数金搜索的四个子场景中,相对于各个各场景中单独部署的模型取得了显著提升。相对于基线模型,CTR 整体提升 0.10%、 CTCVR 提升 2.51%,成交 GMV 提升 7.21%。详细的数据分析可见后续章节。
二、多场景和多任务学习现状
多任务算法(MTL)和多场景学习(MSL)在学术界和工业界被广泛的研究和应用,通过多任务联合训练提升应用效果,如 ESMM、MMoE、PLE 等。但它们没有直接考虑多场景 + 多任务的情况。且 PLE 的场景 / 任务间的复杂关联,需要通过人工指定网络结构来适配。
多场景学习旨在解决多个相同的任务标签,且空间结构类似的场景。例如 STAR [19] 尝试通过星型拓扑捕获场景相关性,其中包括共享中心参数和场景特定参数,预设了各个场景是扁平的,并无无层级关系。其他研究 [8, 15] 阐述了将多场景问题作为一个多任务学习问题,但这些工作都需要足够的领域知识来设计网络结构。
与 MSL 不同,多任务学习侧重于建模任务间相关性和区别 。例如,CTR 预测和 CVR 预测 [8, 12] 和信用风险预测 & 信用额度设置 [9]。下面是几种常见的解决多任务的方法:
硬参数共享 (hard emb sharing)[1] 是最简单的模型,它通过共享底层学习内在相关性。然而,它们饱受 “跷跷板现象”[20]—— 一项任务的改进往往导致其他一些任务的性能退化。
MMOE 通过 gate 门控机制对各个专家 (experts) 进行组合,但各个专家之间是无交互的,且不具备稀疏性,所有的任务都会使用所有的专家,这使得模型规模变大后,推理性能下降明显。
PLE [20] 采用渐进式路由机制并将 experts 分配给共享和特定的任务,这缓解了推荐系统中的跷跷板现象,但是它需要人工指定所有的网络结构,如哪个专家是独享或共享的,当场景和任务关系复杂时,这是比较复杂的。
综上,现有方法的问题是:
只关注单场景下的多任务学习 (SSL&MTL), 或纯粹的多场景模型 (MSL&STL)。没有直接考虑多场景 + 多任务的情况。这就导致了这类场景丰富的上下文信息,会受到跷跷板和负迁移影响。为每个场景 / 任务开发模型,开发和维护成本都会大大增加。
场景 / 任务间存在关联和区别,而以往的模型都通过人工指定网络结构来适配。但这需要大量的实验和人工调参,是否存在简单有效的自动专家网络选择?
我们将从这几种网络的优点和劣势总结如下:
三、算法方案设计
挑战:各场景存在较大的差异
我们可以将基金场景抽象成如下树状结构,分别是场景层,卡片层和任务层。
场景层主要是人群间差异。垂搜流量和成交明显比主搜更大,专业用户更多,但交集用户较少。
卡片层主要存在 Query 差异性,其原因是搜索 query 触发逻辑的不同,搜 "基金","股票型基金" 等泛品类词会触发热门基金卡片,而其他基金词则会触发基金产品卡。
任务层主要存在任务间差异。基金购买是重决策过程,用户会反复对比多只产品,且购后都会反复搜索和点击,关注价格走势和其他信息。点击和转化率皮尔逊相关性较低。
图 3:真实业务中复杂的场景和层级带来的迁移难题
而使用 PLE 训练统一数据 + 模型,其效果不如在各个场景上独立训练的 PLE 模型,存在一定的跷跷板效应。因此,如何设计一个统一模型来解决多场景和多任务?如何自动学习场景任务间的关联,并使得各个场景都有正向收益?
整体模型结构
我们针对如上的场景树结构,构建多层堆叠的,结构相似的 AESM 网络。在下图中实例中,真实场景中的场景层 / 卡片层 / 任务层,都由两层 AES 层来堆叠建模。
图 5:AESM 主结构图
AESM 将多场景和多任务问题视为同一问题,并采用分层架构将它们融合到一个统一的框架中。与 PLE 不同,AESM 利用通用且灵活的架构, 分别进行不同场景和任务下,设置共享和独享的专家。
如下图 c 所示,上面不同颜色的 E 代表专家被不同的任务所使用: E1, E2 被 A 任务使用, E2 和 En 被 B 任务使用。E2 为 share 专家,其他为 specific 专家。
为了简化,我们首先介绍单独的多场景 / 多任务层,并讨论如何做自动专家选择;后续再讨论具有多层任务设置的情况。
共享嵌入层
与其他模型类似,我们设计了共享嵌入层,将底部的类别和数值特征转换为连续的特征向量。假设有 𝑣 组特征,例如,用户特征(如年龄、性别)、物品特征(如价格、品牌)和行为特征(如 q2i,u2i 等)。对于给定的样本,首先将数值特征转换为类别类型,然后对类别特征进行 one-hot 处理,如下所示:
其中,表示用户特征的个数, 表示特征向量的拼接;其他类型的特征处理方式同用户的特征处理方式;将处理后的各种类型特征进行拼接,得到输入
多场景层和专家选择
在共享嵌入层之后, 作为后续层的输入,经过多层专家选择层得到最后的输出。这里的核心问题是,如何进行专家选择?
整个过程用下图表示如下:
图 7:AESM 的探索和稀疏化约束机制