基于会话推荐系统的用户偏好预测方法转让专利

申请号 : CN202011099165.0

文献号 : CN112364976B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 袁晓洁叶承卫

申请人 : 南开大学

摘要 :

本发明属于人工智能技术领域,具体涉及一种基于会话推荐系统的用户偏好预测方法。该方法基于神经网络技术,一共分为两个大阶段。首先基于输入会话序列数据,构建了一个会话图并使用图神经网络学习每个物品的向量表示。其次,分别使用自注意网络和池化网络来学习用户的长期和短期偏好,并用注意力机制结合这两部分进行推荐。最终得到的模型用于预测用户的偏好。

权利要求 :

1.基于会话推荐系统的用户偏好预测方法,其特征在于,包括以下步骤,S1,读取匿名会话数据,并进行预处理,得到会话序列训练测试集;

所述步骤S1具体包括,

S1.1,对原始会话数据进行过滤,

原始的会话序列,包含了多个匿名用户的交互序列,每个交互序列是用户与物品的交互,记录形式为物品的编号,过滤行为将过滤掉会话长度短的会话,以及在数据集中出现次数少于阈值的物品;

S1.2,对原始会话数据进行生成训练测试集,过滤数据后,通过将每个会话序列,按照最左原则生成多个子序列,每个子序列和他后面的一个值构成一个训练数据,具体来说,一个会话序列定义如下:s=[ss,1,ss,2,…,ss,t]其中ss,i是第i个物品的id并且t表示当前会话的长度,属于这个序列S中的每个物品都属于物品总集合V={v1,v2,…,v|N|},生成训练测试集合的时候,采取如下方式:({ss,1},ss,2),({ss,1,ss,2},ss,3),…,({ss,1,…,ss,t‑1},ss,t)一个会话序列S将被拆分为t‑1个训练测试集;

S2,根据步骤S1得到的会话序列构建有向带权图;

所述步骤S2将根据步骤S1得到的会话数据输入模型构建会话图,将会话中的每个物品表示为图中一个顶点,图上的有向边表示为物品之间的交互,权值为交互次数,S2.1,顶点映射将每个物品映射为图中的一个顶点vs,i,其中,同样的物品会被映射为同一个顶点,因此图中顶点数将小于等于会话物品数;

S2.2,边映射

在一个长度为t的会话序列S中,t‑1个元组(vs,i‑1,vs,i)将被生成,其中每个元组表示在会话序列S中用户在点击vs,i前先点击了vs,i‑1;

S2.3,权值映射

在会话中可能会有重复项,因此会造成冗余元组,冗余元组(vs,p,vs,q)暗示了vs,p后出现vs,q的频率高,将元组的出现次数定义为这两个节点之间的权重wp,q;

S3,基于有向带权图,基于图神经网络学习图中每个顶点的向量表示;所述步骤S3具体包括以下步骤,S3.1,GNN函数

GNN网络的目标是学习一个映射函数f,来生成顶点v的向量表示;

S3.2,GAT‑EW网络实现

系数矩阵,定义如下:

AGAT‑EW(G)=[aij]t×t其中aij是通过自注意机制计算出来的,表示了顶点i到顶点j的重要性,在第一阶段,注意力系数eij会通过注意力函数Attn被计算出来如下:eij=Attn(Wxi,Wxj)

再通过一个sofrmax函数和LeakyReLU激活函数得到αij,其中||表示两个向量的连接操作,在上述操作后,在不同顶点间正则化后的注意力系数被得到,GAT‑EW为每个顶点预测输出值如下:其中wij表示了顶点i到j的权重;

S4,基于自注意网络和池化层分别获取用户的长期和短期偏好;

S5,运用注意力机制自动学习长期偏好和短期偏好各自的重要性,结合他们完成预测。

2.如权利要求1所述的基于会话推荐系统的用户偏好预测方法,其特征在于,所述步骤S4具体包括如下步骤,S4.1,自注意层

对于GNN层的输出,标度点积被如下:其中矩阵Q,K,V分别表示查询、键和值,在实现过程中,每个矩阵能够通过一个权重矩Q阵W和隐藏向量计算出来,即Q=XW;

S4.2,逐点前向反馈网络

通过自注意层后,非线性被添加到模型中通过两层线性模型和一层非线性模型,除此之外,残差连接也被用于计算因此不会造成梯度消失,计算如下:F=RELU(SW1+b1)W2+b2+S,其中W1和W2是d×d的参数矩阵,b1和b2是d维的向量;

S4.3,池化网络

在GNN中,通过使用池化技术来更好地获取顶点的局部表示信息,采用平均池化层,通过在节点维度上对节点特征进行平均,实现批量图形级输出,如下:其中x表示经过GNN后的顶点特征。

3.如权利要求2所述的基于会话推荐系统的用户偏好预测方法,其特征在于,步骤S5具体包括如下步骤,S5.1,计算局部表示和全局表示

对于会话序列S,通过连接SAN层中最后一次点击物品和池化层的输出来得到局部向量表示如下:其中 是最后一次点击,通过另一个注意力机制计算全局表示向量如下:得到的sg就是全局表示;

S5.2,计算预测结果

通过局部和全局表示,能够得到最后的推荐:sh=Wout[sl;sg]

其中 表示了顶点vi成为下一个被点击的物品的概率。

4.如权利要求3所述的基于会话推荐系统的用户偏好预测方法,其特征在于,还包括损失函数,失函数如下:其中y表示了一个真实值的独热向量,再通过反向传播即可更新模型参数。

说明书 :

基于会话推荐系统的用户偏好预测方法

技术领域

[0001] 本发明属于人工智能技术领域,具体涉及一种基于会话推荐系统的用户偏好预测方法。

背景技术

[0002] 推荐系统是处理信息过载的有效工具,在电子商务、电影和音乐等应用领域中发挥着重要作用。推荐问题通常被抽象为矩阵填充/重构问题。其主要思想是在用户评分矩阵中填充对默认值的预测,然后进行协同过滤计算。这种抽象的方法适用于具有长期用户偏好的训练模型。然而,在许多情况下,用户标识和过去的行为可能是未知的,并且只有正在进行的短期会话中的用户行为历史是可用的。为了解决这个问题,提出了基于会话的推荐,它只依赖于用户在当前会话中先前行为的顺序来预测用户的下一个动作
[0003] 近年来,基于会话的推荐因其较高的实用价值而受到越来越多的关注。马尔可夫链方法根据用户的前一个行为预测用户的下一个行为。由于受到这种强烈假设的限制,对过去交互作用的独立组合可能会限制推荐的准确性。近年来,RNN模型被广泛应用于顺序推荐任务。包括基于RNN模型的推荐,结合注意力机制的推荐,使用图神经网络的推荐等。以上大多数方法将会话序列视为时间序列的互动环节,并与注意机制一起推荐,这些方法能够很好地学习到用户的偏好,得到了目前最佳的性能。
[0004] 虽然上述方法取得了成功,但仍存在一定的局限性。首先,用户的会话单击行为不能简单地依赖于会话的顺序。用户和物品之间存在更复杂的交互关系,比如用户很有可能点击到重复物品,这种交互关系不能简单用序列来模拟。其次,这些模型没有充分挖掘会话图的信息。现有的方法使用图神经网络来尝试捕捉项的转移,但它们仅用最后一项来表示图的信息,而忽略了会话图的顶点信息。对于这些问题可以看出,捕获复杂的物品之间的转换关系和从全局拓扑图中学习非常重要,使用之前的方法的话,分类器可能会不完全捕捉会话信息,从而得到较高的分类错误率。综上所述,有关会话推荐系统的用户偏好预测问题是一项创新的研究问题,具有重要的研究意义和应用价值。

发明内容

[0005] 本发明目的是解决现有的会话推荐系统的用户偏好预测方法对用户和物品之间关系捕获不足的问题,提出一种使用改造的图神经网络和注意池化层一起进行推荐的方法。
[0006] 为实现上述目的,本发明采用如下技术方案:
[0007] 基于会话推荐系统的用户偏好预测方法,该方法基于神经网络技术,一共分为两个大阶段。首先基于输入会话序列数据,构建了一个会话图并使用图神经网络学习每个物品的向量表示。其次,分别使用自注意网络和池化网络来学习用户的长期和短期偏好,并用注意力机制结合这两部分进行推荐。最终得到的模型用于预测用户的偏好,该方法的具体步骤如下:
[0008] S1,读取匿名会话数据,并进行预处理,得到会话序列训练测试集;
[0009] S2,根据步骤S1得到的会话序列构建有向带权图;
[0010] S3,基于有向带权图,基于图神经网络学习图中每个顶点的向量表示;
[0011] S4,基于自注意网络和池化层分别获取用户的长期和短期偏好;
[0012] S5,运用注意力机制自动学习长期偏好和短期偏好各自的重要性,结合他们完成预测。
[0013] 本技术方案进一步的优化,所述步骤S1具体包括,
[0014] S1.1、对原始会话数据进行过滤,
[0015] 原始的会话序列,包含了多个匿名用户的交互序列,每个交互序列是用户与物品的交互,记录形式为物品的编号,过滤行为将过滤掉会话长度短的会话,以及在数据集中出现次数少于阈值的物品;
[0016] S1.2,对原始会话数据进行生成训练测试集,
[0017] 过滤数据后,通过将每个会话序列,按照最左原则生成多个子序列,每个子序列和他后面的一个值构成一个训练数据,具体来说,一个会话序列定义如下:
[0018] S=[ss,1,ss,2,...,ss,t]
[0019] 其中ss,i是第i个物品的id并且t表示当前会话的长度,属于这个序列S中的每个物品都属于物品总集合V={v1,v2,...,v|N|},
[0020] 生成训练测试集合的时候,采取如下方式:
[0021] ({ss,1},ss,2),({ss,1,ss,2},ss,3),...,({ss,1,...,ss,t‑1},ss,t)[0022] 一个会话序列S将被拆分为t‑1个训练测试集。
[0023] 本技术方案更进一步的优化,所述步骤S2将根据步骤S1得到的会话数据输入模型构建会话图,将会话中的每个物品表示为图中一个顶点,图上的有向边表示为物品之间的交互,权值为交互次数,
[0024] S2.1,顶点映射
[0025] 将每个物品映射为图中的一个顶点vs,i,其中,同样的物品会被映射为同一个顶点,因此图中顶点数将小于等于会话物品数;
[0026] S2.2,边映射
[0027] 在一个长度为t的会话序列S中,t‑1个元组(vs,i‑1,vs,i)将被生成,其中每个元组表示在会话序列S中用户在点击vs,i前先点击了vs,i‑1;
[0028] S2.3,权值映射
[0029] 在会话中可能会有重复项,因此会造成冗余元组,冗余元组(vs,p,vs,q)暗示了vs,p后出现vs,q的频率高,将元组的出现次数定义为这两个节点之间的权重wp,q。
[0030] 本技术方案更进一步的优化,所述步骤S3具体包括,
[0031] S3.1,GNN函数
[0032] GNN网络的目标是学习一个映射函数f,来生成顶点v的向量表示;
[0033] S3.2、GAT‑EW网络实现
[0034] 系数矩阵,定义如下:
[0035] AGAT‑EW(G)=[aij]t×t
[0036] 其中aij是通过自注意机制计算出来的,表示了顶点i到顶点j的重要性,
[0037] 在第一阶段,注意力系数eij会通过注意力函数Attn被计算出来如下:
[0038] eij=Attn(Wxi,Wxj)
[0039] 再通过一个sofrmax函数和LeakyReLU激活函数得到αij,
[0040]
[0041] 其中||表示两个向量的连接操作,在上述操作后,在不同顶点间正则化后的注意力系数被得到,GAT‑EW为每个顶点预测输出值如下:
[0042]
[0043] 其中wij表示了顶点i到j的权重。
[0044] 本技术方案更进一步的优化,所述步骤S4具体包括如下步骤,
[0045] S4.1,自注意层
[0046] 对于GNN层的输出,标度点积被如下:
[0047]
[0048] 其中矩阵Q,K,V分别表示查询、键和值,在实现过程中,每个矩阵能够通过一个权Q重矩阵W和隐藏向量计算出来,即Q=XW;
[0049] S4.2,逐点前向反馈网络
[0050] 通过自注意层后,非线性被添加到模型中通过两层线性模型和一层非线性模型,除此之外,残差连接也被用于计算因此不会造成梯度消失,计算如下:
[0051] F=RELU(SW1+b1)W2+b2+S,
[0052] 其中W1和W2是d×d的参数矩阵,b1和b2是d维的向量;
[0053] S4.3,池化网络
[0054] 在GNN中,通过使用池化技术来更好地获取顶点的局部表示信息,采用平均池化层,通过在节点维度上对节点特征进行平均,实现批量图形级输出,如下:
[0055]
[0056] 其中x表示经过GNN后的顶点特征。
[0057] 本技术方案更进一步的优化,步骤S5具体包括如下步骤,
[0058] S5.1,计算局部表示和全局表示
[0059] 对于会话序列S,通过连接SAN层中最后一次点击物品和池化层的输出来得到局部向量表示如下:
[0060]
[0061] 其中 是最后一次点击,通过另一个注意力机制计算全局表示向量如下:
[0062]
[0063]
[0064] 得到的sg就是全局表示;
[0065] S5.2,计算预测结果
[0066] 通过局部和全局表示,能够得到最后的推荐:
[0067] sh=Wout[sl;sg]
[0068]
[0069] 其中 表示了顶点vi成为下一个被点击的物品的概率。
[0070] 本技术方案更进一步的优化,还包括损失函数,失函数如下:
[0071]
[0072] 其中y表示了一个真实值的独热向量,再通过反向传播即可更新模型参数。
[0073] 区别于现有技术,上述技术方案具有如下有益效果:
[0074] 本发明开创性地提出一个考虑用户和物品之间复杂的交互关系,对不同的物品赋予不同的邻居权重,并且利用自注意和池化网络获取长短期依赖结合推荐的用户偏好预测方法。特别地,根据会话中不同元组出现的次数,给不同的会话图边赋予不同的权值,利用图神经网络学习物品的向量表示。自注意网络能够捕获到用户的长期以来偏好,同时结合池化网络,能够有效捕获用户丰富的局部信息,进行最合适的推荐。本发明可以适用在用户是匿名且会话是短期这样情况下的用户偏好预测问题当中,在这种匿名会话的情况下,通过图神经网络和自注意池化网络充分捕获了复杂的用户和物品的依赖关系,以此提升用户偏好预测的精确度,可以有效地对用户偏好进行预测。

附图说明

[0075] 图1是会话推荐系统的用户偏好预测方法的流程图;
[0076] 图2是提出的用于会话推荐系统同中用户偏好预测的基于图神经网络和自注意池化层的框架示意图;
[0077] 图3是开源的电商数据集的统计信息图;
[0078] 图4是在Yoochoose和Deginetica两个数据集上和基准方法的比较示意图;
[0079] 图5是不同的GNN模型在这两个数据集上的表现差异图;
[0080] 图6是不同的头和层数对自注意网络预测正确率的影响示意图。

具体实施方式

[0081] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0082] 请参阅图1,本实施例
[0083] 基于会话推荐系统的用户偏好预测方法,该方法的具体步骤如下:
[0084] S1,读取匿名会话数据,并进行预处理,得到会话序列训练测试集;
[0085] S2,根据步骤S1得到的会话序列构建有向带权图;
[0086] S3,基于有向带权图,基于图神经网络学习图中每个顶点的向量表示;
[0087] S4,基于自注意网络和池化层分别获取用户的长期和短期偏好;
[0088] S5,运用注意力机制自动学习长期偏好和短期偏好各自的重要性,结合他们完成预测。
[0089] 参阅图1所示,为会话推荐系统的用户偏好预测方法的流程图。本发明优选一实施例,基于会话推荐系统的用户偏好预测方法,该方法包括如下步骤:
[0090] S1,读取匿名会话数据,并进行预处理;
[0091] 采用了两个真实世界的数据集Yoochoose和Diginetica,前者在是RecSys Challenge  2015比赛上使用的数据,它包含用户在电子商务网站上的点击行为。
Diginetica来自CIKM Cup 2016比赛,使用了其中的事务数据。参阅图3所示,为开源的电商数据集的统计信息。从图3能看到所有的数据集的统计信息。总的来说,需要读取匿名用户的会话信息,根据规则过滤掉干扰数据,并将原始会话序列生成模型读入需要的会话序列。
基于会话的推荐是指在用户标识和用户历史行为不可知的情形下,只能通过一个短的匿名的临时会话序列对用户进行推荐。
[0092] S1.1,对原始会话数据进行过滤;
[0093] 原始的会话序列,包含了多个匿名用户的交互序列,每个交互序列是用户与物品的交互,记录形式为物品的编号。过滤行为将过滤掉会话长度为1的会话,以及在数据集中出现次数少于阈值的物品,这是因为长度为1的会话没有任何交互信息,出现次数过少的物品是数据中的噪声点。通过过滤数据能够规范数据集并减少一定的对模型干扰。
[0094] S1.2,对原始会话数据进行生成训练测试集;
[0095] 过滤数据后,需要生成训练和测试集。通过将每个会话序列,按照最左原则生成多个子序列,每个子序列和他后面的一个值构成一个训练数据。具体来说,会话序列能够被表示如下:
[0096] S=[ss,1,ss,2,...,ss,t]
[0097] 其中ss,i是第i个物品的id并且t表示当前会话的长度。属于这个序列S中的每个物品都属于物品总集合V={v1,v2,...,v|N|},并且需要注意到在一个会话中用户可能会点击重复的物品。
[0098] 生成训练测试集合的时候,采取如下方式:
[0099] ({ss,1},ss,2),({ss,1,ss,2},ss,3),...,({ss,1,...,ss,t‑1},ss,t)[0100] 一个会话序列S将被拆分为t‑1个训练测试集,通过这样生成能大幅增加训练数据量,提高模型鲁棒性,结果更加稳定。
[0101] S2,根据会话序列构建有向带权图:
[0102] 简单的会话序列只能表示线性关系,为捕获用户和物品间复杂的交互关系,需要从会话序列中构建出有向带权图。根据第1步得到的会话训练测试集,对每一个输入样例均构建会话图。总的来说,将会话中的每个物品编号表示为图中一个顶点,图上的有向边表示为物品之间的交互,权值为交互次数。
[0103] S2.1,顶点映射
[0104] 很直观的,将会话序列中的物品编号和顶点编号一一映射,这样物品和顶点之间就建立了关联。具体来说,将每个物品编号映射为图中的一个顶点vs,i,其中,同样的物品会被映射为同一个顶点,因此图中顶点数将小于等于会话物品数。通常一个匿名会话序列不会太长,因此构建的图能够很好实际地运用在图神经网络中。
[0105] S2.2,边映射
[0106] 为了捕获丰富的用户偏好,需要捕捉物品之间的交互关系,图的边就能很好地表示一种交互关系,通过将相邻的两个会话图顶点之间添加一条边就能达成边映射。具体来说,在一个长度为t的会话序列S中,t‑1个元组(vs,i‑1,vs,i)将被生成,其中每个元组表示在会话序列S中用户在点击vs,i前先点击了vs,i‑1。
[0107] S2.3,权值映射
[0108] 通过构建边上的权值,能够学习到用户偏好中物品倾向的程度大小。上面提到,在会话中可能会有重复项,因此会造成冗余元组。冗余元组(vs,p,vs,q)暗示了vs,p后出现vs,q的频率高。将元组的出现次数定义为这两个节点之间的权重wp,q。
[0109] 明显,在会话序列S中出现越频繁的顶点有更多的出入度,并且在会话图中将有更高的权重,这将导致更高的概率被推荐,这也符合现实。
[0110] S3,基于有向带权图,基于图神经网络学习图中每个顶点的向量表示;
[0111] 得到了构建的会话图,但是会话图只是编号的图形式表示,还需要进行embedding得到神经网络中的通用输入。图神经网络广泛用于半结构化的图数据中,根据第2步得到的有向带权图,这里通过改造常用的图神经网络,使之适用于会话预测问题,进而给每个邻居分配不同的权重来学习每个顶点的向量表示。
[0112] S3.1,GNN函数
[0113] 一个GNN层被用来学习构建出来的会话图中顶点的向量表示。GCN是GNN的一种实现,其关键是学习一个映射函数f,通过聚合顶点v和相邻的特征来生成顶点v的表示。GAT网络与GCN类似,关键的区别在于它使用了注意机制,它可以给更重要的顶点分配更多的权值。但是,这些方法的问题是在计算中只使用图数据的邻接矩阵,而没有考虑边权的影响。在上面构造的会话图中,边的权值可以表明某些物品更重要。
[0114] S3.2,GAT‑EW网络实现
[0115] GAT网络和GCN网络的不同在于使用了注意力机制,它能够给更多重要的节点分配更多的权重。然而,GAT方法的问题在于它只使用了邻接矩阵,没有考虑边权重的影响。而在上面构建的会话图中,边权能暗示某些物品更加重要。在这里一个GAT‑EW被使用来解决这个问题,它在计算时考虑了邻居的边权重。矩阵系数被表示如下:
[0116] AGAT‑EW(G)=[aij]t×t
[0117] 其中aij是通过自注意机制计算出来的,表示了顶点i到顶点j的重要性,要得到矩阵系数需要计算出aij,aij具体的计算方式如下:
[0118] 在第一阶段,我们从已经构建成的会话图计算任意两个顶点vs,i和vs,j的注意力系数eij,这表示了物品编号为i的物品对物品编号为j的物品的影响力权重,具体的,注意力系数eij会通过注意力函数Attn被计算出来如下:
[0119] eij=Attn(Wxi,Wxj)
[0120] 其中xi和xj是上一步构建的会话图中顶点vs,i和vs,j的d维向量表示,使用正态分布随机初始化,并在接下来的模型中不断训练使得能表示该顶点的特征。参数W是训练参数,给顶点向量做了一个线性映射,增强鲁棒性。
[0121] 对于Attn函数的选取,使用了点积和,一个softmax函数和LeakyReLU激活函数得到αij。
[0122]
[0123] 其中||表示两个向量的连接操作。一个遮罩注意力机制被引入用来将节点i的注意力仅分配到其邻居。不是顶点i邻居的点将在系数矩阵AGAT‑EW(G)中被表示为0,通过乘以相应的位置把权重结合到系数矩阵中。在上述操作后,在不同顶点间正则化后的注意力系数被得到,GAT‑EW为每个顶点预测输出值如下:
[0124]
[0125] 其中wij表示了顶点i到j的权重。这样,每个初始顶点vs,i表示成的向量xi被GAT‑EW网络学习到了物品之间的相互关系并生成了新的向量x′i。对于这个长度为t的序列S=[ss,1,ss,2,...,ss,t],将输出表示成矩阵X, 矩阵X一共t行即对应序列S中的t个点,维度d表示经过GAT‑EW网络学习后生成的新的向量x′i的维度。
[0126] S4,基于自注意网络和池化层分别获取用户的长期和短期偏好;
[0127] 得到了物品的表示信息,但这不足以表示用户的偏好,用户的偏好应该分为对物品长期的依赖关系,以及短期内用户的偏好,比如用户在序列之中最接近末尾的交互可能反映了当前用户更想与某些物品交互的倾向。在第3步中学习到了顶点向量,分别用两个神经网络,挖掘用户长期和短期与物品交互过程中隐藏的偏好信息,进而进行最后的预测。
[0128] 参阅图2所示,为提出的用于会话推荐系统同中用户偏好预测的基于图神经网络和自注意池化层的框架示意图。
[0129] S4.1,自注意层
[0130] 为了捕获用户的长期偏好,传统的马尔科夫链和循环神经网络过于简单,以至于不能捕获这种关系,这里使用一个自注意网络,目的在于获得用户的长期偏好。自注意网络被广泛用于NLP领域,它的作用是捕获长期以来用户的偏好。通过GNN获取图的表示后,使用Transformer模型的encoder部分来编码隐藏向量。首先,对于GNN层的输出,标度点积计算如下:
[0131]
[0132] 其中矩阵Q,K,V分别表示查询,键和值。在实现过程中,每个矩阵能够通过一个权Q重矩阵W和隐藏向量计算出来,即Q=XW ,其中X是上一步GAT‑EW网络的输出结果。这一步的输出S维度和X一样,只是对其中的各向量表示进行了权重计算。
[0133] S4.2,逐点前向反馈网络
[0134] 简单的经过自注意层,模型会倾向于线性,为了增加一些非线性,引入了逐点前向反馈网络。通过自注意层后,非线性被添加到模型中通过两层线性模型和一层非线性模型。除此之外,残差连接也被使用,使得这一层的网络在找到S的偏导数时,加入了一个常数项,这样在反向传播时不会使梯度消失,计算如下:
[0135] F=RELU(SW1+b1)W2+b2+S,
[0136] 其中W1和W2是d×d的参数矩阵,b1和b2是d维的向量。输出矩阵F和X的维度一样,这一步的目的是增加一些非线性,增强模型鲁棒性。
[0137] S4.3,池化网络
[0138] 这一步和自注意网络层的操作是并行的,目的是为了捕获用户的短期偏好。在CNN中,一个池化层能够有效减少参数的数量来避免过拟合,并有效地提取表示。相似的,在GNN中,通过使用池化技术来更好地获取顶点的局部表示信息。通过实验,这里使用平均池化层,通过在节点维度上对节点特征进行平均,实现批量图形级输出,如下:
[0139]
[0140] 其中xj表示经过GNN后,每个顶点的向量表示,具体来说就是GAT‑EW的输出矩阵X的每一行。r是一个一维输出向量 表示了该序列中隐藏的用户短期偏好。
[0141] S5,运用注意力网络生成最后结果并进行预测
[0142] 结合第4步中的两个结果,运用注意力机制自动学习长期偏好和短期偏好各自的重要性,结合他们完成最后的预测。
[0143] S5.1,计算局部表示和全局表示
[0144] 根据上一步的操作,得到了用户的长期偏好和短期偏好的表示,首先需要计算整个模型的局部和全局表示。预测层将结合SAN得到的长期依赖关系和池化层得到的丰富的局部表示做出推荐。对于会话序列S,通过连接SAN层中最后一次点击物品和池化层的输出来得到局部向量表示如下:
[0145]
[0146] 其中 是最后一次点击即F矩阵的最后一行, 分号表示两个向量的拼接操作,这样就得到了整个会话用户偏好的局部表示,
[0147] 通过另一个注意力机制计算全局表示向量如下:
[0148]
[0149]
[0150] 其中 表示F矩阵的第i行即对应序列S的第i个物品, 表示F矩阵平均值。得到的sg就是用户偏好的全局表示,
[0151] S5.2,计算预测结果
[0152] sl和sg分别表示用户的局部和长期依赖关系,通过将局部和全局表示进行简单的链接操作,能够得到最后的推荐:
[0153] sh=Wout[sl;sg]
[0154]
[0155] 其中sh表示了整个序列用户的偏好,vi表示第i个物品的embedding, 表示了物品vi成为下一个被点击的物品的概率,softmax函数将概率值归一化到0到1的区间并且方便反向传播计算。当物品vi取遍所有候选集合|V|,得到 作为输出表示了预测的每个物品成为下一个被点击的概率,
[0156] S5.3,损失函数
[0157] 将会话推荐系统的用户偏好预测问题定义为一个多分类问题。使用交叉熵得到的损失函数如下:
[0158]
[0159] 其中y表示了一个真实值的独热向量,表示通过我们的模型预测出来的概率向量,下标i表示向量的第i个。通过上述公式每轮训练能得到一个损失值,根据这个损失值的反馈再通过反向传播即可更新参数。
[0160] S6,模型评估
[0161] S6.1,评估指标
[0162] 在真实数据集Yoochoose和Diginetica上评估的模型,使用到了两个评价指标分别是:P@K(正确率)是一个主要的度量标准,用于评估测试用例返回的顶部K个最优预测结果中包含的ground truth的准确性;MRR@K(Mean倒数)是评价搜索算法的一种通用机制。如果前K个最优预测结果中不包含ground truth,则MRR设为0,否则,匹配位置在前K个位置中越高,得分越高,其中匹配在第一个位置的话结果为1。
[0163] S6.2,与基线方法比较
[0164] 为了证明该方法的整体性能,将其与其他基线进行了比较。参阅图4所示,是在Yoochoose和Deginetica两个数据集上和基准方法的比较示意图。提出的GAPN方法采用基于图注意网络的GAT‑EW模型,考虑边权来聚合会话图中相邻顶点的表示。在该模型中,考虑了自注意网络获得的全局表示和池化层进一步获得的丰富的局部信息,并将它们结合起来进行预测。实验表明,该GAPN方法在所有数据集上都取得了最好的性能。
[0165] 传统的POP和S‑POP方法仅根据出现的频率进行推荐,导致基于会话的推荐系统出现问题,性能较差。然而,S‑POP的效果要优于BPR‑MF和FPMC,这说明会话上下文信息的使用是很重要的。虽然Item‑KNN只计算项目之间的余弦相似度,而不使用序列信息,但它是传统方法中最好的。上述传统方法的效果都不如递归神经网络,因为递归神经网络完全按照顺序对用户偏好进行建模,也说明了深度学习在这一领域的作用。
[0166] 可以看出,基于神经网络的方法取得了比传统方法更好的效果。STAMP通过考虑上次点击的项目并引入注意机制,得到了比GRU4REC更好的结果。提出了为不同的会话项目分配不同权重的思想,取得了良好的效果。此外,SR‑GNN通过将会话建模为图形并应用图形神经网络和注意力机制,在所有基准测试中获得最佳结果。与SR‑GNN相比,的方法GAPN使用自注意机制自适应地分配权重给前一项,并使用额外的池化层在会话图中捕获丰富的本地上下文信息。通过池化层将SAN层的长期依赖关系与本地信息结合起来,从而生成最终的会话性能。可以看到,的模型在两个真实数据集上取得了最佳的性能,分别是P@20和MRR@20。这些说明了GAPN对于会话推荐任务的有效性。
[0167] S6.3,模型讨论
[0168] 提出的GAT‑EW模型更适合于构建会话图的连接关系。为了进一步证明GAT‑ew的有效性,将其与GCN层和GAT层进行了比较,参阅图5所示,是不同的GNN模型在这两个数据集上的表现差异图。图5(a)和图5(b)分别表示了提出的模型GAPN使用到的GAT‑ew和已有的GCN、GAT方法在两个指标P@20和MRR@20上的表现效果。从实验结果中不难看出,提出的GAPN模型是性能最好的模型,在两个指标上均比GCN和GAT效果好,而GAT比GCN效果略好,表明了在基于会话的推荐中使用到的GAT‑ew模型优于GCN和GAT。主要原因是GCN和GAT没有使用会话图的权重信息,导致性能较差。GCN对不同邻居的权值是完全相同的,这限制了模型捕捉空间信息相关性的能力,因此效果略逊于GAT。
[0169] 此外,自注意层的层数和头数目也会产生不同影响,参阅图6所示,是不同的头和层数对自注意网络预测正确率的影响示意图。从实验结果可以看出,当自注意层数较小时,会有波动,选择合适的层数会得到最好的结果。但当层数大于3时,由于层数过多可能会丢失低层次信息,导致效果恶化。此外,当头的数量从1个变为2个时,其性能与单个头的性能相似。但随着正面个数的增加,模型的效果会降低,这可能是由于的模型中嵌入的维数较小,不适合分解。
[0170] 从与基线方法的比较和讨论中不难看出,本发明的方法在会话推荐系统的用户偏好预测问题上取得了不错的效果。
[0171] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0172] 尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。