基于会话的并行推荐方法及系统与流程

专利2022-06-29  64


本申请涉及信息处理及推荐领域,具体涉及一种基于会话的并行推荐方法及系统。



背景技术:

基于会话的推荐系统是现代推荐系统的重要组成部分,基于会话的推荐是指在用户个人信息与历史信息未知的情况下,仅基于当前会话中被点击的项目序列的隐式反馈,预测用户下一步将点击哪个项目。近年来,随着机器学习的迅猛发展,在基于会话的推荐系统领域,“sessionbasedrecommendationswithrecurrentneuralnetworks.”corr,abs/1511.06939,2015.、“improvedrecurrentneuralnetworksforsession-basedrecommendations.”inproceedingsofthe1stworkshopondlrs@recsys2016.、“neuralattentivesession-basedrecommendation.”inproceedingsofthe2017acmoncikm2017.、“stamp:short-termattention/memoryprioritymodelforsession-basedrecommendation.”inproceedingsofthe24thacmsigkddinternationalconferenceonkdd2018.等现有文献对基于神经网络的方法进行了广泛的研究,其中,循环神经网络因其在基于用户点击序列的用户序列行为建模方面的能力而受到极大关注。

然而,由于循环结构,现有方法在并行化方面有困难,因此,需要大量时间训练,不利于在现实场景中实时应用。



技术实现要素:

本申请的目的是提供一种基于会话的并行推荐方法及系统,用以提升基于会话的推荐结果的准确性。

为了实现上述任务,本申请采用以下技术方案:

第一方面,本申请提供了一种基于会话的并行推荐方法,包括:

接收用户在当前会话中的已点击项目序列;

将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征;

结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量,利用注意力机制来计算用户对在各个时间戳点击的项目的注意力权重,并基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣;

将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣;

结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图;

计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据点击概率列表向用户推荐项目。

进一步地,所述通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,包括:

对于已点击项目序列的嵌入向量xt=[x1,x2,…,xt],令每次切割的切片数量为n,共切割k次,则首先xt被切割成n个长度相等的子序列:xt=[n1,n2,…,nn],其中第i(1≤i≤n)个子序列t表示时间戳;再如此切割k-1次,直到得到第0层的最小子序列,则最小子序列的长度数量为nk个;从第1层开始,每一层的子序列都由下一层每n个子序列通过带有gru的标准循环神经网络后的最后一个输出的隐藏状态构成的序列组成。

进一步地,所述结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量,利用注意力机制来计算用户对在各个时间戳点击的项目的注意力权重,包括:

所述注意力机制为单层神经网络模型,在注意力机制中通过以下计算获得注意力权重:

其中是sigmoid函数,h是用户序列行为特征;wα0∈r1×d是权重向量,wα1,wα2∈rd×d是权重矩阵,bα,wα3∈rd是偏置向量,d是已点击项目的嵌入向量维度,t表示时间戳。

进一步地,所述基于注意力权重和已点击项目序列计算用户的长期兴趣,表示为:

其中,xi∈xt,xt=[x1,x2,…,xt]表示已点击项目序列的嵌入向量。

进一步地,所述结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图,包括:

所述多层感知机制由单层神经网络构成,在多层感知机制中通过以下计算获得用户的主要意图:

其中,是sigmoid函数,wi1,wi2∈rd×d是权重矩阵,bi∈rd是偏置向量,il表示用户的长期兴趣,is表示用户的短期兴趣。

进一步地,所述计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,表示为:

ci=ei·i

其中,ei∈e,e表示项目字典,ei表示目字典里每个项目的嵌入向量。

第二方面,本申请提供了一种基于会话的并行推荐系统,包括:

已点击项目序列输入模块,用于接收用户在当前会话中的已点击项目序列;

用户序列行为特征生成模块,用于将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征;

长期兴趣生成模块,包括注意力机制和长期兴趣生成器,其中注意力机制通过结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量来计算用户对在各个时间戳点击的项目的注意力权重;长期兴趣生成器基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣;

短期兴趣生成模块,用于将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣;

主要意图生成模块,用于结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图;

点击概率生成模块,用于计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据排序结果向用户推荐项目。

进一步地,所述基于会话的并行推荐系统在进行训练时,损失函数由预测的点击概率列表的交叉熵定义:

其中y=[y1,y2,…,y|v|]是一个独热编码向量,表示用户在下一时间戳真正的点击,表示点击概率列表。

第三方面,本申请提供了一种终端设备,包括包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,处理器执行计算机程序时实现前述第一方面的基于会话的并行推荐方法的步骤。

第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现前述第一方面的基于会话的并行推荐方法的步骤。

本申请具有以下技术特点:

本申请通过使用切片神经网络对用户的当前会话序列实现并行处理,在获取序列中重要顺序信息的同时,加速获得用户序列行为特征的时间,从而大量减少系统的运行时间,并通过获取用户的长期兴趣与短期兴趣来捕获用户的主要意图,提升推荐结果的准确性。

附图说明

图1为本申请的一个实施例提供的基于会话的并行推荐方法的流程示意图;

图2为本申请的一个实施例提供的基于会话的并行推荐系统的结构示意图;

图3为本申请基于会话的并行推荐系统的总体网络示意图;

图4为本申请基于会话的并行推荐系统在序列长度为8时所使用的切片循环神经网络示意图;

图5为本申请的一个实施例提供的终端设备的结构示意图。

具体实施方式

参见图1,本申请的一个实施例公开了一种基于会话的并行推荐方法,该方法包括:

s1,接收用户在当前会话中的已点击项目序列。

其中,所述会话是指从某用户打开某个网站开始,在一段时间内与该网站的交互记录,即点击项目序列。其中,所述的项目是一个广义概念,例如可以为商品、新闻、视频等信息。

用v=[v1,v2,…,v|v|]表示本实施例中所有的独立项目的集合,简称项目字典,其中,|v|表示项目字典中独立项目的数量,每个会话用s=[s1,s2,…,sn]表示,其中sj表示在第j(j=1,2,...,n)个时间戳点击的项目在项目字典中的索引,n表示时间戳的个数。用st=[s1,s2,…,st]表示用户在第t个时间戳的已点击项目序列。那么,本申请的任务就是在给定st时,预测用户在下一时间戳最有可能点击项目字典v里的哪个项目。令e=[e1,e2,…,e|v|]表示项目字典v对应的嵌入向量表示,st=[s1,s2,…,st]对应的嵌入向量表示为xt=[x1,x2,…,xt],其中xi(i=1,2,...,t)表示已点击项目si的嵌入向量表示。

如图3所示,令已点击项目序列的嵌入向量xt作为本申请的输入,最终推荐目标是获得点击概率列表其中表示用户在下一时间戳点击项目vi(i=1,2,...,|v|)的概率。最终本申请推荐中对应的top-k个项目。

s2,将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征。该特征是指对用户的序列行为建模而得到的行为特征。

该步骤中,用户已点击的项目序列的嵌入向量输入切片循环神经网络后,通过切片循环神经网络获得最后一个时间戳的隐藏状态,该隐藏状态可提取用户在当前序列中的行为特征,所以将该隐藏状态作为用户序列行为特征h。

其中,切片循环神经网络是在标准循环神经网络的基础上,通过将序列分割成多个长度相等的子序列来实现并行化,门控循环单元gru(gatedrecurrentunit,gru)在每层同时处理每个子序列,并且处理信息可以逐层传递,这样既可以对序列顺序建模,又可以获取比标准rnn更快的速度。

对于本申请的已点击项目序列的嵌入向量xt=[x1,x2,…,xt],令每次切割的切片数量为n,共切割k次,则首先xt被切割成n个长度相等的子序列:xt=[n1,n2,…,nn],其中第i(1≤i≤n)个子序列t表示时间戳;再如此切割k-1次,直到得到第0层的最小子序列。则最小子序列的长度数量为nk个;从第1层开始,每一层的子序列都由下一层每n个子序列通过带有gru的标准循环神经网络后的最后一个输出的隐藏状态构成的序列组成,所以第p(p>0)层的子序列长度为n,子序列数量为nk-p个。图4为在当前会话长度为8,切割k=2次,每个切片数量n=2时的切片循环神经网络。

与传统的用标准循环神经网络的基于会话的推荐系统相比,在获得用户序列行为特征时,由于切片循环神经网络可并行处理每个子序列,并多层传递重要信息,可加速计算速度。假设在每个循环单元花费的时间是r,那么在标准循环神经网络中花费的时间是t1=t×r,在切片循环神经网络上花费的时间是则速度优势为:所以可通过指定切片数量n和切割次数k来获得想要的速度优势。

s3,结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量,利用注意力机制来计算用户对在各个时间戳点击的项目的注意力权重,并基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣。长期兴趣是指用户随着时间不轻易改变的兴趣。

本申请中的注意力机制由单层神经网络构成,通过用户序列行为特征生成模块获得的用户序列行为特征h被送入注意力机制,另外注意力机制也会考虑已点击项目序列st=[s1,s2,…,st]中各个已点击项目在当前会话中的点击频率ft=[f1,f2,…,ft]和已点击项目序列的嵌入向量xt=[x1,x2,…,xt],通过注意力机制可获得用户当前对各已点击项目的注意力权重αt=[α1t,α2t,…,αtt]。

所述注意力机制为单层神经网络模型,在注意力机制中通过以下公式获得注意力权重:

其中是sigmoid函数,h是由用户序列行为特征生成模块得到的用户序列行为特征;wα0∈r1×d是权重向量,wα1,wα2∈rd×d是权重矩阵,bα,wα3∈rd是偏置向量,d是已点击项目的嵌入向量维度;所述权重向量、权重矩阵、偏置向量均通过对注意力机制的单层神经网络模型训练得到。长期兴趣生成器可通过注意力权重αt选择性地挑选重要的已点击项目来计算用户的长期兴趣表示il:其中,xi∈xt,xt=[x1,x2,…,xt]表示已点击项目序列的嵌入向量。

s4,将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣。

由于短期兴趣是指随着时间用户不断改版的新兴趣,所以将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣;短期兴趣是指用户随着时间不断改变的新兴趣,表示为is:is=xt。xt为已点击项目序列的嵌入向量xt=[x1,x2,…,xt]的最后一个嵌入向量。

s5,结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图。该主要意图是指用户在当前时刻的综合兴趣。

所述多层感知机制由单层神经网络构成,在多层感知机制中通过以下计算获得用户的主要意图:

其中,是sigmoid函数,wi1,wi2∈rd×d是权重矩阵,bi∈rd是偏置向量,il表示用户的长期兴趣,is表示用户的短期兴趣。

s6,计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据点击概率列表向用户推荐top-k个项目。

其中,项目字典里每个候选项目的嵌入向量为ei∈e,用户的主要意图表示为i,则相似度表示为:ci=ei·i。将所有相似度c1,c2,…,c|v|构成集合c=[c1,c2,…,c|v|],通过一个softmax函数来处理c以进行归一化,从而获得点击概率列表

根据本申请的另一方面,提供了一种基于会话的并行推荐系统1,如图2所示,包括:

已点击项目序列输入模块11,用于接收用户在当前会话中的已点击项目序列。

用户序列行为特征生成模块12,用于将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征。

长期兴趣生成模块13,包括注意力机制和长期兴趣生成器,其中注意力机制通过结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量来计算用户对在各个时间戳点击的项目的注意力权重;长期兴趣生成器基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣。

短期兴趣生成模块14,用于将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣。

主要意图生成模块15,用于结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图。

点击概率生成模块16,用于计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据排序结果向用户推荐项目。

需要说明的是,上述各模块的具体执行过程及相关内容解释对应于前述第一方面的s1至s6,在此不赘述。

值得一提的是,在训练本推荐系统时,每个会话s=[s1,s2,…,sn]都被处理成子序列和相应的标签([s1],s2),…,([s1,s2,…,sn-1],sn),损失函数由预测的点击概率列表的交叉熵定义:其中y=[y1,y2,…,y|v|]是一个独热编码向量,表示用户在下一时间戳真正的点击。例如,用户在下一时间戳真正点击的项目st 1是项目字典v里的第i个项目vi,则yi=1,yk=0(k≠i)。最后采用迭代随机梯度下降优化法对交叉熵损失进行优化。

请参阅图5,本申请实施例进一步提供一种终端设备2,该终端设备2可以为计算机、服务器;包括存储器22、处理器21以及存储在存储器22中并可在处理器上运行的计算机程序23,处理器21执行计算机程序23时实现上述基于会话的并行推荐方法的步骤,例如,前述的s1至s6。

计算机程序23也可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器22中,并由处理器21执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序23在终端设备2中的执行过程,例如,计算机程序23可以被分割为已点击项目序列输入模块、用户序列行为特征生成模块、长期兴趣生成模块、短期兴趣生成模块、主要意图生成模块、点击概率生成模块,各模块的功能参见前述装置中的描述,不再赘述。

本申请的实施提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述基于会话的并行推荐方法的步骤,例如,前述的s1至s6。

集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。


技术特征:

1.一种基于会话的并行推荐方法,其特征在于,包括:

接收用户在当前会话中的已点击项目序列;

将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征;

结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量,利用注意力机制来计算用户对在各个时间戳点击的项目的注意力权重,并基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣;

将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣;

结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图;

计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据点击概率列表向用户推荐项目。

2.根据权利要求1所述的基于会话的并行推荐方法,其特征在于,所述通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,包括:

对于已点击项目序列的嵌入向量xt=[x1,x2,…,xt],令每次切割的切片数量为n,共切割k次,则首先xt被切割成n个长度相等的子序列:xt=[n1,n2,…,nn],其中第i(1≤i≤n)个子序列t表示时间戳;再如此切割k-1次,直到得到第0层的最小子序列,则最小子序列的长度数量为nk个;从第1层开始,每一层的子序列都由下一层每n个子序列通过带有gru的标准循环神经网络后的最后一个输出的隐藏状态构成的序列组成。

3.根据权利要求1所述的基于会话的并行推荐方法,其特征在于,所述结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量,利用注意力机制来计算用户对在各个时间戳点击的项目的注意力权重,包括:

所述注意力机制为单层神经网络模型,在注意力机制中通过以下计算获得注意力权重:

其中是sigmoid函数,h是用户序列行为特征;wα0∈r1×d是权重向量,wα1,wα2∈rd×d是权重矩阵,bα,wα3∈rd是偏置向量,d是已点击项目的嵌入向量维度,t表示时间戳。

4.根据权利要求1所述的基于会话的并行推荐方法,其特征在于,所述基于注意力权重和已点击项目序列计算用户的长期兴趣,表示为:

其中,xi∈xt,xt=[x1,x2,…,xt]表示已点击项目序列的嵌入向量。

5.根据权利要求1所述的基于会话的并行推荐方法,其特征在于,所述结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图,包括:

所述多层感知机制由单层神经网络构成,在多层感知机制中通过以下计算获得用户的主要意图:

其中,是sigmoid函数,wi1,wi2∈rd×d是权重矩阵,bi∈rd是偏置向量,il表示用户的长期兴趣,is表示用户的短期兴趣。

6.根据权利要求1所述的基于会话的并行推荐方法,其特征在于,所述计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,表示为:

ci=ei·i

其中,ei∈e,e表示项目字典,ei表示目字典里每个项目的嵌入向量。

7.一种基于会话的并行推荐系统,其特征在于,包括:

已点击项目序列输入模块,用于接收用户在当前会话中的已点击项目序列;

用户序列行为特征生成模块,用于将所述已点击项目序列的嵌入向量输入切片神经网络中,通过切片神经网络将所述嵌入向量分割成多个长度相等的子序列来实现并行化,并将切片神经网络最后输出的隐藏状态作为用户序列行为特征;

长期兴趣生成模块,包括注意力机制和长期兴趣生成器,其中注意力机制通过结合用户序列行为特征、各个已点击项目的点击频率和各个已点击项目的嵌入向量来计算用户对在各个时间戳点击的项目的注意力权重;长期兴趣生成器基于注意力权重和已点击项目序列的嵌入向量计算用户的长期兴趣;

短期兴趣生成模块,用于将用户最后一次点击的项目的嵌入向量作为用户的短期兴趣;

主要意图生成模块,用于结合用户的长期兴趣和短期兴趣,利用多层感知机制来获取用户的主要意图;

点击概率生成模块,用于计算项目字典里每个项目的嵌入向量与用户的主要意图之间的相似度,对所有相似度进行归一化后获得用户对于项目字典里每个项目的下一次点击概率;对点击概率列表进行排序,并根据排序结果向用户推荐项目。

8.根据权利要求7所述的基于会话的并行推荐系统,其特征在于,所述基于会话的并行推荐系统在进行训练时,损失函数由预测的点击概率列表的交叉熵定义:

其中y=[y1,y2,…,y|v|]是一个独热编码向量,表示用户在下一时间戳真正的点击,表示点击概率列表。

9.一种终端设备,包括包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现根据权利要求1至6中任一方法的步骤。

10.一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时实现根据权利要求1至6中任一方法的步骤。

技术总结
本申请公开了一种基于会话的并行推荐方法及系统,所述方法包括:将用户在当前会话中的已点击项目序列输入可并行处理序列的切片神经网络并将输出的隐藏状态作为用户序列行为特征;利用注意力机制计算用户对已点击项目的注意力权重,由此计算用户的长期兴趣,进而结合用户的短期兴趣获取其主要意图;计算每个项目与用户的主要意图之间的相似度从而获得用户对每个项目的下一次点击概率,据此进行推荐。本申请通过并行处理序列大量减少系统的运行时间,并提升推荐准确性。本申请所提出的模型与技术可应用于高能物理高性能计算相关应用的研发工作,尤其是针对应用历史数据对高能物理粒子折射轨迹的分段并行预测具有直接应用价值。

技术研发人员:沈鸿;宋菁
受保护的技术使用者:中山大学
技术研发日:2020.01.14
技术公布日:2020.06.09

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

最新回复(0)