多义务和多场景在华为介绍系统中的运行
一、多义务、多场景的背景和应战
首先来引见一下华为多义务介绍的场景。
华为广告散布在不同的媒体上,比如左图展现的是阅读器消息流中的一个原声广告,右侧是华为视频页下方的一个广告卡片。这些广告分为不同的类型,比如APP类型、表单类型或许商品类型,其中APP类型是咱们关键的一个广告类型。一个APP广告出如今用户的视线里,假设被用户留意到了,或许触发一个用户的点击进入概略页,假设用户看到了概略页消息之后,还进一步发生兴味的话,就或许会发生进一步的下载行为,用户下载APP之后,用户或许会把这个APP放着不用了,也或许会发生进一步的转化行为,比如激活、运行内付费购置、次留等。
广告主会依据自己的一些运营目的,为某一次性点击或许某一种转化的类型启动付费,因此咱们会针对转化链路中的多个环节启动用户行为的预估,比如点击率、下载等转化率。显而易见,用户的转化行为会随着这条链路的逐渐深化而逐突变得愈加稠密,越来越深档次的转化目的,其转化稠密性疑问就会越来越来越重大,训练起来的艰巨水平也会越来越高。
因此咱们经过多义务联结建模的方式来缓解样本的稠密性疑问,同时也宿愿不同义务之间可以彼此协同优化。
华为广告投放的媒体类型泛滥,大抵可以分为两类:
以华为自有媒体为例,华为广告可以投放在媒体外部的不同位置,以不同的方式展现,比如运行图标、开屏页等。当用户在不同媒体上的不同位置启动阅读的时刻,会发生不同类型的行为,比如点击广告,而用户点击广告时所处的场景不同,发生点击的行为的背景也不一样,也就是说在不同的场景下咱们可以提取用户不同的偏好行为。因此咱们经过多场景联结建模的计划,来愈加片面地构建用户的偏好特征。另外,多场景联结建模通常也可以带来另外两点好处:1)缩小保养场景模型的数量;2)缓解冷启动场景的稠密性疑问。
1、多义务和多场景的对比
首先建模空间关键可以分为两局部,区分是目的空间和样本空间。多义务的目的空间是不同的,比如有点击率、激活率等,但是样本都是来自于同一个空间,比如相反的样本和特征空间。而多场景往往是相反的,其训练数据来自于不同的场景,样本空间也往往是不同的,会有着不同的数据散布和特征汇合,但预测义务又都是同类型的,比如点击率。当然最近也有一些多场景和多义务联结优化的场景和算法,这里就不详细开展了。
目前多义务介绍算法相关的上班,关键可以从两个维度启动划分:1)义务相关的维度;2)方法的维度。
义务相关维度关键分为三种,一种是平行式,也就是多个义务之间没有比拟明白的依赖相关,比如点击、收藏、分享、青睐等,这种多见于内容散发的消息流介绍场景。第二种是级联式,多义务的转化处于同一链路中,彼此之间存在着必定的依赖相关,这种多见于广告介绍场景。第三中是主义务加辅佐义务的联结优化,关键是寻觅一些辅佐义务来优化主义务的最终成果。
从方法维度也关键分为三类。第一类是参数共享,包括hardsharing和softsharing,比如MOE结构。第二类是义务的优化,关键针对负向迁徙以及多目的的掂量,再进一步又可分为义务或许梯度的主导疑问,以及负向相关的处置疑问。第三类是建模的训练机制,比如传统的联结建模的方式,就是多种义务一同间接联结优化。另外一种是基于强化学习的训练机制。上方这篇文章就是咱们多义务介绍系统的survey,外面会系统地引见一些相关的上班,感兴味的同窗可以关注一下。
接上去咱们对多场景相关的算法也做了一些不同维度的划分,关键是从两个维度,第一个是模型结构的维度,第二个是方法的维度。
从模型结构的维度分为两种,区分是多塔和单塔的结构。多塔就是为每一个场景会构建一个预测网络,普通这种是用在场景数量比拟明白而且数量不是很多的状况下。另外一种是单塔,也就是一切场景的预测网络是共享的,少数是在场景数量不够明白,或许数量比拟多的场景。在方法维度其实和多义务比拟相似。第一个还是参数共享的方式,包括一些硬共享和软共享。第二个就是场景联结建模时负向消息迁徙的一些处置。第三个是失掉和调理场景特性消息的一些灵活权重网络。咱们也有一个联结建模的论文,引见了多场景相关的一些上班,也蕴含了一些多行为多模态,还有大言语模型做介绍的一些联结建模的相关上班的引见,感兴味的同窗也可以关注一下。
接上去引见华为广告场景落地的一些多义务和多场景的介绍算法。
第一篇是咱们宣布在www2023的一篇上班(TAML),这个上班关键是笼罩分类中的级联义务,还有联结训练以及一些训练机制。
TAML关键针对的应战有两点,一点是转化样本稠密,假设只是经过便捷的义务级的专家网络融合,是不可提供足够消息的,而且这些消息会存在一些偏向。另外一点是模型预估的鲁棒性疑问,咱们表征的分类网络存在训练不够充沛的疑问,就会造成最终训练的预测结果不够鲁棒。
针对以上两个疑问,TAML的框架关键包括两个模块,一个是多层级义务自顺应表征提取模块,关键是经过多层级的专家网络提取多粒度的多义务常识表征;第二个模块是蒸馏多学习器模块,关键是经过构建多学习器,并经过蒸馏成功多学习器之间的常识共享,提高预估网络的稳固性。
接上去对这两个模块区分做一些便捷的引见。
第一个模块,多层级义务自顺应表征提取模块,关键是用于底层表征的抽取。经过三种多级专家网络来构建,一种是共享的多专家网络,另一种是义务级别的特有专家网络,还有学习器级别的专家网络。这里的学习器是为了缓解义务的稠密性疑问,并提高义务表征的稳固性,为每个义务又独自构建了多个学习器,就可以从多个视角提取义务表征。最终三个表征会经过一个门控网络启动融合,输入最终的表征。
第二个是MLSD学习器模块,关键用于预估网络的优化,多个学习器可以从不同的视角学习同一个义务不同的消息,最终咱们会用不同的学习器的均值作为融合学习器的常识输入。在此基础之上,咱们会构建一个正则化的损失,解放每个学习器和融合学习器之间的距离,从而成功不同窗习器之间的消息共享,也以此来提高预估网络的鲁棒性。
咱们这个上班区分在地下数据集和华为的私有数据上做了一些验证,相比SOTA都取得了比拟清楚的成果增益。另外,从下图中左下角的图可以看到不同层级的专家网络对最终表征的奉献度在不同义务以及不同的学习器中,三种专家网络所提取进去的消息的关键性是有所不同的。比如,关于 CVR 义务,它学进去的学习器级别的参数网络的权重会更重一些。
由于在离线的成果上比拟好,所以咱们在华为广告场景上启动了一个线上的AB试验。咱们用基于点击后的数据构建了两个义务,一个是下载率,另一个就是激活率。可以看到在CVR和eCPM场景上,都取得了比拟清楚的线上收益。由于这是一个转化率的场景,所以咱们更关注的是转化率的成果以及最终广告的支出成果。
第二个上班是咱们宣布在KDD2022的一个上班(CausalInt),这个上班关键笼罩分类中多塔分类器以及软共享,还有蕴含了一些负向消息迁徙的梳理,以及灵活权重网络的场景自顺应参数的调理。
这里咱们借助了因果图来对多场景建模的疑问启动了剖析。首先咱们从用户的视角对多场景介绍启动一个形容。在图(a)中,x 是用户在场景n下的一个行为,y 是用户在场景n下的一个操作,比如点击。x示意与场景有关的一些用户偏好,用户在场景n下发生的操作y 其实是遭到用户在该场景下的一些行为,以及用户自身的一些偏好所独特作用的结果。
咱们再从建模的视角来对多场景的建模环节启动一个形容,可以看出在场景数据混合在一同启动建模的时刻,不同变量的相关就会变得愈加复杂。
示意的是与场景有关的用户表征,但是它遭到了场景感知表征D和用户在场景n下的表征的一些影响,示意的是模型关于用户在场景下点击行为的预估,但是它遭到了其余场景感知消息的影响,还有其余场景的比如用户行为的影响,在预估的时刻存在一些偏向,并且不可取得比拟好的介绍成果。也就是在建模的环节中,咱们没有思考到一些偏向消息以及有效的消息迁徙。
为了成功建模环节的视图更和用户视图的因果图愈加婚配,也就是处置建模中的偏向疑问,咱们提取出了多场景联结建模时的三个关键应战。第一个应战是如何有效的提取场景之间的特性。第二个应战是如何保管产品中的一些特定消息,同时消弭其余场景引入的一些负向消息,关键是处置如何有效提取x,第三个应战就是如何探求并迁徙场景感知的一些消息。
为了处置这些应战,咱们借助因果干预的战略。对这里的D对X,还有X对Y实施干预。在咱们实在的商业介绍系统中,其实咱们很难从数据的角度或许试验的角度来采取实在的干预战略,因此咱们这里是思考经常使用学习的方式来对这种干预启动一个模拟,切断容易发生混杂的因果门路。
咱们提出了三个模块。第一个模块是特性提取模块,也就是白色局部。第二个模块是两边的负向影响去除模块,就是灰色的局部。第三个是场景消息的迁徙模块,就是黄色的这一局部。接上去对这三局部内容区分做一个详细的引见。
首先是特性提取模块。咱们关键是经过结构表征的方式来把场景感知场景敏感的一些消息分别至独立的分支网络里,而后经过构建4个不同的义务来提取场景特有表征或许场景不变表征。这4个义务中的第一个是最左边的generalclassifier,它关键是基于提取的场景有关的表征,剔除与场景敏感的一些消息后,所对应的一个一致分类器,也就是一切场景共享的一个ctr预估义务。第二个就是把场景敏感消息分别进去之后,用场景的敏感消息的表征去构建一个场景的判断器,也就是判断样本是来自于哪个场景。第三个义务就是将场景表征和场景感知表征联结在一同,再去构建一个ctr预估的generalclassifier。最终为了有效地提取这两个表征,并且让这两个表征做到尽量的正交,这里会有真正一个正则化的解放。经过这4种方式,启动无偏表征的提取,作为后续建模的基础。
第二个模块是负向影响去除模块。可以进一步划分为两局部,第一局部是场景特有的一些表征以及场景共有的一些表征之间的梯度抵触疑问。比如场景的特有的分类器和回传的梯度,还有共有的分类器回传梯度,关于共享表征的一些抵触疑问。
第二个抵触就是不同的场景自有的一些分类器所回传的梯度关于共有表征的一些影响。咱们针对这两个不同的抵触经常使用了两种不同的战略。针关于第一种抵触,咱们经常使用了meta-learning的MAML训练方式来处置场景特性表征和特性表征之间的抵触疑问。针对第二种抵触,自有的共享表征之间的梯度抵触疑问是驳回一个施密特正交化的环节,而后成功一个梯度的正交基,来解放他们之间的一个梯度方向,从而处置这个维度的梯度抵触疑问。
第三个模块是消息迁徙模块。这个局部模拟了试验的干预战略,让单个场景中发生的user-item表征区分和不同场景的消息启动一个交互。
咱们模拟的是假设场景的user-item交互发生的场景j中,它会有一个什么样的结果,这样一个反理想的疑问,并将多个场景的评分网络,作为多个专家,对这一个交互启动打分。最终会用第一个模块学习到这个场景的表征所对应的场景的分类器,对样本启动一个加权,也就是预测有多大的概率去置信这个场景所对应专家的一个打分结果,从而成功专家网络输入的分数的融合,从而成功不同场景之间的消息迁徙。
咱们把模型在一份地下数据集和华为私有数据集上做了一些离线的AB试验,可以看到相比于单场景建模多义务模型,还有一些迁徙学习的微调模型,包括多场景的一些基线模型,相对来说都会有比拟清楚的成果增益。
咱们对模型的各个模块启动了一些消融剖析。全体上看,各个子模块都带来了一些成果上的增量。比如表8中,咱们启动了场景消息迁徙模块中不同留意力网络的成功方式的对比,比如间接做multiply、或许间接用mmoe相似的这种端到端训练做一个gate网络去做多专家分数的融合,可以看到,还是咱们经过构建判断模型训练进去的gate网络的成果会更好一些。
接上去第三个要引见的是咱们宣布在往年CIKM的一个上班,叫DFFM,这块上班关键是面向单塔的多场景建模模型,应用灵活权重网络,对特征交互还有用户行为启动场景自顺应的学习。
特征交互和用户行为,做介绍的同窗应该都比拟了解,是CTR模型中很关键的两个概念。
特征交互是很多深度介绍学模型的基础,比如咱们通常会经过手动的方式或许设计神经网络的方式来成功二阶、三阶的交互构建,或许间接经过MLP构建更高阶的隐式交互。
用户在不同场景下会发生不同的行为,体如今特征交互上,会依据场景而有所差异,也就是说不同的特征交互在不同场景上应该会有不同的权重。其次,用户行为可以反应出用户的一些兴味,用户在不同场景下发生的历史行为反映出用户在过后场景下的一些特定偏好,因此咱们在多场景联结建模的时刻也应该思考这两点,即多场景下的特性和特性。
因此咱们提出了一个面向特征交互以及用户行为场景感知的建模模型DFFM。它关键蕴含两个模块。第一个DFFI,是场景感知的特征交互模块,第二个DFUB,是场景感知的用户行为模块。
场景感知的特征交互模块以内积的交互方式为例,在不区分场景条件下,其实交互方式就是为两个特征向量间接做内积,在多场景下,咱们会经常使用一些场景的表征,比如domainid,而后把这种场景表征启动一个转化和拆分,成立一个灵活权重的网络,对原始特征启动一个转化。比如就是一个场景表征,经过转化和拆分,把它合成成一个权重网络和偏置,而后以此来对咱们的一些原始特征,比如这里的e和e做一个转化,在此基础之上再启动二阶或许多阶的特征交互,最终和原始的向量concat到一同,取得DFFI模块的一个输入表征。这里交互方式必需是不局限于内积,也可以是外积或许是DCN、autint的一些交互方式。
第二个模块,场景感知的用户行为模块。咱们从用户行为的粒度入手,应用场景相关的特征学习用户行为之间的关联,详细而言就是DFUB模块经常使用的是多头自留意力机制来处置用户行为序列。相比于传统的多头自留意力机制只思考序列外部的一些item交互,咱们将targetitem和场景的表征都同时思考出去构建多头留意力网络的q-k-v矩阵。它的转换矩阵分为两局部,一局部是它自身随机初始化的一个旋转矩阵,另一个就是由targetitem转化而来的一个旋转矩阵。经过这种方式,咱们将targetitem和场景的消息,蕴含进留意力机制的item之间的交互中,最终多头的输入会concat到一同,作为DFUB模块最终的表征输入。
最终咱们会综合DFFI和DFUB两个模块的表征构建一个分类器,这个分类器可以是一个便捷的MLP,或许其余更初级的一些分类网络,还可以再叠加一些交互网络。
这里展现了DFFM在两份地下数据上的一些离线成果评价,可以看到其相关于已有的一些SOTA模型,可以带来比拟清楚的成果增益。
同时咱们把这个模型在三方媒体的场景上去做了落地,由于它的场景数量相对来说比拟多,而且不是很确定,咱们这里经常使用了一个单塔的模型启动上线和验证。可以看到逐渐上线了DFFI模块以及完整的DFFM模块,成果上都是有着比拟清楚的增益,这里展现的是ecpm收益。
最后,咱们整顿了近期宣布的一些多场景和多义务方面的上班。
前两个是多义务方面的,第一个就是TAML,基于多粒度的专家网络和级联学习的多义务优化;第二个是面向多义务的特征选用框架。
上方五篇关键面向的是多场景建模,比如DFFM面向特征层面,关键包括一些特征的交互和用户行为的建模;HAMUR是面向交互网络的场景适配器网络;Instance关键是面向样本层面的,也就是多场景中的样本选用算法;刚才引见的CausalInt,关键是面向多场景的训练框架,着重处置负向消息的迁徙疑问;PLATE是一个基于揭示学习的迁徙学习的新范式。
最后两个是做多义务学习的联结训练。综合了多义务、多场景,多模态、多行为、多兴味,以及言语模型辅佐介绍系统去做介绍的联结建模计划。
以上就是本次分享的内容,谢谢大家。
Q1:模型离线全量训练的时刻,比如用90天样本,试验要比base好,但模型天级增量更新时试验比base的成果变差了,了解一下或许是哪些要素?
A1:关键是工程和算法的影响,工程上增量训练依赖实时特征失掉以及实时样本回流,关键触及到样本的准确性;算法层面上,增量更新时,也会有一些战略影响模型更新的成果,比如学习率,样本从一个batchsize到一个小批量的增量训练,学习率通常须要做一些调整,比如衰减或许更小的量级。而后是特征的准入和淘汰上也会影响模型成果。而后不同的算法在增量训练环节中会有不同的战略,比如蒸馏模型的滚动蒸馏,这些也都会影响模型成果,详细疑问须要详细排查了。
Q2:多义务学习中有没有一个额外的学习信号?就是经过什么方式来让这三种不同类型的专家学到不同的常识?
A2:如今很多包括咱们像MMOE,还有PLE这些基于多专家网络,而后加上稠密性门控网络的这种模型,其实都会驳回这种方式十分隐式的方式去学习他们权重之间的一个散布。一点是参数的初始化方式和随机种子。第二点是专家权重网络的输入上参与一些扰动,扰动可以岁训练环节逐渐缩小。
Q3:主场景或许样本比拟多,或许会摆布整个学习环节,有没有试过多个场景做一个自顺应的布局,就相似阿里star模型,相似的一些方式有没有用过?
A3:其实咱们之前和他们作者有过一些交流,就是这种方式或许在同一个batch内,假设是有不同的场景的数据,特意是场景数据比拟多,而后你batch又比拟小,这种状况下成果其实不是特意好。但是假设是像阿里这边间接经常使用那种交替式训练,比如说一个batch只要一个场景的数据,其实还是有必定的成果的。针关于这个之摆布参数,其实刚才有引见过一个梯度主导的疑问,其实这篇这块也有一些上班,而后咱们其实之前也尝试过,其实一个最简双方法就是相似于grandnorm,间接从梯度的量纲去做一对梯度做一些处罚,对梯度大的,依据训练的step去调理应前这个义务所对应loss的权重。