一种基于会话的项目推荐方法、装置、设备及存储介质与流程

文档序号:18414424发布日期:2019-08-13 19:10阅读:180来源:国知局
一种基于会话的项目推荐方法、装置、设备及存储介质与流程

本发明涉及项目推荐技术领域,更具体地说,涉及一种基于会话的项目推荐方法、装置、设备及计算机可读存储介质。



背景技术:

随着移动互联网技术不断发展,网络中的信息量以指数规律迅速扩展和增加,网络上的信息过载和信息迷航问题日益严重。为了给用户提供满意的信息和服务,推荐系统应运而生,成为了众多研究学者关注的研究领域。很多已有的推荐系统是基于用户的历史互动记录,然而在众多应用场景中,用户身份是未知的,在一个进行的会话中,这儿仅仅有用户的历史记录。为了解决这个问题,基于会话的推荐被提出来,其目的是基于用户在当前会话中的历史行为来预测该用户的下一次行为,比如点击一个项目的行为。

由于具有高度的实践价值,很多基于会话的推荐方法被提出来。马尔科夫链(mc)是一个典型的例子,它假设用户的下一次行为是依赖于之前的行为。基于这样一个强有力的假设,用户过去行为的独立组合可能会限制推荐的准确性。最近的研究强调了在基于会话的推荐系统中使用循环神经网络(recurrentneuralnetwork,rnn)的重要性,并获得了有希望的结果。例如,hidasi等人提出使用rnn的一个变种,门控循环单元(gatedrecurrentunit,gru)来建模短期偏好,然后tan等人提出一个改进版本来进一步提高模型的推荐性能。li等人也通过运用一个全局和局部的rnn来同时捕捉用户的序列模式和主要目的。然而,现有的这些方法通常建模连续项目之间的单向转换,忽略了整个会话序列之间的复杂转换。

因此,如何更精准的预测用户点击下一个项目的概率,提高推荐的性能,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种基于会话的项目推荐方法、装置、设备及计算机可读存储介质,以实现更精准的预测用户点击下一个项目的概率,提高推荐的性能。

为实现上述目的,本发明提供一种基于会话的项目推荐方法,包括:

获取用户的历史会话序列,所述历史会话序列中包括按照访问时间排序的各个项目的表征向量;

创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量;

将各个项目的加权连接向量及历史会话序列中的最后一个项目的表征序列输入图神经网络,获得表示用户局部偏好的各个项目的隐含状态向量;

将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量;

根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目。

可选的,所述创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量,包括:

根据历史会话序列中各个项目的访问顺序,确定有向的会话结构图;

确定所述会话结构图的输入边加权连接矩阵和输出边连接矩阵;

利用所述输入边加权连接矩阵、所述输出边连接矩阵、所述历史会话序列,确定各个项目的加权连接向量。

可选的,所述将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量,包括:

将各个项目的隐含状态向量输入多层自注意力层;其中,每一层自注意力层的输出为与之相邻的下一层自注意力层的输入;

将最后一层自注意力层的输出作为各个项目的自注意力表征向量。

可选的,根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目,包括:

根据各个项目的隐含状态向量和各个项目的自注意力表征向量,以及隐含状态向量的第一权重和自注意力表征向量的第二权重,确定各个项目的会话表征向量;

根据各个项目的会话表征向量,以及各个项目的表征向量,确定各个项目成为下一个访问项目的概率值;

利用各个项目的概率值确定待推荐的项目。

为实现上述目的,本发明进一步提供一种基于会话的项目推荐装置,包括:

获取模块,用于获取用户的历史会话序列,所述历史会话序列中包括按照访问时间排序的各个项目的表征向量;

加权连接向量确定模块,用于创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量;

隐含状态向量确定模块,用于将各个项目的加权连接向量及历史会话序列中的最后一个项目的表征序列输入图神经网络,获得表示用户局部偏好的各个项目的隐含状态向量;

自注意力表征向量确定模块,用于将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量;

项目推荐模块,用于根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目。

可选的,所述加权连接向量确定模块包括:

会话结构图确定单元,用于根据历史会话序列中各个项目的访问顺序,确定有向的会话结构图;

连接矩阵确定单元,用于确定所述会话结构图的输入边加权连接矩阵和输出边连接矩阵;

加权连接向量确定单元,用于利用所述输入边加权连接矩阵、所述输出边连接矩阵、所述历史会话序列,确定各个项目的加权连接向量。

可选的,所述自注意力表征向量确定模块,包括:

信息输入单元,用于将各个项目的隐含状态向量输入多层自注意力层;其中,每一层自注意力层的输出为与之相邻的下一层自注意力层的输入;

自注意力表征向量确定单元,用于将最后一层自注意力层的输出作为各个项目的自注意力表征向量。

可选的,所述项目推荐模块,包括:

会话表征向量确定单元,用于根据各个项目的隐含状态向量和各个项目的自注意力表征向量,以及隐含状态向量的第一权重和自注意力表征向量的第二权重,确定各个项目的会话表征向量;

概率值确定单元,用于根据各个项目的会话表征向量,以及各个项目的表征向量,确定各个项目成为下一个访问项目的概率值;

项目推荐单元,用于利用各个项目的概率值确定待推荐的项目。

为实现上述目的,本发明进一步提供一种基于会话的项目推荐设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序被处理器执行时实现如上述的基于会话的项目推荐方法的步骤。

为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于会话的项目推荐方法的步骤。

通过以上方案可知,本发明实施例提供的一种基于会话的项目推荐方法、装置、设备及计算机可读存储介质;在本方案中,通过用户的历史会话序列构建出一个有向的会话结构图,基于该会话结构图,图神经网络能够捕捉相邻项目之间的转换,并且生成该图中所有相应节点的隐含状态向量,然后运用自注意力机制来建模长距离依赖,最后把用户的全局偏好和当前局部偏好的线性组合作为当前会话的隐含向量来预测下一次点击的概率,本方案利用自注意力网络和图神经网络的互补优势,实现了对项目的精准推荐。

附图说明

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

图1为本发明实施例公开的一种基于会话的项目推荐方法流程示意图;

图2为本发明实施例公开的会话结构图;

图3为本发明实施例公开的会话结构图输入边加权连接矩阵示意图;

图4为本发明实施例公开的会话结构图输出边加权连接矩阵示意图;

图5为本发明实施例公开的一种基于会话的项目推荐模型的框架结构示意图;

图6为本发明实施例公开的一种基于会话的项目推荐装置结构示意图;

图7为本发明实施例公开的一种基于会话的项目推荐设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,一个新的序列模型-transformer,在各种翻译任务中取得了先进的性能和效率。transformer不使用递归或卷积操作,而是利用由堆叠自注意力网络组成的编码器-解码器结构来绘制输入和输出之间的全局依赖性。自我注意力作为一种特殊的注意力机制,已被广泛用于建模序列数据,并在许多应用中取得了显著的成果,例如机器翻译,情感分析和序列推荐。transformer模型的成功归功于其自我注意力网络,该网络通过加权平均操作充分考虑所有项目。尽管目前取得了成功,但这种操作分散了注意力的分布,导致缺乏对相邻项目的局部依赖,并限制了其学习项目的上下文表示的能力。然而相邻项目的局部上下文信息已经被证明可以增强其建模神经表征之间的依赖关系,特别是对于注意力模型。

因此在申请中,将通过图神经网络来强化自我注意力网络,提出一个图上下文自我注意力网络框架来进行基于会话的推荐,其实质是利用san(self-attentionnetwork(san),自注意力网络)显式参与所有位置的项目来捕捉远程依赖,利用图神经网络(graphneuralnetwork,gnn)编码节点和边的属性特征来提供丰富的局部上下文信息,分别利用这两个网络互补的优势,这样最后学习到的高阶混合特征能够充分反映用户对项目的偏好,精准预测用户点击下一个项目的概率,从而提高推荐的性能。

可以理解的是,基于会话的推荐目的是基于用户当前的行为序列,预测该用户下一次将点击哪一个项目;该行为序列即为本方案中的历史会话序列。本发明考虑的序列内容主要是每个匿名会话的项目交互记录。首先给出|v|个涉及所有会话的项目收录到项目集合v,可表示为v={v1,v2,...,v|v|},其中,v表示所有项目的集合,而v1,v2代表每一个项目。本方案中的项目可以指任何被推荐的物品,例如商品,音乐等。对于每一个匿名的会话,用户点击的行为序列按时间排序可表示为s={s1,s2,...,sn},其中st∈v表示该用户在时间t点击的项目。

根据如上定义,本发明研究的问题可以归结为:对于在时间t截断的行为序列的st={s1,s2,...,st-1,st}(1≤t<n),预测下一次可能点击的项目(即st+1)。确切的说,本方案会生成发生在当前会话的所有候选项目的一个排名列表。表示所有项目的输出概率,其中对应于项目vi的推荐分数。因为推荐者通常为用户提出多个推荐,所以本项目可以从中选择top-n个项目进行推荐。

参见图1,本发明实施例提供的一种基于会话的项目推荐方法,包括:

s101、获取用户的历史会话序列,所述历史会话序列中包括按照访问时间排序的各个项目的表征向量;

需要说明的是,本方案中的历史会话序列即为上文中的:s={s1,s2,...,sn},其中,序列中包括的s1,s2,...,sn为根据访问时间所排序的,也就是说,s1为最先访问的项目的表征向量。

s102、创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量;

其中,所述创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量,包括:

根据历史会话序列中各个项目的访问顺序,确定有向的会话结构图;

确定所述会话结构图的输入边加权连接矩阵和输出边连接矩阵;

利用所述输入边加权连接矩阵、所述输出边连接矩阵、所述历史会话序列,确定各个项目的加权连接向量。

可以理解的是,图神经网络gnn可以在有向图中进行操作,学习图结构数据节点的表征,捕捉序列局部的上下文信息。因此,本发明使用gnn模型来捕捉用户局部依赖性。在运用gnn之前,需要对所有的会话数据构造一个有意义的图。给定一个会话s={s1,s2,...,sn},将每个项目si表示为一个节点,(si-1,si)表示为图中的一条边,意味着一个用户在会话s中点击完项目si-1之后点击项目si。因此,每个会话都可以被建模为一个有向图,该有向图为会话结构图,然后通过促进不同节点之间的通信来更新图结构。

具体来说,让mi,mo∈rn×n分别表示会话图中输入边加权连接矩阵和输出边连接矩阵,其中,r为实数集,n表示项目的数量。例如,假设一个会话s={s1,s3,s2,s4,s3},参见图2,为本发明实施例公开的会话结构图,参见图3,为本发明实施例公开的会话结构图输入边加权连接矩阵示意图,参见图4,为本发明实施例公开的会话结构图输出边加权连接矩阵示意图;可以看出,由于几个项目可能会重复出现在某一个会话序列中,因此,本方案为每条边分配标准化权重,该权重由该边的起始节点的出度除以边的总出现次数所得。需要说明的是,本方案提供的进行项目推荐的模型可以支持构造会话图的各种策略,并生成相应的连接矩阵,在本方案并不具体限定。

需要说明的是,最初每个项目会给它随机初始化一个一维向量,长度是d,表示这个项目的低维隐含向量,进一步,将每个项目v∈v转化到一个统一的低维隐向量空间,转换后,通过节点向量s∈rd表示项目v的一个d维实值隐含向量;该节点向量即为本方案中的项目的表征向量。

构建会话结构图,获得输入边加权连接矩阵mi和输出边连接矩阵mo后,需要根据输入边加权连接矩阵、输出边连接矩阵和各个项目的加权连接向量s={s1,s2,...,sn}计算各个项目的加权连接向量at;对于在会话图中的时间t下的节点st,不同节点间的信息传播可以公式化为:

at=concat(mti([s1,...,sn]wai+bi),

mto([s1,...,sn]wao+bo).(1)

其中,concat表示将两个数组拼接起来,比如[1,2,3]和[4,5,6],concat之后就是[1,2,3,4,5,6];wai,wao∈rd×d分别是第一参数矩阵和第二参数矩阵,

bi,bo∈rd分别是第一偏置向量和第二偏置向量。mti,mto∈r1×n是对应于节点st的输入边加权连接矩阵的第t行和输出边连接矩阵的第t行。at提取了节点st邻居节点的上下文信息。然后将at和前一状态节点向量st-1输入进图神经网络,得到一个新的项目隐含状态向量ht,建模了用户的局部偏好;在本方案中,对于一个会话序列:s1,s2,...,sn,当计算s2的时候s1就是前一状态节点。

s103、将各个项目的加权连接向量及历史会话序列中的最后一个项目的表征序列输入图神经网络,获得表示用户局部偏好的各个项目的隐含状态向量;

具体来说,本方案主要通过gnn图神经网络来获取各个节点的隐含向量,给定一个节点的上一节点向量st-1和该节点的加权连接向量at,最终gnn层的输出的隐含状态向量ht为:

zt=σ(wzat+pzst-1),

rt=σ(wrat+prst-1),

其中,wz,wr,wh∈r2d×d为训练之后需要学习的参数,表示权重,可以用第一待学习参数、第二待学习参数、第三待学习参数表示,d是隐含向量的维度,每一维度代表该项目在某一特征的值,这个特征是抽象的,模型自己学习的。pz,pr,ph∈rd×d也是权重,是待学习的参数,可以用第四待学习参数、第五待学习参数、第六待学习参数表示。σ(·)表示是一个sigmoid层,映射0到1之间的值,1代表“完全保留”,0代表“完全放弃”,表示两个向量之间的哈达玛乘积运算。zt,rt分别是更新门和重置门,决定保留和丢弃哪些信息。表示隐藏状态,ht是相当于输出门。

s104、将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量;

其中,所述将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量,包括:

将各个项目的隐含状态向量输入多层自注意力层;其中,每一层自注意力层的输出为与之相邻的下一层自注意力层的输入;

将最后一层自注意力层的输出作为各个项目的自注意力表征向量。

需要说明的是,自注意力网络的输入是上一层gnn层的输出。在本方案中,自注意力层由三个部分组成:自注意力层,前馈网络和多层自注意力。

1、自注意力层:

自注意力机制是注意力机制的一个特例,并且已经被成功的应用于各个领域,例如自然语言处理和问答系统。自注意力机制可以在输入和输出序列之间绘制全局依赖关系,并捕获序列本身之间的项目-项目交互,而不管它们的距离如何。因此本发明使用san模型来捕捉用户长局依赖性。自我注意力网络的构建块是一个可缩放的点积注意力机制。

该注意力模型的输入是由查询(queries)、键(keys)和值(values)组成。输出是由查询和键的相似性的值的加权和所得。在我们的例子中,所有这三个组件都是相同的,并且由用户的历史交互记录组成。给定一个输入向量stu,首先使用线性映射将输入转化为三个矩阵,分别为查询矩阵aq、键矩阵ak和值矩阵av;例如:aq=wqstu。该自注意力块的输出由以下公式计算:

其中,att表示将等式右边做一个简化表示,aq,ak,av∈rn×d也可以理解为映射矩阵,映射能够使模型更加的灵活。比例因子是避免内积值过大呈现极端值,特别是当维度过高的时候起调节作用。

因此,在本申请中,获得会话图中各个项目节点的隐含向量后,即确定h=[h1,h2,...,hn]后,需要将其输入进san中来更好的捕捉全局会话偏好,在本实施例中,将输入第一层自注意力层后输出的向量用f表示,也即:

f=att(hwq',hwk',hwv')(4)

其中,wq',wk',wv'∈r2d×d可以分别表示为第一映射矩阵、第二映射矩阵和第三映射矩阵,hwq'相当于上文中自注意力网络中的aq

2、前馈网络:

在经过一层san之后,我们运用一个带有relu激活函数的两层线性转换来赋予模型非线性,并且考虑不同隐含维度之间的互动。然而,在自我注意力操作中可能发生传输损失。因此,我们在前馈网络之后添加了残差连接,使模型更容易利用低层信息。

e=relu(fw1+b1)w2+b2+f,(5)

其中,w1和w2分别为d×d的第一加权矩阵和第二加权矩阵,b1和b2是d维的第一偏见向量和第二偏见向量;需要说明的是,在本实施例中,所有含w和b的的参数,不管是否有上标,都是随机初始化的,然后模型进行训练得到的。此外,为了缓解前馈网络中的过拟合问题,在训练时使用了dropout技术。在此,为了简便性,将以上的整个自注意力网络定义为

e=san(h)(6)

3、多层san:

经过第一层自注意力层之后,f使用自适应权重基本上聚合了所有先前项目的嵌入。然而,最近有工作表明,不同的自注意力层可以捕获不同类型的特征。因此,通过基于f的另一个自我注意力层来学习更高级别的项目转换可能是有用的。因此,在本方案中,应用具有多层自注意力层的自注意力网络,其中,第k(k>1)层被定义为:

e(k)=san(e(k-1))(7)

其中,可以看出,第一层被定义为e(1)=e=san(h),之后的每一层,均将上一层的输出作为本层的输入,e(k)∈rn×d则是多层自我注意力网络的最终输出。

s105、根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目。

其中,根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目,包括:

根据各个项目的隐含状态向量和各个项目的自注意力表征向量,以及隐含状态向量的第一权重和自注意力表征向量的第二权重,确定各个项目的会话表征向量;

根据各个项目的会话表征向量,以及各个项目的表征向量,确定各个项目成为下一个访问项目的概率值;

利用各个项目的概率值确定待推荐的项目。

需要说明的是,在经过自注意力网络自适应地提取会话的序列信息之后,获得了序列的长期自注意力表征向量e(k)。为了更好地预测用户的下一次点击的项目,将长期偏好e(k)与当前的会话兴趣hn加权求和,然后将此结合后的隐含向量-会话表征向量作为该会话的表示。对于会话s={s1,s2,...,sn},取多层san的输出e(k)的最后一维作为全局嵌入向量,局部嵌入向量表示为最近点击项目的隐含向量,即hn,然后加权求和作为最终的会话表征向量。

sf=ωen(k)+(1-ω)hn(8)

其中,en(k)∈rd表示自注意力表征向量的第n行,(1-ω)为第一权重,ω为第二权重,ω在[0,1]之间,可根据实际情况进行预先设定。然后预测每个候选项目vi∈v属于下一次点击的概率,该概率即为本方案中的成为下一个访问项目的概率值:

其中,表示项目vi成为会话s中下一次点击的推荐概率;各个项目的概率确定后,可以从中选择概率值最大的n个作为待推荐的项目,该n的取值可以为1个,也可以为多个,本方案并不具体限定,可根据实际情况进行调整。需要说明的是,本方案在得到最终待推荐的项目后,需要采用交叉熵损失函数为模型进行优化,通过最小化以下目标函数:

其中,y表示真实项目的独热编码向量,θ是模型中的所有超参数的集合,λ是正则化权重;对一个输入序列[s1,s2,...,st,st+1,...,sn],在计算st的时候,y即为st+1,计算s1的时候y就是s2。

综上可以看出,对于能实现上述项目推荐方法的模型来说,共分为三部分:分别为执行s101-s103的图神经网络层部分,执行s104的自注意力层部分,以及执行s105的预测层部分。参见图5,为本发明实施例提供的一种基于会话的项目推荐模型的框架结构示意图;该框架图的最左侧为用户会话图的构建,中间部分为自注意力网络的运用,最右侧为预测层,计算所有候选项目的排名分数。

在本实施例中,提供两种对本方案中的模型训练的算法,分别为梯度下降算法和bptt(back-propagationthroughtime)-随时间反向传播算法,下面分别进行介绍:

(1)梯度下降算法:

梯度下降法是比较常用的一阶优化算法。梯度下降法基于的思想是:找到某函数的最小值,最好的方法是沿着该函数的负梯度方向探寻。如果梯度记为▽,则函数f(x,y)的梯度可表示为:

那么负梯度就意味着梯度的反方向,这个梯度意味着要沿x的方向移动沿y的方向移动其中,函数f(x,y)必须在待计算的点上有定义且可微。

在每次迭代中,梯度下降算法都会沿负梯度方向移动一步。其中,梯度算子总是指向函数值下降最快的方向。这里所说的是移动方向,而没有提及移动量大小。该量值称为步长,记作α。梯度下降的迭代公式可以表示为:

w←w-α▽wf(w)

该公式将一直被迭代执行,直至达到某个停止条件为止。比如迭代次数达到某个指定值或算法达到某个可以允许的误差范围。

(2)bptt-随时间反向传播算法

神经网络中最常用的优化算法是随时间反向传播算法,是一种适合于多层神经元网络的一种学习算法。与反向传播算法(bp)类似,它是在时间上反传的梯度下降算法,建立在梯度下降法的基础上。bptt网络的输入输出关系实质上是一种映射关系:一个输入m输出的bptt神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是bptt算法得以应用的基础。反向传播算法主要由两个环节(激励传播、权重更新)反复循环迭代,直到网络的对输入的响应达到预定的目标范围为止。

bptt算法的学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层。如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,网络学习结束。

为了方便理解本方案,在此提供一本方案的具体应用过程:

本方案中会话推荐简单的说就是一个用户访问一个网站,但是用户没有登录,只是随意的浏览了网页中的几个商品,然后就离开了,这时,将用户在这短时间内的连续行为就叫做会话。在训练本方案中的模型时,就需要输入很多条这种匿名的会话序列。

首先,获取很多条会话序列,每条会话序列由若干个项目组成,比如商品、音乐等,统称为items;每条会话序列是按照时间排序的。将这所有的会话序列构造成一个会话结构图。然后对于每一个单独的会话[s1,s2,...,sn],就是该会话图中的一个子图,即图5左边虚线的那一部分,可以得到两个连接矩阵mi和mo,然后对每一个时间点t的节点计算得到at,将at和st-1一起输入到gnn中得到ht;接着把ht输入到自注意力网络中得到e(k),最后将自注意力层的输出e(k)和gnn的输出ht做一个线性加权组合,就可以得到最终的输出,作为当前会话的表征向量sf,最终预测下一个行为的时候就可以把当前的会话表征向量sf与项目的表征向量vi相乘得到一个分数从而可以得到所有项目的分数,分数最高的就作为当前会话的下一次行为,即匿名用户下一次可能点击哪个item。

综上可以看出,本方案基于会话的项目推荐方案,旨在根据匿名的会话来预测用户的下一步行动,是许多在线服务的一项关键任务,例如电子商务和流媒体。最近,自我注意力网络(san)由于不使用循环或者卷积操作在各种序列建模任务方面都取得了重大成功。但是,自注意力网络缺乏相邻项目上存在的局部依赖性,并且限制了其学习序列中项目的上下文表示的能力。

而本方案针对如何利用图神经网络和自我注意力机制增强基于会话推荐性能的问题,提出了一种全新的图上下文自我注意力会话推荐框架。具体来说,对于所有的会话序列,我们首先动态构造出一个有向图结构,基于构造好的会话图,图神经网络能够捕捉相邻项目之间的关系,并且生成相应的节点隐向量,接下来每个会话都通过新的隐向量运用自我注意力机制来学习运程依赖,然后每个会话被表示为该会话全局偏好和当前兴趣的线性结合。最后,我们使用两个不同应用场景的真实数据集评估了所提出的模型。

需要说明的是,本方案具有如下有益效果:

1)为了提升会话序列的表征,本方案基于图神经网络提出了一个新颖的图上下文自注意力模型,利用自注意力网络和图神经网络的互补优势来提高推荐性能。

2)图神经网络用来建模各个单独会话的局部图结构依赖性,而多层自注意力网络可以获得上下文局部表征。并且,通过两个真实数据集进行了实验,来评估本方案所述的模型性能,实验结果表明,本方案提出的这种基于会话的项目推荐方式持续优于目前相关的最先进的方法。

下面对本发明实施例提供的项目推荐装置进行介绍,下文描述的项目推荐装置与上文描述的项目推荐方法可以相互参照。

参见图6,本发明实施例提供的一种基于会话的项目推荐装置,包括:

获取模块100,用于获取用户的历史会话序列,所述历史会话序列中包括按照访问时间排序的各个项目的表征向量;

加权连接向量确定模块200,用于创建与所述历史会话序列对应的会话结构图,并利用所述会话结构图确定各个项目的加权连接向量;

隐含状态向量确定模块300,用于将各个项目的加权连接向量及历史会话序列中的最后一个项目的表征序列输入图神经网络,获得表示用户局部偏好的各个项目的隐含状态向量;

自注意力表征向量确定模块400,用于将各个项目的隐含状态向量输入自注意力网络,获得表示用户全局偏好的各个项目的自注意力表征向量;

项目推荐模块500,用于根据各个项目的隐含状态向量和各个项目的自注意力表征向量,确定各个项目的会话表征向量,以根据各个项目的会话表征向量确定待推荐的项目。

其中,所述加权连接向量确定模块包括:

会话结构图确定单元,用于根据历史会话序列中各个项目的访问顺序,确定有向的会话结构图;

连接矩阵确定单元,用于确定所述会话结构图的输入边加权连接矩阵和输出边连接矩阵;

加权连接向量确定单元,用于利用所述输入边加权连接矩阵、所述输出边连接矩阵、所述历史会话序列,确定各个项目的加权连接向量。

其中,所述自注意力表征向量确定模块,包括:

信息输入单元,用于将各个项目的隐含状态向量输入多层自注意力层;其中,每一层自注意力层的输出为与之相邻的下一层自注意力层的输入;

自注意力表征向量确定单元,用于将最后一层自注意力层的输出作为各个项目的自注意力表征向量。

其中,所述项目推荐模块,包括:

会话表征向量确定单元,用于根据各个项目的隐含状态向量和各个项目的自注意力表征向量,以及隐含状态向量的第一权重和自注意力表征向量的第二权重,确定各个项目的会话表征向量;

概率值确定单元,用于根据各个项目的会话表征向量,以及各个项目的表征向量,确定各个项目成为下一个访问项目的概率值;

项目推荐单元,用于利用各个项目的概率值确定待推荐的项目。

参见图7,本发明实施例还公开了一种基于会话的项目推荐设备1,包括:

存储器11,用于存储计算机程序;

处理器12,用于执行所述计算机程序时实现如上述方法实施例所述的基于会话的项目推荐方法的步骤。

在本实施例中,设备1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。

该设备1可以包括存储器11、处理器12和总线13。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元,例如该设备1的硬盘。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如设备1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如项目推荐程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行项目推荐程序等。

该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。

可选地,该设备1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。

图7仅示出了具有组件11-14以及项目推荐程序的设备1,本领域技术人员可以理解的是,图7示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法实施例所述的基于会话的项目推荐方法的步骤。

其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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