一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多任务模型的训练方法及装置与流程

2022-11-16 15:18:37 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及机器学习技术领域,尤其涉及一种多任务模型的训练方法及装置。


背景技术:

2.随着社会的发展和科技的进步,越来越多的服务平台向用户提供各式各样的服务,以满足用户在工作、生活中的多种需求。为实现千人千面,服务平台采用机器学习技术对用户进行行为等多方面的预测,例如,预测用户是否会点赞、收藏和转发某篇文章。多任务学习(multitask learning)是一种基于共享表示(shared representation)把多个相关的任务放在一起学习的机器学习方式,可以实现不同任务间的训练数据共享。由此,提出构建多任务模型进行针对用户的多任务预测。
3.然而,目前多任务预测的预测效果有限,难以满足实际应用中的更高要求。因此,需要一种方案,可以优化针对用户的多任务预测效果,进而有效提升用户体验。


技术实现要素:

4.本说明书实施例描述了多任务模型的训练方法及装置,可以避免不同预测任务之间的负迁移,进而同时优化多个预测任务的执行效果。
5.根据第一方面,提供一种多任务模型的训练方法,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定用户表征,所述k个头部网络用于基于所述用户表征执行k项用户预测任务,所述方法包括:基于m个用户样本,确定所述k项用户预测任务针对所述主干网络的k组原始梯度向量,其中各个用户样本包括用户特征和对应所述k项用户预测任务的k个用户标签;将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重,并利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;利用所述k组处理梯度向量更新所述主干网络的网络参数。
6.在一个实施例中,基于m个用户样本,确定所述k项用户预测任务针对所述主干网络的k组原始梯度向量,包括:基于所述各个用户样本,确定所述k项用户预测任务针对所述主干网络的k个原始梯度向量;基该k个原始梯度向量,确定所述k组原始梯度向量。
7.在一个具体的实施例中,基于所述各个用户样本,确定所述k项用户预测任务针对所述主干网络的k个原始梯度向量;将所述各个用户样本中的用户特征输入所述多任务模型,得到k个预测结果;基于所述k个预测结果和对应的k个用户类别标签,确定对应所述k项用户预测任务的k个训练损失;基于所述k个训练损失和所述k个头部网络的网络参数,确定所述k个原始梯度向量。
8.在一个具体的实施例中,基于所述k个原始梯度向量,确定所述k组原始梯度向量,包括:将所述k个原始梯度向量对应归入所述k组原始梯度向量中;其中,确定出的各组原始
梯度向量中包括对应所述m个用户样本的m个原始梯度向量。
9.在一个具体的实施例中,基于所述k个原始梯度向量,确定所述k组原始梯度向量,包括:针对各项用户预测任务,基于所述m个用户样本确定的与该项任务对应的m个原始梯度向量计算平均梯度向量,作为与该项任务对应的一组原始梯度向量。
10.在一个实施例中,将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量,包括:基于所述k组原始梯度向量,生成一组正交基,构成所述子空间;确定k组原始梯度向量在所述一组正交基上的坐标值,形成所述k组映射梯度向量。
11.在一个具体的实施例中,基于所述k组原始梯度向量,生成一组正交基,包括:对所述k组原始梯度向量构成的矩阵进行奇异值分解svd,并将分解得到的右奇异矩阵中包括的多个非零行向量作为所述一组正交基。
12.在一个实施例中,基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重,包括:针对各个空间维度,基于所述k组映射梯度向量在该维度上多个分量的正负符号数量,确定该空间维度对应的权重。
13.在一个具体的实施例中,基于所述k组映射梯度向量在该维度上多个分向量的正负符号数量,确定该空间维度对应的权重,包括:在所述正负符号数量中的正号数量为0或负号数量为0的情况下,将所述权重设定为1,否则设定为0;或,计算所述正号数量与负号数量之间的绝对差值,并将所述绝对差值与所述多个分量的分量个数之间的比值,作为所述权重。
14.在一个实施例中,利用所述k组处理梯度向量更新所述主干网络的网络参数,包括:基于所述k组处理梯度向量,计算平均梯度向量;将所述主干网络的当前网络参数更新为其减去预设学习率与所述平均梯度向量之间乘积的差值。
15.在一个实施例中,所述k项用户预测任务中包括用户点击率预测和用户转化率预测。
16.根据第二方面,提供另一种多任务模型的训练方法,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定针对业务对象的对象表征,所述k个头部网络用于基于所述对象表征执行k项对象预测任务,所述方法包括:基于m个对象样本,确定所述k项对象预测任务针对所述主干网络的k组原始梯度向量,其中各个对象样本包括对象特征和对应所述k项对象预测任务的k个对象标签;将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重,并利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;利用所述k组处理梯度向量更新所述主干网络的网络参数。
17.根据第三方面,提供一种多任务模型的训练装置,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定用户表征,所述k个头部网络用于基于所述用户表征执行k项用户预测任务,所述装置包括:原始梯度确定单元,配置为基于m个用户样本,确定所述k项用户预测任务针对所述主干网络的k组原始梯度向量,其中各个用户样本包括用户特征和对应所述k项用户预测任务的k个用户标签;第一梯度映射单元,配置为将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;维度权重确定单元,配置为基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对
应的r个权重;梯度加权单元,配置为利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;第二梯度映射单元,配置为将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;参数更新单元,配置为利用所述k组处理梯度向量更新所述主干网络的网络参数。
18.根据第四方面,提供一种多任务模型的训练装置,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定针对业务对象的对象表征,所述k个头部网络用于基于所述对象表征执行k项对象预测任务,所述装置包括:原始梯度确定单元,配置为基于m个对象样本,确定所述k项对象预测任务针对所述主干网络的k组原始梯度向量,其中各个对象样本包括对象特征和对应所述k项对象预测任务的k个对象标签;第一梯度映射单元,配置为将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;维度权重确定单元,配置为基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重;梯度加权单元,配置为利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;第二梯度映射单元,配置为将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;参数更新单元,配置为利用所述k组处理梯度向量更新所述主干网络的网络参数。
19.根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
20.根据第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
21.采用本说明书实施例提供的方法和装置,在每轮次训练过程中,针对不同预测任务的训练损失对多任务模型的共享参数的原始梯度,强化其中对所有预测任务都有正向作用的部分,弱化或略去在不同预测任务中存在冲突的部分,再利用对应的处理后梯度更新共享参数,从而避免不同预测任务之间的负迁移,进而同时优化多个预测任务的执行效果。
附图说明
22.为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
23.图1示出多任务学习模型的基础结构示意图;
24.图2示出根据一个实施例的多任务模型的训练方案实施架构图;
25.图3示出根据一个实施例的多任务模型的训练方法流程示意图;
26.图4示出根据另一个实施例的多任务模型的训练方法流程示意图;
27.图5示出根据一个实施例的多任务模型的训练装置结构示意图;
28.图6示出根据另一个实施例的多任务模型的训练装置结构示意图。
具体实施方式
29.下面结合附图,对本说明书提供的方案进行描述。
30.承前所述,多任务学习是一种基于共享表示,把多个相关的任务放在一起学习的
机器学习方式。例如,在推荐平台,将点击率(click-through rate,简称ctr)预测和转化率(conversion rate,简称cvr)这两个用户预测任务放在一起学习和预测。
31.图1示出多任务模型的基础结构示意图,如图1所示,多任务模型包括主干网络和多个(记作k个)头部网络,对于k项用户预测任务而言,主干网络中的参数是共享的,k个头部网络中的网络参数互相独立,第i个头部网络用于执行第i项用户预测任务。
32.多任务模型的训练目标是最小化k项预测任务对应的k个训练损失的和值:
[0033][0034]
其中,θ表示主干网络的网络参数,也就是共享参数;θi表示第i个头部网络的网络参数,li(θ,θi)表示第i项预测任务的训练损失。
[0035]
观察公式(1)可知,在常规训练过程中,每项用户预测任务都争相更新主干网络的参数θ,以最小化其自身任务的损失,而不同任务的训练损失针对共享参数θ的更新方向存在方向不一致的情况,导致梯度冲突,进而造成负迁移,也即,多个任务中一些任务的效果提升了,而其他任务的效果下降了。
[0036]
基于以上观察和分析,发明人提出一种解决梯度冲突的方案,可以区分和消除冲突梯度,从而最小化不同任务之间的负向梯度,最大化所有任务的收益。图2示出根据一个实施例的多任务模型的训练方案实施架构图。如图2所示,对于任意的一个用户样本x,可以利用多任务模型针对其输出的k个用户预测结果和其对应的k个用户标签,确定k个训练损失,并基于k个训练损失确定针对主干网络的k个原始梯度向量,从而将每个原始梯度向量gi分解为任务共享部分和任务冲突部分前者对所有任务都是正向作用,后者与其他任务存在冲突,进一步,只用共享部分的梯度来更新模型的参数,实现对梯度冲突部分的消除和所有任务的收益最大化。
[0037]
下面结合更多实施例,对上述方案的实施步骤进行更加详细的介绍。图3示出根据一个实施例的多任务模型的训练方法流程示意图,其中多任务模型包括图1或图2中示出的主干网络和k个头部网络。所述方法的执行主体可以为任何具有计算、处理能力的装置、平台、服务器或设备集群等。如图3所示,所述方法包括以下步骤:
[0038]
步骤s310,基于m个用户样本,确定k项用户预测任务针对主干网络的k组原始梯度向量,其中各个用户样本包括用户特征和对应所述k项用户预测任务的k个用户标签;步骤s320,将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;步骤s330,基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重;步骤s340,利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;步骤s350,将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;步骤s360,利用所述k组处理梯度向量更新所述主干网络的网络参数。
[0039]
对以上步骤的展开介绍如下:
[0040]
首先,在步骤s310,基于m个用户样本,确定k项用户预测任务针对主干网络的k组原始梯度向量。
[0041]
为便于理解,下面先对k项用户预测任务和m个用户样本进行介绍。其中,k为大于或等于2的整数,其中任一项用户预测任务可以是用户分类任务或用户回归任务,并且,k项用户预测任务之间存在一定的关联,具体可以由工作人员进行设定。m个用户样本为本轮迭
代训练中采用的一批次训练样本,m为正整数。各个用户样本的样本特征中至少包括用户特征,样本特征项的设计与k项用户预测任务相适应,另外,各个用户样本中还包括对应k项用户预测任务的k个用户标签,用户标签可以是分类标签(或称离散值标签)或回归标签(或称连续值标签)。
[0042]
根据一个实施例,k项用户预测任务包括针对用户会话的情感倾向预测和用户意图预测等,示例性地,用户会话可以是客服场景或网络社交场景的用户会话。此时,用户特征可以包括用户会话内容、用户会话的发送时刻、发送终端的ip地址,等等;k个用户标签可以包括情感类别标签,如生气、愤怒、开心、兴奋、冷漠或中立等,以及用户意图标签,如“如何开通支付功能”、“如何换绑手机号”、“如何投诉”等标准问题。
[0043]
根据另一个实施例,k项用户预测任务包括预测用户是否会对目标业务对象做出k种预设行为;此时,用户特征中可以包括用户针对历史对象的行为特征,例如,历史行为时刻、历史行为地址等,另外,样本特征中还可以包括目标业务对象的对象特征。在一个具体的实施例中,目标业务对象为广告,k种预设行为包括点击和转化等;进一步地,用户行为特征可以包括用户对广告进行点击的历史时刻、浏览时长、是否使用广告中推荐的商品或服务等;对象特征可以包括广告形式(如视频、图片、文字)、广告内容、推送方式(如系统消息或app内消息等)。在另一个具体的实施例中,目标业务对象为商品,k种预设行为包括浏览商品信息、加入购物车、分享、收藏、下单和付款等;进一步地,用户行为特征可以包括用户在历史上做出过k种预设行为之一的历史对象;对象特征可以包括商品的类别、销量、产地、成本、售价、保质期等。
[0044]
另一方面,在上述实施例中,用户特征中都还可以包括用户基础属性,如性别、年龄、职业、常住地和兴趣爱好等。
[0045]
以上,先对k项预测任务和m个用户样本进行了介绍。
[0046]
进一步,在本步骤中,先基于m个用户样本中的各个用户样本,确定k项用户预测任务针对主干网络的k个原始梯度向量。
[0047]
具体地,针对各个用户样本,利用多任务模型处理其样本特征,得到对应k项预测任务的k个预测结果。参见图2,先利用主干网络处理样本特征,或者说用户样本x,得到用户表征v
x
,再利用k个头部网络分别处理该用户表征v
x
,得到k个预测结果需说明,本说明书实施例中的多任务模型可以采用任意已有的结构,可以理解,不论采用何种模型结构,主干网络的参数对k项用户预测任务而言都是共享的;再者,图2中示意的是主干网络输出给k个头部网络相同的用户表征v
x
,实际上,输出给k个头部网络的用户表征可以是不同的,例如,在采用的模型结构是moe(mixture of experts)或mmoe(multi-gate mixture-of-experts)的情况下,其中的主干网络包括门控网络,使得输出给k个头部网络的用户表征可能存在不同。
[0048]
在得到上述k个预测结果后,结合与之对应的k个用户类别标签,确定对应k项用户预测任务的k个训练损失。换言之,针对任意的第i项用户预测任务,利用其对应的预测结果和用户类别标签yi,确定对应的训练损失li(θ,θi)。
[0049]
之后,基于k个训练损失,可以确定k个原始梯度向量。具体,基于任意的第i个训练损失li(θ,θi),或简记作li,可以采用反向传播法依次计算出第i个头部网络θi的参数梯度
和主干网络θ的参数梯度也即第i个原始梯度向量。
[0050]
基于此,一方面,可以利用第i个头部网络θi的参数梯度更新参数θi,参见下式:
[0051][0052]
在式(2)中,α表示学习率,属于超级参数,其数值可以由人工设定而得到。
[0053]
另一方面,可以利用基于各个用户样本确定出的k个原始梯度向量,确定出k组原始梯度向量。在一个实施例中,可以将该k个原始梯度向量中对应第i项任务的原始梯度向量归入第i组原始梯度向量,由此,可以得到对应k项预测任务的k组原始梯度向量,且每组原始梯度向量中包括对应m个用户样本的m个原始梯度向量。在另一个实施例中,针对对应第i项预测任务的m个原始梯度向量,可以对其中任意数量的原始梯度向量进行求平均操作,将得到的一个或多个平均梯度向量归入第i组原始梯度向量。示例性地,将对应第i项预测任务的m个原始梯度向量的平均向量作为第i组原始梯度向量,此时,第i组原始梯度向量中只包括一个梯度向量。
[0054]
需要理解,用户样本数量为m,基于各个用户样本确定出的原始梯度向量数为k,也就是,原始梯度向量的总数为m*k,将确定出的k组原始梯度向量所包括的向量总数记为n,如果n<m*k,则原始梯度向量的数量发生缩减,可以帮助减少后续计算的计算量。
[0055]
以上,可以基于m个用户样本确定出针对主干网络θ的k组原始梯度向量,每组原始梯度向量中的向量个数在1至m之间。为简洁、清楚描述,以下或将k组原始梯度向量换称为n个原始梯度向量。
[0056]
基于以上n个原始梯度向量执行步骤s320至步骤s340,实现对其中具有正向作用部分的强化和具有负向作用部分的弱化或消除。
[0057]
具体,先在步骤s320,将n个原始梯度向量映射至其所在原始空间的子空间,得到n个映射梯度向量。为直观描述,将主干网络θ中的参数个数记作d,由此,n个原始梯度向量所在的原始空间可以记作r
n*d

[0058]
在本步骤中,先确定包括上述n个原始梯度向量的子空间s,s∈r
r*d
,其中r<n。可以理解,确定子空间的方式有多种,r的取值区间的右端点为n-1,左端点为由n个原始梯度向量拼接成的矩阵m的秩,m∈r
n*d
。需要理解,r的取值越小,越有利于后续对梯度共享部分和冲突部分的拆解。
[0059]
具体地,可以根据n个原始梯度向量生成一组正交基{bu}
u∈[r]
,构成子空间s∈r
r*d
。其中,bu表示第u个正交基,且为d维向量,[r]是区间[1,r]的简写。在一个实施例中,对上述矩阵m进行奇异值分解(singular value decomposition,简称svd),从而将分解得到的右奇异矩阵中包括的多个非零行向量作为正交基{bu}
u∈[r]
。在其他实施例中,可以通过对矩阵m进行施密特分解(schmidt decomposition)或随机近似矩阵分解(randomized approximate matrix decomposition)等,得到正交基底{bu}
u∈[r]

[0060]
在以上确定出子空间s后,将n个原始梯度向量映射至子空间s,得到n个映射梯度向量。具体,针对各个原始梯度向量,确定其在正交基底{bu}
u∈[r]
上的坐标值,构成对应的映射梯度向量。示例性地,可以通过计算下式(3)得到映射梯度向量:
[0061]
pj=b*gjꢀꢀꢀꢀ
(3)
[0062]
其中,gj表示n个原始梯度向量中的第j个原始梯度向量,gj∈r
d*1
;pj表示第j个映射梯度向量,pj∈r
r*1
;b为由正交基底{bu}
u∈[r]
拼接成的矩阵,b∈r
r*d

[0063]
如此,将原始空间中的各个原始梯度向量gj映射到子空间s,可以有效提高后续梯度拆解结果的可用性,并且,子空间s中向量的维数减少至r维,可以有效减少后续的计算量。
[0064]
以上,可以得到映射至子空间s的n个映射梯度向量{pj}
j∈[n]
,其中[n]是区间[1,n]的简写。然后,在步骤s330,基于该n个映射梯度向量在子空间的r个空间维度上的分量分布,确定r个空间维度对应的r个权重。可以理解,映射梯度向量为r维向量,其第i个向量元素即为其在第i个空间维度上的分量。
[0065]
需要说明的是,对于任意两个映射梯度向量,如果在第j个空间维度上的两个分量都为正或都为负,则说明在这个维度方向上梯度的作用效果一致,这意味着,对于n个映射梯度向量在第j个空间维度上的n个分量,这n个分量中具有相同符号的分量越多,这个维度上存在的梯度冲突越小,若n个分量的符号完全一致,如都为正或都为负,则说明在这个方向上的n个分量对k个预测任务都具有正向作用。典型地,n个映射梯度向量为对应k项用户预测任务的k个映射梯度向量,此时,对于k个映射梯度向量在第j个空间维度上的k个分量,这k个分量中具有相同符号的分量越多,说明在这个维度上不同任务之间存在的梯度冲突越小,若k个分量的符号完全一致,则说明在k个任务在这个维度上对共享参数的更新方向是一致的。
[0066]
基于此,在一个实施例中,针对r个空间维度中的各个维度,可以基于n个映射梯度向量在该维度上n个分量的正负符号数量,确定该维度对应的权重。进一步,在一个具体的实施例中,在上述正负符号数量中的正号数量为0或负号数量为0的情况下,将该维度的权重设定为1,否则设定为0,也就是说,只有所有映射梯度向量在该维度上的分量都为正或为负的情况下,才对该维度上的梯度进行使用,用于参数的更新,否则弃用。在另一个具体的实施例中,可以计算上述正负符号数量中正号数量与负号数量之间差值,并将该差值的绝对值与多个分量的分量个数之间的比值,作为该维度对应的权重,如此,可以为该维度上的梯度分量分配合理的权重。
[0067]
在另一个实施例中,针对r个空间维度的各个维度,确定n个映射梯度向量在该维度上的n个分量的第一和值,以及n个分量中各个分量的绝对值的第二和值,从而将第一和值与第二和值的比值确定为该维度对应的权重。
[0068]
由上,可以得到r个空间维度对应的r个权重。从而在步骤s340,利用r个权重分别对n个映射梯度向量中的各个映射梯度向量的r个维度分量进行加权处理,得到n个加权梯度向量。示例性地,对于各个映射梯度向量pj,可以利用由r个权重组成的权重向量wr与其进行对位相乘处理,从而得到对应的加权梯度向量对此可参见下式(4):
[0069][0070]
如此,可以得到n个加权梯度向量。然后,在步骤s350,将n个加权梯度向量映射回上述原始空间,得到n个处理梯度向量。需要理解,可以利用构成上述子空间的一组正交基,将n个加权梯度向量映射回上述原始空间。示例性的,可以通过计算下式(5)得到处理梯度向量:
[0071][0072]
其中,表示n个处理梯度向量中的第j个处理梯度向量,表示第j个加权梯度向量,pj∈r
r*1
;b为由上述正交基底{bu}
u∈[r]
拼接成的矩阵,b∈r
r*d
;t表示转置运算。
[0073]
如此,可以得到与上述n个原始梯度向量对应的n个处理梯度向量。可以理解,相较原始梯度向量,处理梯度向量中对所有预测任务都有正向作用的部分被保留和增强,对不同预测任务存在冲突的部分被弱化或去除。
[0074]
之后,在步骤s360,利用n个处理梯度向量更新主干网络的网络参数θ。在一个实施例中,先计算n个处理梯度向量的平均梯度向量,再将网络参数θ更新为其减去预设学习率与该平均梯度向量的差值。如此,基于n个处理梯度向量更新主干网络,可以有效提高所有任务的收益。
[0075]
为便于理解,下面介绍一个上述方法的执行示例。在此示例中,先步骤s310,基于m个用户样本中的各个用户样本,先确定k项用户预测任务针对主干网络的k个原始梯度向量,由此可以得到m*k个原始梯度向量,再对其中与各项预测任务对应的m个原始梯度向量进行求平均处理,作为对应的任务梯度向量gi,于是,可以得到与k项预测任务对应的k个任务梯度向量。接着,在步骤s320,将k个任务梯度向量映射至其所在原始空间的子空间,得到k个映射梯度向量。然后,在步骤s330,针对子空间的r个空间维度中的各个空间维度,基于k个映射梯度向量在该维度上的k个分量,确定该维度的权重,具体,若k个分量均为非正数或均为非负数,也就是说k个任务对主干网络参数在此维度方向上的作用效果一致,不存在冲突,则权重值取1,否则判定存在冲突,权重值取0;由此,可以得到r个权重,且权重值非1即0。再接着,在步骤s340,利用r个权重分别对k个映射梯度向量中各个映射梯度向量的r个维度分量进行加权处理,得到k个加权梯度向量;需要理解,对于各个映射梯度向量pi,通过加权处理,实现对其中共享部分的提取,也就是说,其中与其他任务均不存在冲突的加权梯度向量被提取了出来。再然后,在步骤s350,将k个加权梯度向量映射回原始空间,得到对应上述k个任务梯度向量的k个处理梯度向量;需要理解,对于各个任务梯度向量gi,在此步骤中得到的处理梯度向量,为其在原始空间中的共享部分,与其他任务均不存在冲突,也就是说,其中的共享部分被提取了出来。之后,在步骤s360,利用k个处理梯度向量更新主干网络θ。
[0076]
如此,实现将k个任务梯度向量中的冲突部分完全去除,只用共享部分更新主干网络,使得主干网络更新后对所有任务的效果都起到正向作用,从而最大化所有任务的收益。换言之,先将不同用户预测任务针对模型共享参数部分的传播梯度分解为共享部分和冲突部分,再利用共享部分更新共享参数,从而避免用户预测任务间的负迁移,进而实现对多项用户预测任务效果的同时优化。
[0077]
需要理解,在上述示例中,k个任务梯度向量相当于上述k组原始梯度向量,也相当于上述n个原始梯度向量;k个映射梯度向量相当于上述k组映射梯度向量,也相当于上述n个映射梯度向量;k个加权梯度向量相当于上述k组加权梯度向量,也相当于上述n个映射梯度向量;k个处理梯度向量相当于上述k组处理梯度向量,也相当于上述n个处理梯度向量。
[0078]
综上,采用本说明书实施例披露的多任务模型的训练方法,在每轮次训练过程中,针对不同用户预测任务的训练损失对多任务模型的共享参数的原始梯度,强化其中对所有用户预测任务都有正向作用的部分,弱化或略去在不同用户预测任务中存在冲突的部分,再利用对应的处理后梯度更新共享参数,从而避免不同用户预测任务之间的负迁移,进而同时优化多个用户预测任务的执行效果。
[0079]
以上,主要介绍用于执行多项用户预测任务的多任务模型的训练方法。实际上,此方法还可以拓展到执行其他预测任务的场景。图4示出根据另一个实施例的多任务模型的训练方法流程示意图,其中多任务模型包括主干网络和k个头部网络,主干网络用于确定针对业务对象的对象表征,k个头部网络用于基于所述对象表征执行k项对象预测任务。
[0080]
在一个实施例中,业务对象为事件,如交易事件、访问事件、登录事件等,k项事件预测任务可以包括风险预测以及干预方式预测等;事件样本中包括风险标签和干预方式标签,其中风险标签为有风险、无风险,或者高风险、中风险、低风险,等,干预方式标签可以包括要求用户进行身份认证、客服人员电话劝阻和终止事件进程等;事件样本的样本特征可以包括发生时刻、发生地点、终端设备型号等。
[0081]
在另一个实施例中,业务对象为商品,k项商品预测任务可以包括目标人群预测和销量预测等;商品样本中包括目标人群标签和销量标签,其中目标人群标签为学生、上班族、退休人员等,销量标签可以是销量值;商品样本的样本特征可以包括类别、产地、保质期、成本、生产商等。
[0082]
以上,对业务对象、对象样本和k项对象预测任务进行介绍。
[0083]
如图4所示,所述方法包括以下步骤:
[0084]
步骤s410,基于m个对象样本,确定所述k项对象预测任务针对所述主干网络的k组原始梯度向量;其中各个对象样本包括对象特征和对应所述k项对象预测任务的k个对象标签;步骤s420,将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量;步骤s430,基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重,步骤s440,利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量;步骤s450,将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量;步骤s460,利用所述k组处理梯度向量更新所述主干网络的网络参数。
[0085]
需要说明,对图4中示出的方法步骤的介绍,可以参见前述对图3中方法步骤的描述,在此不作赘述。
[0086]
综上,采用本说明书实施例披露的多任务模型的训练方法,在每轮次训练过程中,针对不同预测任务的训练损失对多任务模型的共享参数的原始梯度,强化其中对所有预测任务都有正向作用的部分,弱化或略去在不同预测任务中存在冲突的部分,再利用对应的处理后梯度更新共享参数,从而避免不同预测任务之间的负迁移,进而同时优化多个预测任务的执行效果。
[0087]
与上述训练方法相对应地,本说明书实施例还披露训练装置。图5示出根据一个实施例的多任务模型的训练装置结构示意图,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定用户表征,所述k个头部网络用于基于所述用户表征执行k项用户预测任务。如图5所示,所述装置500包括:
[0088]
原始梯度确定单元510,配置为基于m个用户样本,确定所述k项用户预测任务针对所述主干网络的k组原始梯度向量;其中各个用户样本包括用户特征和对应所述k项用户预测任务的k个用户标签。第一梯度映射单元520,配置为将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量。维度权重确定单元530,配置为基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重。梯度加权单元540,配置为利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量。第二梯度映射单元550,配置为将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量。参数更新单元560,配置为利用所述k组处理梯度向量更新所述主干网络的网络参数。
[0089]
在一个实施例中,原始梯度确定单元510具体配置为:基于所述各个用户样本,确定所述k项用户预测任务针对所述主干网络的k个原始梯度向量;基于所述k个原始梯度向量,确定所述k组原始梯度向量。
[0090]
在一个具体的实施例中,原始梯度确定单元510进一步配置为:将所述各个用户样本中的用户特征输入所述多任务模型,得到k个预测结果;基于所述k个预测结果和对应的k个用户类别标签,确定对应所述k项用户预测任务的k个训练损失;基于所述k个训练损失和所述k个头部网络的网络参数,确定所述k个原始梯度向量。
[0091]
在另一个具体的实施例中,原始梯度确定单元510进一步配置为:将所述k个原始梯度向量对应归入所述k组原始梯度向量中;其中,确定出的各组原始梯度向量中包括对应所述m个用户样本的m个原始梯度向量。
[0092]
在又一个具体的实施例中,原始梯度确定单元510进一步配置为:针对各项用户预测任务,基于所述m个用户样本确定的与该项任务对应的m个原始梯度向量计算平均梯度向量,作为与该项任务对应的一组原始梯度向量。
[0093]
在一个实施例中,第一梯度映射单元520配置为:基于所述k组原始梯度向量,生成一组正交基,构成所述子空间;确定k组原始梯度向量在所述一组正交基上的坐标值,形成所述k组映射梯度向量。
[0094]
在一个具体的实施例中,第一梯度映射单元520进一步配置为:对所述k组原始梯度向量构成的矩阵进行奇异值分解svd,并将分解得到的右奇异矩阵中包括的多个非零行向量作为所述一组正交基。
[0095]
在一个实施例中,维度权重确定单元530具体配置为:针对各个空间维度,基于所述k组映射梯度向量在该维度上多个分量的正负符号数量,确定该空间维度对应的权重。
[0096]
在一个具体的实施例中,维度权重确定单元530进一步配置为:在所述正负符号数量中的正号数量为0或负号数量为0的情况下,将所述权重设定为1,否则设定为0。
[0097]
在另一个具体的实施例中,维度权重确定单元530进一步配置为:计算所述正号数量与负号数量之间的绝对差值,并将所述绝对差值与所述多个分量的分量个数之间的比值,作为所述权重。
[0098]
在一个实施例中,参数更新单元560具体配置为:基于所述k组处理梯度向量,计算平均梯度向量;将所述主干网络的当前网络参数更新为其减去预设学习率与所述平均梯度向量之间乘积的差值。
[0099]
在一个实施例中,所述k项用户预测任务中包括用户点击率预测和用户转化率预
测。
[0100]
图6示出根据另一个实施例的多任务模型的训练装置结构示意图,所述多任务模型包括主干网络和k个头部网络,所述主干网络用于确定针对业务对象的对象表征,所述k个头部网络用于基于所述对象表征执行k项对象预测任务。如图6所示,所述装置600包括:
[0101]
原始梯度确定单元610,配置为基于m个对象样本,确定所述k项对象预测任务针对所述主干网络的k组原始梯度向量;其中各个对象样本包括对象特征和对应所述k项对象预测任务的k个对象标签。第一梯度映射单元620,配置为将所述k组原始梯度向量映射至其所在原始空间的子空间,得到k组映射梯度向量。维度权重确定单元630,配置为基于所述k组映射梯度向量在所述子空间的r个空间维度上的分量分布,确定对应的r个权重。梯度加权单元630,配置为利用所述r个权重分别对各个映射梯度向量的r个维度分量进行加权处理,得到k组加权梯度向量。第二梯度映射单元640,配置为将所述k组加权梯度向量映射回所述原始空间,得到k组处理梯度向量。参数更新单元650,配置为利用所述k组处理梯度向量更新所述主干网络的网络参数。
[0102]
在一个实施例中,原始梯度确定单元610具体配置为:基于所述各个对象样本,确定所述k项对象预测任务针对所述主干网络的k个原始梯度向量;基于所述k个原始梯度向量,确定所述k组原始梯度向量。
[0103]
在一个具体的实施例中,原始梯度确定单元610进一步配置为:将所述各个对象样本中的对象特征输入所述多任务模型,得到k个预测结果;基于所述k个预测结果和对应的k个对象类别标签,确定对应所述k项对象预测任务的k个训练损失;基于所述k个训练损失和所述k个头部网络的网络参数,确定所述k个原始梯度向量。
[0104]
在另一个具体的实施例中,原始梯度确定单元610进一步配置为:将所述k个原始梯度向量对应归入所述k组原始梯度向量中;其中,确定出的各组原始梯度向量中包括对应所述m个对象样本的m个原始梯度向量。
[0105]
在又一个具体的实施例中,原始梯度确定单元610进一步配置为:针对各项对象预测任务,基于所述m个对象样本确定的与该项任务对应的m个原始梯度向量计算平均梯度向量,作为与该项任务对应的一组原始梯度向量。
[0106]
在一个实施例中,第一梯度映射单元620配置为:基于所述k组原始梯度向量,生成一组正交基,构成所述子空间;确定k组原始梯度向量在所述一组正交基上的坐标值,形成所述k组映射梯度向量。
[0107]
在一个具体的实施例中,第一梯度映射单元620进一步配置为:对所述k组原始梯度向量构成的矩阵进行奇异值分解svd,并将分解得到的右奇异矩阵中包括的多个非零行向量作为所述一组正交基。
[0108]
在一个实施例中,维度权重确定单元630具体配置为:针对各个空间维度,基于所述k组映射梯度向量在该维度上多个分量的正负符号数量,确定该空间维度对应的权重。
[0109]
在一个具体的实施例中,维度权重确定单元630进一步配置为:在所述正负符号数量中的正号数量为0或负号数量为0的情况下,将所述权重设定为1,否则设定为0。
[0110]
在另一个具体的实施例中,维度权重确定单元630进一步配置为:计算所述正号数量与负号数量之间的绝对差值,并将所述绝对差值与所述多个分量的分量个数之间的比值,作为所述权重。
[0111]
在一个实施例中,参数更新单元660具体配置为:基于所述k组处理梯度向量,计算平均梯度向量;将所述主干网络的当前网络参数更新为其减去预设学习率与所述平均梯度向量之间乘积的差值。
[0112]
在一个实施例中,所述k项对象预测任务中包括对象点击率预测和对象转化率预测。
[0113]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3或图4所描述的方法。
[0114]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3或图4所描述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0115]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献