利用外积注意力的众包任务推荐算法的制作方法

    专利2022-07-08  97


    一、技术领域

    本发明设计推荐算法领域,尤其涉及众包场景下为工人推荐任务,具体是一种利用外积注意力的的基于物品的协同过滤神经网络算法。

    二、

    背景技术:

    随着互联网的飞速发展,数据量也与日俱增,人们面对海量数据时越发束手无策。推荐系统的提出正是为了解决海量数据造成的信息过载问题。推荐系统在工业界已经应用于各种互联网领域。学术界也先后提出了各种推荐算法的框架,如基于关联规则的推荐、基于内容的推荐、协同过滤、基于图的推荐和混合推荐等等。随着近年来深度学习的引入,推荐算法的性能更是得到了极大的提升。

    众包作为一种创新商业模式,促进了群体的开放式创新。近年来共享经济的发展也促进了众包模式的迅速发展。将推荐算法应用于众包有助于众包任务的承接方(通常称为工人)难以选择众包可能性大的任务进行投标,以及降低发布方的筛选成本,提升工人和承接方的用户体验。但其它场景下的推荐算法却不能直接应用于众包,因为如电商平台、内容推送平台中不同时存在类似于众包场景的特殊性,包括任务时效性、多角色用户、用户间竞争等。任务时效性即众包任务只在其有效期内能被交互,进而导致特征的稀疏性;多角色用户即存在工人和承接方两种角色的用户,每个角色都对中标预测有影响;用户间的竞争导致工人用户的非独立性,而现有推荐中排序学习框架都研究物品间的关系(偏序对或列表排序等)而假设用户间是独立的。因此,如何将现有推荐算法针对众包场景的特殊性进行改进进而引入到众包是一项重要的挑战。

    众包场景下的任务推荐早期使用人工建模或博弈论的方式较多。人工建模的方式只要是对工人的兴趣和能力分别建模,因为工人的投标和中标不仅取决于工人和兴趣,也取决于工人的能力。或者使用关联规则挖掘算法来生成工人先前工作中使用的常用技能集列表。根据工人的常用技能,客户的评分,最低预算/小时费率,截止日期等来创建可行的工作清单。人工建模的方式需要充足的领域知识选取特征、构建特征或建模,研究也大多针对某个平台的交易流程,模型缺乏泛化能力。当平台流程有差异或任务差异较大时鲁棒性较差。

    众包场景下利用神经网络的推荐算法较少,并且少有讨论众包场景的特殊性。基于内容的推荐算法包括利用word2vec词向量计算了用以表征任务和工人的标签(tags),通过匹配工人和任务间标签的相似性为工人推荐任务。基于角色的聚类模型,允许每个工人在多个任务集群中进行投标,将整个由工人历史记录得到的工人-任务评价矩阵转化为一组基于角色的小的、独立的、评价密集型的矩阵。近期少量工作架构强化学习引入众包场景,利用dqn(deepqnetwork)与神经网络相结合同时考虑长期和短期的奖励,并且可以实时更新以应对不断发展的数据和动态变化。设计了两个dqn以捕获工人和任务发布方的利益,并最大化平台的利润。基于物品的协同过滤算法因此实时性和可解释性而广泛应用于各场景的推荐,但缺少应用于众包场景的研究,尤其是结合神经网络的端到端的算法,原因在于现有利用神网络的算法没有考虑到众包任务的特殊性。

    同时本发明将外积引入注意力机制。注意力机制在推荐算法中多用于为输入序列或是实体中属性分配不同的重要性权重。外积注意力中将外积矩阵视为二维图像进而利用cnn学习注意力权重,特别的,与直接利用cnn进行预测不同,外积注意力中的cnn设计需要解决5个问题:(1)、外积只能接受双序列输入。但众包场景下还需输入物品特征。(2)、双序列中的记录长度不匹配和不对应问题。(3)、现有cnn主要直接用于特征提取和预测,其结构不能保留记录的语义信息进而无法得到注意力权重。(4)、注意力作为子网络,网络结构过于复杂会导致与主网络协同训练的困难。(5)、需要平衡外积带来的计算消耗和收益。

    三、

    技术实现要素:

    本发明的目的在于解决现有基于物品的神经网络协同过滤算法不能直接应用于众包场景的问题,通过改进特征学习部分和损失函数部分解决时效性带来的稀疏问题和模型训练问题,通过改进协同注意力机制提高为双序列分配注意力权重的准确性。

    本发明的目的是这样达到的:

    通过属性级的任务特征学习方式解决任务时效性带来的稀疏问题,通过引入强弱负样本的带权交叉熵损失函数解决时效性带来的训练问题。通过将外积引入注意力机制并设计了一种适用于分配注意力的卷积神经网络结构,提高为双序列分配注意力权重的准确性。

    具体做法是:

    算法模型总体结构如图1所示,模型主要分为三个部分:

    (1)输入和特征学习:属性级任务特征学习,以及通过工人中标过任务序列组成工人特征,通过发布方发布过的任务序列组成发布方特征。

    (2)特征融合与外积注意力:特征融合目的在于使输入(双序列和目标特征)符合外积注意力输入要求并融入任务场景因素和解决记录不对应问题。随后将特征融合过的工人和发布方序列输入外积注意力,外积注意力协同学习工人和发布方序列中每个记录的注意力权重并作用于主网络的工人和发布方序列上。

    (3)预测:将分配过注意力权重的工人特征、发布方特征,以及任务特征输入多层感知机,预测工人是否中标。并对交叉熵损失函数进行改进。

    输入和特征学习:

    由于众包任务的时效性,仅使用id来表示任务缺少泛化能力,因为众包任务在完成后便不能再被交互,所以本发明用任务各个属性的特征组成任务特征。其中将属性分为三类,包括类别型(任务分类,任务形式)、数值型(任务报酬)和文本型(任务标题)。各属性按其输入数据类型不同,各属性特征学习方法如图2所示.其中x1,x2(任务分类、任务形式)为经one-hot编码后的类别型特征。x3(任务报酬)为经分桶处理后再进行one-hot编码的数值型特征,即将多个连续值分组进较少数量的“桶”。随后x1,x2,x3都作为离散型特征处理。然后将x1,x2,x3输入嵌入层(embedding)后,通过一层全连接层(dense)学习到类别型和数值型属性的特征xe,1,xe,2,xe,3,由xe,i=act(we,i×xi be,i)得到。其中为参数矩阵.

    对文本型特征,w1,w2......wt为经中文分词和去除停用词后的标题词语,t为标题词语的个数,将w1,w2......wt输入word2vec模型,使用word2vec中的cbow模型.此后得到标题词语在向量空间的表示yc,j。再将预训练完成的yc,j输入textcn后得到任务标题特征c。textcnn将卷积神经网络cnn应用到文本分类任务,利用多个不同尺寸的卷积核来提取句子中的信息。将各属性特征xe,1,xe,2,xe,3,c,相加后得到任务特征r,由r=xe,1 xe,2 xe,3 c得到。

    特征融合与外积注意力:

    在学习到任务特征后,通过工人中标过的任务序列组成工人特征序列g,即g=rg,1,rg,2......rg,l,其中l是序列的长度。通过发布方曾经发布过的任务序列组成发布方特征序列f,即f=rf,1,rf,2......rf,l。在将工人和发布方序列输入外积注意力之前,先对g和f进行特征融合(fusion),如图3虚线黑框部分。特征融合在外积注意力中用于解决两个问题:(1)外积操作只能接受两个序列作为输入,而众包中还包括一个目标特征。(2)双序列中记录的不对应问题:

    问题(1)、特征融合首先为了符合外积的输入要求,众包输入为两个序列和一个目标特征,现有协同注意力的输入仅为两个序列。特征融合后得到工人序列g'=act(fg×concat(g,r) bg),发布方序列f'=act(ff×concat(f,r) bf),其中把经特征融合的工人和发布方序列输入注意力网络,能在分配注意力权重时考虑到当前任务条件。同时在将特征输入预测部分的多层感知机时,不需要再拼接任务特征,减少网络参数。

    问题(2)、在对g'的记录分配权重时,首先将f'的记录相加得到f′sum,用f′sum与g'做外积。这是因为g'和f'的有效序列(非补0记录)长度不一定相匹配(如g'中有效任务记录与f'中补0记录外积,会使g'中有效记录外积结果为0,继而失去该记录意义)。再者,虽然g'序列整体和f'序列整体间有对应交互关系,但组成序列g'和f'的每个记录之间并没有一一对应的关系。

    外积矩阵虽然可以类比为二维图像进行处理,但不能使用已有cnn结构,因为外积注意力中的cnn需要解决三个问题(1)保留记录的语义信息。(2)子网络结构如果太复杂会造成与主网络联合训练的困难。(3)平衡收益与时耗。因此本发明设计了一个两层的cnn,针对(1)设计了特殊的卷积核大小和池化窗口以及多通道处理方式,针对(2)、(3)限制cnn层数与取消输出全连接层。

    首先,将特征融合过后的工人序列g'和发布方序列和f′sum做外积,作为一个两层cnn的输入。第一层卷积核大小为[1,d,m],即m个宽高为1×d的卷积核,和普遍使用的正方形的卷积核不同,如在图像有关任务的一张图片中,模型事先并不知道图像中每个像素的语义信息,即并不知道每个像素代表的意义,因此使用正方形卷积核,但对外积矩阵eg,虽然也作为二维图像进行处理,但模型已经先验得知道eg中每个元素ek1,k2=g'k1gf′sum,k2因此可以根据eg中元素的语义信息设计卷积核大小。外积注意力中1×d的卷积核一次移动正好覆盖了g'一个维度与f′sum一个记录的交互信息如图4,如果卷积核大小为正方形,一次移动覆盖了g'多个维度和f′sum多个维度的信息,而这些被正方形卷积核覆盖的维度之间并没有明确的语义联系。所以效果不如1×d大小的卷积核。

    经第一层卷积后得到sg,sg,m(i,j)是第m个卷积核wg,m对应的输出矩阵sg的对应位置元素的值,由sg,m(i,j)=act((eggwg,m)(i,j) bg,m)得到。随后的最大池化(maxpooling)窗口设置为d×1,池化后得到sg,max=maxpooling(sg),g'每个记录与f′sum交互的语义信息即为sg,max中1×1大小的区域。

    第二层卷积使用的卷积核大小为[1,1,n]。1×1卷积核的设计最初在图像任务目的在于在并行池化层后面加入后可以降低输出的特征图数量,以得到更紧凑的网络结构。而使用1×1的卷积核的目的在于用多个通道的非线性叠加以取代传统卷积网络后的全连接层。使用1×1的卷积核等价于在保留通道信息的前提下进行全连接操作,而在最大池化和通道间求和后的全连接层无法保留通道信息,并且由于卷积的可并行运算,在通道间求和前使用1×1卷积并不消耗多的时间,由于了保留通道信息,进而效果优于最后加入全连接层。

    由于外积注意力使用了m个卷积核,因此得到的sg,max有m个通道,cnn在图像任务或者nlp中直接用于预测textcnn或文本特征学习中,都是将每个通道学习的特征图拍平(flatten),并拼接通道间拍平后特征以输入多层感知机进行预测,但外积注意力目的在于为序列中记录分配权重,若拼接通道间特征图,会失去单个记录的语义信息。因此,在得到sg,max后,外积注意力对通道间进行求和以保留多个记录的信息。

    s'g经softmax操作后得到g'序列中记录的注意力权重ag,补0记录所在位置不参与softmax,以缓解序列长度对结果影响。最后分配过注意力权重的工人特征ga由得到。

    预测:

    本发明将能否中标视为一个二分类问题(能中标为正样本),预测部分如图5所示。由于在特征融合阶段已经在工人和发布方特征中融合了任务特征,因此在输入部分只拼接工人和发布方特征。虽然训练集中本身带有投标但未中标的记录作为负样本,但是对于测试集,由于最后需要产生任务推荐列表,并且由于众包任务时效性,造成生成推荐列表时,除了本次待评估投标任务,没有其它的已交互过的任务。因此,采样工人产生投标行为当天没有投标的任务,同投标没有但没有中标的任务一起作为负样本。

    改进后的交叉熵损失函数为y 和y_作为正样本和负样本,ω 为正样本权重,以缓解样本不均衡问题,为负样本惩罚权重。因为训练集和测试集的负样本均有两个来源,第一是实际发生的工人投标但未中标的行为,其次是通过采样得到的并未实际发生的负样本。明显,实际发生的负样本有更高的置信度,应该对损失函数由有大的贡献,因此,用表示实际发生的工人投标但未中标的负样本(以下简称强负样本),用表示通过采样得到的并未实际发生的负样本(以下简称弱负样本)。使而对弱负样本对误差值贡献做惩罚。λ为控制防止过拟合参数l2正则化的强度。

    本发明的积极效果是:

    1、通过引入属性级任务特征学习和提出带强弱负样本的带权交叉熵,解决了众包任务时效性带来的特征稀疏问题。

    2、通过引入发布方特征将中标视为一个由工人和发布方共同决定的过程,提高预测准确度。

    3、通过将外积引入注意力机制,能够利用元素间更丰富的互信息,设计了一种适用于注意力分配的卷积神经网络,在准确度超过现有基于内积的注意力的前提下,时间消耗较最快注意力仅多出2.34个百分点。

    4、通过结合针对众包场景改进的协同过滤算法和外积注意力机制,将主流神经网络推荐算法应用于众包。

    四、附图说明

    图1是算法模型的整体结构。

    图2是属性级任务特征学习结构。

    图3是特征融合和外积注意力机制结构。

    图4是外积操作生成的二维矩阵和输入元素的关系爱。

    图5是预测部分结构。

    图6是本发明与其他方法每个节点所需存储的密钥数量随节点数量的变化图。

    图7是本发明与其他方法的整个网络所需密钥数随节点数量的变化图。

    图8是外积注意力在auc较其它注意力的效果的对比图。

    图9是外积注意力在hr@10较其它注意力的效果的对比图。

    图10是外积注意力在mrr较其它注意力的效果的对比图。

    图11是发明步骤图。

    五、具体实施方式

    第一步,对用于特征学习的输入数据进行预处理。将任务形式和任务分类作为类别型特征,以整数0-n(n=任务形式类别数)和0-m(m=任务分类类别数)表示。将报酬总额除以参与中威客中标人数(由于一些任务允许多人中标)得到单人赏金,单人赏金为数值型特征,进行分桶处理后映射到0-40。将发布方id、工人id等中文id转换成数字id后转换成one-hot编码。同样,将任务形式和任务分类也转换成数字编号。将任务名称作为文本型特征。使用中文分词工具jieba进行分词,将任务名称拆分成许多独立个体的词,这样能够方便后面将词转化成向量。分词后去除停用词。使用word2vec模型预训练了词向量。在得到词向量后,将标题中分好词的词向量拼接后,得到标题的输入矩阵。对拼接后词向量长度不够的补0到最大长度。

    第二步,用第一步中预处理完成的输入特征通过属性级任务特征学习方式学习任务特征。用工人中标过任务特征表示工人特征,用发布方发布过的任务特征组成发布方特征。

    第三步,将第二步中得到的任务、工人和发布方特征输入特征融合模块,将经特征融合后的工人和发布方特征输入外积注意力机制,外积注意力机制输出分配过注意力权重的工人和发布方序列特征。

    第四步,将第三步中分配过注意力权重的工人和发布方序列特征分别相加后,得到工人和发布方特征作为预测模块的输入,训练时以改进后的带权交叉熵作为损失函数,预测工人的投标行为能否中标,得到预测分数。

    第五步,用第四步得到的预测分数按降序生成推荐列表。

    关于本发明针对众包场景特殊性的改进,对比了引入发布方前后的auc指标和使用带权交叉熵样本的分类能力。如图6分别在两个模型上对比引入发布方前后的auc指标,可见引入发布方后auc明显提高。如图7,引入带权交叉熵后,模型对弱负样本的识别能力变强。同时对比了外积注意力在auc、hr@10和mrr较其它注意力的效果,分别如图8、9、10,可见都有明显提高。同时外积注意力消耗较最快注意力机制基线仅多出2.34个百分点。

    本发明的用户使用场景举例:

    场景一:在高校团队创新创业中,单个团队往往难以聚合个方面的人才,可以通过创新创业众包平台,将非核心业务以众包的方式完成。以更灵活的方式组建团队。

    场景二:在综合类的网络众包平台上,所发布的任务往往复杂多样,本发明不需要平台用户自行对任务进行筛选,并且提高任务承接方的众包率和任务发布方的筛选成本,进而提高平台的收益和用户体验。

    在上述场景中,本发明的方法取得了好的效果。


    技术特征:

    1.利用外积注意力的众包任务推荐算法,其特征在于:

    首先通过众包任务中的属性级学习方式学习任务特征,随后引入众包角色发布方利用基于物品协同过滤思想学习发布方和工人特征,随后将任务、发布方和工人特征输入外积注意力机制,最后利用引入带强弱负样本的交叉熵损失函数对工人能否中标进行预测;

    具体做法是:

    第一步,对用于特征学习的输入数据进行预处理;将任务形式和任务分类作为类别型特征,以整数0-n(n=任务形式类别数)和0-m(m=任务分类类别数)表示;将报酬总额除以参与中威客中标人数(由于一些任务允许多人中标)得到单人赏金,单人赏金为数值型特征,进行分桶处理后映射到0-40。将发布方id、工人id等中文id转换成数字id后转换成one-hot编码;将任务形式和任务分类也转换成数字编号,将任务名称作为文本型特征,使用中文分词工具jieba进行分词,将任务名称拆分成许多独立个体的词,这样能够方便后面将词转化成向量;分词后去除停用词。使用word2vec模型预训练了词向量。在得到词向量后,将标题中分好词的词向量拼接后,得到标题的输入矩阵。对拼接后词向量长度不够的补0到最大长度。

    第二步,用第一步中预处理完成的输入特征通过属性级任务特征学习方式学习任务特征,用工人中标过任务特征表示工人特征,用发布方发布过的任务特征组成发布方特征;

    第三步,将第二步中得到的任务、工人和发布方特征输入特征融合模块,将经特征融合后的工人和发布方特征输入外积注意力机制,外积注意力机制输出分配过注意力权重的工人和发布方序列特征;

    第四步,将第三步中分配过注意力权重的工人和发布方序列特征分别相加后,得到工人和发布方特征作为预测模块的输入,训练时以改进后的带权交叉熵作为损失函数,预测工人的投标行为能否中标,得到预测分数;

    第五步,用第四步得到的预测分数按降序生成推荐列表。

    2.如权利要求1所述的利用外积注意力的众包任务推荐算法,其特征在于:设计卷积神经网络结构在外积生成的二维矩阵中学习发布方和工人的注意力权重:

    ·将特征融合过后的工人序列g'和发布方序列和fs'um做外积,作为一个两层cnn的输入。第一层卷积核大小为[1,d,m],即m个宽高为1×d的卷积核;

    ·随后的最大池化(maxpooling)窗口设置为d×1,第二层卷积使用的卷积核大小为[1,1,n],即n个宽高为1×1的卷积核,随后对通道间进行求和以保留多个记录的信息;

    ·随后取消卷积神经网络输出中常用的全连接层,经softmax操作后得到g'序列中记录的注意力权重ag,补0记录所在位置不参与softmax;

    ·随后在预测层中采样工人产生投标行为当天没有投标的任务,同投标没有但没有中标的任务一起作为负样本,并且在损失函数中对采样而来的负样本做权重惩罚。

    3.根据权利要求2所述的方法,其特征在于,利用属性级任务特征学习方法得到任务特征,引入发布方特征与工人和任务特征共同决定工人能否中标,设计两层的卷积神经网络用于从外积矩阵中学习注意力权重,以保留记录的语义信息,引入弱负样本降低稀疏性带来的训练困难。

    技术总结
    本发明公开来了一种利用外积的众包任务推荐算法,为众包中工人推荐任务。本发明根据众包场景较主流场景的特殊性,在改进传统基于物品的协同过滤神经网络算法的基础上,设计了一种利用外积的注意力机制。该模型针对众包场景下任务的时效性和多角色用户,分别提出众包任务属性级的特征学习方式以及带强弱负样本带权交叉熵,提出引入任务发布方序列的两种方式。该模型还提出一种外积注意力机制,为用户序列分配重要性权重。针对众包场景改进的协同过滤算法和外积注意力共同组成本发明的众包任务推荐算法,该算法在二分类指标上超过改进前的协同过滤神经网络算法,在二分类指标和推荐列表指标超过利用内积的注意力机制,并且时间消耗在可接受范围内。

    技术研发人员:陈彦如;王浩;赵琪雯;张媛媛;胡顺仿;王伟;廖俊华;刘雁林;张磊;梁刚;许春;陈良银
    受保护的技术使用者:成都易书桥科技有限公司
    技术研发日:2020.12.14
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-20061.html

    最新回复(0)