推荐方法及装置

未命名 08-20 阅读:83 评论:0


1.本说明书一个或多个实施例涉及机器学习技术领域,尤其涉及一种推荐方法及装置。


背景技术:

2.随着社会的发展和科技的进步,越来越多的服务平台向用户提供种类丰富的产品、服务等,以满足用户在生活、工作中的各种需求。为了应对服务场景下的千人千面,服务平台构建推荐系统,以期为用户进行个性化推荐。
3.然而,尽管随着大数据时代的到来可以取得丰富的用户样本数据,但目前推荐算法对用户样本数据的价值挖掘能力有限。因此,需要一种推荐方案,可以更好地满足实际应用需求,例如,提升推荐的准确度,从而提高用户体验。


技术实现要素:

4.本说明书实施例描述一种推荐方法及装置,可以更好地满足实际应用需求。
5.根据第一方面,提供一种推荐方法,涉及对双曲空间中的两个目标表征矩阵进行多轮次迭代更新;所述两个目标表征矩阵中的目标用户表征矩阵包括m个用户表征向量,目标对象表征矩阵包括n个对象表征向量。其中任一轮次的迭代更新包括:将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵;基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵;该异构图中包括m个用户节点、n个对象节点、具有预设关联关系的用户节点之间形成的连接边,与存在预设交互行为的用户节点和对象节点之间形成的连接边;将所述两个第二表征矩阵分别映射回所述双曲空间,得到两个第三表征矩阵;基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分;基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵。
6.在一个实施例中,所述图神经网络包括两个图神经网络;其中,基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵,包括:基于所述异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,得到更新后的第二用户表征矩阵;基于所述异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,得到更新后的第二对象表征矩阵。
7.在一个具体的实施例中,所述第一图神经网络中包括l个隐层;其中,基于所述异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,得到更新后的第二用户表征矩阵,包括:将所述第一用户表征矩阵作为所述l个隐层中首个隐层的输入;在所述l个隐层中任意的第i个隐层中,针对所述m个用户节点中任意的一个用户节点,基于输入本隐层的与该用户节点对应的用户表征向量、与所述异构图中该用户节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该用户节点对应的用户表征向量;基于第l个隐层输出的与所述m个用户节点对应的m个用户表征向量,确定所述第二用户表征矩阵。
8.在一个具体的实施例中,所述第二图神经网络中包括k个隐层;其中,基于所述异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,得到更新后的第二对象表征矩阵,包括:将所述第一对象表征矩阵作为所述k个隐层中首个隐层的输入;在所述k个隐层中任意的第j个隐层中,针对所述n个对象节点中的任意一个对象节点,基于输入本隐层的与该对象节点对应的节点表征向量,与所述异构图中该对象节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该对象节点对应的对象表征向量;基于第k个隐层输出的与所述n个对象节点对应的n个对象表征向量,确定所述第二对象表征矩阵。
9.在一个实施例中,基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵,包括:基于所述预测评分和对应的交互行为标签,确定欧式空间中当前的两个参数矩阵中各个权重参数的回传梯度;基于所述回传梯度更新对应的权重参数,形成更新后的两个参数矩阵;将所述更新后的两个参数矩阵映射至所述双曲空间,作为本轮更新后的两个目标表征矩阵。
10.在一个具体的实施例中,在所述任一轮次为首轮的情况下,在所述将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵之前,所述方法还包括:初始化所述当前的两个参数矩阵;将所述当前的两个参数矩阵分别映射至所述双曲空间,用作所述当前的两个目标表征矩阵。
11.在一个实施例中,所述图神经网络中包括权重参数;其中,基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵,包括:基于所述预测评分和交互标签,更新所述两个目标表征矩阵和所述图神经网络中的权重参数。
12.在一个实施例中,所述两个第三表征矩阵包括第三用户表征矩阵和第三对象表征矩阵;其中,基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分,包括:从所述第三用户表征矩阵中获取与所述样本用户对应的第三用户表征向量,以及,从所述第三对象表征矩阵中获取与所述样本对象对应的第三对象表征向量;计算所述第三用户表征向量和第三对象表征向量在所述双曲空间中的距离;基于所述距离,确定所述预测评分。
13.根据第二方面,提供一种推荐装置,涉及对双曲空间中的两个目标表征矩阵进行多轮次迭代更新;所述两个目标表征矩阵中的目标用户表征矩阵包括m个用户表征向量,目标对象表征矩阵包括n个对象表征向量;所述装置通过以下的模块执行其中任一轮次的迭代更新:第一映射模块,配置为将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵;第一更新模块,配置为基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵;该异构图中包括m个用户节点、n个对象节点、具有预设关联关系的用户节点之间形成的连接边,与存在预设交互行为的用户节点和对象节点之间形成的连接边;第二映射模块,配置为将所述两个第二表征矩阵分别映射回所述双曲空间,得到两个第三表征矩阵;评分预测单元,配置为基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分;第二更新模块,配置为基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵。
14.根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
15.根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面的方法。
16.采用本说明书实施例提供的方法和装置,通过在双曲空间中表征用户和对象,深度挖掘用户社交数据和用户交互数据中的层次结构性,同时,通过图神经网络建模用户的社交影响力和兴趣扩散过程,从而可以实现更加精准的个性化推荐。另外,图神经网络建模还可以捕捉到用户-用户之间的高阶相似性以及用户-对象之间的高阶协同信号,从而缓解数据稀疏的问题。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
18.图1示出本说明书实施例披露的推荐方案的实施架构示意图;
19.图2示出本说明书实施例披露的推荐方法流程示意图;
20.图3示出本说明书实施例披露的推荐装置结构示意图。
具体实施方式
21.下面结合附图,对本说明书提供的方案进行描述。
22.承前所述,目前推荐算法对用户样本数据的价值挖掘能力有限。具体而言,通常,社交平台等存在丰富的社交信息,并且,社交同质性表明,用户的交互行为(如购买、点击等)会受到其社交邻居的影响,由此提出引入社交数据的推荐算法,以下或简称社交推荐算法。尽管现有的社交推荐算法利用社交关系丰富了推荐数据,但是在刻画数据特性上仍然存在不足,这主要体现在用户和待推荐的业务对象(或简称对象)的建模方式上,传统的社交推荐算法将用户和对象映射到低维度的欧式空间(对欧式空间的简单理解就是它是平的,比如二维空间就是一个平面)进行表征学习,缺乏对社交层次结构性的学习。社交用户本身是存在影响力大小之分的,官媒、明星、社交达人、一般民众等,其社交影响力是依次递减的。同样对于待推荐对象而言,其往往符合长尾分布,少量头部对象拥有着大部分的交互记录。由此可知,社交推荐数据中包含着层次性结构。如何建模这样的层次结构性以更加精准的表征用户和对象,从而提升推荐准确度,是一个急需探究的问题。
23.基于以上观察和分析,申请人提出一种基于双曲空间和图学习的社交推荐方案,在此方案中,通过在双曲空间(指曲率为常数且为负数的空间,双曲空间是弯的)中建模用户表征和对象表征,挖掘用样本数据中的层次结构性,同时通过图神经网络建模用户的社交影响力和兴趣扩散过程,进而实现更加精准的个性化推荐。
24.图1示出本说明书实施例披露的推荐方案的实施架构示意图,基于图1中的实施架构可以实现对双曲空间中建模的用户表征矩阵和对象表征矩阵进行多轮次的迭代更新,直到收敛,从而,可以使用最终得到的两个表征矩阵进行个性化推荐。
25.如图1所示,在任一轮迭代更新中,首先进行双曲空间建模,包括将双曲空间(图1中使用空心圆示意双曲空间)中建模出的两个目标表征矩阵分别映射到双曲空间的切平面(图1中使用菱形示意切平面),对应得到两个第一表征矩阵,图1中使用两个实心圆点和两个实心圆点之间的箭头,示意双曲空间中两个表征矩阵包含的任意的一个表征向量被映射
到切平面上。接着,利用图神经网络在异构图上对两个第一表征矩阵进行图传播,得到更新后的两个第二表征矩阵;可以理解,其中异构图可以是预先构建好的,在不同迭代轮次中可以反复使用,图1中示出的异构图包括用户节点(如u1、u2等)和对象节点(如i1、i2等),用户节点之间因存在社交关系等关联关系而建立连接边,用户节点与对象节点之间因存在交互关系而建立连接边。然后,基于两个第二表征矩阵进行评分预测,对此图1中示意出基于一个用户u-对象i组合的第二表征向量而计算出的预测分数r

。之后,可以基于预测分数r

和对应的真实交互标签r,更新双曲空间中的两个目标表征矩阵。由此,可以实现对两个目标表征矩阵的任一轮次迭代更新。
26.下面结合更多实施例,对上述推荐方案的实施步骤进行展开描述。
27.图2示出本说明书实施例披露的推荐方法流程示意图,该推荐方法的执行主体可以为任何具有计算、处理能力的装置、服务器、平台或设备集群等,例如,推荐平台。该推荐方法涉及对双曲空间中两个目标表征矩阵的多轮次迭代更新,如图2所示,其中任一轮次的迭代更新包括以下步骤:
28.步骤s210,将当前的两个目标表征矩阵分别映射至双曲空间的切平面,得到两个第一表征矩阵。
29.可以理解,当前的两个目标表征矩阵是本轮迭代更新的起始表征矩阵。两个目标表征矩阵包括用户目标表征矩阵和商品目标表征矩阵。在一种可能的实施情况中,本轮迭代更新不是首轮,此时,可以获取经过上一轮迭代更新而得到的更新后的两个目标表征矩阵,作为当前的两个目标表征矩阵。
30.在另一种可能的实施情况中,本轮迭代更新是首轮,此时,可以初始化两个目标表征矩阵,作为当前的两个目标表征矩阵。在一个实施例中,可以根据选定的双曲空间,例如,曲率为-2的双曲空间,随机采样该双曲空间中的点,共采样m+n个,进一步,利用其中m个点的坐标初始化目标用户表征矩阵中的m个用户表征向量,利用另外n个点的坐标初始化目标对象表征矩阵中的n个对象表征向量。
31.在另一个实施例中,可以先在欧式空间初始化两个参数矩阵,再将该两个参数矩阵分别映射至双曲空间,用作当前的两个目标表征矩阵。需要理解,该两个参数矩阵实质为欧式空间中的两个表征矩阵。
32.示例性的,先随机初始化用户表征矩阵p={p1,

,pa,

,pm},其中pa表示第a个用户ua的d维表征向量,以及,随机初始化对象表征矩阵q={q1,

,qi,

,qn},其中qi表示第i个对象vi的d维表征向量。
33.令hd表示d维的双曲空间,设定双曲空间hd的曲率为c(例如,c=-1),点1),点作为映射参考点,其中由此,根据下式(1)计算第a个用户ua在双曲空间hd中的表征向量hpa,以及,根据下式(2)计算第i个对象vi在双曲空间hd中的表征向量hqi:
[0034][0035][0036]
在式(1)和(2)中,‖
·
‖l表示l阶范数。
[0037]
如此,可以得到双曲空间下的目标用户表征矩阵hp={hpa}m×d和目标对象表征矩
阵hq={hqi}n×d。
[0038]
以上,可以获取到当前的两个目标表征矩阵。进一步,将该两个目标表征矩阵分别映射到双曲空间的切平面,得到两个第一表征矩阵。需要说明,该切平面所在的平面空间为欧式空间,将目标表征矩阵映射到欧式空间是为了便于后续的图传播处理,因为图传播操作是定义在欧式空间下的。
[0039]
不妨沿用上述对两个目标表征矩阵的数学表示,即hp={hpa}m×d和hq={hqi}n×d。在一个示例中,可以根据下式(3)计算用户ua在切平面空间thd中的表征向量ta,以及,根据下式(4)计算对象vi在切平面空间thd中的表征向量ti:
[0040][0041][0042]
其中,《,》
l
表示洛伦茨内积。
[0043]
如此,可以得到第一用户表征矩阵tp={tpa}m×d和第二用户表征矩阵tq={tqi}n×d。需要说明,将目标表征矩阵映射到双曲空间中还可以采用除(3)和(4)以外的其他计算式,在此不作穷举。
[0044]
由上,可以得到两个第一表征矩阵。
[0045]
然后,在步骤s220,基于构建好的异构图,利用图神经网络更新上述两个第一表征矩阵,得到更新后的两个第二表征矩阵;其中异构图包括m个用户节点和n个对象节点,具有预设关联关系的用户节点之间形成的连接边,以及存在预设交互行为的用户节点和对象节点之间形成的连接边。
[0046]
为便于理解,先介绍上述异构图。具体地,异构图包括用户关系子图gs和用户-对象交互子图gr。用户关系子图gs包括对应m个用户的m个用户节点。需理解,因用户与用户节点之间具有一一对应的关系,文中或将用户和用户节点进行互换使用。m个用户组成用户集u,且u={u1,

ua,

,ub,

um},ua表示第a个用户,ub表示第b个用户,1≤a,b≤m,且m≥2。
[0047]
对于m个用户节点中任意的两个用户节点,若二者之间具有预定的关联关系,则可以在二者之间建立连接边。需要理解,连接边可以是有向连接边或无向连接边。在一个实施例中,预定的关联关系包括社交关系。在一个示例中,该社交关系包括关注关系,比如,若一个用户在社交网络平台上关注了另一个用户,则建立从前者指向后者的有向连接边。在另一个示例中,该社交关系包括好友关系,比如,若两个用户在社交平台上互为好友,则在二者之间建立连接边。在另一个实施例中,预定的关联关系包括转账关系或亲戚关系。
[0048]
令s
ab
表示用户ua与用户ub的社交关系值,则可以将用户与用户之间的关系矩阵记作s={s
ab
}m×m。在一个实施例中,用户之间的连接边是有向的,此时,若存在由用户节点ua指向用户节点ub的连接边,则s
ab
=1,否则s
ab
=0,对于s
ba
需要另外判断。在另一个实施例中,用户之间的连接边是无向的,此时,若用户ua和用户ub之间存在连接边,则s
ab
=1,否则s
ab
=0,且s
ba
=s
ab
。另一方面,在一个实施例中,s
ab
也可以为用户ua和用户ub之间连接边上的权重值,比如,用户ua曾向用户ub转账3次,连接边权重为0.3,此时,可以确定s
ab
=0.3。
[0049]
由上,可以将构建好的用户关系子图记作gs={u,s}。
[0050]
用户-对象交互子图gr同样包括上述m个用户节点,还包括对应n个对象的n个对象
节点。需理解,因对象与对象节点之间具有一一对应的关系,文中或将对象和对象节点进行互换使用。n个对象组成对象集v,且v={v1,

,vi,

,vj,

,vn},vi表示第i个对象,vj表示第j个对象,n表示对象的总数1≤i,j≤n,且n≥2。
[0051]
对于任意的一个用户节点和任意的一个对象节点,若该用户节点对该对象节点做出了预定交互行为(或简称预定行为),则在二者之间建立连接边。需要理解,预定行为与对象的类别相适应。在一个示例中,业务对象包括广告,此时,预定行为包括点击行为。在另一个示例中,业务对象包括产品,此时,预定行为包括购买行为。在又一个实施例中,业务对象包括应用app(application),此时,预定行为包括下载行为或登录行为。
[0052]
令r
ai
表示第a个用户ua对第i个对象vi的评分值,则可以将用户对于对象的评分矩阵记作r={r
ai
}m×n。示例性的,若用户ua和对象vi之间存在连接边,则r
ai
=1,否则r
ai
=0。可以理解,r
ai
也可以为用户ua和对象vi之间连接边上的权重值,比如,用户va对于对象vi曾5次做出预定行为,连接边权重为0.5,此时,可以确定r
ai
=0.5。
[0053]
由上,可以将构建好的用户-对象交互子图记作gr={u∪v,a},其中,可以理解,a记录u∪v中节点之间的邻接关系。
[0054]
以上介绍异构图中包括的用户关系子图gs和用户-对象交互子图gr,对此,可以参见图1示出的异构图示例。
[0055]
基于上述构建好的异构图,可以利用图神经网络更新上述两个第一表征矩阵,得到更新后的两个第二表征矩阵。需要理解,这一过程实质可以视作:对于异构图中的各个节点,从两个第一表征矩阵中对应获取该节点的第一表征向量,作为该节点在本轮迭代更新中的起始特征向量;然后,利用图神经网络对异构图进行图嵌入处理,从而得到各个节点的嵌入表征向量,作为对应的第二表征向量,从而形成上述两个第二表征矩阵。另外,图神经网络可以实现为图卷积网络(graph convolutional networks,简称gcn)或图注意力网络(graph attention networks,简称gat),等等。
[0056]
在一个实施例中,可以利用一个图神经网络同时更新上述两个第一表征矩阵。
[0057]
在另一个实施例中,可以利用两个图神经网络对应更新上述两个第一表征矩阵。具体地,两个图神经网络包括第一图神经网络和第二图神经网络,两个第一表征矩阵包括第一用户表征矩阵和第一对象表征矩阵,两个第二表征矩阵包括第二用户表征矩阵和第二对象表征矩阵。
[0058]
一方面,基于异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,可以得到更新后的第二用户表征矩阵。
[0059]
在一个实施例中,第一图神经网络中包括l(≥1)个隐层(hidden layer),由此,可以先将第一用户表征矩阵作为该l个隐层中首个隐层的输入。
[0060]
进一步,在该l个隐层中任意的第l+1个隐层中,针对m个用户节点中任意的一个用户节点,基于输入本隐层的与该用户节点对应的用户表征向量、与上述异构图中该用户节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该用户节点对应的用户表征向量。需要理解,其中邻居节点通常是一阶邻居节点,也可以是其他阶数的邻居节点。示例性的,第l+1个隐层中可以采用下式(5)进行数据处理:
[0061][0062]
在公式(5)中,和分别表示用户ua在第l个和第l+1个隐层输出的用户表征向量;表示用户ub在第l个隐层输出的用户表征向量;表示对象vj在第l个的对象表征向量;sa是与用户ua具有一阶连接关系的用户集合,|sa|表示该用户集合中的用户个数;ra是用户ua交互过的对象集合,|ra|表示该对象集合中的对象个数;α是超级参数,取值区间是(0,1),具体数值由人工设定得到,α用于平衡社交影响和兴趣影响。可以理解,sa∪ra是用户ua的一阶邻居节点集合。
[0063]
由此,针对任意的一个用户节点ua,可以得到l个隐层输出的与该用户节点ua对应的l个用户表征向量。之后,在一个具体的实施例中,可以直接将其中第l个隐层输出的用户表征向量,作为该用户节点ua的第二用户表征向量,用以形成第二用户表征矩阵。在另一个具体的实施例中,可以采用下式(6)求取该l个用户表征向量的平均向量,作为该用户节点ua的第二用户表征向量,用以形成第二用户表征矩阵。
[0064][0065]
如此,可以实现对第一用户表征矩阵的更新,得到更新后的第一对象表征矩阵。
[0066]
另一方面,基于异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,可以得到更新后的第二对象表征矩阵。
[0067]
在一个实施例中,第二图神经网络中包括k(≥1)隐层,由此,可以先将第一对象表征矩阵作为该k个隐层中首个隐层的输入。
[0068]
进一步,在该k个隐层中任意的第l+1个隐层中,针对n个对象节点中任意的一个对象节点,基于输入本隐层的与该对象节点对应的节点表征向量,与上述异构图中该对象节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该对象节点对应的对象表征向量。需要理解,其中邻居节点通常是一阶邻居节点,也可以是其他阶数的邻居节点。示例性的,第l+1个隐层中可以采用下式(7)进行数据处理:
[0069][0070]
在公式(7)中,和分别表示对象vi在第l个和第l+1个隐层输出的对象表征向量;表示对象vc在第l个隐层输出的对象表征向量;gi表示异构图中与对象vi具有一阶连接关系的用户集合。
[0071]
由此,针对任意的一个对象节点vi,可以得到k个隐层输出的与该对象节点vi对应的对象表征向量。之后,在一个具体的实施例中,可以直接将其中第k个隐层输出的对象表征向量,作为该对象节点vi的第二对象表征向量,用以形成第二对象表征矩阵。在另一个具体的实施例中,采用下式(8)求取该k个对象表征向量的平均向量,作为该对象节点vi的第二对象表征向量,用以形成第二对象表征矩阵。
[0072][0073]
由上,可以基于异构图,利用图神经网络更新两个第一表征矩阵,得到更新后的两个第二表征矩阵。需要理解,假定采用公式(5)和(7),则图神经网络中不包括需要优化的权
重参数。实际上,图神经网络也可以设计为包括需要优化的权重参数。
[0074]
然后,执行步骤s230,将两个第二表征矩阵分别映射回上述双曲空间,得到两个第三表征矩阵。
[0075]
在一个示例中,可以采用下式(9)和(10),将上述两个第二表征矩阵中的表征映射向量映射回双曲空间hd,得到用户ua的最终表征向量xa和对象vi的最终表征向量yi,进而得到最终的用户表征矩阵x={xa}m×d和最终的对象表征矩阵y={yi}n×d,需要理解,还可以将前者称为第三用户表征矩阵,将后者称为第三对象表征矩阵。
[0076][0077][0078]
需要说明的是,公式(9)、(10)与上述公式(3)、(4)相适应。实际上,还可以采用公式(9)和(10)以外的其他计算公式,只需与执行步骤s210时将两个目标表征矩阵映射到双曲空间切平面时的公式相适应即可。
[0079]
由上,可以得到两个第三表征矩阵。
[0080]
接着,执行步骤s240,基于上述两个第三表征矩阵,确定样本用户对样本对象的预测评分。需要理解,样本用户属于上述m个用户,样本对象属于上述m个对象,样本用户与样本对象之间的交互行为标签已知。
[0081]
具体地,先从第三用户表征矩阵中获取与样本用户对应的第三用户表征向量,以及,从第三对象表征矩阵中获取与样本对象对应的第三对象表征向量;然后,基于获取的这两个第三表征向量,确定样本用户对样本对象的预测评分。
[0082]
在一个实施例中,计算获取的两个第三表征向量在上述双曲空间中的相似度,作为对应的预测评分。
[0083]
在另一个实施例中,计算获取的两个第三表征向量在上述双曲空间中的距离,将该距离的倒数作为对应的预测评分。在一个示例中,先根据下式(11)计算用户ua和对象vi在双曲空间hd上的距离,再根据下式(12)计算用户ua对对象vi的预测评分值。
[0084][0085][0086]
如此,可以确定样本用户对样本对象的预测评分。
[0087]
然后,在步骤s250,基于上述预测评分和对应的交互行为标签,在上述双曲空间中更新当前的两个目标表征矩阵。需说明,交互行为标签的标签值可以是离散值或连续值,例如,标签值为离散值,指示样本用户是否对样本对象做出上述预定交互行为,示例性的,为1指示做出,为0指示未做出;又例如,标签值为连续值,基于样本用户对样本对象的历史评分而确定,标签值与该历史评分正相关。
[0088]
具体地,先基于预测评分和对应的交互行为标签,计算训练损失。需要理解,计算训练损失所采用的损失函数可以是交叉熵损失函数或三元损失函数(triplet loss)等。在一个示例中,基于上式(11),可以采用下式(13)计算训练损失:
[0089]
[0090]
在公式(13)中,l表示训练损失;da={(i,j)|i∈ra,j∈v-ra},是用户ua的全部训练数据,其中ra表示对象总集v中用户ua交互过的对象子集,v-ra表示该对象子集的补集;m表示边缘参数,可以由人工设定为大于0的数值。
[0091]
如此,可以计算出训练损失。
[0092]
进一步,以减小训练损失为目标,更新当前的两个目标表征矩阵。在一个实施例中,可以计算双曲空间hd中的训练梯度,再基于此训练梯度在双曲空间hd中更新该两个目标表征矩阵。
[0093]
在另一个实施例中,两个目标表征矩阵是基于欧式空间中的上述两个参数矩阵映射到双曲空间而得到,此时,可以先基于训练损失,更新当前的两个参数矩阵,再将更新后的当前的两个参数矩阵映射到双曲空间,得到更新后的当前的两个目标表征矩阵。
[0094]
令θ={p,q},即θ表示由上述两个参数矩阵中所有的矩阵元素(矩阵元素属于权重参数)组成的参数集合。将本轮的轮次数记作t,将本轮中的起始参数θ记作θ
(t)

[0095]
具体地,先基于训练损失,根据下式(14)在欧式空间下计算当前参数θ的回传梯度:
[0096][0097]
再基于上述回传梯度更新θ
(t)
,得到更新后的当前参数θ
(t+1)
。在一个具体的实施例中,可以将θ
(t)
减去预设学习率(如0.005)与回传梯度之间的乘积结果而得到的差值,作为更新后的当前参数θ
(t+1)

[0098]
在另一个具体的实施例中,先根据下式(15)、(16)计算黎曼梯度:
[0099][0100][0101]
其中,在式(15)中,g
l
=diag(-1,1,1,

,1)
(d+1)
×
(d+1)
是度量矩阵;
[0102]
再根据式(17)将黎曼梯度以θ
(t)
为参考点映射到双曲空间hd,进行参数更新:
[0103][0104]
如此,可以得到更新后的当前参数θ
(t+1)
,也即,更新后的当前的两个参数矩阵。
[0105]
之后,利用上述公式(1)和(2),将更新后的当前的两个参数矩阵映射到双曲空间hd,得到更新后的当前的两个目标表征矩阵。
[0106]
由上,可以实现对两个目标表征矩阵的本轮更新。可以理解,通过多次执行图2中示出的方法流程,直到两个目标表征矩阵中的矩阵元素值收敛,可以得到优化好的两个目标表征矩阵。
[0107]
根据另一方面的实施例,上述图神经网络中包括可优化的权重参数。此时,本步骤中还可以包括:更新图神经网络中可优化的权重参数。可以理解,此时,本步骤中对图神经网络和两个目标表征矩阵进行联合训练。
[0108]
综上,采用本说明书实施例披露的推荐方法,通过在双曲空间中表征用户和对象,深度挖掘用户社交数据和用户交互数据中的层次结构性,同时,通过图神经网络建模用户
的社交影响力和兴趣扩散过程,从而可以实现更加精准的个性化推荐。另外,图神经网络建模还可以捕捉到用户-用户之间的高阶相似性以及用户-对象之间的高阶协同信号,从而缓解数据稀疏的问题。
[0109]
需要说明,在通过上述推荐方法得到最终优化好的两个目标表征矩阵以后,可以采用前述步骤s240中的方式,预测m个用户中的任一用户对n个对象中任一对象的评分。
[0110]
另外,为了验证本说明书实施例披露的上述推荐方法的有效性,采用社交推荐中常用的两个公开数据集flickr和epinions进行实验。每个数据集删除交互记录少于2以及社交邻居少于2的用户,同时删除交互记录少于2的产品。对于每条用户-产品交互记录,随机采样1个用户未交互过的产品构成三元组进行模型训练;在测试阶段,本发明选取全部用户未交互的产品进行排序,采用命中率(hit ratio,简称hr)和归一化累积获得折扣(normalized discounted cumulative gain,简称ndcg)作为评价标准。
[0111]
实际选用了4种相关方法进行效果对比,分别是bpr、lightgcn、diffnet++、hgcf。具体地,表1、表2分别显示在flickr、epinions数据集上的实验结果。
[0112]
表1本说明书实施例提出方法与对比方法在flickr数据集上的推荐结果比较
[0113]
modelshr@10hr@20hr@30ndcg@10ndcg@20ndcg@30bpr0.00520.00740.01020.00380.00460.0055lightgcn0.00620.01020.01370.00470.00610.0071diffnet++0.00640.00910.01210.00430.00520.0062hgcf0.00720.01080.01470.00500.00630.0075our model0.00880.01490.02030.00630.00810.0096
[0114]
表2本说明书实施例提出方法与对比方法在epinions数据集上的推荐结果比较
[0115]
modelshr@10hr@20hr@30ndcg@10ndcg@20ndcg@30bpr0.03820.05910.07650.02080.02670.0308lightgcn0.04430.06810.08760.02410.03060.0353diffnet++0.05000.08020.09980.02750.03570.0403hgcf0.04950.07600.09470.02720.03460.0391our model0.05290.08160.010450.02950.03680.0426
[0116]
通过表1和表2可以看出,在flickr、epinions这两个数据集上,本说明书实施例提出的方法在hr和ndcg这两个指标上都优于对比的4种方法。
[0117]
与上述推荐方法相对应的,本说明书实施例还披露一种推荐装置。图3示出本说明书实施例披露的推荐装置结构示意图,该推荐装置用于对双曲空间中的两个目标表征矩阵进行多轮次迭代更新;所述两个目标表征矩阵中的目标用户表征矩阵包括m个用户表征向量,目标对象表征矩阵包括n个对象表征向量。如图3所示,装置300通过以下的模块执行其中任一轮次的迭代更新:
[0118]
第一映射模块310,配置为将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵。第一更新模块320,配置为基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵;该异构图中包括m个用户节点、n个对象节点、具有预设关联关系的用户节点之间形成的连接边,与存在预设交互行为的用户节点和对象节点之间形成的连接边。第二映射模块330,配置为将所述两个
第二表征矩阵分别映射回所述双曲空间,得到两个第三表征矩阵。评分预测单元340,配置为基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分。第二更新模块350,配置为基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵。
[0119]
在一个实施例中,所述图神经网络包括两个图神经网络;第一更新模块320包括:第一更新单元321,配置为基于所述异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,得到更新后的第二用户表征矩阵;第二更新单元322,配置为基于所述异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,得到更新后的第二对象表征矩阵。
[0120]
在一个具体的实施例中,所述第一图神经网络中包括l个隐层;第一更新单元321具体配置为:将所述第一用户表征矩阵作为所述l个隐层中首个隐层的输入;在所述l个隐层中任意的第i个隐层中,针对所述m个用户节点中任意的一个用户节点,基于输入本隐层的与该用户节点对应的用户表征向量、与所述异构图中该用户节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该用户节点对应的用户表征向量;基于第l个隐层输出的与所述m个用户节点对应的m个用户表征向量,确定所述第二用户表征矩阵。
[0121]
在一个具体的实施例中,所述第二图神经网络中包括k个隐层;第二更新单元322具体配置为:将所述第一对象表征矩阵作为所述k个隐层中首个隐层的输入;在所述k个隐层中任意的第j个隐层中,针对所述n个对象节点中的任意一个对象节点,基于输入本隐层的与该对象节点对应的节点表征向量,与所述异构图中该对象节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该对象节点对应的对象表征向量;基于第k个隐层输出的与所述n个对象节点对应的n个对象表征向量,确定所述第二对象表征矩阵。
[0122]
在一个具体的实施例中,第二更新模块350具体配置为:基于所述预测评分和对应的交互行为标签,确定欧式空间中当前的两个参数矩阵中各个权重参数的回传梯度;基于所述回传梯度更新对应的权重参数,形成更新后的两个参数矩阵;将所述更新后的两个参数矩阵映射至所述双曲空间,作为本轮更新后的两个目标表征矩阵。
[0123]
进一步,在一个示例中,所述第一映射模块310还配置为:初始化所述当前的两个参数矩阵;将所述当前的两个参数矩阵分别映射至所述双曲空间,用作所述当前的两个目标表征矩阵。
[0124]
在一个实施例中,所述图神经网络中包括权重参数;第二更新模块350具体配置为:基于所述预测评分和交互标签,更新两个目标表征矩阵和所述图神经网络中的权重参数。
[0125]
在一个实施例中,所述两个第三表征矩阵包括第三用户表征矩阵和第三对象表征矩阵;评分预测单元340具体配置为:从所述第三用户表征矩阵中获取与所述样本用户对应的第三用户表征向量,以及,从所述第三对象表征矩阵中获取与所述样本对象对应的第三对象表征向量;计算所述第三用户表征向量和第三对象表征向量在所述双曲空间中的距离;基于所述距离,确定所述预测评分。
[0126]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
[0127]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器
中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所描述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0128]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术特征:
1.一种推荐方法,涉及对双曲空间中的两个目标表征矩阵进行多轮次迭代更新;所述两个目标表征矩阵中的目标用户表征矩阵包括m个用户表征向量,目标对象表征矩阵包括n个对象表征向量;其中任一轮次的迭代更新包括:将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵;基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵;该异构图中包括m个用户节点、n个对象节点、具有预设关联关系的用户节点之间形成的连接边,与存在预设交互行为的用户节点和对象节点之间形成的连接边;将所述两个第二表征矩阵分别映射回所述双曲空间,得到两个第三表征矩阵;基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分;基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵。2.根据权利要求1所述的方法,其中,所述图神经网络包括两个图神经网络;其中,基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵,包括:基于所述异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,得到更新后的第二用户表征矩阵;基于所述异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,得到更新后的第二对象表征矩阵。3.根据权利要求2所述的方法,其中,所述第一图神经网络中包括l个隐层;其中,基于所述异构图和第一对象表征矩阵,利用第一图神经网络更新第一用户表征矩阵,得到更新后的第二用户表征矩阵,包括:将所述第一用户表征矩阵作为所述l个隐层中首个隐层的输入;在所述l个隐层中任意的第i个隐层中,针对所述m个用户节点中任意的一个用户节点,基于输入本隐层的与该用户节点对应的用户表征向量、与所述异构图中该用户节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该用户节点对应的用户表征向量;基于第l个隐层输出的与所述m个用户节点对应的m个用户表征向量,确定所述第二用户表征矩阵。4.根据权利要求2所述的方法,其中,所述第二图神经网络中包括k个隐层;其中,基于所述异构图和第一用户表征矩阵,利用第二图神经网络更新第一对象表征矩阵,得到更新后的第二对象表征矩阵,包括:将所述第一对象表征矩阵作为所述k个隐层中首个隐层的输入;在所述k个隐层中任意的第j个隐层中,针对所述n个对象节点中的任意一个对象节点,基于输入本隐层的与该对象节点对应的节点表征向量,与所述异构图中该对象节点的各个邻居节点对应的节点表征向量,确定本隐层输出的与该对象节点对应的对象表征向量;基于第k个隐层输出的与所述n个对象节点对应的n个对象表征向量,确定所述第二对象表征矩阵。5.根据权利要求1所述的方法,其中,基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵,包括:
基于所述预测评分和对应的交互行为标签,确定欧式空间中当前的两个参数矩阵中各个权重参数的回传梯度;基于所述回传梯度更新对应的权重参数,形成更新后的两个参数矩阵;将所述更新后的两个参数矩阵映射至所述双曲空间,作为本轮更新后的两个目标表征矩阵。6.根据权利要求5所述的方法,其中,在所述任一轮次为首轮的情况下,在所述将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵之前,所述方法还包括:初始化所述当前的两个参数矩阵;将所述当前的两个参数矩阵分别映射至所述双曲空间,用作所述当前的两个目标表征矩阵。7.根据权利要求1-6中任一项所述的方法,其中,所述图神经网络中包括权重参数;其中,基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵,包括:基于所述预测评分和交互标签,更新所述两个目标表征矩阵和所述图神经网络中的权重参数。8.根据权利要求1-6中任一项所述的方法,其中,所述两个第三表征矩阵包括第三用户表征矩阵和第三对象表征矩阵;其中,基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分,包括:从所述第三用户表征矩阵中获取与所述样本用户对应的第三用户表征向量,以及,从所述第三对象表征矩阵中获取与所述样本对象对应的第三对象表征向量;计算所述第三用户表征向量和第三对象表征向量在所述双曲空间中的距离;基于所述距离,确定所述预测评分。9.一种推荐装置,涉及对双曲空间中的两个目标表征矩阵进行多轮次迭代更新;所述两个目标表征矩阵中的目标用户表征矩阵包括m个用户表征向量,目标对象表征矩阵包括n个对象表征向量;所述装置通过以下的模块执行其中任一轮次的迭代更新:第一映射模块,配置为将当前的两个目标表征矩阵分别映射至所述双曲空间的切平面,得到两个第一表征矩阵;第一更新模块,配置为基于构建好的异构图,利用图神经网络更新所述两个第一表征矩阵,得到更新后的两个第二表征矩阵;该异构图中包括m个用户节点、n个对象节点、具有预设关联关系的用户节点之间形成的连接边,与存在预设交互行为的用户节点和对象节点之间形成的连接边;第二映射模块,配置为将所述两个第二表征矩阵分别映射回所述双曲空间,得到两个第三表征矩阵;评分预测单元,配置为基于所述两个第三表征矩阵,确定样本用户对样本对象的预测评分;第二更新模块,配置为基于所述预测评分和对应的交互行为标签,在所述双曲空间中更新所述当前的两个目标表征矩阵。10.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计
算机中执行时,令计算机执行权利要求1-8中任一项所述的方法。11.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。

技术总结
本说明书实施例提供一种推荐方法及装置,涉及对双曲空间中的目标用户表征矩阵和目标对象表征矩阵进行多轮次迭代更新。该方法中任一轮次的迭代更新包括:先将当前的两个目标表征矩阵分别映射至双曲空间的切平面,得到两个第一表征矩阵;接着,基于构建好的异构图,利用图神经网络更新两个第一表征矩阵得到更新后的两个第二表征矩阵,该异构图中具有预设关联关系的用户节点之间,以及存在预设交互行为的用户节点和对象节点之间形成连接边;再将两个第二表征矩阵分别映射回双曲空间,得到两个第三表征矩阵,用以确定样本用户对样本对象的预测评分;之后,基于预测评分和对应的交互行为标签,在双曲空间中更新当前的两个目标表征矩阵。阵。阵。


技术研发人员:吴乐 杨永晖 张琨 洪日昌 汪萌 吴郑伟 张志强 周俊
受保护的技术使用者:合肥工业大学
技术研发日:2023.06.05
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐