首页> 中国专利> 序列推荐模型的训练方法、信息推荐方法及相关装置

序列推荐模型的训练方法、信息推荐方法及相关装置

摘要

本申请公开了一种序列推荐模型的训练方法、信息推荐方法及相关装置,该训练方法包括:获取第一序列推荐模型;对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型;对第二序列推荐模型进行训练;将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。通过这样的方式,能够提升序列推荐模型的训练速度,并提高模型的预测效率。

著录项

  • 公开/公告号CN112559861A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 中国科学院深圳先进技术研究院;

    申请/专利号CN202011459776.1

  • 申请日2020-12-11

  • 分类号G06F16/9535(20190101);G06N3/04(20060101);

  • 代理机构44280 深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人黎坚怡

  • 地址 518055 广东省深圳市南山区深圳大学城学苑大道1068号

  • 入库时间 2023-06-19 10:24:22

说明书

技术领域

本申请涉及计算机技术领域,特别是涉及一种序列推荐模型的训练方法、信息推荐方法及相关装置。

背景技术

在信息爆炸的时代,推荐系统已成为缓解信息过载问题的重要工具,在电商系统、个性化平台等实际应用中广泛使用,近年来,序列推荐算法吸引了越来越多的关注,因为序列推荐算法相比于传统的协同过滤算法,具有更强大的捕获用户动态兴趣变化的能力,而且序列推荐模型可以通过自监督的方式来训练,不需要人工标注特征和标签,因此可以被用来生成高质量的用户表示,用于解决其他系统的冷启动问题。

尽管序列推荐模型很有效,但它往往需要很深的神经网络结构以实现较大的模型容量,来对用户行为中的复杂关系和长程兴趣进行建模。训练一个很深的神经网络,要求高昂的计算成本和很长的训练时间,特别是在真实的推荐系统中,训练数据可能达到数百亿,需要大量的计算资源和时间成本。

发明内容

为了解决上述问题,本申请提供一种序列推荐模型的训练方法、信息推荐方法及相关装置,能够提升序列推荐模型的训练速度,并提高模型的预测效率。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种序列推荐模型的训练方法,该方法包括:获取第一序列推荐模型;对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型;对第二序列推荐模型进行训练;将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。

其中,对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型,包括:对第一序列推荐模型中的多个初始块进行复制,得到多个复制块;将多个复制块与多个初始块进行堆叠,得到第二序列推荐模型。

其中,将多个复制块与多个初始块进行堆叠,包括:将每一复制块堆叠至对应的初始块上,以使对应的初始块和复制块相邻设置。

其中,将多个复制块与多个初始块进行堆叠,包括:将多个复制块整体堆叠至多个初始块上,以使多个复制块和多个初始块首尾相邻。

其中,获取第一序列推荐模型,包括:获取初始序列推荐模型和第一训练样本;利用第一训练样本对初始序列推荐模型进行训练,直至初始序列推荐模型收敛,得到第一序列推荐模型;对第二序列推荐模型进行训练,包括:获取第二训练样本;利用第二训练样本对第二序列推荐模型进行训练,直至第二序列推荐模型收敛;其中,第二训练样本包含第一训练样本。

其中,将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求,包括:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次对模型进行块复制和堆叠,以得到新的第二序列推荐模型;获取第三训练样本,并利用第三训练样本对新的第二序列推荐模型进行训练,直至新的第二序列推荐模型收敛,并在新的第二序列推荐模型未获取到新的训练样本时,完成序列推荐模型的训练;其中,第三训练样本包含第二训练样本。

其中,获取第一序列推荐模型,包括:获取初始序列推荐模型和第四训练样本;利用第四训练样本对初始序列推荐模型进行训练,直至初始序列推荐模型的训练步数满足第一预设步数,得到第一序列推荐模型;对第二序列推荐模型进行训练,包括:利用第四训练样本对第二序列推荐模型进行训练,直至第二序列推荐模型的训练步数满足第二预设步数;其中,第二预设步数大于第一预设步数。

其中,将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求,包括:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次对模型进行块复制和堆叠,以得到新的第二序列推荐模型;利用第四训练样本对新的第二序列推荐模型进行训练,直至新的第二序列推荐模型的训练步数满足第三预设步数,并在新的第二序列推荐模型中残差块的数量满足预设期望块数时,完成序列推荐模型的训练;其中,第三预设步数大于第二预设步数。

其中,将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求的步骤之后,还包括:获取随机初始化参数和目标训练样本;利用随机初始化参数对完成训练后的第二深层推荐模型中最后一层的参数进行置换;利用目标训练样本对置换后的第二深层推荐模型进行训练,直至第二深层推荐模型收敛,以得到目标深层推荐模型。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种信息推荐方法,该方法包括:获取用户的历史交互信息;将历史交互信息输入至如上述技术方案提供的方法训练得到的序列推荐模型,以得到推荐信息。

为解决上述技术问题,本申请采用的又一个技术方案是:提供一种电子设备,该电子设备包括处理器以及存储器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案提供的任意一种方法。

为解决上述技术问题,本申请采用的再一个技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序再被处理器执行时,用于实现上述技术方案提供的任意一种方法。

本申请实施例的有益效果是:区别于现有技术,本申请提供的一种序列推荐模型的训练方法,通过获取第一序列推荐模型,并对第一序列推荐模型进行块复制和堆叠,进一步对复制堆叠后得到的第二序列推荐模型进行训练,之后再次对训练完成的第二序列推荐模型执行上述复制、堆叠以及模型训练的操作,直至训练后的第二序列推荐模型满足预设要求,以完成序列推荐模型的训练。通过这样的方式,一方面,通过对残差块进行复制、堆叠的方式,进行一定程度的知识迁移,能够提升序列推荐模型的训练速度;另一方面,由于减小了序列推荐模型的训练时间,提高了模型的预测效率,并且保持一定的模型精度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请提供的序列推荐模型的训练方法一实施例的流程示意图;

图2是本申请提供的序列推荐模型的训练方法另一实施例的流程示意图;

图3是本申请提供的相邻块堆叠方式的示意图;

图4是本申请提供的交叉块堆叠方式的示意图;

图5是本申请提供的持续学习场景的模型训练示意图;

图6是本申请提供的序列推荐模型的训练方法又一实施例的流程示意图;

图7是本申请提供的序列推荐模型的训练方法再一实施例的流程示意图;

图8是本申请提供的信息推荐方法一实施例的流程示意图;

图9是本申请提供的电子设备一实施例的结构示意图;

图10是本申请提供的计算机可读存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

参阅图1,图1是本申请提供的序列推荐模型的训练方法一实施例的流程示意图,本实施例的方法具体包括:

S11:获取第一序列推荐模型。

其中,第一序列推荐模型是指对初始序列推荐模型进行少量的样本训练后,得到的一个相对浅层的模型,而初始序列推荐模型则是指进行训练之前的初始模型,在本实施例中主要包括NextItNet模型(Next item recommendation,使用空洞卷积和以自回归方式处理序列的模型)和SASRec模型(Self-attentive sequential recommendation,自注意力序列模型)等。

S12:对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型。

可以知道,每一个序列推荐模型是由多个残差块组成,通过对第一序列推荐模型中的每个残差块进行复制,然后采用相邻块堆叠或交叉块堆叠的方式,能够得到一个相较于第一序列推荐模型更深的深层模型,也即是第二序列推荐模型,实现了将浅层模型的参数迁移到深层模型的过程。

S13:对第二序列推荐模型进行训练。

在本实施例中,可以利用训练初始序列推荐模型得到第一序列推荐模型时,所使用的样本对第二序列推荐模型进行训练,也可以利用新获取的样本数据对第二序列推荐模型进行训练,以得到能够用来对实际应用中的交互信息进行预测的模型。其中,训练所使用的样本数据具体需要根据实际的推荐场景进行使用,在后续实施例会进行详细阐述。

可选地,由于第一序列推荐模型也是经过样本训练后得到的浅层模型,因此该浅层模型理论上也可以用来对实际应用中的交互信息进行预测,从而输出得到相应的推荐信息,例如输入用户已购买物品的相关记录至第一或第二序列推荐模型中,以得到模型预测输出的推荐信息,用于表示用户下一个可能购买的物品,但是,由于第一或第二序列推荐模型训练时的样本数据太少,或是训练次数太少,导致此时的第一或第二序列推荐模型的性能依然无法达到最优,此时模型预测信息的准确性通常无法得到保证。

S14:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。

由于第二序列推荐模型训练时的样本数据太少或是训练次数太少,导致目前还无法获得具有一定预测精度的序列推荐模型,因此为了提升模型性能,在本实施例中,需要继续对训练完成的第二序列推荐模型进行块复制、块堆叠以及模型训练的操作,而当多次复制、堆叠、训练后得到的第二序列推荐模型满足预设要求时,表明第二序列推荐模型已经从一个浅层模型堆叠训练为一个具有一定深度的深层模型,并且处于能够投入使用的状态,即表示模型已经达到最优性能。其中,在不同的推荐场景下,预设要求的具体内容也不同,在后续实施例中会进行详细阐述。

因此在本实施例中,通过循环地对完成当前训练的第二序列推荐模型执行块复制、块堆叠以及模型训练的操作,以得到一个具有一定深度和一定精度的序列推荐模型,而对模型中的残差块进行复制堆叠的方式,实现了有效的知识迁移,从而加速了模型的训练,相较于通常利用大规模样本数据对模型进行训练时,对数据资源和训练时间有较高要求的情况来说,堆叠残差块以快速获得深层模型的方式,解决了序列推荐模型训练时间长的问题,能够获得2倍-3倍的训练加速效果,并且保证了模型的预测精度,提高了模型的预测效率。

其中,本申请发明人通过对NextItNet模型和SASRec模型进行改进,以正式对堆叠残差块的方法具有切实的使用价值和可解释的理论依据,具体证明如下:

首先对NextItNet模型或SASRec模型的残差块添加一个可训练的权重,使得它们能够通过加深网络实现最优性能。公式如下:

其中,

在真实的推荐系统应用上,以NextItNet模型为例,NextItNet模型能够通过这个改进而堆叠到100层以上的深度,从而实现最优性能。同时,可视化一个训练好的NextItNet模型,可以发现它的各个残差块之间具有很高的相似度;具体来说,训练一个NextItNet模型,然后从测试集中随机挑选100条序列,计算出每个残差块的输入特征图和输出特征图的平均余弦相似度,可以发现,除了第一个残差块的相似度比较低,后续的其他残差块之间的相似度都高达90%,这是合理的,因为第一个残差块的输入是Embedding的特征图,受第一个残差块影响发生了较大的变化,而后残差块造成的影响越来越小。由此可见,序列推荐模型中各个残差块之间具有很高的相似度,因此可以通过堆叠残差块的方式,进行一定程度的知识迁移,从而使得序列推荐模型快速地达到其最优性能。

区别于现有技术,本实施例提供的一种序列推荐模型的训练方法,通过获取第一序列推荐模型,并对第一序列推荐模型进行块复制和堆叠,进一步对复制堆叠后得到的第二序列推荐模型进行训练,之后再次对训练完成的第二序列推荐模型执行上述复制、堆叠以及模型训练的操作,直至训练后的第二序列推荐模型满足预设要求,以完成序列推荐模型的训练。通过这样的方式,一方面,通过对残差块进行复制、堆叠的方式,进行一定程度的知识迁移,能够提升序列推荐模型的训练速度;另一方面,由于减小了序列推荐模型的训练时间,提高了模型的预测效率,并且保持一定的模型精度。

可选地,可以将上述训练方法应用至持续学习、从头开始训练以及迁移学习这三个常见的推荐场景中,已根据真实推荐系统应用,设计对应的算法流程以实现模型的训练。

参阅图2,图2是本申请提供的序列推荐模型的训练方法另一实施例的流程示意图,本实施例主要是介绍在持续学习场景下的序列推荐模型的训练方法,而在该场景下会持续产生新的样本数据,而在初始阶段,样本数据较少,随着推荐系统的使用,会收到越来越多的样本数据,因此需要建立一个更深层的模型,以达到更好的模型精度,但是常规训练方式下的训练速度过慢且时间长。

基于此,为解决上述场景中的问题,本实施例的方法具体包括:

S21:获取初始序列推荐模型和第一训练样本。

其中,初始序列推荐模型是指随机初始化后的NextItNet模型和SASRec模型,这两个模型是属于前沿的深度序列推荐模型,本实施例的方法主要是作用于这两个当前最佳的模型上进行训练的。

其中,第一训练样本是能够用于对初始序列推荐模型进行训练的样本数据,但在本实施例的持续学习场景中,一开始,序列推荐模型处于冷启动状态,因此这个阶段下所获取的第一训练样本是少量的。

S22:利用第一训练样本对初始序列推荐模型进行训练,直至初始序列推荐模型收敛,得到第一序列推荐模型。

其中,第一序列推荐模型是指对初始序列推荐模型进行少量的样本训练后,得到的一个相对浅层的模型。

在本实施例的持续学习场景中,在利用第一训练样本对第一序列推荐模型进行训练后,会将其上线以投入使用,而随着一端时间的积累,会收集获取到更多的样本数据,此时第一序列推荐模型的浅层网络结构容量不足,不再像以前的模型一样能够有效使用了,此时则需要一个更深并且更具表达能力的模型。基于此,本实施例采用如下的复制和堆叠操作,具体如下:

S23:对第一序列推荐模型中的多个初始块进行复制,得到多个复制块。

其中,多个初始块和多个复制块的数量相同,且每一初始块和对应每一复制块完全相同。

S24:将多个复制块与多个初始块进行堆叠,得到第二序列推荐模型。

可选地,在对第一序列推荐模型中的多个初始块复制后,可以采用相邻块堆叠或交叉块堆叠的方式将复制得到的复制块与初始块进行堆叠,以得到一个相较于第一序列推荐模型更深的深层模型。

在本实施例中,默认设置第一序列推荐模型中初始残差块的数量为2块,在其他实施例中可以根据实际情况设置为大于2块,但初始残差块的数量不能为1块,此时块复制和块堆叠的意义不大。

首先,以2块初始残差块为基础将第一序列推荐模型定义为:

其中,

可选地,对于相邻块堆叠的方式,如图3所示,图3左侧表示两个初始残差块(block),图3右侧则表示经过复制以及堆叠后的两个初始残差块以及两个复制残差块(block),而箭头的指向则表明初始残差块在堆叠后形成的第二序列推荐模型中所处的位置;从右侧更深层的模型中可以看出,相邻块堆叠的方式其实是将每一复制残差块堆叠至对应的初始残差块上,以使对应的初始残差块和复制残差块相邻设置,也即是图中右侧虚线所指向的两个残差块即为相对应的初始残差块和复制残差块。

其中,也可以将每一初始残差块堆叠至每一复制残差块上,只要能满足对应的初始残差块和复制残差块相邻设置即可。

可选地,采用相邻块堆叠方式所得到的第二序列推荐模型可以定义为:

从定义式可以看出,堆叠后形成的深层模型中,相对应的复制残差块和初始残差块是相邻设置,且整个深层模型中残差块的排列方式也和第一序列推荐模型中残差块的排列方式相同。可以理解的,本实施例的相邻块堆叠方式仅以两个初始块为例进行堆叠举例,可以根据实际需要做出设置改变,其原理与两个初始块的堆叠原理相同,在此不再赘述。

可选地,对于交叉块堆叠的方式,如图4所示,图4左侧表示两个初始残差块(block),图4右侧则表示经过复制以及堆叠后的两个初始残差块以及两个复制残差块(block),而箭头的指向则表明初始残差块在堆叠后形成的第二序列推荐模型中所处的位置;从右侧更深层的模型中可以看出,交叉块堆叠的方式其实是将两个复制残差块整体堆叠至两个初始残差块上,以使两个复制残差块与两个初始残差块首尾相邻,此时所有残差块中仅存在一个复制残差块和一个初始残差块为相邻设置,图中右侧虚线所指向的相对应的复制残差块和初始残差块之间,则间隔有初始残差块个数减一个数量的初始残差块,例如初始残差块为两块时,相对应的复制残差块和初始残差块之间就间隔有2-1=1个残差块,当初始残差块为三块时,相对应的复制残差块和初始残差块之间就间隔有3-1=2个残差块。

同样,也可以将两个初始残差块整体堆叠至两个复制残差块上,只要能两个复制残差块与两个初始残差块首尾相邻即可,也即是满足仅存在一个复制残差块和一个初始残差块相邻。

可选地,采用交叉块堆叠方式所得到的第二序列推荐模型可以定义为:

从定义式可以看出,堆叠后形成的深层模型中,相对应的复制残差块和初始残差块为间隔设置,两个复制残差块与两个初始残差块也是首尾相邻,且整个深层模型中残差块的排列方式也和第一序列推荐模型中残差块的排列方式相同。

可选地,在上述用到的堆叠操作中,本实施例的方法都将模型深度扩大到原来的两倍,而在实际应用中,可以根据工程需要,选择堆叠任意数量的层数,同样能达到训练加速效果,这充分体现了本实施例方法的灵活性和通用性。

S25:获取第二训练样本。

其中,第二训练样本为随着时间的推移,基于第一训练样本可以积累得到的具有更多数据的第二训练样本,也即是第二训练样本包含第一训练样本。

S26:利用第二训练样本对第二序列推荐模型进行训练,直至第二序列推荐模型收敛。

在本实施例的持续学习场景中,随着时间的积累,会收取得到更多的样本数据,为了使得当前的模型能够继续投入使用,需要一个更深层的模型,也即是通过上述块复制和堆叠所得到的第二序列推荐模型,此时新的模型中由于其连接发生了变化,为了使深层模型在实际应用中具有较好的性能,则需要利用新获取得到的第二训练样本对该深层模型进行训练,并训练至其收敛,以能够投入使用。

S27:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次对模型进行块复制和堆叠,以得到新的第二序列推荐模型。

S28:获取第三训练样本,并利用第三训练样本对新的第二序列推荐模型进行训练,直至新的第二序列推荐模型收敛,并在新的第二序列推荐模型未获取到新的训练样本时,完成序列推荐模型的训练。

在本实施例的持续学习场景中,由于随着模型的使用,会获取收集到越来越多的样本数据,为了使模型持续有效,则可以再次采用上述S23-S24的方法对模型的残差块进行复制和堆叠,以得到更深的深层模型,并且进一步利用新获取的第三训练样本对复制堆叠后的新的第二序列模型进行训练,直到模型训练至收敛,并且在未获取到新的训练样本时,以完成此次第三训练样本下的知识迁移。其中,第三训练样本包含第二训练样本。

需要说明的是,在本实施例中,以每一次获取到最新训练样本的时刻为标准,表示在当前时刻下不会获取到新的其他训练样本,以完成本次对模型的块复制、堆叠以及训练,并即时投入使用;而未获取到新的训练样本只是表示持续学习场景中某一时刻的状态,因为实际场景中会有新的样本数据产生。因此在持续学习场景中,序列推荐模型实际上是一个终身学习模型,每当有新的样本数据产生而需要设计一个新的模型时,能够进行知识迁移的方式加速模型的训练,使深层模型能够快速达到其最优性能。因此本实施例的方法步骤中,在利用第二训练样本将第二序列推荐模型训练至收敛时,本实施例的方法也可以视为执行完毕。

下面以一个持续学习场景下的模型训练示意图,进一步对本实施例的方法进行解释,参阅图5,图5中左侧可以理解为随着时间的发展,不断的会产生新的训练样本,以前的时间里(T-4、T-3)可能已经收集了一些样本(previously collected samples),组成了一个比较小的数据集(few samples dataset),然后当前时刻(T、T-1、T-2)又收集到了一批新的样本数据(current samples),把这批新的样本与之前收集好的样本进行合并,得到一个更大的数据集(more samples dataset),也即是当前时刻的训练样本。

例如假定训练样本的收集情况为N

下面再以一个算法流程表示持续学习场景中的迭代堆叠,以NextItNet模型为例:

输入:初始序列模型的初始残差块数量L、堆叠次数k以及训练样本N

输出:训练好的拥有2

第一步:

第二步:

第三步:for i 1 to k,重复执行步骤4和5,直到满足堆叠次数。

第四步:

第五步:

第六步:结束预设k次复制堆叠后,返回模型M

因此,本实施例所提供的序列推荐模型的训练方法,应用于持续学习场景下,在该场景持续产生新的样本数据的基础上,为了保证模型精度,而需要持续的训练更深的模型,因此通过块复制和堆叠的方式,实现知识迁移,加速了模型的训练,减少了训练时间,实现了一个终身学习模型的同时,并保持了模型精度。

参阅图6,图6是本申请提供的序列推荐模型的训练方法又一实施例的流程示意图,本实施例主要是介绍在从头开始训练场景下的序列推荐模型的训练方法,而在该场景下不会持续产生新的样本数据,也即是在这个场景下的样本数据是固定的,因此在这个场景下,根据样本数据的情况可以预先确定最终得到的序列推荐模型的块数(层数)或深度,从而进行深层模型的训练,但是常规训练方式下的训练速度过慢且时间长。

基于此,本实施例以模型至少需要训练多次为例进行说明,方法具体包括:

S61:获取初始序列推荐模型和第四训练样本。

其中,初始序列推荐模型是指随机初始化后的NextItNet模型和SASRec模型,这两个模型是属于前沿的深度序列推荐模型,本实施例的方法主要是作用于这两个当前最佳的模型上进行训练的。

其中,第四训练样本是能够用于对初始序列推荐模型进行训练的样本数据,在本实施例的从头开始训练场景中,一开始,用于训练模型的第四训练样本是全部样本数据,而非部分样本数据,与持续学习场景下用于训练初始模型的少量数据不同。

S62:利用第四训练样本对初始序列推荐模型进行训练,直至初始序列推荐模型的训练步数满足第一预设步数,得到第一序列推荐模型。

其中,第一序列推荐模型是指对初始序列推荐模型进行全部的样本训练后,得到的一个相对浅层的模型。

在本实施例的从头开始训练场景的训练过程中,可以根据实际经验预先知道一个模型训练至完全收敛所需要的大概步数,以作为收敛步数,而在对初始序列推荐模型训练时,由于利用的是全部数据进行训练,并且此次的训练对象不是最终的深层模型,为了避免后续训练过程中模型出现过拟合的问题,因此本实施的从头开始训练场景中,对浅层模型的训练步数可以为收敛步数的1/8-1/3步,例如此次训练的第一预设步数为2000步。

S63:对第一序列推荐模型中的多个初始块进行复制,得到多个复制块。

S64:将多个复制块与多个初始块进行堆叠,得到第二序列推荐模型。

其中,S63-S64与上述实施例S23-S24相类似,在此不做过多赘述。

S65:利用第四训练样本对第二序列推荐模型进行训练,直至第二序列推荐模型的训练步数满足第二预设步数。

其中,第二预设步数大于第一预设步数。

在本实施例的从头开始训练场景中,由于不会产生新的样本数据,在将模型训练至最终的序列推荐模型之前,所使用的训练样本都是相同的第四训练样本,并且为了避免出现过拟合,因此依然不能将模型训练至收敛,因此本实施例的场景中,由于已经复制堆叠得到了更深层的第二序列推荐模型,因此第二序列推荐模型的训练步数需要大于第一序列推荐模型的第一预设步数,例如此次训练的第二预设步数为3000步。

与持续学习场景不同的是,本实施例中的第二序列推荐模型只有在训练至收敛后,才能投入使用,而不能在进行了每一次的块复制、堆叠以及训练后进行使用。

S66:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次对模型进行块复制和堆叠,以得到新的第二序列推荐模型。

S67:利用第四训练样本对新的第二序列推荐模型进行训练,直至新的第二序列推荐模型的训练步数满足第三预设步数,并在新的第二序列推荐模型中残差块的数量满足预设期望块数时,完成序列推荐模型的训练。

其中,第三预设步数大于第二预设步数。

在本实施例中,以预设期望块数为8块为目标,并同样默认第一序列推荐模型中初始残差块的数量为2块,因此可以知道需要达到8块残差块,总共需要复制、堆叠以及训练的次数为2次,那么在将第二序列推荐模型作为新的第一序列推荐模型进行块复制和堆叠后,模型的块数已经达到了8块,此时已经满足了预设期望块数,因此,在S67的训练过程中,对含有8块残差块的新的第二序列推荐模型进行训练的训练步数,需要大于前述的第一预设步数以及第二预设步数,并且需要与前述实际经验所得的完全收敛的收敛步数相同,例如最后一次训练的第三预设步数为4000步,至此完成在从头开始训练场景下的序列推荐模型的训练。

因此在本实施例中的从头开始训练场景中,模型的训练加速主要来自于两个方面的原因,其一是由于训练浅模型若干步,而非训练至收敛,因此加快了训练的速度;其二是有效的知识迁移,能够加速深层模型的训练。

下面再以一个算法流程表示持续学习场景中的迭代堆叠,以NextItNet模型为例:

输入:预设期望块数2

输出:训练好的拥有2

第一步:

第二步:

第三步:for i 1 to k,重复执行步骤4和5,直到满足堆叠次数。

第四步:

第五步:

第六步:结束预设k次复制堆叠后,返回模型M

因此,本实施例所提供的序列推荐模型的训练方法,应用于从头开始训练场景,在该场景不会持续产生新的样本数据的基础上,为了提高模型的训练速度,一方面通过块复制和堆叠的方式,实现知识迁移,加速了模型的训练,减少了训练时间,另一方面在训练浅层模型时,设置的训练步数为收敛步数的若干步,因此能够进一步减少训练时间。

参阅图7,图7是本申请提供的序列推荐模型的训练方法再一实施例的流程示意图,本实施例主要是介绍在迁移学习场景下的序列推荐模型的训练方法,而该场景下的样本数据量相对较少,因此建立一个新的序列推荐模型较为困难,而此时已经存在一个成熟的预训练模型,预训练模型具有海量的数据,因此可以利用预训练模型的海量数据对新建立的模型进行训练,但是常规训练方式下的训练速度过慢且时间长。

基于此,为解决上述场景中的问题,本实施例的方法具体包括:

S71:获取第一序列推荐模型。

其中,第一序列推荐模型是指对初始序列推荐模型进行样本训练后,得到的一个相对浅层的模型,而在初始序列推荐模型训练过程中所使用的样本数据是来源于预训练模型中的海量数据,可以称为原数据。

由于预训练模型都是用海量的数据训练得到的,然后服务于各种各样的下游任务训练,得到这样一个预训练模型需要很长的训练时间,因此在本实施例中,可以采用上述实施例中的两种场景的方法对浅层模型进行训练,也即是可以利用持续学习场景的方法,也可以利用从头开始训练场景的方法来进行训练加速,但是由于训练数据固定,因此该场景下得到最终的序列推荐模型的层数(块数)可以提前确定。

S72:对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型。

S73:对第二序列推荐模型进行训练。

S74:将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。

在本实施例的S74之前,对序列推荐模型进行训练最终得到的第二序列推荐模型,实际上是已经成熟的预训练模型,因此通过前述两种场景下的训练方法,能够对预训练模型的训练进行加速:

例如以持续学习场景中的方法来加速多个阶段的模型训练,首先利用原数据的A1部分样本对初始序列推荐模型进行训练,得到一个浅层的第一序列推荐模型,然后进行块的复制和堆叠以得到一个深层模型,进一步增加样本,利用原数据的B1部分(包括A1)样本对这一深层模型进行训练,而后再将训练完成的深层模型作为新的第一序列推荐模型,重复执行上述的块复制和堆叠,以及利用原数据的C1、D1等部分样本对模型进行训练,直到模型的层数满足预设时,此时将模型训练至收敛,以完成对预训练模型的训练。

又例如以从头开始训练场景中的方法来加速多个阶段的模型训练,首先利用全部原数据对初始序列推荐模型进行训练,但训练步数为A2步至模型未收敛,得到一个浅层的第一序列推荐模型,然后进行块的复制和堆叠以得到一个深层模型,进一步继续利用全部原数据对深层模型进行训练,但训练步数为B2步(B2步大于A2步)至模型未收敛,而后再将训练完成的深层模型作为新的第一序列推荐模型,重复执行上述的块复制和堆叠,以及利用全部原数据对模型进行C2步、D2步等训练,直到模型的层数满足预设时,此时将模型训练至收敛,以完成对预训练模型的训练。

本实施例的方法,通过利用持续学习场景和从头开始训练场景中的方法,实现了对预训练模型(第二深层推荐模型)的训练加速,减少了训练时间,并且保证了一定的精度。

S75:获取随机初始化参数和目标训练样本。

其中,随机初始化参数是指一个随机数据的集合,能够用于将模型的某一层参数初始化;目标训练样本是指迁移学习场景下,原本需要用来训练新模型的样本数据。

S76:利用随机初始化参数对完成训练后的第二深层推荐模型中最后一层的参数进行置换。

S77:利用目标训练样本对置换后的第二深层推荐模型进行训练,直至第二深层推荐模型收敛,以得到目标深层推荐模型。

由于迁移学习场景下的样本数据量较少,因此前面的步骤中利用大量的原数据对模型进行了训练,但该模型并不具有目标训练样本对应所需要的特性,因此需要利用随机初始化参数对完成训练的第二深层推荐模型中最后一层(softmax层)的参数进行置换,而后再利用目标训练样本对置换后的模型进行训练,直至第二深层推荐模型收敛,以实现对第二深层推荐模型(预训练模型)的微调,从而得到目标深层推荐模型,也即是在迁移学习场景下最终所需要的序列推荐模型。因此实际上预训练模型和目标深层推荐模型的结构是相同的,区别仅在于最后一层的softmax层,以此实现模型的迁移学习。

在本实施例的迁移学习场景中,已经利用现有成熟模型的原数据以及两种场景下的训练方法,得到了预训练模型,加快了模型的在主要训练阶段的训练速度,最终再利用目标数据集对softmax层初始化后的模型进行微调,从而把得到的目标深层推荐模型应用到一个下游的任务上,这也就是迁移学习的过程。

在迁移学习场景的训练方法中,可以保证实现三点目标,第一是训练得到的预训练模型,由于堆叠残差块之间相似度较高的缘故,它的精度不会有损失;第二是最终利用目标训练样本得到的序列推荐模型,它的精度也不能有损失;第三是利用块复制和堆叠的方式能够加速预训练模型训练。

因此综合上述提出的多个实施例,本申请所提出的序列推荐模型的训练方法,根据推荐模型自身的特点,创新地使用了相邻块堆叠和交叉块堆叠这两种堆叠方式来实现知识迁移,弥补了序列推荐模型的训练效率研究空白,成功了解决现有方法中训练时间长的不足,不仅能获得略优于现有方法的精度,而且能获得2倍-3倍的训练加速效果,这对于训练数据达到数百亿的推荐系统来说,具有十分重要的意义。

同时本申请提出的方法具有通用性,可以简单地、直接地作用于任何基于残差块结构的序列推荐模型,并且,可以应用于持续学习、从头开始训练以及迁移学习这三个常见的推荐场景中,符合推荐系统技术的发展需求,具有一定的应用前景。

本申请发明人为了验证本申请所提出方法的有效性和先进性,对提出的序列推荐模型的训练方法,在三个真实推荐系统应用上进行了大量实验和消融分析,使用MRR(MeanReciprocal Rank,正确检索结果值)、HR(Hit Ratio,衡量召回率的指标)、NDCG(Normalized Discounted Cummulative Gain,衡量排序质量的指标)等常用评估指标,实验结果表明,序列推荐模型能够通过对残差块进行细微的改进而堆叠到100层以上的深度,从而实现最优性能;并且证明了序列推荐模型中各个残差块之间具有很高的相似度;本申请所提出的方法在持续学习、从头开始训练、迁移学习这三个常见的推荐场景中,始终有很好的表现,不仅能获得略优于当前最好方法的精度,而且能获得2倍-3倍的训练加速效果,展现出巨大的优越性,具有十分广阔的应用前景。

参阅图8,图8是本申请提供的信息推荐方法一实施例的流程示意图,本实施例的方法具体包括:

S81:获取用户的历史交互信息。

在一些实施例中,历史交互信息可以是显性数据,也可以是隐性数据,显性数据是指用户主动输入的数据,例如对app上内容的评论、点赞、转发、下载等,隐性数据是指用户的浏览历史、阅读时长、观看记录、搜索日志等,例如可以具体包括在视频推荐领域,这些历史交互信息可以是用户历史观看的视频信息。如视频类型,观看时长等;如在购物推荐领域,这些历史交互信息可以是用户历史观看的商品信息和购买的商品信息。如商品类型,购买数量。如,在音乐推荐领域,这些历史交互信息可以是用户历史播放的音乐信息。如音乐类型,播放时长等。

可以理解的,在获取历史交互信息后,需要进行一定的处理,以使该部分信息能够输入至模型进行处理,具体应为本领域所熟知,在此不再赘述。

S82:将历史交互信息输入至序列推荐模型,以得到推荐信息。

在一些实施例中,序列推荐模型可以是利用上述方法训练得到的模型,推荐信息是指预测出用户下一个可能进行的操作,在推荐模型中主要是指预测用户下一个可能交互的物品,例如通过购物app的历史购买情况、购物车以及商品浏览情况,从而预测下一个可能购买的物品,运用到终端时,则可以在终端上将该推荐信息对用户进行推送。还可以根据历史交互信息的不同,得到不同类型的推荐信息,并对用户进行推送。

区别于现有技术,本实施例提供的信息推荐方法,通过利用上述方法训练得到的网络模型,提高了模型的训练速度,并提高了模型的预测效率,提升用户体验。并且在用户的历史交互信息较少的情况下,使用上述方法训练得到的推荐模型来得到推荐信息,能够改善系统冷启动的问题,提高推荐信息的准确性。

参阅图9,图9是本申请提供的电子设备一实施例的结构示意图,本实施例的空调设备90包括处理器91和存储器92,处理器91与存储器92耦接,其中,存储器92用于存储处理器91执行的计算机程序,处理器91用于执行计算机程序以实现如下方法步骤:

获取第一序列推荐模型;对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型;对第二序列推荐模型进行训练;将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。

或,获取用户的历史交互信息;将所述历史交互信息输入至序列推荐模型,以得到推荐信息。

可以理解,处理器91还用于执行计算机程序,以实现上述任一实施例的方法。

参阅图10,图10是本申请提供的计算机可读存储介质一实施例的结构示意图。本实施例的计算机可读存储介质100用于存储计算机程序101,计算机程序101在被处理器执行时,用以实现如下方法步骤:

获取第一序列推荐模型;对第一序列推荐模型进行块复制和堆叠,得到第二序列推荐模型;对第二序列推荐模型进行训练;将训练后的第二序列推荐模型作为新的第一序列推荐模型,并再次执行上述步骤,直至训练后的第二序列推荐模型满足预设要求。

或,获取用户的历史交互信息;将所述历史交互信息输入至序列推荐模型,以得到推荐信息。

可以理解,计算机程序101在被处理器执行时,还用于实现上述任一实施例的方法。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号