一种基于陆地移动距离进行知识蒸馏的序列推荐方法与流程

文档序号:24307178发布日期:2021-03-17 01:00阅读:128来源:国知局
一种基于陆地移动距离进行知识蒸馏的序列推荐方法与流程

本发明涉及序列推荐技术领域,更具体地,涉及一种基于陆地移动距离进行知识蒸馏的序列推荐方法。



背景技术:

推荐系统是近年来发展十分繁荣的领域,因其广阔的应用场景以及巨大的商业价值而备受瞩目,其定义为利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程,而个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐感兴趣的信息和商品。序列推荐系统是推荐系统中的一个重要分支,其目的是通过分析用户的历史浏览序列,对用户进行精准推荐,一直是学术界和工业界关注的热点研究问题。

目前,序列推荐系统已经借力深度学习技术实现了飞速发展,利用深度神经网络强大的特征抽取以及特征建模能力,可以充分建模用户喜好表征,从而为用户提供精准的推荐服务。

以常用的序列推荐模型nextitnet为例,其结合了空洞卷积神经网络以及残差网络,能够较好地对用户历史浏览序列进行建模,从而更好地为用户提供推荐服务,在序列推荐系统中发挥出优异的效果。

nextitnet的模型结构如图1所示,其总体上由多个结构相同的空洞卷积残差块堆叠而成,将用户历史浏览序列输入整个网络,进行建模,在通过最后一个空洞卷积残差块后,得到用户喜好表征,最后再通过一个softmax分类器,预测下一时刻向用户进行推荐的项(item)。

nextitnet中空洞卷积残差块的输出表示为:

xl+1=xl+f(xl)

即每个空洞卷积残差块的输出xl+1为输入xl加上本残差块处理后的结果f(xl)。f(xl)处理过程为依次输入空洞卷积层1(dilatedconv1)、层归一化层1(layernorm1)、relu激活层1(relu1)、空洞卷积层2(dilatedconv2)、层归一化层2(layernorm2)和relu激活层2(relu2)处理后输出。

现有技术的缺点主要是在进行推荐服务时,模型参数量大,推断时间较长,难以满足在现实世界中的需求。nextitnet需要堆叠大量的空洞卷积残差块才能发挥出更佳的效果,导致模型参数量巨大,而且针对每个输入的用户历史浏览序列都需要经过完整的模型才能完成输出预测,这样将训练好的模型部署于实际应用时较为困难,计算开销大,在进行推断时花费时间也较长,难以满足用户的实际需求。



技术实现要素:

本发明的目的是克服上述现有技术的缺陷,提供一种基于陆地移动距离(emd,earthmover’sdistance)进行知识蒸馏的序列推荐方法,通过将教师模型的知识蒸馏到学生模型来减小模型参数规模且不损失模型精度,从而加速了序列推断过程。

根据提供一种基于陆地移动距离进行知识蒸馏的序列推荐方法。该方法包括以下步骤:

构建教师模型和对应的学生模型,其中教师模型和学生模型包括embedding输入层、由空洞卷积残差块堆叠的中间隐藏层以及分类输出层,并且教师模型相对于学生模型包含较多的中间隐藏层;

利用训练数据以设定的损失函数为目标训练教师模型,获得预训练教师模型;

固定所述预训练教师模型的参数,加入学生模型进行协同训练,仅优化学生模型参数,以将所述预训练教师模型的知识蒸馏到学生模型中,其中在知识蒸馏过程中,利用陆地移动距离自适应地学习所述预训练教师模型的中间隐藏层和学生模型的中间隐藏层之间多对多的映射关系;

利用经训练的学生模型,以用户历史浏览序列作为输入,为用户提供序列推荐服务。

与现有技术相比,本发明的优点在于,所提供的基于emd距离的序列推荐知识蒸馏方法,将一个大模型(教师模型)的知识很好地蒸馏到小模型(学生模型)当中,并且中间隐藏层的蒸馏过程中利用emd距离来较好地衡量出教师模型和学生模型之间的差异,自适应地完成隐藏层之间多对多的映射,避免了人为指定层次映射关系带来的信息丢失以及信息误导,从而能够显著减小模型参数规模且不损失模型精度,加速推断,在实际应用中为用户提供快速而准确的推荐服务,具有十分重要的现实意义和广阔的应用前景。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1根据现有的nextitnet模型结构示意图;

图2是根据本发明一个实施例的基于emd距离进行知识蒸馏的序列推荐方法的流程图;

图3是根据本发明一个实施例的教师模型和学生模型的知识蒸馏过程示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

简言之,本发明提出的基于emd距离进行知识蒸馏的序列推荐方法,其整体过程包括:训练教师模型,用于指导学生模型的学习过程;利用教师模型引导学生模型进行训练学习,从而将教师模型学习到的知识蒸馏到学生模型;利用学生模型来部署后续的序列推荐应用。在下文中,将以nextitnet的模型结构为例进行介绍,其中教师模型和学生模型包括embedding输入层(嵌入层)、由空洞卷积残差块堆叠的中间隐藏层以及分类输出层,并且教师模型相对于学生模型包含较多的中间隐藏层。

具体地,参见图2所示,该实施例提供的基于emd距离进行知识蒸馏的序列推荐方法包括以下步骤。

步骤s210,以设定的损失函数为目标训练教师模型,获得预训练教师模型。

首先,需要预训练出一个效果良好的教师模型,以能够有效地指导后续学生模型的训练。

以序列推荐模型nextitnet为例,构建的教师模型总体上由embedding输入层、n个结构相同的空洞卷积残差块堆叠的中间隐藏层以及最后的分类softmax输出层组成,其中将两个空洞卷积层包装为一个空洞卷积残差块。为了使得教师模型有更强的特征表征能力,需要堆叠更多的空洞卷积残差块。在预训练过程中将数据集中的用户历史浏览序列输入进整个网络,进行建模,得到用户喜好表征,从而在下一时刻为用户进行精准推荐。

例如,在教师模型的训练过程中,输入为用户的历史浏览序列,输出为下一时刻向用户进行推荐的项(item),损失函数为正确item与预测item之间的交叉熵。总损失lpretrain计算为:

其中为正确item标签,yi为预测item标签,t为训练样本总数。

步骤s220,固定预训练教师模型的参数,加入学生模型进行协同训练,仅优化学生模型参数,以将预训练教师模型的知识蒸馏到学生模型。

在步骤s210的预训练阶段完成后,尽管教师模型已经能够实现较高的推荐准确率,但由于其模型规模庞大,参数量繁多,推断时间较长,难以满足在现实世界中的需求,需要对教师模型进行知识蒸馏,将教师模型学到的知识很好地蒸馏到学生模型当中,减小模型规模,加速推断,并且不降低模型准确率,较好地完成推荐服务。

学生模型同样采用nextitnet模型结构,模型总体上由embedding输入层、m个结构相同的空洞卷积残差块堆叠的中间隐藏层以及最后的softmax输出层组成,其中将两个空洞卷积层包装为一个空洞卷积残差块,与教师模型不同之处在于,学生模型需要堆叠的空洞卷积残差块数量m将远远小于教师模型需要堆叠的空洞卷积残差块数量n。

在此步骤s220中,利用预训练教师模型,加入学生模型进行协同训练,通过知识蒸馏教师模型指导学生模型训练学习。

在一个实施例中,为了将教师模型的知识很好地蒸馏到学生模型当中,知识蒸馏的过程包括embedding输入层、中间隐藏层以及softmax输出层三部分的蒸馏。

例如,参见图3所示,其总体上包含预训练好的教师模型t和学生模型s两部分,在训练过程中固定教师模型t的参数,加入学生模型s进行协同训练,仅优化学生模型s的参数。整体知识蒸馏过程包括:

步骤s221,蒸馏embedding输入层

embedding输入层可以很好地将用户历史浏览序列x=(x1,x2,...,xn)转换成一个embedding矩阵e=[e1,e2,...,en],用来表示计算机能够理解的用户历史浏览序列的含义,矩阵中的每一列ei代表相应item的embedding向量。

embedding输入层蒸馏的目的是完成教师模型embedding矩阵et对于学生模型embedding矩阵es的知识蒸馏。

在一个实施例中,通过最小化均方误差(mse)来优化embedding输入层的蒸馏过程,损失lemb计算为:

lemb=mse(eswe,et)(2)

其中mse(·)代表均方误差计算,we为可学习的线性映射矩阵。

步骤s222,蒸馏中间隐藏层

中间隐藏层的知识蒸馏可以让学生模型更好地学习到教师模型的行为,但由于教师模型堆叠的空洞卷积残差块数量n和学生模型堆叠的空洞卷积残差块数量m不一致,如何完成不同层间的多对多映射就成为了一个关键问题。

在一个实施例中,提出利用emd(earthmover’sdistance)距离来较好地衡量出教师模型和学生模型之间的差异,从而自适应地完成隐藏层之间多对多的映射,避免了人为指定层次映射关系带来的信息丢失以及信息误导。

具体地,用代表教师模型中间隐藏层不同层间的输出,代表学生模型中间隐藏层不同层间的输出,其中n和m分别代表教师模型和学生模型堆叠的空洞卷积残差块数量,代表教师模型第j个中间隐藏层的输出向量,其权重系数由表示,初始化均为并在训练过程中优化该权重系数。同样地,代表学生模型第i个中间隐藏层的输出向量,其权重系数由表示,初始化均为并在训练过程中可以得到优化。定义一个陆地移动距离矩阵或称地面距离矩阵其中表示从教师模型第j个中间隐藏层的输出向量转移到学生模型第i个中间隐藏层的输出向量的距离。

在一个实施例中,利用均方误差(mse)来计算距离表示为:

其中,wh为可学习的线性映射矩阵。

此外,还定义一个映射转移矩阵其中表示从教师模型第j个中间隐藏层的输出向量转移到学生模型第i个中间隐藏层的输出向量的映射转移量。因此,教师模型和学生模型的中间隐藏层间的整体转移损失可以计算为:

对应以下约束条件:

上述优化问题可以通过线性规划方法来求解,在得到最佳映射转移矩阵后,可以定义emd(earthmover’sdistance)距离为:

最终,可以通过优化教师模型中间隐藏层输出矩阵ht与学生模型中间隐藏层输出矩阵hs之间的emd距离来进行中间隐藏层的知识蒸馏,中间隐藏层的知识蒸馏损失lhidden表示为:

lhidden=emd(hs,ht)(6)

综上,通过设计映射转移矩阵并利用emd距离来衡量教师模型和学生模型之间的差异,能够自适应地完成教师模型的中间隐藏层和学生模型的中间隐藏之间的多对多的映射关系,避免了人为指定层次映射关系带来的信息丢失以及信息误导,并且所设计的映射转移矩阵与emd距离相结合,保证了知识蒸馏过程的损失最小化,即保证了学生模型的精度。

步骤s223,蒸馏softmax输出层

在经过模型最后一个空洞卷积残差块后,再将输出向量z输入进一个softmax分类层,得到最终的item预测概率分布,完成item预测任务。

softmax输出层蒸馏的目的是使得学生模型的最终item预测概率分布与教师模型的最终item预测概率分布相接近,从而学习到教师模型的预测行为。

在一个实施例中,通过最小化学生模型的最终item预测概率分布与教师模型的最终item预测概率分布之间的交叉熵来优化softmax输出层的蒸馏过程,蒸馏损失lpred表示为:

lpred=-softmax(zt)·log(softmax(zs/t))(7)

其中zt代表教师模型最后一个空洞卷积残差块的输出向量,zs代表学生模型最后一个空洞卷积残差块的输出向量,t用于控制学生模型输出向量的变化范围。在实际应用中,通过设置合适的t值能够控制训练学生模型的收敛速度和预测精确度。

通过以上embedding输入层、中间隐藏层以及softmax输出层三部分的知识蒸馏,可以很好地将教师模型学到的知识蒸馏到学生模型当中,整个知识蒸馏过程的总损失ldistill为:

ldistill=lemb+lhidden+lpred(8)

上述利用训练数据对整个知识蒸馏模型进行训练,直至模型收敛,可以得到一个模型规模小、参数量少、效果良好的学生模型,供后续部署使用。

步骤s230,利用经训练的学生模型,以给定用户的历史浏览序列作为输入,为用户提供序列推荐服务。

在实际应用中,进行序列推荐相当于模型的一次测试过程,本发明利用最终训练好的学生模型来进行推荐服务。当给定用户的历史浏览序列,通过已经训练好的学生模型,找出下一时刻用户最可能感兴趣的item,向用户提供快速而准确的推荐服务。

根据本发明获得的学生模型在部署序列推荐系统实际应用时能够做到模型规模小,参数量少,推断时间短,并且能够保证较高的模型准确率,可以较好地满足用户需求,具有十分重要的现实意义和广阔的应用前景。例如,利用本发明可以根据用户的属性(如性别、年龄、学历、地域、职业),以及用户在系统里过去的行为(例如浏览、点击、搜索、购买、收藏等),为其推荐可能感兴趣的物品。

进一步地,为了验证本发明所提出方法的有效性及先进性,在序列推荐系统领域公开数据集movielens上进行了广泛的实验。实验结果表明,本发明所提出的基于emd距离进行知识蒸馏的序列推荐方法在模型参数量、推断时间以及模型性能上都达到了当前最好效果,能够为用户提供快速而准确的推荐服务,非常适合部署应用于序列推荐系统中,具有十分重要的现实意义和广阔的应用前景。

综上所述,本发明通过embedding输入层、中间隐藏层以及softmax输出层三部分的蒸馏,并在中间隐藏层的蒸馏中利用emd距离来衡量出教师模型和学生模型之间的差异,从而自适应地完成隐藏层之间多对多的映射,避免了人为指定层次映射关系带来的信息丢失以及信息误导。

应理解的,在不违背本发明精神和范围的情况下,本领域技术人员可对上述实施例进行适当变型或改变。例如,可仅对中间隐藏层进行蒸馏,或者仅对中间隐藏层和softmax输出层进行知识蒸馏。例如,对于nextitnet模型之外的其他序列推荐模型,本发明提出的基于emd距离进行知识蒸馏的方法同样适用。此外,训练过程中涉及的损失也可以采用平方损失或指数损失来衡量,本发明对此不作限制。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1