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

一种推荐模型训练、推荐方法、装置、介质和设备与流程

2022-03-02 03:40:59 来源:中国专利 TAG:


1.本公开涉及互联网技术领域,特别涉及一种推荐模型训练、推荐方法、装置、介质和设备。


背景技术:

2.基于用户行为对应的对象序列的推荐模型越来越多地被应用于生产生活中。基于用户行为对应的对象序列的推荐模型旨在引入用户的历史行为,从而挖掘用户的偏好,进而根据这些偏好推荐更多用户感兴趣的对象。
3.用户行为对应的对象序列按照对应用户行为的时间长度,一般可以分为短期序列,中期序列和长期序列。其中,短期序列和中期序列数据量较小,被业界广泛使用。而长期序列由于数据量庞大,应用上难度较大。但也正是因为长期序列数据量庞大,其中蕴藏的有价值的信息也会更多,如果能够善加利用,则会显著提高推荐系统的推荐效果。
4.目前,在利用长期序列进行用户感兴趣的对象推荐时,为了训练方便和保证线上性能,需要对长期序列进行截取或采样,但这样显然会损失一定的序列信息,无法保证推荐系统的推荐效果。


技术实现要素:

5.本公开实施例提供一种推荐模型训练、推荐方法、装置、介质和设备,用于解决基于长期序列的推荐模型存在序列信息损失,推荐效果较差的问题。
6.第一方面,本公开提供了一种推荐方法,所述方法包括:
7.获取目标用户的第一特征向量;根据待推荐对象的标签和目标用户的历史对象的标签,确定历史对象序列;将所述第一特征向量、历史对象序列和待推荐对象标识输入推荐模型后,输出所述待推荐对象的预测分值;根据所述预测分值,从所述待推荐对象中确定目标推荐对象。
8.第二方面,本公开还提供了一种推荐模型训练方法,所述方法包括,根据预先建立的推荐模型,针对预先获取的样本集中的每一样本数据执行如下操作:根据该样本数据获取目标用户的第一特征向量;根据从该样本数据中获取的待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列;将所述第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出所述待推荐样本对象的预测分值;根据所述预测分值、待推荐样本对象的真实推荐标签以及预先设置的推荐模型损失函数,用优化器进行反向传播,进行所述推荐模型参数的迭代优化,直到所述推荐模型收敛或者针对预先获取的样本集中的每一样本数据均执行完毕如上操作,得到训练出的推荐模型。
9.第三方面,本公开还提供了一种推荐装置,所述装置包括:
10.获取模块,用于获取目标用户的第一特征向量;确定模块,用于根据待推荐对象的标签和目标用户的历史对象的标签,确定历史对象序列;输出模块,用于将所述第一特征向量、历史对象序列和待推荐对象标识输入推荐模型后,输出所述待推荐对象的预测分值;推
荐模块,用于根据所述预测分值,从所述待推荐对象中确定目标推荐对象。
11.第四方面,本公开还提供了一种推荐模型训练装置,所述装置包括输入输出模块和迭代优化模块:所述输入输出模块,用于根据预先建立的推荐模型,针对预先获取的样本集中的每一样本数据执行如下操作:根据该样本数据获取目标用户的第一特征向量;根据从该样本数据中获取的待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列;将所述第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出所述待推荐样本对象的预测分值;所述迭代优化模块,用于针对预先获取的样本集中的每一样本数据,根据所述预测分值、待推荐样本对象的真实推荐标签以及预先设置的推荐模型损失函数,用优化器进行反向传播,进行所述推荐模型参数的迭代优化,直到所述推荐模型收敛或者针对预先获取的样本集中的每一样本数据均执行完毕如上操作,得到训练出的推荐模型。
12.第五方面,本公开还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现如上所述的方法。
13.第六方面,本公开还提供了一种推荐设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
14.所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存储的程序时,实现如上所述的推荐方法步骤。
15.第七方面,本公开还提供了一种推荐模型的训练设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存储的程序时,实现如上所述的推荐模型训练方法步骤。
16.根据本公开实施例提供的方案,可以根据待推荐对象的标签和目标用户的历史对象的标签,从目标用户的历史对象中确定历史对象序列,进而可以根据获取的目标用户的第一特征向量、历史对象序列和待推荐对象的标识,获得待推荐对象的预测分值,从而可以根据预测分值,从待推荐对象中确定针对目标用户的目标推荐对象。本公开实施例提供的方案,可以根据标签,从目标用户对应的长期序列中准确地获取有效的序列信息,充分利用长期序列,减少长期序列的序列信息损失,提升推荐效果。
17.本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
18.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本公开实施例提供的推荐方法的流程示意图;
20.图2为本公开实施例提供的推荐模型训练方法的流程示意图;
21.图3为本公开实施例提供的推荐装置的结构示意图;
22.图4为本公开实施例提供的推荐模型训练装置的结构示意图;
23.图5为本公开实施例提供的推荐模型训练和推荐方法的流程示意图;
24.图6为本公开实施例提供的对风格语种标签进行聚类得到的二级标签的示意图;
25.图7为本公开实施例提供的样本数据获取步骤示意图;
26.图8为本公开实施例提供的推荐模型主网络结构的示意图;
27.图9为本公开实施例提供的生成用户序列表达向量的网络结构示意图;
28.图10为本公开实施例提供的检索得到历史样本对象序列的示意图;
29.图11为本公开实施例提供的推荐设备/推荐模型训练设备的结构示意图。
具体实施方式
30.为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
31.需要说明的是,在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/ 或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
32.本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
33.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
34.基于上述说明,本公开实施例提供一种推荐方法,该方法的步骤流程可以如图1所示,包括:
35.步骤101、获取目标用户的第一特征向量。
36.在本步骤中,可以针对推荐的目标用户,获取目标用户的第一特征向量。
37.也就是说,在本步骤中,可以获取针对目标用户的特征向量,以便根据目标用户的特征向量,来进行对象推荐。
38.步骤102、根据待推荐对象的标签和目标用户的历史对象的标签,确定历史对象序列。
39.在本步骤中,可以根据待推荐对象的标签和目标用户的历史对象的标签,从目标用户对应的长期序列中,确定历史对象序列。
40.需要指出的是,步骤101和步骤102的执行可以不分先后。
41.步骤103、将第一特征向量、历史对象序列和待推荐对象标识输入推荐模型后,输出待推荐对象的预测分值。
42.在本步骤中,可以将获得的第一特征向量、历史对象序列和待推荐对象标识(可以理解为待推荐对象编码)作为预先训练出的推荐模型的输入,利用预先训练出的推荐模型输出待推荐对象的预测分值。
43.步骤104、根据预测分值,从待推荐对象中确定目标推荐对象。
44.在本步骤中,可以根据每个待推荐对象对应的预测分值,从待推荐对象中确定目标推荐对象。例如,可以根据对应的预测分值对每个待推荐对象进行排序,从而确定向目标用户推荐的对象。
45.在一种可能的实现方式中,目标用户的第一特征向量可以包括目标用户特征向量,目标用户特征向量可以理解为用于描述目标用户特征的向量。目标用户特征可以但不限于包括目标用户的基本属性、目标用户的设备属性和目标用户的偏好属性等中的至少一项。目标用户的基本属性可以但不限于包括年龄、性别、所在地域等中的至少一项。目标用户的设备属性可以但不限于包括设备型号、操作系统、运营商等中的至少一项。目标用户的偏好属性可以理解为目标用户对于待推荐对象各种特征的偏好。例如,以待推荐对象为歌曲为例,目标用户的偏好属性可以但不限于包括对语种的偏好、对风格的偏好、对艺人的偏好以及对年代的偏好等中的至少一种。
46.以目标用户的第一特征向量包括目标用户特征向量为例,步骤103可以包括:
47.将历史对象序列、待推荐对象标识经过嵌入层处理得到对应的历史对象序列向量和待推荐对象的第二特征向量;
48.将历史对象序列向量和第二特征向量经激活层加权求和处理后得到用户序列表达向量;
49.将目标用户特征向量和用户序列表达向量进行拼接后,再经过全连接层和 sigmoid函数后输出待推荐对象的预测分值。
50.也就是说,在一种可能的实现方式中,可以将历史对象序列中每个历史对象标识经嵌入层处理得到对应的历史对象向量,进而得到每个历史对象向量组成的历史对象序列向量。还可以将待推荐对象标识经嵌入层处理得到对应的待推荐对象的第二特征向量。
51.进一步的,可以将历史对象序列向量和待推荐对象的第二特征向量输入激活层,学习每个历史对象向量与待推荐对象的第二特征向量之间的相似度,得到每个历史对象向量对应的权重,进而通过对每个历史对象向量加权求和获得用户序列表达向量。
52.在得到用户序列表达向量之后,即可以将目标用户特征向量和用户序列表达向量进行拼接,并可以经过全连接层和sigmoid函数后输出待推荐对象的预测分值。也就是说,在一种可能的实现方式中,可以基于目标用户特征向量和用户序列表达向量来获得待推荐对象的预测分值,以准确地确定预测分值。
53.在另一种可能的实现方式中,目标用户的第一特征向量还可以包括上下文特征向量,上下文特征向量可以理解为用于描述本次推荐目标用户关联的推荐环境特征的向量。本次推荐目标用户关联的推荐环境特征可以但不限于包括本次推荐发生的时间、推荐场景(以待推荐对象为歌曲为例,推荐场景可以为但不限于包括每日推荐场景、排行榜推荐场景、歌单推荐场景等)、目标用户在本次推荐时所使用的设备、目标用户在本次推荐时所在位置等中的至少一项。
54.在本实施例中,还可以进一步获取待推荐对象的第三特征向量,待推荐对象的第
三特征向量可以理解为用于描述待推荐对象的特征的向量。待推荐对象的特征可以但不限于包括待推荐对象的基本属性。以待推荐对象为歌曲为例,待推荐对象的基本属性可以但不限于包括风格、语种、作词、作曲、演唱者、播放音质、歌曲时长、歌曲评论数、歌曲类型、歌曲质量、播放热度、发行时间和发行版本等中的至少一项。
55.需要指出的是,待推荐对象的第三特征向量与上文中提到的待推荐对象的第二特征向量是两个不同含义的向量。待推荐对象的第三特征向量用于描述待推荐对象的特征,待推荐对象的第二特征向量用于描述将待推荐对象的标识经嵌入层处理后得到的向量。
56.在获得待推荐对象的第三特征向量的基础上,在本实施例中,还可以进一步计算目标用户特征向量和第三特征向量的交叉特征向量,交叉特征向量可以理解为用于描述目标用户相对于待推荐对象在不同维度的偏好特征的向量。以待推荐对象为歌曲为例,目标用户相对于待推荐对象在不同维度的偏好特征可以包括但不限于包括目标用户对待推荐歌曲所属语种的偏好,目标用户对待推荐歌曲演唱者的偏好等中的至少一项。
57.在得到用户序列表达向量之后,在步骤103中,即可以将目标用户特征向量、第三特征向量、上下文特征向量、交叉特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出待推荐对象的预测分值。也就是说,在另一种可能的实现方式中,还可以基于目标用户特征向量、上下文特征向量、待推荐对象的特征向量、交叉特征向量和用户序列表达向量来获得待推荐对象的预测分值,以更加准确地确定预测分值。
58.另外,在一种可能的实现中,在步骤102执行之前,可以获取目标用户的历史对象的一级标签,将一级标签相同的历史对象归为一簇,通过聚类算法,得到历史对象的二级标签。也就是说,本公开实施例还提出,可以在一级标签的基础上,通过聚类算法,获得二级标签,进而可以基于二级标签进行序列信息的获取,进一步提高获得的序列信息的准确性。此时,步骤102可以包括:当待推荐对象的标签包括二级标签时,从历史对象的二级标签中确定与待推荐对象的二级标签的相同或相似度达到阈值的目标历史对象。
59.进一步的,在一种可能的实现方式中,通过聚类算法,得到历史对象的二级标签,包括:
60.将每个历史对象对应的离线预训练出的矩阵和第二编码相乘,得到每个历史对象对应的离线向量,其中,第二编码通过将获得的第一编码进行一位有效编码表示得到,第一编码通过将历史对象标识进行编码映射得到;根据确定出的每个历史对象对应的离线向量,通过聚类算法,得到历史对象的二级标签。
61.再进一步的,根据确定出的每个历史对象对应的离线向量,通过聚类算法,得到历史对象的二级标签,可以包括:
62.将一级标签相同的历史对象所对应簇作为分裂簇,根据确定出的每个历史对象对应的离线向量,确定分裂簇的中心点和簇代价函数;根据确定出的分裂簇的中心点和簇代价函数,确定分裂簇对应的二分簇,选择代价函数最小的二分簇作为下一个分裂簇,重复执行本步骤,直到满足终止聚类的条件,得到历史对象的二级标签。
63.更进一步的,确定分裂簇对应的二分簇,可以包括:
64.随机从分裂簇中选择一个历史对象作为第一子簇,随机从分裂簇中选择另一个历史对象作为第二子簇,根据随机选择出的历史对象对应的离线向量,确定两个簇的中心点和簇代价函数;从分裂簇中选取一个未被分到第一子簇和第二子簇的历史对象,根据该历
史对象对应的离线向量,确定该历史对象到第一子簇和第二子簇的中心点的距离,从第一子簇和第二子簇中选取对应的距离较小的簇,并把选取的历史对象纳入该簇;重新确定第一子簇和第二子簇的中心点和簇代价函数,并重复执行本步骤,直到分裂簇中所有的历史对象均被分到第一子簇或第二子簇。
65.另外,需要说明的是,每个历史对象对应的离线预训练出的矩阵可以但不限于通过以下方式得到:
66.根据预先建立的离线模型,针对样本集中的每个样本对,执行以下操作:
67.利用待训练第一矩阵与一个样本对中的待预测对象标识对应的第二编码相乘,获得待预测向量,利用待训练第二矩阵与该样本对中的目标预测对象标识对应的第二编码相乘,获得目标预测向量;根据待预测向量和目标预测向量点乘求和得到的相关度分值,输出预测分值;根据离线模型输出的预测分值、本次用于训练的样本对对应的标签分值,以及预先设置的离线模型损失函数,用优化器进行反向传播,进行离线模型参数的迭代优化,直到离线模型收敛或者针对样本集中的每个样本对均执行完毕如上操作,得到训练出的离线模型,训练出的离线模型中的第一矩阵即为获得的离线预训练出的矩阵;其中,样本对包括正样本对和负样本对;正样本对中包括的目标预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,任意一个对象标识,正样本对中包括的待预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,除目标预测对象标识外的一个对象标识;正样本对对应的标签分值为第一设定值;负样本对相对于正样本对,待预测对象标识采用随机采样的方式获得;负样本对对应的标签分值为第二设定值。
68.与上述推荐方法基于同一发明构思,本公开实施例进一步提供一种推荐模型训练方法,该方法的步骤流程可以如图2所示,包括:
69.步骤201、根据预先建立的推荐模型,针对预先获取的样本集中的每一样本数据执行操作。
70.根据预先建立的推荐模型,针对预先获取的样本集中的每一样本数据执行如下操作:
71.根据该样本数据获取目标用户的第一特征向量;根据从该样本数据中获取的待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列;将第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出待推荐样本对象的预测分值。
72.步骤202、根据预测分值、待推荐样本对象的真实推荐标签以及预先设置的推荐模型损失函数,用优化器进行反向传播,进行推荐模型参数的迭代优化,直到推荐模型收敛或者针对预先获取的样本集中的每一样本数据均执行完毕如上操作,得到训练出的推荐模型。
73.与推荐模型的使用过程类似的,在一种可能的实现方式中,第一特征向量可以包括目标用户特征向量;
74.将第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出待推荐样本对象的预测分值,可以包括:
75.将历史样本对象序列、待推荐样本对象标识经过嵌入层处理得到对应的历史样本对象序列向量和待推荐样本对象的第二特征向量;将历史样本对象序列向量和第二特征向
量经激活层加权求和处理后得到用户序列表达向量;将目标用户特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出待推荐样本对象的预测分值。
76.在另一种可能的实现方式中,第一特征向量还可以包括上下文特征向量。在本实施例中还可以获取待推荐样本对象的第三特征向量,并计算目标用户特征向量和第三特征向量的交叉特征向量;此时,在获得用户序列表达向量之后,可以将目标用户特征向量、第三特征向量、上下文特征向量、交叉特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出待推荐样本对象的预测分值。
77.另外,与推荐模型的使用过程类似的,在推荐模型的训练过程中,在根据待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列之前,可以获取目标用户的历史样本对象的一级标签;将一级标签相同的历史样本对象归为一簇;通过聚类算法,得到历史样本对象的二级标签。进而,根据待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列,可以包括:当推荐样本对象的标签包括二级标签时,从历史样本对象的二级标签中确定与推荐样本对象的二级标签的相同或相似度达到阈值的目标历史样本对象;根据目标历史样本对象确定历史样本对象序列。
78.在一种可能的实现方式中,通过聚类算法,得到历史样本对象的二级标签,可以包括:
79.将每个历史样本对象对应的离线预训练出的矩阵和第二编码相乘,得到每个历史样本对象对应的离线向量,其中,第二编码通过将获得的第一编码进行一位有效编码表示得到,第一编码通过将历史样本对象标识进行编码映射得到;根据确定出的每个历史样本对象对应的离线向量,通过聚类算法,得到历史样本对象的二级标签。再进一步的,根据确定出的每个历史样本对象对应的离线向量,通过聚类算法,得到历史样本对象的二级标签,可以包括:将一级标签相同的历史样本对象所对应簇作为分裂簇,根据确定出的每个历史样本对象对应的离线向量,确定分裂簇的中心点和簇代价函数;根据确定出的分裂簇的中心点和簇代价函数,确定分裂簇对应的二分簇,选择代价函数最小的二分簇作为下一个分裂簇,重复执行本步骤,直到满足终止聚类的条件,得到历史样本对象的二级标签。更进一步的,确定分裂簇对应的二分簇,可以包括:随机从分裂簇中选择一个历史样本对象作为第一子簇,随机从分裂簇中选择另一个历史样本对象作为第二子簇,根据随机选择出的历史样本对象对应的离线向量,确定两个簇的中心点和簇代价函数;从分裂簇中选取一个未被分到第一子簇和第二子簇的历史样本对象,根据该历史样本对象对应的离线向量,确定该历史样本对象到第一子簇和第二子簇的中心点的距离,从第一子簇和第二子簇中选取对应的距离较小的簇,并把选取的历史样本对象纳入该簇;重新确定第一子簇和第二子簇的中心点和簇代价函数,并重复执行本步骤,直到分裂簇中所有的历史样本对象均被分到第一子簇或第二子簇。
80.此外,在一种可能的实现方式中,每个历史样本对象对应的离线预训练出的矩阵可以但不限于通过以下方式得到:
81.根据预先建立的离线模型,针对样本集中的每个样本对,执行以下操作:
82.利用待训练第一矩阵与一个样本对中的待预测对象标识对应的第二编码相乘,获得待预测向量,利用待训练第二矩阵与该样本对中的目标预测对象标识对应的第二编码相乘,获得目标预测向量;根据待预测向量和目标预测向量点乘求和得到的相关度分值,输出
预测分值;根据离线模型输出的预测分值、本次用于训练的样本对对应的标签分值,以及预先设置的离线模型损失函数,用优化器进行反向传播,进行离线模型参数的迭代优化,直到离线模型收敛或者针对样本集中的每个样本对均执行完毕如上操作,得到训练出的离线模型,训练出的离线模型中的第一矩阵即为获得的离线预训练出的矩阵;其中,样本对包括正样本对和负样本对;正样本对中包括的目标预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,任意一个对象标识,正样本对中包括的待预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,除目标预测对象标识外的一个对象标识;正样本对对应的标签分值为第一设定值;负样本对相对于正样本对,待预测对象标识采用随机采样的方式获得;负样本对对应的标签分值为第二设定值。
83.与提供的方法对应的,进一步提供以下的装置。
84.本公开实施例提供一种推荐装置,该装置的结构可以如图3所示,包括:
85.获取模块01用于获取目标用户的第一特征向量;确定模块02用于根据待推荐对象的标签和目标用户的历史对象的标签,确定历史对象序列;输出模块 03用于将所述第一特征向量、历史对象序列和待推荐对象标识输入推荐模型后,输出所述待推荐对象的预测分值;推荐模块04用于根据所述预测分值,从所述待推荐对象中确定目标推荐对象。
86.在一种可能的实现方式中,所述装置还包括聚类模块05:
87.所述聚类模块05用于所述确定模块根据待推荐对象的标签和目标用户的历史对象的标签,确定历史对象序列之前,获取目标用户的历史对象的一级标签;将一级标签相同的历史对象归为一簇;通过聚类算法,得到所述历史对象的二级标签。
88.在一种可能的实现方式中,所述确定模块02具体用于当所述待推荐对象的标签包括二级标签时,从所述历史对象的二级标签中确定与所述待推荐对象的二级标签的相同或相似度达到阈值的目标历史对象;根据所述目标历史对象确定历史对象序列。
89.在一种可能的实现方式中,所述第一特征向量包括:目标用户特征向量;
90.所述输出模块03具体用于将所述历史对象序列、待推荐对象标识经过嵌入层处理得到对应的历史对象序列向量和待推荐对象的第二特征向量;将所述历史对象序列向量和第二特征向量经激活层加权求和处理后得到用户序列表达向量;将所述目标用户特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出所述待推荐对象的预测分值。
91.在一种可能的实现方式中,所述第一特征向量还包括:上下文特征向量;所述获取模块01还用于获取待推荐对象的第三特征向量;计算所述目标用户特征向量和第三特征向量的交叉特征向量;所述输出模块03还用于将所述目标用户特征向量、第三特征向量、上下文特征向量、交叉特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出所述待推荐对象的预测分值。
92.在一种可能的实现方式中,所述聚类模块05通过聚类算法,得到所述历史对象的二级标签,包括:
93.将每个历史对象对应的离线预训练出的矩阵和第二编码相乘,得到每个历史对象对应的离线向量,其中,所述第二编码通过将获得的第一编码进行一位有效编码表示得到,所述第一编码通过将历史对象标识进行编码映射得到;根据确定出的每个历史对象对应的离线向量,通过聚类算法,得到所述历史对象的二级标签。
94.在一种可能的实现方式中,所述聚类模块05根据确定出的每个历史对象对应的离线向量,通过聚类算法,得到所述历史对象的二级标签,包括:
95.将一级标签相同的历史对象所对应簇作为分裂簇,根据确定出的每个历史对象对应的离线向量,确定分裂簇的中心点和簇代价函数;根据确定出的分裂簇的中心点和簇代价函数,确定分裂簇对应的二分簇,选择代价函数最小的二分簇作为下一个分裂簇,重复执行本步骤,直到满足终止聚类的条件,得到所述历史对象的二级标签。
96.在一种可能的实现方式中,所述聚类模块05确定分裂簇对应的二分簇,包括:
97.随机从分裂簇中选择一个历史对象作为第一子簇,随机从分裂簇中选择另一个历史对象作为第二子簇,根据随机选择出的历史对象对应的离线向量,确定两个簇的中心点和簇代价函数;从分裂簇中选取一个未被分到第一子簇和第二子簇的历史对象,根据该历史对象对应的离线向量,确定该历史对象到第一子簇和第二子簇的中心点的距离,从第一子簇和第二子簇中选取对应的距离较小的簇,并把选取的历史对象纳入该簇;重新确定第一子簇和第二子簇的中心点和簇代价函数,并重复执行本步骤,直到分裂簇中所有的历史对象均被分到第一子簇或第二子簇。
98.在一种可能的实现方式中,所述装置还包括离线训练模块06,用于通过以下方式得到每个历史对象对应的离线预训练出的矩阵:
99.根据预先建立的离线模型,针对样本集中的每个样本对,执行以下操作:
100.利用待训练第一矩阵与一个样本对中的待预测对象标识对应的第二编码相乘,获得待预测向量,利用待训练第二矩阵与该样本对中的目标预测对象标识对应的第二编码相乘,获得目标预测向量;根据所述待预测向量和目标预测向量点乘求和得到的相关度分值,输出预测分值;根据所述离线模型输出的预测分值、本次用于训练的样本对对应的标签分值,以及预先设置的离线模型损失函数,用优化器进行反向传播,进行所述离线模型参数的迭代优化,直到所述离线模型收敛或者针对样本集中的每个样本对均执行完毕如上操作,得到训练出的离线模型,训练出的离线模型中的第一矩阵即为获得的离线预训练出的矩阵;其中,所述样本对包括正样本对和负样本对;所述正样本对中包括的目标预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,任意一个对象标识,所述正样本对中包括的待预测对象标识为所述设定时长内与用户行为产生交互的对象对应的对象标识序列中,除目标预测对象标识外的一个对象标识;所述正样本对对应的标签分值为第一设定值;所述负样本对相对于所述正样本对,待预测对象标识采用随机采样的方式获得;所述负样本对对应的标签分值为第二设定值。
101.本公开实施例提供一种推荐模型训练装置,该装置的结构可以如图4所示,包括输入输出模块11和迭代优化模块12:
102.所述输入输出模块11用于根据预先建立的推荐模型,针对预先获取的样本集中的每一样本数据执行如下操作:根据该样本数据获取目标用户的第一特征向量;根据从该样本数据中获取的待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列;将所述第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出所述待推荐样本对象的预测分值;所述迭代优化模块12用于针对预先获取的样本集中的每一样本数据,根据所述预测分值、待推荐样本对象的真实推荐标签以及预先设置的推荐模型损失函数,用优化器进行反向传播,进行所述推荐模型参数的迭代优化,直到所
述推荐模型收敛或者针对预先获取的样本集中的每一样本数据均执行完毕如上操作,得到训练出的推荐模型。
103.在一种可能的实现方式中,所述装置还包括聚类模块13:
104.所述聚类模块,用于所述输入输出模块根据待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列之前,获取目标用户的历史样本对象的一级标签;将一级标签相同的历史样本对象归为一簇;通过聚类算法,得到所述历史样本对象的二级标签。
105.在一种可能的实现方式中,所述输入输出模块11根据待推荐样本对象的标签和目标用户的历史样本对象的标签,确定历史样本对象序列,包括:当所述推荐样本对象的标签包括二级标签时,从所述历史样本对象的二级标签中确定与所述推荐样本对象的二级标签的相同或相似度达到阈值的目标历史样本对象;根据所述目标历史样本对象确定历史样本对象序列。
106.在一种可能的实现方式中,所述第一特征向量包括:目标用户特征向量;
107.所述输入输出模块11将所述第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出所述待推荐样本对象的预测分值,包括:
108.将所述历史样本对象序列、待推荐样本对象标识经过嵌入层处理得到对应的历史样本对象序列向量和待推荐样本对象的第二特征向量;将所述历史样本对象序列向量和第二特征向量经激活层加权求和处理后得到用户序列表达向量;将所述目标用户特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出所述待推荐样本对象的预测分值。
109.在一种可能的实现方式中,所述第一特征向量还包括:上下文特征向量;
110.所述输入输出模块11还用于获取待推荐样本对象的第三特征向量;计算所述目标用户特征向量和第三特征向量的交叉特征向量;
111.所述输入输出模块11将所述第一特征向量、历史样本对象序列和待推荐样本对象标识输入推荐模型后,输出所述待推荐样本对象的预测分值,还包括:
112.将所述目标用户特征向量、第三特征向量、上下文特征向量、交叉特征向量和用户序列表达向量进行拼接后,再经过全连接层和sigmoid函数后输出所述待推荐样本对象的预测分值。
113.在一种可能的实现方式中,所述聚类模块13通过聚类算法,得到所述历史样本对象的二级标签,包括:
114.将每个历史样本对象对应的离线预训练出的矩阵和第二编码相乘,得到每个历史样本对象对应的离线向量,其中,所述第二编码通过将获得的第一编码进行一位有效编码表示得到,所述第一编码通过将历史样本对象标识进行编码映射得到;根据确定出的每个历史样本对象对应的离线向量,通过聚类算法,得到所述历史样本对象的二级标签。
115.在一种可能的实现方式中,所述聚类模块13根据确定出的每个历史样本对象对应的离线向量,通过聚类算法,得到所述历史样本对象的二级标签,包括:
116.将一级标签相同的历史样本对象所对应簇作为分裂簇,根据确定出的每个历史样本对象对应的离线向量,确定分裂簇的中心点和簇代价函数;根据确定出的分裂簇的中心点和簇代价函数,确定分裂簇对应的二分簇,选择代价函数最小的二分簇作为下一个分裂
簇,重复执行本步骤,直到满足终止聚类的条件,得到所述历史样本对象的二级标签。
117.在一种可能的实现方式中,所述聚类模块13确定分裂簇对应的二分簇,包括:
118.随机从分裂簇中选择一个历史样本对象作为第一子簇,随机从分裂簇中选择另一个历史样本对象作为第二子簇,根据随机选择出的历史样本对象对应的离线向量,确定两个簇的中心点和簇代价函数;从分裂簇中选取一个未被分到第一子簇和第二子簇的历史样本对象,根据该历史样本对象对应的离线向量,确定该历史样本对象到第一子簇和第二子簇的中心点的距离,从第一子簇和第二子簇中选取对应的距离较小的簇,并把选取的历史样本对象纳入该簇;重新确定第一子簇和第二子簇的中心点和簇代价函数,并重复执行本步骤,直到分裂簇中所有的历史样本对象均被分到第一子簇或第二子簇。
119.在一种可能的实现方式中,所述装置还包括离线训练模块14,用于通过以下方式得到每个历史样本对象对应的离线预训练出的矩阵:
120.根据预先建立的离线模型,针对样本集中的每个样本对,执行以下操作:
121.利用待训练第一矩阵与一个样本对中的待预测对象标识对应的第二编码相乘,获得待预测向量,利用待训练第二矩阵与该样本对中的目标预测对象标识对应的第二编码相乘,获得目标预测向量;根据所述待预测向量和目标预测向量点乘求和得到的相关度分值,输出预测分值;根据所述离线模型输出的预测分值、本次用于训练的样本对对应的标签分值,以及预先设置的离线模型损失函数,用优化器进行反向传播,进行所述离线模型参数的迭代优化,直到所述离线模型收敛或者针对样本集中的每个样本对均执行完毕如上操作,得到训练出的离线模型,训练出的离线模型中的第一矩阵即为获得的离线预训练出的矩阵;其中,所述样本对包括正样本对和负样本对;所述正样本对中包括的目标预测对象标识为设定时长内与用户行为产生交互的对象对应的对象标识序列中,任意一个对象标识,所述正样本对中包括的待预测对象标识为所述设定时长内与用户行为产生交互的对象对应的对象标识序列中,除目标预测对象标识外的一个对象标识;所述正样本对对应的标签分值为第一设定值;所述负样本对相对于所述正样本对,待预测对象标识采用随机采样的方式获得;所述负样本对对应的标签分值为第二设定值。
122.本公开上述实施例提供的各装置的各功能单元的功能,可以通过上述对应的各方法的步骤来实现,因此,本公开实施例提供的各装置中的各个功能单元的可能的工作过程和有益效果,在此不复赘述。
123.下面以待推荐对象为歌曲为例,对本公开实施例提供的推荐模型训练和推荐方法进行说明。
124.本公开实施例进一步提供一种推荐模型训练和推荐方法。其中提出了一种基于用户长期序列的建模方法。首先收集用户每天的行为序列,再综合汇总,构成用户的长期行为序列,然后对用户的行为序列按照标签维度进行拆分,找出和待推荐对象标签相同的序列,作为模型的输入序列,进而训练模型,供线上预测使用。该方法的步骤流程可以如图5所示,可以包括:
125.步骤501、样本数据获取。
126.本步骤可以为模型训练的输入和训练好的模型线上实时预测的输入提供数据。本实施例主要以模型训练过程数据的获取为例进行说明,实时预测过程模型数据的获取方式与模型训练过程数据的获取方式类似,本实施例不再重复进行说明。其中,可以针对至少两
个目标用户,分别获得目标用户对应的第一历史对象序列,第一历史对象序列可以理解为目标用户在大于设定时长的周期内对应的历史对象标识(例如,歌曲编号)的集合。不同的用户行为所表达的用户兴趣有所不同,不同用户行为的数量也是不同的。综合用户兴趣和数据稀疏度的考虑,在一种可能的实现方式中,第一历史对象序列可以但不限于理解为在大于设定时长的周期内,与目标用户完整播放歌曲的行为产生交互的历史对象标识的集合。另外,收集用户历史行为数据,可以包括天级用户数据收集和多天级用户数据收集两部分。可以根据日志提取其中完整播放行为对应的歌曲,按照时间顺序组织起来形成歌曲序列。在形成的歌曲序列中,可以进行去重操作,只保留最后一次的完整播放行为对应的歌曲。另外还可以剔除那些涉嫌作弊的完整播放行为,如刷歌,多人共用等对应的歌曲,从而得到天级用户数据。把用户每天对应的歌曲序列按照时间顺序再组织起来,就可以得到多天级用户数据。为了保证用户数据的完整性,可以获得用户历史上最近五年的完整播放行为对应的歌曲序列。由于歌曲序列长度较长。如果想充分利用用户对应的长期序列,需要抽出长期序列中对于待推荐歌曲最有价值的子序列,但是以往的拆分方法会带来序列信息的损失。
127.本公开实施例提供的方案中,针对一个目标对象,获取到该目标用户对应的第一历史对象序列之后,可以针对每个待推荐样本对象,根据待推荐样本对象的标签和每个历史对象的标签,从第一历史对象序列中获得该待推荐样本对象对应的历史样本对象序列。在本公开各实施例中,标签的设置需要满足两个条件:一是不能过于粗糙,标签之间要有一定的区分度,另一个是不能过细,过细会造成数据稀疏,对模型训练不利。
128.本案发明人研究发现,歌曲一般具有语种标签,例如,包括华语,日语,韩文,欧美,小语种等,且一般还会具有风格标签,例如,包括流行,电子,民谣,儿歌,轻音乐,爵士,二次元等。因此,本公开实施例可以考虑利用歌曲已有的标签进行历史样本对象序列的筛选。考虑到语种标签较为粗糙,区分度不够,每个用户的播放行为一般都集中在一种或者两种语种。而风格标签一般只有头部歌曲有风格标签,覆盖度不够。因此,在本实施例中,可以结合语种标签和风格标签,形成语种风格标签,以取长补短,获得区分度高、覆盖全面的标签体系。其中,风格标签可以借助语种标签覆盖度广的优点,对于没有风格标签的歌曲,仍然可以按照语种标签进行拆分。而语种标签可以借助风格标签区分度高的优点,对于头部歌曲,例如中文和英文的头部歌曲,仍然可以进行细分。在本实施例中,可以将语种风格标签作为歌曲的一级标签。
129.在一种可能的实现方式中,设置了语种风格标签体系之后,可以把目标用户对应的每个历史对象按照标签体系进行拆分,最终存储成为kkv的形式,其中第一个k为用户标识,第二个k为标签标识,v表示歌曲标识。按照设置的语种风格标签,即可以根据待推荐样本对象的标签和每个历史对象的标签,从第一历史对象序列中,获得语种风格标签与待推荐样本对象相同的历史样本对象序列。
130.进一步的,本案发明人研究发现,风格语种标签体系仍然会存在头部集中和长尾现象。比如华语流行歌曲的占比高达22%,欧美电子歌曲的占比高达 20%,欧美流行歌曲的占比约为16%,而某些小众标签的歌曲占比不到1%。此种情况的存在会导致某些用户的热门标签歌曲序列非常长,仍然存在标签区分度较差的问题。
131.因此,本公开实施例进一步提出了虚拟标签的概念。在获取目标用户的历史对象
的一级标签之后,可以将一级标签相同的历史对象归为一簇,通过聚类算法,得到历史对象的二级标签。也就是说,本公开实施例在利用歌曲已有的标签进行历史样本对象序列的筛选的基础上,进一步提出可以结合通过聚类方式得到的歌曲的二级标签进行历史样本对象序列的筛选。
132.在确定二级标签时,可以根据每个歌曲对应的离线向量,采用无监督聚类的方式,对歌曲进行分类,得到歌曲的二级标签(即虚拟标签)。其中,每个歌曲对应的离线向量可以通过以下方式获得:将歌曲标识进行编码映射得到第一编码;将获得的第一编码进行一位有效编码表示得到第二编码;将第二编码与离线预训练出的矩阵相乘,得到歌曲对应的离线向量。
133.进一步的,离线预训练出的矩阵可以但不限于通过以下方式获得:
134.首先,获取正样本对和负样本对。在获取正样本对时,可以拆分用户设定时长内(例如最近一周内)收藏且播放的歌曲标识序列,将其中任意一个歌曲标识作为目标预测对象标识,将除目标预测对象标识的任意一个歌曲标识作为待预测对象标识,此时的目标预测对象标识和待预测对象标识组成正样本对,为正样本对打上正样本标签1,即正样本对对应的标签分值可以为1。在获取负样本对时,负样本对相对于所述正样本对,待预测对象标识采用随机采样的方式获得,并可以为负样本对打上负样本标签0,即负样本对对应的标签分值可以为0。其次,利用获取的正样本对和负样本对,对预先建立的离线模型进行训练,得到离线预训练出的矩阵。
135.以用户设定时长内(例如最近一周内)收藏且播放的歌曲标识序列包括 id1、id2和id3为例,可以形成正样本对,并打上正样本对标签1,表示样本对中的两首歌曲是相关的,获得的正样本对可以包括:(id1,id2,1)、(id1, id3,1)、(id2,id3,1)、(id2,id1,1)、(id3,id1,1)和(id3,id2, 1)。
136.另外,可以随机采样选取一些歌曲,形成负样本对,并打上负样本标签0,表示样本对中的两首歌曲是不相关的,假设获得的负样本对包括:(id1,id4,0),(id2,id5,0)等。
137.在获得正负样本对之后,可以确定歌曲标识对应的第二编码。需要指出的是,在预先建立的离线模型中设置有一个待训练第一矩阵(可以记为w1)和一个待训练第二矩阵(可以记为w2)。根据预先建立的离线模型,可以针对样本集中的每个样本对,执行以下操作:
138.利用待训练第一矩阵与一个样本对中的待预测对象标识对应的第二编码相乘,获得待预测向量(可以记为v1),利用待训练第二矩阵与该样本对中的目标预测对象标识对应的第二编码相乘,获得目标预测向量(可以记为v2);根据待预测向量和目标预测向量点乘求和得到的相关度分值,去拟合样本对标签,输出预测分值;继而可以根据离线模型输出的预测分值、本次用于训练的样本对对应的标签分值计算交叉熵损失,用sgd optimizer优化器进行优化和反向传播,进行离线模型参数的迭代优化,直到离线模型收敛或者针对样本集中的每个样本对均执行完毕如上操作,得到训练出的离线模型,训练出的离线模型中的第一矩阵即为获得的离线预训练出的矩阵。以利用正样本对(id1,id2, 1)进行离线模型的训练为例,可以首先用id1对应的一位有效(onehot)编码乘以w1得到id1对应的向量v1,用id2对应的onehot编码乘以w2得到id2 对应的向量v2,把v1和v2进行点乘求和得到id1和id2的相关度分值,然后根据相关度分值和样本标签分值计算交叉熵损失,并用sgd optimizer优化器进行优化和反向传播。得到离线预训练出的矩阵之后,即可以得到每个歌
曲对应的离线向量,歌曲离线向量得到以后,即可以根据歌曲离线向量,通过聚类算法,把对应一级标签的歌曲进一步拆分成对应m个子标签的歌曲。根据歌曲离线向量,通过聚类算法对标签为华语流行的歌曲进一步拆分出二级标签的过程可以如下:
139.首先把所有华语流行歌曲当做一个簇,根据确定出的每个华语流行歌曲对应的离线向量,计算簇中心点(所有歌曲离线向量的平均)和簇代价函数(每个歌曲离线向量距离簇中心点的距离加和),然后对目前的簇进行二分簇计算,选取那个最小代价函数的二份簇作为下一个分裂簇,直到满足终止聚类的条件,例如得到m个分簇。例如,假设针对华语流行歌曲,进行二分簇计算,得到两个簇,分别记为华语流行-1和华语流行-2,此时,选择最小代价函数的二份簇作为下一个分裂簇。假设华语流行-1的簇代价函数为0.3,华语流行-2 的簇代价函数为0.2,那么就会选择华语流行-2作为下一个分裂簇。假设对华语流行-2进行二分簇计算,进一步得到两个簇,分别记为华语流行-21和华语流行-22。那么,此时可以从华语流行-1、华语流行-21和华语流行-22中选择代价函数最小的簇进一步进行分裂,直到得到m个分簇,得到的m个分簇可以但不限于分别记为对应标签华语流行-1、华语流行-2
……
和华语流行-m。计算二分簇的过程可以如下:随机从簇中选择一首歌曲作为一个子簇,其他任意一首歌曲作为另一个子簇。根据歌曲对应的离线向量,计算两个簇的簇中心点和簇代价函数,选取一首未被分类的歌曲,计算该歌曲到两个簇中心点的距离,选取距离较小的簇,并把该歌曲纳入该簇,重新计算两个簇的簇中心点和簇代价函数,直到所有的歌曲均计算完毕为止。
140.图6为对风格语种标签进行聚类得到的二级标签的示意图,在图6中,以对风格语种标签为欧美流行、华语流行和欧美电子的歌曲进行聚类得到二级标签为例进行说明。当然,还可以对其他风格语种标签的歌曲进行聚类得到二级标签,不限于对风格语种标签为欧美流行、华语流行和欧美电子的歌曲进行聚类得到二级标签。如图6所示,对风格语种标签为欧美流行的歌曲,可以但不限于进一步聚类得到二级标签分别为欧美流行-1、欧美流行-2和欧美流行-3的歌曲。对风格语种标签为华语流行的歌曲,可以但不限于进一步聚类得到二级标签分别为华语流行-1、华语流行-2和华语流行-3的歌曲。对风格语种标签为欧美电子的歌曲,可以但不限于进一步聚类得到二级标签分别为欧美电子-1、欧美电子-2和欧美电子-3的歌曲。获得二级标签后,仍然可以把目标用户对应的每个历史对象存储成为kkv的形式,其中第一个k为用户标识,第二个k 为标签标识,v表示歌曲标识。
141.可以理解为,在样本数据获取步骤中,收集用户历史数据之后,可以根据风格语种标签拆分歌曲,并可以进一步根据虚拟标签拆分歌曲。
142.本公开实施例可以通过虚拟标签对热门标签进一步进行拆分,以进一步提高标签的区分度。这样,当待推荐样本歌曲包括二级标签时,即可以从第一历史对象序列中,检索出具有相同二级标签的歌曲,得到历史样本对象序列。当待推荐样本歌曲不包括二级标签时,可以从第一历史对象序列中,检索出具有相同一级标签的歌曲,得到历史样本对象序列。样本数据获取步骤可以理解为进一步包括收集用户历史数据、拆分用户历史数据和检索用户历史数据三个步骤。如图7所示,其中,在收集用户历史数据步骤中,可以首先实现天级用户数据收集,然后实现多天级用户数据收集。在拆分用户历史数据阶段,可以首先根据风格语种标签拆分数据,然后还可以进一步根据虚拟标签拆分数据。这样,在检索用户历史数据阶段,即可以根据标签检索历史数据。另外,在样本数据获取步骤中,除了可以获取历
史样本对象序列,还可以针对目标用户,获得目标用户特征向量、上下文特征向量、待推荐样本歌曲的第三特征向量,并可以基于目标用户特征向量和第三特征向量得到交叉特征向量。
143.在一种可能的实现方式中,目标用户特征向量中可以包括目标用户离线向量。目标用户离线向量为指定对象对应的离线向量的平均值,指定对象包括指定时间段内(例如,最近一周内)与目标用户指定行为(例如,完整播放行为) 产生交互的每个对象。也就是说,目标用户离线向量也可以理解为用于描述目标用户特征的向量。
144.在一种可能的实现方式中,可以理解为,目标用户特征向量除了可以包括用于描述目标用户的基本属性、目标用户的设备属性和目标用户的偏好属性等中的至少一项的向量之外,还可以包括目标用户离线向量。在一种可能的实现方式中,目标用户特征向量可以通过向量按指定顺序拼接的方式形成。上下文特征向量可以包括用于描述本次推荐发生的时间、推荐场景(以待推荐对象为歌曲为例,推荐场景可以为但不限于包括每日推荐场景、排行榜推荐场景、歌单推荐场景等)、目标用户在本次推荐时所使用的设备、目标用户在本次推荐时所在位置等中的至少一项的向量。在一种可能的实现方式中,上下文特征向量也可以通过向量按指定顺序拼接的方式形成。
145.在一种可能的实现方式中,待推荐对象的第三特征向量可以包括待推荐对象对应的离线向量。也就是说,待推荐对象对应的离线向量也可以理解为用于描述待推荐对象的特征的向量。
146.在一种可能的实现方式中,可以理解为,待推荐对象的第三特征向量除了可以包括用于描述待推荐对象的基本属性的向量之外,还可以包括待推荐对象对应的离线向量。在一种可能的实现方式中,待推荐对象的第三特征向量可以通过向量按指定顺序拼接的方式形成。交叉特征向量可以包括用于描述目标用户对待推荐歌曲所属语种的偏好,目标用户对待推荐歌曲演唱者的偏好等中的至少一项的向量。在一种可能的实现方式中,交叉特征向量也可以通过向量按指定顺序拼接的方式形成。
147.需要进一步指出的是,样本数据获取步骤中,第一历史对象序列和历史样本对象序列需要对数据做序列处理得到。而在获得目标用户特征向量、上下文特征向量、待推荐样本歌曲的第三特征向量和交叉特征向量的过程中,有些数据可以直接使用,例如歌曲热度等,有些数据需要做离散化处理,例如年龄、性别、歌曲标识、歌曲类型、歌曲质量、歌曲风格和歌曲语种等,而交叉特征向量需要根据待推荐歌曲和目标用户做数据交叉处理得到。
148.步骤502、样本生成。
149.在样本数据获取步骤获得数据之后,即可以进入样本生成步骤。在本实施例中,生成的样本可以包括目标用户特征向量、上下文特征向量、待推荐样本对象的第三特征向量、交叉特征向量、历史样本对象序列和待推荐样本对象标识。同时还可以为待推荐样本对象生成待推荐样本对象的真实推荐标签。在一种可能的实现方式中,在待推荐样本对象为可以向目标用户推荐的样本对象时,待推荐样本对象的真实推荐标签可以记为1,否则,可以记为0。
150.步骤503、模型训练。
151.在一种可能的实现方式中,在本实施例提供的推荐模型的设计中,主网络结构可以如图8所示。底部的特征层包括目标用户特征向量、上下文特征向量、待推荐样本对象的
第三特征向量、交叉特征向量和历史样本对象序列。对这些特征按照顺序进行特征拼接,可以组成最终的样本向量。接着可以经过两个全连接层(fully connection layer)学习特征的不同权重。每一层全连接之后可以有一个激活函数,目的是丢弃那些不重要的特征。本实施例采用的激活函数可以为relu(rectified linear unit),其计算公式为:
152.f(x)=max(0,x)
153.另外,工程实践当中为了防止过拟合,在学习特征不同权重的过程中可以加入dropout操作。此外,为了保持参数稳定性,在全连接层后可以加入归一化操作(normalization),可以经由sigmoid函数,转化为0~1之间的概率值输出,得到预测分值。sigmoid函数的计算公式为:
[0154][0155]
此外,根据历史样本对象序列和待推荐样本对象标识生成用户序列表达向量的网络结构示意图可以如图9所示。如图9所示网络其底层输入是待推荐样本对象标识,以及从第一历史对象序列中检索出来的和待推荐样本对象标签一致的历史样本对象序列。因为待推荐样本对象标识和历史样本对象序列中每个历史样本对象标识均是标识,无法直接进入模型进行训练,所以可以通过一个嵌入层,将这些标识特征均转化为稠密特征向量,即对象向量。接下来可以经过一个激活层,用来计算每个历史样本对象向量和待推荐样本对象向量的相似度权重,以提取每个历史样本对象对待推荐样本对象的重要性。计算历史样本对象向量和待推荐样本对象向量的相似度权重公式可以但不限于如下所示:
[0156]
w(v
t
,vi)=dnn(concat(v
t
,vi,v
t-vi,v
t
×vi
))
[0157][0158]
其中:
[0159]vt
表示待推荐样本对象向量;vi表示第i个历史样本对象向量;v
t-vi表示向量按位减操作;v
t
×vi
表示向量按位乘操作;concat()表示向量拼接;dnn() 表示深度神经网络;w(v
t
,vi)表示计算得到的vi的权重;wi表示归一化后得到的vi的权重。
[0160]
本实施例中的深度神经网络可以包括三层全连接层,每层全连接采用的激活函数可以是sigmoid函数,最后一层的输出维度为1。计算出历史样本对象向量和待推荐样本对象向量的相似度权重之后,对历史样本对象序列中每个历史样本对象向量进行加权求和,即可以得到用户序列表达向量,其公式为:
[0161][0162]
其中n表示历史样本对象序列的长度。
[0163]
从第一历史对象序列中检索出来的和待推荐样本对象标签一致的历史样本对象序列时,可以首先获取待推荐样本对象标签和第一历史对象序列中每个历史对象的标签,标签可以包括语种风格标签和虚拟标签。然后可以从第一历史对象序列中查询和待推荐样本对象标签一致的历史对象。如果待推荐样本对象标签包括虚拟标签,则可以直接检索第一历史对象序列中具有相同虚拟标签的历史对象,将根据虚拟标签检索出的历史对象序列
作为历史样本对象序列。
[0164]
在一种可能的实现方式中,还可以设置检索结果判断条件(如根据虚拟标签检索出的历史样本对象序列长度不短于指定长度,例如不少于k个)。如果检索结果不满足判断条件,则可以重新根据语种风格标签进行检索。如果检索结果满足判断条件,则可以将根据虚拟标签检索出的历史对象序列作为历史样本对象序列。如果待推荐样本对象标签不包括虚拟标签,则可以直接根据语种风格标签进行检索,用根据语种风格标签从第一历史对象序列中检索出的历史对象序列作为历史样本对象序列。
[0165]
图10为检索得到历史样本对象序列的示意图,假设待推荐样本歌曲对应的标签记为标签1(待推荐样本歌曲对应的标签可以包括二级标签,也可以不包括二级标签),那么可以从对应的第一历史对象序列(假设第一历史对象序列中包括对应的标签为标签1的历史对象1,对应的标签为标签2的历史对象 2,对应的标签为标签3的历史对象3,对应的标签为标签1的历史对象4,对应的标签为标签2的历史对象5和对应的标签为标签1的历史对象6,每个历史对象对应的标签可以包括二级标签,也可以不包括二级标签)中,检索得到对应的标签为标签1的历史对象1、历史对象4和历史对象6,得到历史样本对象序列。在根据预测目标进行网络设计之后,可以进一步设计目标函数。在一种可能的实现方式中,损失函数可以采用交叉熵损失函数,公式表示可以如下:
[0166][0167]
其中,n表示样本个数,yi表示第i个样本对应的真实推荐标签(groundtruth),pi表示第i个样本对应的预测分值。在完成目标函数的设计之后,即可以根据设计的网络以及目标函数,进行模型训练。训练阶段采用的优化器可以采用adamoptimizer。可以根据设计的损失函数计算样本的loss,用优化器进行反向传播,进行模型参数的迭代优化,直到模型收敛或者达到收敛的条件。在一种可能的实现方式中,在训练中,可以采用批处理的方式进行训练,每次对一批样本进行优化,批的大小可以但不限于设置为4096。
[0168]
可以理解为,模型训练步骤又进一步依次包括根据预测目标设计网络、设计目标函数和模型训练三个步骤。
[0169]
步骤504、模型输出。
[0170]
得到训练出的推荐模型后,即可以进行模型输出。对离线训练好的模型参数进行固化,并上传到线上,供线上实时进行歌曲推荐。
[0171]
步骤505、线上预测。
[0172]
在线上,可以根据离线上传的数据和线上实时获取的数据,组装成推荐模型需要的格式数据,然后输入训练好的推荐模型,预测得到待推荐对象对应的预测分值pi,然后可以根据预测分值,对多个待推荐对象进行排序,并可以把排序结果返回给上游进行展现,以便从待推荐对象中选择向目标用户推荐的对象。根据本公开实施例提供的方案,一方面沿着“做长”的思路,把用户行为序列(长期序列)按照时间组织起来,筛选出和待推荐对象标签相同或者相似的子序列,进而用深度学习的技术进行训练和预测,挖掘用户的长期兴趣,以此为基础向用户进行推荐。另一方面,沿着“做宽”的思路,除了利用行为序列的信息之外,还会考虑用户特征、用户行为产生的上下文特征、用户与待推荐对象的交叉特征等,引入更多更有价值的用户信息,丰富用户信息,进而在后续的模型中更准确的挖掘用户的兴
趣表达,进一步提升推荐的准确性。
[0173]
本公开实施例提出了一种基于长期序列的建模方法,根据待推荐对象的语种风格标签,过滤出用户行为序列中相同语种风格标签的子序列,作为模型的输入序列,然后采用注意力机制挖掘用户长期兴趣,提升模型预测的准确度。为了更有效的利用用户行为序列,还可以对头部标签进一步进行拆分,引入虚拟标签,实现了“语种风格标签”加“虚拟标签”的标签体系,针对活跃地、行为丰富的用户,可以更好地对用户长期序列进行序列信息提取,更准确有效地提取用户表达信息,达到更精准细致挖掘用户长期兴趣的目的,从而进一步提升模型预测的准确性。
[0174]
基于同一发明构思,本公开实施例提供以下的设备和介质。
[0175]
本公开实施例提供一种推荐设备,该设备的结构可以如图11所示,包括处理器21、通信接口22、存储器23和通信总线24,其中,所述处理器21,所述通信接口22,所述存储器23通过所述通信总线24完成相互间的通信;
[0176]
所述存储器23,用于存放计算机程序;所述处理器21,用于执行所述存储器上所存储的程序时,实现本公开上述推荐方法实施例所述的步骤。
[0177]
可选的,所述处理器21可以包括中央处理器(cpu)、特定应用集成电路(asic,application specific integrated circuit),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(fpga,fieldprogrammable gate array)开发的硬件电路,可以是基带处理器。
[0178]
可选的,所述处理器21可以包括至少一个处理核心。
[0179]
可选的,所述存储器23可以包括只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)和磁盘存储器。存储器23 用于存储至少一个处理器21运行时所需的数据。存储器23的数量可以为一个或多个。
[0180]
本公开实施例还提供一种推荐模型训练设备,该设备的结构也可以如图11 所示。其中,所述处理器21,用于执行所述存储器上所存储的程序时,实现本公开上述推荐模型训练方法实施例所述的步骤。
[0181]
本公开实施例还提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,当可执行程序被处理器执行时,实现本公开上述方法实施例提供的方法。
[0182]
在可能的实施过程中,计算机存储介质可以包括:通用串行总线闪存盘 (usb,universal serial bus flash drive)、移动硬盘、只读存储器(rom, read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的存储介质。
[0183]
在本公开实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0184]
在本公开实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
[0185]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(universal serial bus flash drive)、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0186]
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0187]
本公开是参照根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0188]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0189]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0190]
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
[0191]
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献