一种基于混合注意力网络的群组推荐方法
技术领域
本发明属于推荐算法
技术领域
,具体的说是一种基于混合注意力网络的群组推荐方法。背景技术
传统的推荐方法主要面向个体用户提供推荐服务,但是随着近几年社交网络的快速发展,群组活动越来越频繁,因此群组推荐相关的研究也逐渐普及。
群组推荐是指在在线系统中为一组用户推荐符合他们兴趣偏好的商品推荐。传统的群组推荐方法大多从直接学习群组和用户的兴趣(特征)或项目的特征,即对他们的特征进行独立地建模,往往忽略了群组、用户和项目是存在多种交互关系的,例如组内用户的交互关系,用户和项目的交互关系等等,这种学习方法不仅会造成用户、项目的特征表示提取不够充分,而且无法考虑组内用户影响权重的差异性并根据目标预测项目来学习具备鲁棒性和自适应性的群组特征表示,最终损害了推荐的效果。
CN110502704A-一种基于注意力机制的群组推荐方法及系统,通过对用户数据信息进行预处理,采用改进后的密度峰值聚类的方法发现用户潜在群组,使相似性较高的用户归为一组;对组内成员使用注意力机制网络,设计注意力机制模型(AMGR)对组内成员计算权重,进行偏好融合;使用神经协同过滤(NCF)框架,进行交互学习数据,预测用户或者群组对不同项目的预测得分,从而实现群组推荐,但基于密度的聚类方法的主要思想是寻找被低密度区域分离的高密度区域,但是这种方法并不适合高维,密度区域不好确定,效率低。
CN112732932A-一种基于知识图谱嵌入的用户实体群组推荐方法,将知识图谱中的用户实体进行画像,根据用户实体画像特征给目标用户实体返回关联度top-K的用户实体群组,虽然该方法增强了用户实体群组推荐方法的精度,但其忽略了群组、用户和项目之间存在的多种交互关系,提取不够充分,影响最终的推荐的效果。
发明内容
为了解决上述问题,本发明提供了一种基于混合注意力网络的群组推荐方法,先利用图注意力网络提取用户和项目的交互信息,获得用户和项目结构化的特征表示,然后利用序列注意力网络建模组内用户之间的交互关系进行建模得到群组的特征表示。最后利用神经协同过滤得到群组对项目的预测评分以及用户对项目的预测评分,并通过对两个预测目标进行联合优化以更新模型的参数。通过这种方式充分建模群组、用户、项目存在的多种关系,有效提取群组、用户、项目的特征表示,从而提升推荐效果。
为了达到上述目的,本发明是通过以下技术方案实现的:
本发明是一种基于混合注意力网络的群组推荐方法,包含特征输入层、特征表示层、特征交叉层和评分预测层,具体包括如下步骤:
步骤1、特征输入层先获取到用户的历史交互记录,建立用户-项目的评分矩阵,然后进行矩阵分解,利用随机梯度下降方法进行优化,以此初始化得到用户u和项目v的嵌入特征pu和qv,然后将两种嵌入特征输入特征表示层;
步骤2、特征表示层先利用图注意力网络中从用户和项目的交互图中分别提取步骤1中已经得到的用户和项目邻居节点的嵌入特征,最终形成用户和项目的潜在特征表示;
步骤3、特征表示层再利用序列注意力网络中的局部和全局注意力单元对步骤2获得的组内用户、项目的潜在特征进行用户-用户交互关系以及用户-项目交互关系的处理,输出群组潜在特征向量的局部表示和全局表示,然后融合群组潜在特征向量的局部表示和全局表示生成最终群组的潜在特征表示;
步骤4、特征表示层对步骤2、步骤3得到群组、用户、项目的潜在特征输入特征交叉层;
步骤5、特征交叉层再对将步骤4得到的群组与项目的拼接向量或者用户与项目的拼接向量分别输入共享参数的多层感知机进行特征的高阶交叉组合并输出到最后评分预测层得到了群组对项目的预测评分以及用户对项目的预测评分;
步骤6、联合优化群组和用户对项目的评分预测以更新模型的参数。
本发明的进一步改进在于:所述步骤2中,图注意力网络提取用户和项目的潜在特征方法如下:在用户和项目的交互图中,将待提取潜在特征的项目j看作中心节点,将与j有过交互记录的用户看作邻居节点,利用注意力机制分别计算出项目与邻居节点的注意力权重,结合注意力权重融合自身的嵌入特征以及结点的嵌入特征得到项目的潜在特征。
基于项目维度的用户潜在特征提取过程与项目一致。
本发明的进一步改进在于:在步骤3中,通过序列注意力网络提取群组潜在特征表示方法如下:
S31、首先通过局部注意力单元根据用户和待预测项目之间的交互关系计算出每一个用户的注意力权重,加权融合组内用户的潜在特征向量输出群组潜在特征的局部表示。
S32、然后通过全局注意力单元提取根据组内用户之间交互关系得到的每个用户的注意力权重,加权融合组内用户的潜在特征向量输出群组潜在特征的全局表示Eglobal。
融合群组潜在特征的局部表示和全局表示输出群组最终的潜在特征表示。
本发明的进一步改进在于:步骤4中特征交叉和评分预测在实现的过程中主要对用户和群组根据成对排序的思想建立了损失函数。
本发明的进一步改进在于:所述步骤S6中,联合优化的主要计算方法是:
S61、首先结合用户和项目的交互数据对优化个人评分预测的损失函数来学习网络的参数,并且可以输出优化后的用户潜在特征表示;
S62、然后结合群组和项目的交互数据优化群组评分预测的损失函数,学习群组预测过程相关的参数,并且对两个预测过程共享的参数进行微调;
S63、最后对这两个过程进行迭代,直到两个过程总体达到收敛状态。
本发明的有益效果是:
(1)本发明中采用的图注意力网络有效地利用了用户和项目的交互图信息,可以提取到更为丰富的用户和项目的特征表示,在一定程度上可以帮助缓解群组推荐过程中的遇到的冷启动问题。
(2)本发明中的序列注意力网络融合了局部注意力单元和全局注意力单元,兼顾到不同交互关系下的组内用户影响权重,根据目标待测项目学习到具备鲁棒性以及自适应的群组特征表示,进而提高了群组推荐的满意度。
(3)本发明通过联合优化的方式,可以利用大量的用户-项目交互结果训练群组评分预测和个人评分预测过程共享的一些网络参数,从而弥补群组-项目交互结果稀缺引起的参数训练不够充分的缺陷。
附图说明
图1是本发明实施例的方法整体结构图。
图2是本发明实施例的局部和全局注意力单元的示意图。
具体实施方式
以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。
在数据的获取上,该方法需要使用到的数据集是Meetup数据集,Meetup数据集来自网站meetup.com,Meetup是一项帮助人们发布和参与社交活动的在线社交活动服务。该数据集主要包含16330个群组,用户5893887个,项目2510个,平均群组规模大小是每组685人,同时包含群组与项目的交互信息31214条,用户和项目的交互信息3195246条。
图1是本发明实施例的方法整体结构图,该方法主要包含四层:特征输入层、特征表示层、特征交叉层、评分预测层,具体包括如下步骤:
A、特征输入层
特征输入层先获取到用户的历史交互记录,建立用户-项目的评分矩阵,然后进行矩阵分解,利用随机梯度下降方法进行优化,以此初始化得到用户u和项目v的嵌入特征pu和qv,然后将两种嵌入特征输入特征表示层。
B、特征表示层
特征表示层使用了一种混合注意力网络来进行用户、项目、群组的潜在特征表示。混合注意力网络包含了图注意力网络和序列注意力网络。图注意网络提取的是用户和项目的潜在特征和序列注意力网络提取的群组的潜在特征
图注意力网络提取用户和项目的潜在特征表示,具体包括如下步骤:
S21、利用基于用户维度的图注意力网络进行项目潜在特征的提取。潜在特征的提取过程如下:检索得到和项目v产生过交互行为的用户集合N(v),基于用户维度的图注意力网络首先计算出项目v与N(v)中每个用户以及项目自身的注意力权重,然后加权融合输出最终的项目潜在表示
定义融合函数如下:
其中,如果j=v,则hvj=qv;如果j∈N(v),则hvj=pj,αvj是注意力权重,用如下公式计算这个权重:
其中,σ是sigmoid非线性激活函数,[,]表示拼接操作,是基于用户维度的图注意力网络的模型参数;
S22、基于项目维度的图注意力网络进行用户潜在特征的提取。先检索得到和用户u产生过交互记录的项目集合C(u),基于项目维度的图注意力网络首先计算出用户u与C(u)中每个项目以及用户自身的注意力权重βuj,然后加权融合输出最终的用户潜在表示计算公式如下:
其中,如果j=u,则huj=pu;如果j∈C(u),则huj=qj,是基于项目维度的图注意力网络的参数。
接下来是利用序列注意力网络提取群组的潜在特征序列注意力网络的输入是一个组的用户潜在向量矩阵t代表用户的个数,d代表特征的维度,Es∈Rd×t。
步骤3、结合附图2,利用序列注意力网络中的局部和全局注意力单元对步骤2获得的组内用户、项目的潜在特征进行用户-用户交互关系以及用户-项目交互关系的处理,输出群组潜在特征向量的局部表示和全局表示,然后融合群组潜在特征向量的局部表示和全局表示生成最终群组的潜在特征表示。
通过局部注意力单元根据用户和待预测项目之间的交互关系计算出每一个用户的注意力权重,加权融合组内用户的潜在特征向量输出群组潜在特征的局部表示,群组潜在特征的局部表示Elocal的提取过程表达式为:
其中,为局部注意力单元的网络参数,αui是第i个用户的注意力权重。
S32、然后通过全局注意力单元提取根据组内用户之间交互关系得到的每个用户的注意力权重,加权融合组内用户的潜在特征向量输出群组潜在特征的全局表示Eglobal。
群组潜在特征的全局表示Eglobal的提取过程为:
S321、全局表示为了能够捕捉一个用户和组内用户的细粒度交互,需要将组内用户的潜在特征向量映射到另外两个辅助空间,通过三个特征空间共同来学习组内用户潜在特征的相似性,其中,三个特征空间表示如下:
Q=XWQ
K=XWK
V=XWV
其中,X∈Rt×d是组内t个用户潜在特征向量组成的特征矩阵,WQ∈Rd×d,WK∈Rd×d,WV∈Rd×d分别是将特征向量进行空间映射的参数矩阵,Q,K,V分别为传统注意力机制中定义的Queries,Keys和Values;
S322、得到Q,K,V后,先计算组内其他用户与指定用户ui之间的注意力权重βuj,ui,注意力权重βuj,ui代表其他用户对用户ui的关注程度:
Quj代表Q中用户uj的潜在特征向量,Kui代表K中用户ui的潜在特征向量;
S323、接下来再对其他用户与指定用户ui之间的注意力权重进行求和并进行归一化,得到用户在本组内的注意力权重:
S324、结合注意力权重,对本组用户进行加权融合,全局注意力潜在特征表达式为:
其中,Vui代表用户ui在V中的特征向量,按照比例融合以上得到的局部表示和全局表示,输出最终群组的潜在特征表示为:
其中,∈为比例系数。
在得到了用户、项目、群组的潜在特征表示之后,将它们输入特征交叉层。
C、特征交叉层和评分预测层
步骤4、特征表示层对步骤2、步骤3得到群组、用户、项目的潜在特征输入特征交叉层;
步骤5、特征交叉层再对将步骤4得到的群组与项目的拼接向量或者用户与项目的拼接向量分别输入共享参数的多层感知机进行特征的高阶交叉组合并输出到最后评分预测层得到了群组对项目的预测评分以及用户对项目的预测评,也就是说用户个人评分预测和群组评分预测在特征交叉层的多层感知机中共享参数,通过特征交叉层可以输出最后的评分预测结果。
群组与项目的特征拼接、交叉和群组的评分预测过程表示如下:
其中,是群组和项目的拼接特征,k代表隐藏层编号,是群组g对项目v的预测评分;将群组推荐任务看成一个成对排序问题,定义如下的群组评分预测的目标函数:
其中,v是群组和项目的交互记录RG能观测到的正样本,v′不在RG中,可作为负样本,DG是由群组、项目正样本、项目负样本组成的三元组,Θ为正则化参数,上述目标函数通过最大化正样本和负样本之间的预测差值来优化参数;
由于联合优化的方式,可以利用大量的用户-项目评分数据训练群组评分预测和个人评分预测过程共享的一些网络参数,从而弥补群组-项目评分数据稀缺引起的参数训练不够充分的缺陷。
所以,采用相同的方式进行用户与项目的特征拼接、交叉和用户的评分预测,过程如下:
其中,是用户和项目的拼接特征,用户评分预测过程和群组评分预测过程在特征交叉层共享参数,是群组u对项目v的预测评分,类似地,将用户个性化推荐任务看成一个成对排序问题,定义如下的用户评分预测的目标函数:
其中,DU是由用户、项目正样本、项目负样本组成的三元组。
步骤6、联合优化群组和用户对项目的评分预测以更新模型的参数。
为了优化目标函数LG和LU,采用了下述步骤S61-S63的一种两阶段联合优化的方法,训练过程使用随机梯度下降算法进行参数更新,计算过程如下:
S61、首先结合用户和项目的交互数据对优化个人评分预测的损失函数来学习网络的参数,并且可以输出优化后的用户潜在特征表示;
S62、然后结合群组和项目的交互数据优化群组评分预测的损失函数,学习群组预测过程相关的参数,并且对两个预测过程共享的参数进行微调;
S63、最后对这两个过程进行迭代,直到两个过程总体达到收敛状态,最终根据评分预测结果进行排序,为群组生成服务推荐列表。
本发明提高了群组推荐的准确性和可解释性。
以上所述仅为本发明的实施方式而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理的内所作的任何修改、等同替换、改进等,均应包括在本发明的权利要求范围之内。