CN115221960A - 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法 - Google Patents

基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法 Download PDF

Info

Publication number
CN115221960A
CN115221960A CN202210843571.6A CN202210843571A CN115221960A CN 115221960 A CN115221960 A CN 115221960A CN 202210843571 A CN202210843571 A CN 202210843571A CN 115221960 A CN115221960 A CN 115221960A
Authority
CN
China
Prior art keywords
user
loss information
sequence
sequences
users
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210843571.6A
Other languages
English (en)
Inventor
沈利东
沈利辉
赵朋朋
堵瀚文
沈逸旸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Yiyou Huiyun Software Co ltd
Original Assignee
Jiangsu Yiyou Huiyun Software Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Yiyou Huiyun Software Co ltd filed Critical Jiangsu Yiyou Huiyun Software Co ltd
Priority to CN202210843571.6A priority Critical patent/CN115221960A/zh
Publication of CN115221960A publication Critical patent/CN115221960A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法。该训练方法包括:获取多个用户的历史交互序列;对每个用户的历史交互序列中的对象进行随机遮蔽,生成多个不同的遮蔽序列;将多个用户的遮蔽序列输入至推荐模型中进行处理,得到所预测的每个用户的每个被遮蔽对象以及每个遮蔽序列的向量表示;根据多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;根据多个用户的遮蔽序列的向量表示,确定对比学习损失信息;根据完型填空任务损失信息和对比学习损失信息,训练推荐模型。基于该训练方法,其可以提高推荐模型向目标用户进行对象推荐的准确性。

Description

基于双向Transformers的推荐模型的训练方法、训练装置和 推荐方法
技术领域
本发明实施例涉及计算机技术领域,尤其涉及基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法。
背景技术
序列推荐方法致力于对用户历史交互序列中的动态兴趣进行研究并预测用户在未来可能会感兴趣的物品。基于马尔可夫链假设的传统方法认为,用户感兴趣的下一个物品只跟前几个物品有关。随着深度学习领域的技术进步,卷积神经网络和循环神经网络也被用作序列编码器来生成序列表示。这些方法的局限在于,卷积神经网络只能捕获局部特征,而循环神经网络难以并行计算。最近,Transformers模型这一强大架构在很多研究领域被广泛使用。与卷积神经网络和循环神经网络不同的是,Transformers模型能够自动对不同位置的物品赋予不同的注意力权重,这使得Transformers能够捕捉全局和局部的信息并且能够并行计算。因此,许多序列推荐模型都使用Transformers作为序列编码器,通过自注意力机制捕捉物品之间的关联关系,并获得了高质量的序列表示。
现有工作都是基于单向Transformers而设计推荐模型。单向Transformers的局限性在于,其只能从左向右考虑用户历史序列中的信息。但在真实世界中,用户行为未必遵循严格的从左向右序列。许多外部因素可能扰乱原有的序列顺序,并且在序列模式中也存在跳过行为。因此,基于单向Transformers的推荐模型在模型性能方面仍然有待提高。
发明内容
本发明实施例的一个目的是解决至少上述问题和/或缺陷,并提供至少后面将说明的优点。
本发明实施例提供了基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法,其可以改善推荐模型的性能,提高推荐模型向目标用户进行对象推荐的准确性。
第一方面,提供了一种基于双向Transformers的推荐模型的训练方法,包括:
获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列;
对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列;
将所述多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示;
基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;
基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息;
根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
可选地,所述对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列,包括:
若所述多个用户中的任一个用户的历史交互序列的长度超过第一预设长度,采用所述第一预设长度的滑动窗口扫描相应用户的历史交互序列,将相应用户的历史交互序列划分为若干子序列;
对相应用户的每个子序列中的对象进行随机遮蔽,生成相应用户的每个子序列的多个不同的遮蔽序列。
可选地,所述基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息,包括:
根据每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示,确定每个用户的每个遮蔽序列中每个被遮蔽对象的概率,其中,所述每个用户的每个遮蔽序列中每个被遮蔽对象的概率为所预测的每个用户的每个遮蔽序列中每个被遮蔽对象属于每个用户的每个遮蔽序列中的真实对象的概率;
基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的概率,确定完型填空任务损失信息。
可选地,所述基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息,包括:
根据所述多个用户中相同用户的具有相同序列来源的不同遮蔽序列的向量表示之间的差异,以及不同用户的不同遮蔽序列的向量表示之间的差异,确定对比学习损失信息。
可选地,所述根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型,包括:
基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重;
在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息;
根据每一轮迭代的联合损失信息,调整所述推荐模型的参数。
可选地,所述基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重,包括:
根据以下公式,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重:
Figure BDA0003751990810000031
Figure BDA0003751990810000032
其中,θn+1为在第n+1轮迭代中对比学习损失信息的权重,θn为在第n轮迭代中对比学习损失信息的权重,θ的初始值设置为0,α为学习率超参数,λ为比例换算因子,
Figure BDA0003751990810000033
Figure BDA0003751990810000034
分别表示在第n+1轮迭代中所确定的完形填空任务损失信息和对比学习损失信息;
所述在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息,包括:
根据以下公式,在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息:
Figure BDA0003751990810000041
其中,
Figure BDA0003751990810000042
表示在第n+1轮迭代中的联合损失信息。
第二方面,提供了一种基于双向Transformers的推荐模型的训练装置,其特征在于,包括:
用户序列获取模块,用于获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列;
遮蔽序列生成模块,用于对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列;
向量表示生成模块,用于将所述多个用户的全部遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中被遮蔽对象,得到每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示;
完型填空任务损失信息确定模块,用于基于预设的完型填空任务损失函数,根据每个用户的多个遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;
对比学习损失信息确定模块,用于基于预设的对比学习损失函数,根据所述多个用户的全部遮蔽序列的向量表示,确定对比学习损失信息;
推荐模型训练模块,用于根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
第三方面,提供了一种基于双向Transformers的推荐模型的推荐方法,包括:
从所述的多个用户的历史交互序列中获取目标用户的历史交互序列;
将所述目标用户的历史交互序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
可选地,所述方法还包括:
若所述目标用户的历史交互序列的长度超过第二预设长度,采用所述第二预设长度的滑动窗口扫描所述目标用户的历史交互序列,从所述目标用户的历史交互序列选取最后一段目标子序列;
所述将所述目标用户的历史交互序列输入至如权利要求1至6中任一项训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐,包括:
将所述目标用户的最后一段目标子序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
第四方面,提供了一种基于双向Transformers的推荐模型的推荐装置,包括:
目标用户序列获取模块,用于从所述的多个用户的历史交互序列中获取目标用户的历史交互序列;
目标对象推荐模块,用于将所述目标用户的历史交互序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
第五方面,提供了一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的方法。
第六方面,提供了一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现所述的方法。
本发明实施例至少包括以下有益效果:
本发明实施例提供的基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法。该训练方法包括:首先获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列,对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列,之后将所述多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示,再基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息,基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息,最后根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。基于该训练方法,其针对每个用户的历史交互序列中的对象进行随机遮蔽,生成遮蔽序列,将多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,基于双向Transformers的推荐模型可以从两个方向对序列中的对象进行建模,并可以从两个方向融合上下文信息,结合完形填空任务和对比学习方法对推荐模型进行训练,可以提升推荐模型的鲁棒性和抗噪音性能,提高对于目标用户进行对象推荐的准确性。
本发明实施例的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明实施例的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明一个实施例提供的基于双向Transformers的推荐模型的训练方法的流程图;
图2为本发明另一个实施例提供的基于双向Transformers的推荐模型的示意图;
图3为本发明一个实施例提供的基于双向Transformers的推荐模型的推荐方法的流程图;
图4为本发明一个实施例提供的基于双向Transformers的推荐模型的训练装置的结构示意图;
图5为本发明一个实施例提供的基于双向Transformers的推荐模型的推荐装置的结构示意图;
图6为本发明一个实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图对本发明实施例做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
图1为本发明实施例提供的基于双向Transformers的推荐模型的训练方法的流程图,由具有处理能力的系统、服务端设备或基于四元数图卷积神经网络的推荐装置执行。该方法包括:
步骤110,获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列。
这里,每个用户的历史交互序列可以包括与每个用户存在交互关系的至少一个对象,相应地,多个用户的历史交互序列可以包括与多个用户存在交互关系的全部对象,不同用户对应的对象可能完全相同、部分相同或完全不同。用户与对象之间的交互关系是基于用户对于对象的交互行为所产生的关系,交互行为可以是用户对某个商品的购买行为,用户对于某个新闻的阅读行为,用户在某个饭店的就餐行为等等。
具体地,在序列推荐中,定义
Figure BDA0003751990810000071
为用户集合,
Figure BDA0003751990810000072
为物品(即对象)集合,
Figure BDA0003751990810000073
为用户按照交互时间排序的交互序列,其中
Figure BDA0003751990810000074
为用户在第个时间戳所交互的物品。序列推荐的任务就是预测用户下一个可能感兴趣的物品,并且可以被形式化定义为用户生成在下一个时间戳可能交互的所有物品的概率:
Figure BDA0003751990810000075
实际应用中,不同用户对于相同对象的交互,可以反映出不同用户之间可能存在相同的偏好。因此,本发明实施例中,基于不同用户与相同对象的交互,可以捕捉不同用户之间对于相同对象的偏好,进而提高推荐模型对于目标用户进行对象推荐的准确性。
步骤120,对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列。
本步骤中,可以以预设比例对每个用户的历史交互序列中的对象进行遮蔽,即,不同用户的每个遮蔽序列以及同一个用户的每个遮蔽序列中被遮蔽的对象的比例是相同的。对于同一个用户的不同遮蔽序列,被遮蔽的对象则是不同的,从而生成多个不同的遮蔽序列。
在一些实施例中,可以在每一轮迭代中,对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列。
图2示出了本发明一个实施例中基于双向Transformers的推荐模型的示意图。具体地,对于每一步迭代,给定序列su,使用不同随机数种子生成m个遮蔽序列
Figure BDA0003751990810000081
在每个遮蔽序列中,序列的所有物品中比例为ρ的物品将会被随机地用遮蔽标志[遮蔽]替换,遮蔽的物品位置下标集合表示为
Figure BDA0003751990810000082
在一些实施例中,所述对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列,包括:若所述多个用户中的任一个用户的历史交互序列的长度超过第一预设长度,采用所述第一预设长度的滑动窗口扫描相应用户的历史交互序列,将相应用户的历史交互序列划分为若干子序列;对相应用户的每个子序列中的对象进行随机遮蔽,生成相应用户的每个子序列的多个不同的遮蔽序列。
由于推荐模型结构的限制,在一些情况下,当某一个用户的历史交互序列超过第一预设长度,根据历史交互序列所生成的遮蔽序列不能直接输入至推荐模型中进行处理。为了保留用户的所有训练数据,以提高推荐模型的推荐性能,可以采用滑动窗口将用户的历史交互序列划分若干子序列,再根据子序列生成多个不同的遮蔽序列。具体地,第一预设长度可以根据推荐模型的最大序列长度进行设置。具体地,将推荐模型的最大序列长度设定为T,则可以将第一预设长度设定为T。对于任何长序列su,若序列长度|su|>T,对su采用大小为T的滑动窗口对用户序列进行更细粒度的划分,以保留所有训练数据。
在另一些情况下,若目标用户的历史交互序列小于第一预设长度,可以不采用滑动窗口对目标用户的历史交互序列进行划分处理,而在该历史交互序列的前面若干位置添加“0”,使该历史交互序列的长度达到第一预设长度。若目标用户的历史交互序列等于第一预设长度,则不须对该历史交互序列进行划分或补位处理,可以直接根据该历史交互序列生成多个遮蔽序列。
这里,用户的每个子序列可以视为该用户的一个独立的历史交互序列。在对推荐模型进行训练时,同一个用户的不同子序列生成的遮蔽序列之间不进行对比学习。具体地,在基于全部用户的历史交互序列对推荐模型进行训练时,可以将同一个用户的根据不同子序列生成的遮蔽序列分开在不同的训练批次中。
步骤130,将所述多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示。
现有工作都是基于单向Transformers而设计推荐模型。单向Transformers的局限性在于,其只能从左向右考虑用户历史序列中的信息。但在真实世界中,用户行为未必遵循严格的从左向右序列。许多外部因素可能扰乱原有的序列顺序,并且在序列模式中也存在跳过行为。因此,基于单向Transformers的推荐模型在模型性能方面仍然有待提高。相比于单向Transformers,双向Transformers的注意力机制能够从两个方向对对象建模并从两个方向融合上下文信息,这使得双向Transformers具有更好的单向Transformers的表现。
通过基于双向Transformers的推荐模型的处理,可以从多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,并得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示。图2中,对于m个遮蔽序列
Figure BDA0003751990810000091
中的每个遮蔽序列,通过L层的双向Transformers模块给出了被遮蔽对象的向量表示,例如第2个遮蔽序列中被遮蔽对象的向量表示h2,2和hT,2。之后,可以将每个遮蔽序列中的对象(包括未被遮蔽的对象以及预测的被遮蔽对象)的向量表示拼接,得到m个遮蔽序列的向量表示
Figure BDA0003751990810000092
具体地,图3示出了基于双向Transformers的推荐模型的结构。基于双向Transformers的推荐模型包括基本模块和双向Transformers模块两部分。
在基本模块中,其嵌入层由一个物品嵌入矩阵
Figure BDA0003751990810000093
和位置嵌入矩阵
Figure BDA0003751990810000094
组合而成。对于任一个遮蔽序列中的物品,其嵌入向量
Figure BDA0003751990810000095
计算方式如下:
Figure BDA0003751990810000101
其中ei∈E,pt∈P分别表示物品的初始向量和物品在用户的历史交互序列su中的位置t的嵌入向量,其中,i表示物品在全部用户的物品集合
Figure BDA0003751990810000102
中的编号。
经过嵌入层后,对于任一个遮蔽序列,将该遮蔽序列中的全部物品的嵌入向量堆叠形成矩阵
Figure BDA0003751990810000103
作为整个遮蔽序列的表示,即
Figure BDA0003751990810000104
将H0输入至经过L层的双向Transformers模块进行处理,计算公式如下:
Figure BDA0003751990810000105
经过L层的双向Transformers模块的处理后,输出用户中任一个遮蔽序列的位置t的物品隐藏向量表示输ht。对于任一个遮蔽序列,可以预测出该遮蔽序列中被遮蔽对象,并根据所预测的被遮蔽对象的隐藏向量表示计算出该被遮蔽对象属于真实对象的概率,该被遮蔽对象可以称为来自于物品集合的候选物品。
将任一个遮蔽序列中物品的隐藏向量表示ht转化为该物品属于真实物品的概率分布P(v),其计算公式如下:
P(υ)=WPht+bP
其中,
Figure BDA0003751990810000106
是权重矩阵,
Figure BDA0003751990810000107
是偏置矩阵。
双向Transformers模块由多个Transformer模块堆叠而成,每个Transformer模块包括一个多头自注意力模块和前向传播网络,多个Transformer模块堆叠组成一个深度网络。双向Transformers模块的层数可以根据训练数据的数据量以及序列推荐任务确定,本发明实施例对此不做具体限定。
多头自注意力模块能够从多个不同的子空间捕获上下文信息。给定第l层隐藏向量表示
Figure BDA0003751990810000108
以及最大序列长度T。多头自注意力模块的计算公式如下:
MH(Hl)=concat(head1;head2;…;headh)WO
Figure BDA0003751990810000109
其中,MH(Hl)表示第l层双向Transformers模块中多头自注意力模块的输出,headi表示第l层双向Transformers模块中第i个多头自注意力模块的输出,
Figure BDA0003751990810000111
是可学习参数。
其中,多头自注意力模块的注意力机制由点积和softmax操作实现:
Figure BDA0003751990810000112
其中Q,K,V各代表查询、键和值,
Figure BDA0003751990810000113
是比例系数以避免内积值过大。
前向传播网络的计算公式如下:
Figure BDA0003751990810000114
Figure BDA0003751990810000115
其中,PFFN(Hl)表示第l层双向Transformers模块中前向传播网络的输出,
Figure BDA0003751990810000116
为任一个遮蔽序列中物品经过第l层双向Transformers模块处理后的隐藏向量表示,
Figure BDA0003751990810000117
是可学习参数。这里,当用户的历史交互序列的长度|Su|正好等于推荐模型给定的最大序列长度T,可以直接根据用户的历史交互序列生成多个遮蔽序列,并将这些遮蔽序列输入至推荐模型中进行处理。当用户的历史交互序列的长度|Su|大于推荐模型给定的最大序列长度T,则采用大小为T的滑动窗口对用户的历史交互序列进行划分,划分为若干长度为T的子序列,并将每个子序列所生成的多个遮蔽序列输入至推荐模型中进行处理。
在基于多个Transformer模块的推荐模型中,还引入包括残差连接、层正则化以及Dropout机制来避免模型过拟合。Transformer编码器Trm定义如下:
Trm(Hl)=LayerNorm(Fl+Dropout(PFFN(Fl)))
Fl=LayerNorm(Hl+Dropout(MH(Hl)))。
步骤140,基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息。
在一些实施例中,所述基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息,包括:根据每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示,确定每个用户的每个遮蔽序列中每个被遮蔽对象的概率,其中,所述每个用户的每个遮蔽序列中每个被遮蔽对象的概率为所预测的每个用户的每个遮蔽序列中每个被遮蔽对象属于每个用户的每个遮蔽序列中的真实对象的概率;基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的概率,确定完型填空任务损失信息。
推荐模型可以将任一个遮蔽序列中物品的隐藏向量表示ht转化为该物品属于真实物品的概率分布P(v),其计算公式如下:
P(υ)=WPht+bP
其中,
Figure BDA0003751990810000121
是权重矩阵,
Figure BDA0003751990810000122
是偏置矩阵。
当存在N个用户,任一个用户的完形填空任务损失函数定义如下:
Figure BDA0003751990810000123
其中,将所预测的被遮蔽对象vt与从物品集合中随机采样的负样本
Figure BDA0003751990810000124
配对。
Figure BDA0003751990810000125
表示针对第u个用户的完形填空任务损失信息,σ表示sigmoid函数,P(·)表示概率,
Figure BDA0003751990810000126
表示所预测的第u个用户的第j个遮蔽序列中被遮蔽对象υt属于真实对象的概率,
Figure BDA0003751990810000127
表示从物品集合中随机采样的负样本
Figure BDA0003751990810000128
属于真实对象的概率,m表示第u个用户的遮蔽序列的个数。基于上述完形填空任务损失函数,通过对推荐模型的训练,期望使被遮蔽对象属于真实对象的概率增加,而使负样本属于真实对象的概率减小。
则N个用户的完形填空任务损失函数定义如下:
Figure BDA0003751990810000129
此外,当用户集合中的用户个数大于N,可以将用户集合中的用户分成若干批次,分批次输入至推荐模型中进行训练。当某一个用户的历史交互序列的长度大于第一预设长度,该用户的历史序列长度被滑动窗口划分为若干子序列时,该用户的不同子序列分别划分至不同的批次中用于对推荐模型进行训练。
步骤150,基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息。
尽管Transformers模型非常有效,但它却无法解决由于用户交互稀少而带来的噪音和稀疏性问题。为解决这些问题,对比学习被引入基于双向Transformers的推荐模型中。作为一种自监督学习的范式,对比学习最大化正样本之间的相似度以及将正样本和负样本区别开。对比学习可以展示出强大的从未标注的数据中生成嵌入层表示的能力,并能提升模型鲁棒性和抗噪音能力。
在一些实施例中,所述基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息,包括:根据所述多个用户中相同用户的具有相同序列来源的不同遮蔽序列的向量表示之间的差异,以及不同用户的不同遮蔽序列的向量表示之间的差异,确定对比学习损失信息。本发明实施例将传统的一对样本对比学习外推到多对样本对比学习,与一对样本对比学习相比,多对样本对比学习能够提供更加困难的样本,这有利于推荐模型捕获更加高阶的信息。多对样本对比学习通过增加更多正样本来缓解错误负样本带来的影响。
具体地,对于任一个用户,可以将该用户的一对遮蔽序列的隐藏向量表示
Figure BDA0003751990810000131
视为一对正样本,而将来自其他用户的其他2(N-1)个遮蔽序列的隐藏向量表示视作负样本。基于上述设定,用户的一对样本对比学习损失函数定义如下:
Figure BDA0003751990810000132
其中,τ是温度超参数,余弦相似函数<φ1,φ2>=φ1 T·φ2/||φ1||·||φ2||被用作计算两个向量表示之间的相似度。
接着,使用之前完形填空任务生成的m个遮蔽序列将一对样本对比学习外推到多对样本对比学习。给定m个对应于遮蔽序列
Figure BDA0003751990810000133
的隐藏表示
Figure BDA0003751990810000134
可以将这些隐藏表示组合在一起作为正样本进行多对样本对比学习。多对样本对比学习损失函数定义如下:
Figure BDA0003751990810000135
其中,
Figure BDA0003751990810000136
是一个指示器函数,其值为1,当且仅当x≠y。
N个用户的多对样本对比学习损失函数定义如下:
Figure BDA0003751990810000141
此外,当用户集合中的用户个数大于N,可以将用户集合中的用户分成若干批次,分批次输入至推荐模型中进行训练。当某一个用户的历史交互序列的长度大于第一预设长度,该用户的历史序列长度被滑动窗口划分为若干子序列时,该用户的不同子序列分别划分至不同的批次中用于对推荐模型进行训练。
步骤160,根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
在一些实施例中,所述根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型,包括:基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重;在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息;根据每一轮迭代的联合损失信息,调整所述推荐模型的参数。权重动态重估策略能够动态计算完型填空任务损失信息和对比学习损失信息的权重以加快推荐模型的收敛速度,提高推荐模型的性能。
进一步地,所述基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重,包括:根据以下公式,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重:
Figure BDA0003751990810000142
Figure BDA0003751990810000143
其中,θn+1为在第n+1轮迭代中对比学习损失信息的权重,θn为在第n轮迭代中对比学习损失信息的权重,θ的初始值设置为0,α为学习率超参数,λ为比例换算因子,
Figure BDA0003751990810000144
Figure BDA0003751990810000145
分别表示在第n+1轮迭代中所确定的完形填空任务损失信息和对比学习损失信息。
在计算θn+1时切断了
Figure BDA0003751990810000146
Figure BDA0003751990810000147
的梯度以免影响正常的反向传播过程。基于此,所述在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息,包括:根据以下公式,在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息:
Figure BDA0003751990810000151
其中,
Figure BDA0003751990810000152
表示在第n+1轮迭代中的联合损失信息。
可以对训练过程设置终止条件,当达到终止条件,即可以结束训练过程。终止条件可以是训练达到最大迭代次数,或者训练集的预测准确率达到所设定的阈值。本发明实施例对此不做具体限定。
训练完成的推荐模型可以用于向目标用户推荐目标对象。
综上所述,本发明实施例提供了一种基于双向Transformers的推荐模型的训练方法,首先获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列,对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列,之后将所述多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示,再基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息,基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息,最后根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。基于该训练方法,其针对每个用户的历史交互序列中的对象进行随机遮蔽,生成遮蔽序列,将多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,基于双向Transformers的推荐模型可以从两个方向对序列中的对象进行建模,并可以从两个方向融合上下文信息,结合完形填空任务和对比学习方法对推荐模型进行训练,可以提升推荐模型的鲁棒性和抗噪音性能,提高对于目标用户进行对象推荐的准确性。
图3为本发明一个实施例提供的基于双向Transformers的推荐模型的推荐方法的流程图,由具有处理能力的系统、服务端设备或基于四元数图卷积神经网络的推荐装置执行。该方法包括:
步骤310,从所述的多个用户的历史交互序列中获取目标用户的历史交互序列。
本发明实施例从前述实施例中用户集合
Figure BDA0003751990810000161
中选取一个用户作为目标用户,针对该目标用户进行目标对象的推荐。
步骤320,将所述目标用户的历史交互序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
这里,训练完成的推荐模型为根据前述实施例所提供的训练方法训练得到的推荐模型。
具体地,可以将遮蔽标志[遮蔽]添加在目标用户的历史交互序列的末尾,添加完遮蔽标志的序列为:
Figure BDA0003751990810000162
再将序列输入至训练完成的推荐模型,由推荐模型预测序列的下一个物品,并将该物品作为目标对象推荐给目标用户。
在一些实施例中,若目标用户的历史交互序列等于第二预设长度,可以不采用滑动窗口对目标用户的历史交互序列进行划分处理,在该历史交互序列的最后一个位置添加遮蔽标志[遮蔽]后,输入至推荐模型中,进行目标用户所交互的下一个目标对象的预测和推荐。
在一些实施例中,若目标用户的历史交互序列小于第二预设长度,可以不采用滑动窗口对目标用户的历史交互序列进行划分处理,而在该历史交互序列的前面若干位置添加“0”,使该历史交互序列的长度达到第二预设长度,再在最后一个位置添加遮蔽标志[遮蔽],输入至推荐模型中,进行目标用户所交互的下一个目标对象的预测和推荐。
在另一些实施例中,若所述目标用户的历史交互序列的长度超过第二预设长度,采用所述第二预设长度的滑动窗口扫描所述目标用户的历史交互序列,从所述目标用户的历史交互序列选取最后一段目标子序列;之后,将所述目标用户的最后一段目标子序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
其中,第二预设长度可以根据推荐模型的最大序列长度进行设置。具体地,将推荐模型的最大序列长度设定为T,则可以将第二预设长度设定为T-1。即,当目标用户的历史交互序列长度超过T-1,则采用滑动窗口选取该历史交互序列中的最后一段长度为T-1的目标子序列。这里,在将该目标子序列输入至训练完成的推荐模型之前,还在该目标子序列的最后一个位置添加遮蔽标志[遮蔽],因此,向训练完成的推荐模型的输入的序列的实际长度仍然为T。
需要说明的是,当需要预测目标用户所交互的下面几个目标对象时,可以根据所要预测的目标对象的个数,设置遮蔽标志的个数。但整体上,向训练完成的推荐模型输入的序列长度须与推荐模型的最大序列长度一致。
综上所述,本发明实施例提供了一种基于双向Transformers的推荐模型的推荐方法,首先从所述的多个用户的历史交互序列中获取目标用户的历史交互序列,之后将所述目标用户的历史交互序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。基于该方法,可以提高向目标用户推荐目标对象的准确性。
以下提供一个具体的实施场景,以进一步说明本发明实施例提供的基于双向Transformers的推荐模型的训练方法。
图2为本发明实施例提供的基于双向Transformers的推荐模型的示意图。结合图2,对本发明实施例中基于双向Transformers的推荐模型的训练方法进行说明。
定义
Figure BDA0003751990810000171
为用户集合,
Figure BDA0003751990810000172
为物品集合,
Figure BDA0003751990810000173
为用户按照交互时间排序的交互序列,其中
Figure BDA0003751990810000174
为用户在第个时间戳所交互的物品。序列推荐的任务就是预测用户下一个可能感兴趣的物品,并且可以被形式化定义为用户生成在下一个时间戳可能交互的所有物品的概率:
Figure BDA0003751990810000181
将用户集合中用户的历史交互序列输入至基于双向Transformers的推荐模型中,对推荐模型进行训练。对于每一步迭代,给定序列su,执行随机完形填空任务遮蔽,使用不同随机数种子生成m个遮蔽序列
Figure BDA0003751990810000182
在每个遮蔽序列中,序列的所有物品中比例为ρ的物品将会被随机地用遮蔽标志[遮蔽]替换,遮蔽的物品位置下标集合表示为
Figure BDA0003751990810000183
图2中,用户的历史交互序列表示为{v1,v2,v3,…vT,},对用户的历史交互序列进行随机完形填空任务遮蔽,生成了m个遮蔽序列
Figure BDA0003751990810000184
例如,第2个遮蔽序列中第2个物品和第T个物品被遮蔽。
本发明实施例所采用的基于双向Transformers的推荐模型包括基本模块和双向Transformers模块两部分。
在基本模块中,其嵌入层由一个物品嵌入矩阵
Figure BDA0003751990810000185
和位置嵌入矩阵
Figure BDA0003751990810000186
组合而成。对于任一个遮蔽序列中的物品,其嵌入向量
Figure BDA0003751990810000187
计算方式如下:
Figure BDA0003751990810000188
其中ei∈E,pt∈P分别表示物品的初始向量和物品在用户的历史交互序列su中的位置t的嵌入向量,其中,i表示物品在全部用户的物品集合
Figure BDA0003751990810000189
中的编号。
经过嵌入层后,对于任一个遮蔽序列,将该遮蔽序列中的全部物品的嵌入向量堆叠形成矩阵
Figure BDA00037519908100001810
作为整个遮蔽序列的表示,即
Figure BDA00037519908100001811
将H0输入至经过L层的双向Transformers模块进行处理,计算公式如下:
Figure BDA00037519908100001812
双向Transformers模块由多个Transformer模块堆叠而成,每个Transformer模块包括一个多头自注意力模块和前向传播网络,多个Transformer模块堆叠组成一个深度网络。
多头自注意力模块能够从多个不同的子空间捕获上下文信息。给定第l层隐藏向量表示
Figure BDA00037519908100001813
以及最大序列长度T。多头自注意力模块的计算公式如下:
MH(Hl)=concat(head1;head2;…;headh)WO
Figure BDA0003751990810000191
其中,MH(Hl)表示第1层双向Transformers模块中多头自注意力模块的输出,headi表示第1层双向Transformers模块中第i个多头自注意力模块的输出,
Figure BDA0003751990810000192
是可学习参数。
其中,多头自注意力模块的注意力机制由点积和softmax操作实现:
Figure BDA0003751990810000193
其中Q,K,V各代表查询、键和值,
Figure BDA0003751990810000194
是比例系数以避免内积值过大。
前向传播网络的计算公式如下:
Figure BDA0003751990810000195
Figure BDA0003751990810000196
其中,PFFN(Hl)表示第1层双向Transformers模块中前向传播网络的输出,
Figure BDA0003751990810000197
为任一个遮蔽序列中物品经过第1层双向Transformers模块处理后的隐藏向量表示,
Figure BDA0003751990810000198
是可学习参数。
在本发明实施例所提供的基于多个Transformer模块的推荐模型中,还引入包括残差连接、层正则化以及Dropout机制来避免模型过拟合。Transformer编码器Trm定义如下:
Trm(Hl)=LayerNorm(Fl+Dropout(PFFN(Fl)))
Fl=LayerNorm(Hl+Dropout(MH(Hl)))。
经过L层的双向Transformers模块的处理后,输出用户中任一个遮蔽序列的位置t的物品隐藏向量表示输ht。这里,可以得到每个遮蔽序列中每个物品的隐藏向量表示,包括被遮蔽物品的隐藏向量表示和未被遮蔽物品的隐藏向量表示。对于任一个遮蔽序列,可以预测出该遮蔽序列中被遮蔽物品,并根据所预测的被遮蔽物品的隐藏向量表示计算出该被遮蔽物品属于真实物品的概率,该被遮蔽物品可以称为来自于物品集合的候选物品。如图2所示,经过L层的双向Transformers模块的处理,给出了被遮蔽物品的向量表示,例如得到了第2个遮蔽序列中第2个和第T个被遮蔽物品的向量表示h2,2和hT,2
采用一个线性层将任一个遮蔽序列中物品的隐藏向量表示ht转化为该物品属于真实物品的P(v),其计算公式如下:
P(υ)=WPht+bP
其中,
Figure BDA0003751990810000201
是权重矩阵,
Figure BDA0003751990810000202
是偏置矩阵。如图2所示,将所预测的被遮蔽物品的隐藏向量表示输入至预测层,从而计算所预测的每个被遮蔽物品属于真实物品的概率。例如,将第2个遮蔽序列中第2个和第T个被遮蔽物品的向量表示h2,2和hT,2输入至预测层,可以得到第2个和第T个被遮蔽物品的概率。
之后,可以将用户的每个遮蔽序列中的物品(包括未被遮蔽的物品以及预测的被遮蔽物品)的向量表示拼接在一起,得到每个遮蔽序列的向量表示如图2所示,将用户的每个遮蔽序列中的物品的向量表示拼接,得到m个遮蔽序列的向量表示
Figure BDA0003751990810000203
接下来,确定完型填空任务损失信息和对比学习损失信息。
当存在N个用户,任一个用户的完形填空任务损失函数定义如下:
Figure BDA0003751990810000204
其中,将所预测的被遮蔽物品vt与从物品集合中随机采样的负样本
Figure BDA0003751990810000205
配对。
Figure BDA0003751990810000206
表示针对第u个用户的完形填空任务损失信息,σ表示sigmoid函数,P(·)表示概率,
Figure BDA0003751990810000207
表示所预测的第u个用户的第j个遮蔽序列中被遮蔽物品vt属于真实物品的概率,
Figure BDA0003751990810000208
表示从物品集合中随机采样的负样本
Figure BDA0003751990810000209
属于真实物品的概率,m表示第u个用户的遮蔽序列的个数。
则N个用户的完形填空任务损失函数定义如下:
Figure BDA00037519908100002010
对于任一个用户,可以将该用户的一对遮蔽序列的隐藏向量表示
Figure BDA00037519908100002011
视为一对正样本,而将来自其他用户的其他2(N-1)个遮蔽序列的隐藏向量表示视作负样本。基于上述设定,用户的一对样本对比学习损失函数定义如下:
Figure BDA0003751990810000211
其中,τ是温度超参数,余弦相似函数<φ1,φ2>=φ1 T·φ2/||φ1||·||φ2||被用作计算两个向量表示之间的相似度。
给定m个对应于遮蔽序列
Figure BDA0003751990810000212
的隐藏表示
Figure BDA0003751990810000213
可以将这些隐藏表示组合在一起作为正样本进行多对样本对比学习。多对样本对比学习损失函数定义如下:
Figure BDA0003751990810000214
其中,
Figure BDA0003751990810000215
是一个指示器函数,其值为1,当且仅当x≠y。
N个用户的多对样本对比学习损失函数定义如下:
Figure BDA0003751990810000216
根据以下公式,在每一轮迭代中,更新完型填空任务损失信息和对比学习损失信息的权重:
Figure BDA0003751990810000217
Figure BDA0003751990810000218
其中,θn+1为在第n+1轮迭代中对比学习损失信息的权重,θn为在第n轮迭代中对比学习损失信息的权重,θ的初始值设置为0,α为学习率超参数,λ为比例换算因子,
Figure BDA0003751990810000219
Figure BDA00037519908100002110
分别表示在第n+1轮迭代中所确定的完形填空任务损失信息和对比学习损失信息。
接下来,再根据以下公式,在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息:
Figure BDA00037519908100002111
其中,
Figure BDA00037519908100002112
表示在第n+1轮迭代中的联合损失信息。
当达到终止条件,即可以结束训练过程。终止条件可以是训练达到最大迭代次数,或者训练集的预测准确率达到所设定的阈值。
在上述对推荐模型的训练过程中,当用户集合中的用户个数大于N,可以将用户集合中的用户分成若干批次,分批次输入至推荐模型中进行训练。当某一个用户的历史交互序列的长度大于第一预设长度,该用户的历史序列长度被滑动窗口划分为若干子序列时,根据该用户的每个子序列生成多个遮蔽序列,然后将该用户的不同子序列以及相应的遮蔽序列分别划分至不同的批次中用于对推荐模型进行训练。
最后,从用户集合
Figure BDA0003751990810000221
中选取一个用户作为目标用户,将遮蔽标志[遮蔽]添加在目标用户的历史交互序列的末尾,添加完遮蔽标志的序列为:
Figure BDA0003751990810000222
再将该序列输入至训练完成的推荐模型,由推荐模型预测序列的下一个物品,并将该物品作为目标对象推荐给目标用户。其中,若目标用户的历史交互序列的长度超过第二预设长度,采用第二预设长度的滑动窗口扫描目标用户的历史交互序列,从目标用户的历史交互序列选取最后一段目标子序列,将目标用户的最后一段目标子序列输入至训练完成的推荐模型中进行处理,从多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
以下提供一个具体的实施场景,以进一步说明本发明实施例提供的基于双向Transformers的推荐模型的训练方法训练得到的推荐模型的推荐性能。
为了评估模型性能,在广泛使用的三个用于推荐的数据集上进行实验。数据集分别为Beauty、Toys以及ML-1M,数据集详细数据如表1所示。
表1数据集
Figure BDA0003751990810000223
本发明实施例采用上一个实施例所提供的训练方法对推荐模型进行训练。在该推荐模型中,隐藏层个数为256个,双向Transformers模块为2层,每层Transformers模块中多头自注意力模块中的头数(head个数)为2。训练过程中,训练数据分批次输入至推荐模型中,每个批次的训练数据为256个序列。训练完成后,分别从三个数据集中选取目标用户,由推荐模型向该目标用户推荐目标对象。
采用两个指标评估训练完成的推荐模型的性能,分别是HR@K和NDCG@K,K∈{5,10,20}。选用最新的对比学习序列推荐模型作为基准模型。具体的推荐性能如表2所示。
表2本发明实施例所训练完成的推荐模型以及对比模型的推荐性能
Figure BDA0003751990810000231
表2为本发明实施例所提供的基于双向Transformers的推荐模型简称为CBiT,其他模型作为对比模型。表2中第1列Metric为指标名称,最后一列Improv.为本发明实施例所提供的推荐模型相比于所选定的对比模型的推荐性能提升百分比,其中,为从全部的对比模型中选取在相应性指标中表现最优的一个对比模型作为计算推荐性能提升百分比的对比模型(在表2中用下划线进行指示)。例如,对于Beauty数据集,本发明实施例所提供的基于双向Transformers的推荐模型的HR@5为0.0637,在对比模型中DuoRec的HR@5表现最优,为0.0559,则根据本发明实施例提供的推荐模型与DuoRec的HR@5计算推荐性能提升百分比,为13.95%。根据表2可知,本发明实施例所提供的基于双向Transformers的推荐模型相比于表现最优的对比模型,其推荐性能均存在大幅度的提升。
在上述对比模型中,SGL为图自监督学习的推荐模型。根据表2可知,本发明实施例所提供的推荐模型的推荐性能相比于各对比模型,在三种数据集中的推荐性能均存在大幅度的提升;与SGL相比,本发明实施例所提供的推荐模型的推荐性能也存在显著提升。
综上所述,本发明实施例所提供的基于双向Transformers的推荐模型的训练方法,其针对每个用户的历史交互序列中的对象进行随机遮蔽,生成遮蔽序列,将多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,基于双向Transformers的推荐模型可以从两个方向对序列中的对象进行建模,并可以从两个方向融合上下文信息,结合完形填空任务和多对样本对比学习方法对推荐模型进行训练,可以提升推荐模型的鲁棒性和抗噪音性能,提高对于目标用户进行对象推荐的准确性。
图4示出了本发明实施例提供的基于双向Transformers的推荐模型的训练装置的结构示意图。如图4所示,该基于双向Transformers的推荐模型的训练装置,包括:用户序列获取模块410,用于获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列;遮蔽序列生成模块420,用于对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列;向量表示生成模块430,用于将所述多个用户的全部遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中被遮蔽对象,得到每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示;完型填空任务损失信息确定模块440,用于基于预设的完型填空任务损失函数,根据每个用户的多个遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;对比学习损失信息确定模块450,用于基于预设的对比学习损失函数,根据所述多个用户的全部遮蔽序列的向量表示,确定对比学习损失信息;推荐模型训练模块460,用于根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
在一些实施例中,所述遮蔽序列生成模块,包括:
子序列划分单元,用于若所述多个用户中的任一个用户的历史交互序列的长度超过第一预设长度,采用所述第一预设长度的滑动窗口扫描相应用户的历史交互序列,将相应用户的历史交互序列划分为若干子序列;
遮蔽序列生成单元,用于对相应用户的每个子序列中的对象进行随机遮蔽,生成相应用户的每个子序列的多个不同的遮蔽序列。
在一些实施例中,所述完型填空任务损失信息确定模块,包括:
概率确定单元,用于根据每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示,确定每个用户的每个遮蔽序列中每个被遮蔽对象的概率,其中,所述每个用户的每个遮蔽序列中每个被遮蔽对象的概率为所预测的每个用户的每个遮蔽序列中每个被遮蔽对象属于每个用户的每个遮蔽序列中的真实对象的概率;
完型填空任务损失信息确定单元,用于基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的概率,确定完型填空任务损失信息。
在一些实施例中,所述对比学习损失信息确定模块,具体用于:
根据所述多个用户中相同用户的具有相同序列来源的不同遮蔽序列的向量表示之间的差异,以及不同用户的不同遮蔽序列的向量表示之间的差异,确定对比学习损失信息。
在一些实施例中,所述推荐模型训练模块,包括:
权重动态重估单元,用于基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重;
联合损失信息确定单元,用于在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息;
参数调整单元,用于根据每一轮迭代的联合损失信息,调整所述推荐模型的参数。
在一些实施例中,所述权重动态重估单元,具体用于:
根据以下公式,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重:
Figure BDA0003751990810000251
Figure BDA0003751990810000252
其中,θn+1为在第n+1轮迭代中对比学习损失信息的权重,θn为在第n轮迭代中对比学习损失信息的权重,θ的初始值设置为0,α为学习率超参数,λ为比例换算因子,
Figure BDA0003751990810000261
Figure BDA0003751990810000262
分别表示在第n+1轮迭代中所确定的完形填空任务损失信息和对比学习损失信息;
所述联合损失信息确定单元,具体用于:
根据以下公式,在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息:
Figure BDA0003751990810000263
其中,
Figure BDA0003751990810000264
表示在第n+1轮迭代中的联合损失信息。
图5示出了本发明实施例提供的基于双向Transformers的推荐模型的推荐装置的结构示意图。如图5所示,该基于双向Transformers的推荐模型的推荐装置,包括:目标用户序列获取模块510,用于从所述的多个用户的历史交互序列中获取目标用户的历史交互序列;目标对象推荐模块520,用于将所述目标用户的历史交互序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
在一些实施例中,所述装置还包括:
目标子序列选取模块,用于若所述目标用户的历史交互序列的长度超过第二预设长度,采用所述第二预设长度的滑动窗口扫描所述目标用户的历史交互序列,从所述目标用户的历史交互序列选取最后一段目标子序列;
所述目标对象推荐模块,具体用于:
将所述目标用户的最后一段目标子序列输入至训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
图6示出了本发明实施例的电子设备。如图6所示,电子设备600包括:至少一个处理器610,以及与至少一个处理器610通信连接的存储器620,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行的方法。
具体地,上述存储器620和处理器610经由总线630连接在一起,能够为通用的存储器和处理器,这里不做具体限定,当处理器610运行存储器620存储的计算机程序时,能够执行本发明实施例中结合图1至图3所描述的各项操作和功能。
在本发明实施例中,电子设备600可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、个人数字助理(PDA)、手持装置、消息收发设备、可佩带计算设备等等。
本发明实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时,实现的方法。具体实现可参见方法实施例,在此不再赘述。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该存储介质中的指令。从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的存储介质构成了本发明的一部分。
存储介质包括但不限于软盘、硬盘、磁光盘、光盘、磁带、非易失性存储卡和ROM。还可以通过通信网络从服务器计算机上或者云上下载程序代码。
需要说明的是,上述各流程和各系统结构中,不是所有的步骤和模块都是必须的,可以根据实际需要忽略某些步骤和单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中的描述的装置结构可以是物理结构,也可以是逻辑结构。某个模块或单元可能由同一物理实体实现,某个模块或单元可能由多个物理实体分别实现,某个模块或单元还可以由多个独立设备中的多个部件共同实现。
尽管本发明实施例的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明实施例的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明实施例并不限于特定的细节和这里示出与描述的图例。

Claims (10)

1.一种基于双向Transformers的推荐模型的训练方法,其特征在于,包括:
获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列;
对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列;
将所述多个用户的遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中的被遮蔽对象,得到所预测的每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示;
基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;
基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息;
根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
2.如权利要求1所述的基于双向Transformers的推荐模型的训练方法,其特征在于,所述对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列,包括:
若所述多个用户中的任一个用户的历史交互序列的长度超过第一预设长度,采用所述第一预设长度的滑动窗口扫描相应用户的历史交互序列,将相应用户的历史交互序列划分为若干子序列;
对相应用户的每个子序列中的对象进行随机遮蔽,生成相应用户的每个子序列的多个不同的遮蔽序列。
3.如权利要求1所述的基于双向Transformers的推荐模型的训练方法,其特征在于,所述基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息,包括:
根据每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示,确定每个用户的每个遮蔽序列中每个被遮蔽对象的概率,其中,所述每个用户的每个遮蔽序列中每个被遮蔽对象的概率为所预测的每个用户的每个遮蔽序列中每个被遮蔽对象属于每个用户的每个遮蔽序列中的真实对象的概率;
基于预设的完型填空任务损失函数,根据所述多个用户的遮蔽序列中全部被遮蔽对象的概率,确定完型填空任务损失信息。
4.如权利要求1所述的基于双向Transformers的推荐模型的训练方法,其特征在于,所述基于预设的对比学习损失函数,根据所述多个用户的遮蔽序列的向量表示,确定对比学习损失信息,包括:
根据所述多个用户中相同用户的具有相同序列来源的不同遮蔽序列的向量表示之间的差异,以及不同用户的不同遮蔽序列的向量表示之间的差异,确定对比学习损失信息。
5.如权利要求1所述的基于双向Transformers的推荐模型的训练方法,其特征在于,所述根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型,包括:
基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重;
在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息;
根据每一轮迭代的联合损失信息,调整所述推荐模型的参数。
6.如权利要求5所述的基于双向Transformers的推荐模型的训练方法,其特征在于,所述基于预设的权重动态重估策略,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重,包括:
根据以下公式,在每一轮迭代中,更新所述完型填空任务损失信息和所述对比学习损失信息的权重:
Figure FDA0003751990800000021
Figure FDA0003751990800000022
其中,θn+1为在第n+1轮迭代中对比学习损失信息的权重,θn为在第n轮迭代中对比学习损失信息的权重,θ的初始值设置为0,α为学习率超参数,λ为比例换算因子,
Figure FDA0003751990800000031
Figure FDA0003751990800000032
分别表示在第n+1轮迭代中所确定的完形填空任务损失信息和对比学习损失信息;
所述在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息,包括:
根据以下公式,在每一轮迭代中,根据更新的所述完型填空任务损失信息和所述对比学习损失信息的权重,对每一轮迭代中确定的所述完型填空任务损失信息和所述对比学习损失信息进行加权求和,得到每一轮迭代中的联合损失信息:
Figure FDA0003751990800000033
其中,
Figure FDA0003751990800000034
表示在第n+1轮迭代中的联合损失信息。
7.一种基于双向Transformers的推荐模型的训练装置,其特征在于,包括:
用户序列获取模块,用于获取多个用户的历史交互序列;其中,每个用户的历史交互序列包括每个用户所交互的对象序列;
遮蔽序列生成模块,用于对每个用户的历史交互序列中的对象进行随机遮蔽,生成每个用户的多个不同的遮蔽序列;
向量表示生成模块,用于将所述多个用户的全部遮蔽序列输入至基于双向Transformers的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测每个用户的每个遮蔽序列中被遮蔽对象,得到每个用户的每个遮蔽序列中每个被遮蔽对象的向量表示以及每个用户的每个遮蔽序列的向量表示;
完型填空任务损失信息确定模块,用于基于预设的完型填空任务损失函数,根据每个用户的多个遮蔽序列中全部被遮蔽对象的向量表示,确定完型填空任务损失信息;
对比学习损失信息确定模块,用于基于预设的对比学习损失函数,根据所述多个用户的全部遮蔽序列的向量表示,确定对比学习损失信息;
推荐模型训练模块,用于根据所述完型填空任务损失信息和所述对比学习损失信息,训练所述推荐模型。
8.一种基于双向Transformers的推荐模型的推荐方法,其特征在于,包括:
从如权利要求1至6中任一项所述的多个用户的历史交互序列中获取目标用户的历史交互序列;
将所述目标用户的历史交互序列输入至如权利要求1至6中任一项训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
9.如权利要求8所述的基于双向Transformers的推荐模型的推荐方法,其特征在于,所述方法还包括:
若所述目标用户的历史交互序列的长度超过第二预设长度,采用所述第二预设长度的滑动窗口扫描所述目标用户的历史交互序列,从所述目标用户的历史交互序列选取最后一段目标子序列;
所述将所述目标用户的历史交互序列输入至如权利要求1至6中任一项训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐,包括:
将所述目标用户的最后一段目标子序列输入至如权利要求1至6中任一项训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
10.一种基于双向Transformers的推荐模型的推荐装置,其特征在于,包括:
目标用户序列获取模块,用于从如权利要求1至6中任一项所述的多个用户的历史交互序列中获取目标用户的历史交互序列;
目标对象推荐模块,用于将所述目标用户的历史交互序列输入至如权利要求1至6中任一项训练完成的推荐模型中进行处理,从所述多个用户所交互的全部对象中预测至少一个目标对象向所述目标用户进行推荐。
CN202210843571.6A 2022-07-18 2022-07-18 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法 Pending CN115221960A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210843571.6A CN115221960A (zh) 2022-07-18 2022-07-18 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210843571.6A CN115221960A (zh) 2022-07-18 2022-07-18 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法

Publications (1)

Publication Number Publication Date
CN115221960A true CN115221960A (zh) 2022-10-21

Family

ID=83612318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210843571.6A Pending CN115221960A (zh) 2022-07-18 2022-07-18 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法

Country Status (1)

Country Link
CN (1) CN115221960A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150508A (zh) * 2023-04-23 2023-05-23 江苏亿友慧云软件股份有限公司 一种基于对比学习的物品推荐方法、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116150508A (zh) * 2023-04-23 2023-05-23 江苏亿友慧云软件股份有限公司 一种基于对比学习的物品推荐方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109522942B (zh) 一种图像分类方法、装置、终端设备和存储介质
CN110210513B (zh) 数据分类方法、装置及终端设备
CN113222700B (zh) 基于会话的推荐方法及装置
CN117113969A (zh) 非结构化文本的机器理解
KR20210125590A (ko) 해싱-기반의 효과적인 사용자 모델링
CN111178458A (zh) 分类模型的训练、对象分类方法及装置
CN111461175B (zh) 自注意与协同注意机制的标签推荐模型构建方法及装置
CN111753209A (zh) 一种基于改进时序卷积网络的序列推荐列表生成方法
CN112258262A (zh) 一种基于卷积自注意力网络的会话推荐方法
CN115605876A (zh) 边消息传递神经网络
CN116822651A (zh) 基于增量学习的大模型参数微调方法、装置、设备及介质
CN111027681B (zh) 时序数据处理模型训练方法、数据处理方法、装置及存储介质
CN115797818A (zh) 视频时序动作提名生成方法及系统
Gu et al. Multitask coupled logistic regression and its fast implementation for large multitask datasets
CN113609388A (zh) 基于反事实用户行为序列生成的序列推荐方法
CN115221960A (zh) 基于双向Transformers的推荐模型的训练方法、训练装置和推荐方法
CN113656699B (zh) 用户特征向量确定方法、相关设备及介质
CN115565177A (zh) 文字识别模型训练、文字识别方法、装置、设备及介质
CN111161238A (zh) 图像质量评价方法及装置、电子设备、存储介质
Xu et al. A multi-task learning-based generative adversarial network for red tide multivariate time series imputation
KR102457893B1 (ko) 딥러닝 기반의 강수량 예측 방법
CN110377822A (zh) 用于网络表征学习的方法、装置及电子设备
CN115760270A (zh) 一种基于知识图谱的新颖性增强推荐方法
CN115659059A (zh) 基于图对比学习的推荐模型训练方法和装置
CN115544379A (zh) 基于四元数图卷积神经网络的推荐方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination