1.本发明属于数据处理技术领域,特别是涉及一种基于异构图神经网络的社交推荐方法。
背景技术:2.随着互联网和信息计算的快速发展,衍生了海量的数据,我们已经进入了一个信息爆炸的时代,每时每刻都有海量信息产生,用户从大量的信息中寻找对自己有用的信息也变得越来越困难。每个人的兴趣不尽相同,所以可以实现千人千面的推荐系统应运而生,并成为当下热点。推荐系统通过发掘用户的行为,将合适的信息推荐给用户,满足用户的个性化需求。它被设计成通过学习嵌入来预测用户对项目的潜在兴趣。另外,图形神经网络的最新发展也为推荐系统提供了强大的主干来从用户项目图中学习嵌入。然而,由于数据收集的困难,仅仅利用用户
‑
项目交互会受到冷启动问题的困扰。因此,将社交信息与用户
‑
项目交互融合以缓解它,这就是社交推荐问题。
3.社交推荐的目标是在给定社交互动和用户项目互动的情况下,预测用户对项目的评分。现有的社交推荐方法可分为基于社交矩阵分解的方法和基于图神经网络的方法。社交矩阵分解方法要么联邦分解评级和社交关系矩阵,要么用社交联系约束来规范用户或项目的嵌入。然而评分矩阵和社交关系矩阵存在数据高度稀疏与分布不均匀等特点,这些特点进一步导致了推荐性能低、冷启动等问题。图神经网络方法是直接从图中推断节点嵌入。然而,现有的使用图神经网络来同时聚合社交连接和用户项目交互,都需要集中存储用户的社交连接和项目交互,这导致了隐私问题。
技术实现要素:4.为了解决上述问题,本发明提出了一种基于异构图神经网络的社交推荐方法,分散了数据存储,还全面融合了客户端的本地用户隐私数据,并使用服务器协同训练社交推荐,可以有效实现社交推荐并且保护了数据的隐私性。
5.为达到上述目的,本发明采用的技术方案是:一种基于异构图神经网络的社交推荐方法,包括步骤:
6.s10,根据客户端上的本地数据构造局部异构图;
7.s20,客户端向服务器请求模型参数,使用图注意力网络模型对局部异构图进行嵌入学习,以处理本地图的异构性和客户端的个性化信息;
8.s30,一个用户和一个客户端相关联,在客户端加入伪项目标签后,使用损失函数计算客户端的梯度,之后通过一个本地差分隐私模型后上传到服务器;
9.s40,服务器收集多个客户端的梯度,进一步更新模型参数训练社交推荐模型;通过社交推荐模型输出的本地客户端嵌入进行社交推荐。
10.进一步的是,在所述步骤s10中,包括步骤:
11.s11,客户端的本地数据包括存储评级数据和社交数据,每个客户端和用户相关
联;
12.s12,建立客户端的局部异构图,局部异构图包括用户节点和项目节点,有两种边类型,分别为用户
‑
项目边类型和用户
‑
用户边类型,包含客户端用户的一阶邻居。
13.进一步的是,在所述步骤s20中,包括步骤:
14.s21,对于第n个客户端,根据局部异构图获取它的项目嵌入和用户嵌入;
15.s22,将获取的嵌入输入到图注意力网络模型进行嵌入学习,得到用户社交关系的注意力权重和项目邻居关系的注意力权重;
16.s23,将用户社交关系和项目邻居的关系聚合,将隐藏嵌入与它们的关系向量连接起来,并使用自我注意机制来学习聚合的权重;
17.s24,利用聚合结果获取用户的推断节点嵌入;
18.s25,将用户的推断节点嵌入和项目嵌入之间进行点积来预测本地项目评分。
19.进一步的是,在所述步骤s22中,将获取的嵌入输入到图注意力网络模型进行嵌入学习,得到用户社交关系的注意力权重和项目邻居关系的注意力权重,包括步骤:
20.使用关注层学习每个邻居的权重,获取社交对的注意力得分;进而计算中心节点的所有邻居权重,得到用户社交关系的最终注意力权重;
21.使用关注层学习每个邻居的权重,获取项目对的注意力得分;进而计算中心节点的所有邻居权重,得到项目邻居关系的最终注意力权重。
22.进一步的是,在所述步骤s23中,将用户社交关系和项目邻居的关系聚合,将隐藏嵌入与它们的关系向量连接起来,并使用自我注意机制来学习聚合的权重,公式如下:
[0023][0024][0025][0026]
其中,γ
u
,γ
t
,γ
s
分别为隐藏用户社交嵌入、隐藏项目邻居嵌入和中心节点自身嵌入的注意力权重;用户社交和项目邻居的隐藏嵌入分别为和v
u
表示社交关系向量,v
t
表示用户
‑
项目关系向量,v
s
表示中心节点向量,h
s
表示中心节点本身嵌入,c表示注意力层的权重向量。
[0027]
进一步的是,在所述步骤s30中,包括步骤:
[0028]
s31,首先采样不在相邻评级项目中的q个项目作为伪项目;然后,我们使用局部模型来预测这些伪项目的评级,预测的评级被四舍五入为伪评级;
[0029]
s32,然后通过均方根误差计算真实值和预测值的误差;
[0030]
s33,根据所得到的误差,计算出客户端的梯度;
[0031]
s34,计算得出的梯度输入本地差分隐私模型中;基于梯度添加动态噪声获取,优化梯度。
[0032]
进一步的是,在所述步骤s40中,包括步骤:
[0033]
s41,服务器从多个客户端收集梯度,然后聚合这些梯度;
[0034]
s42,聚合之后,服务器将模型参数更新;这个学习过程被操作多次,直到收敛。
[0035]
采用本技术方案的有益效果:
[0036]
本发明通过分散存储用户隐私数据,客户端和服务器协同,同时聚合用户项目之间的交互和用户社交连接来进行社交推荐;将客户端上的数据公式化为多个本地图表,使用图形注意力网络关系关注和聚合来处理本地图的异构性;根据本地数据推断用户嵌入,来保留客户端个性化信息;每个用户都与一个客户端相关联,使用损失函数计算客户端的梯度,然后,服务器收集多个客户端的梯度,进一步更新参数发送到客户端;最后,通过模型输出的本地客户端嵌入进行社交推荐。然而,直接上传梯度到服务器会导致隐私问题,我们在客户端使用动态本地差分隐私和伪项目标签来解决该问题。本发明分散了数据存储,此外,还全面融合了客户端的本地用户隐私数据,并使用服务器协同训练联邦社交推荐系统,可以有效实现社交推荐并且保护了数据的隐私性。
[0037]
本发明为了更有效的融合用户项目交互和社交连接信息,将客户端上的数据公式化为多个局部图,使用图注意力神经网络对局部图进行嵌入学习,局部图神经网络的关系注意和聚集区分社交和项目邻居,保留了数据的异构性。并且使用本地用户嵌入推理为客户端保留了个性化信息。
[0038]
本发明为了有效保护数据隐私安全,使用分散的数据存储,原始的隐私数据存储在本地客户端,不会上传到服务器端,只会上传通过计算得出的梯度数据供服务器更新参数,协同训练社交推荐系统。另外,在客户端还添加了伪项目标签以及动态差分隐私技术保护梯度免受隐私数据泄露。项目的伪标签还提供了额外的评级信息,这可以缓解数据的冷启动问题。而且,我们对这些伪项目进行采样,得出的评级与预测评级之间差异是随机的,这增强了本地模型的鲁棒性。整体对比实验表明,本发明在解决社交推荐问题上明显优于sota联邦学习框架,并且有效保护了用户数据隐私性。
附图说明
[0039]
图1为本发明的一种基于异构图神经网络的社交推荐方法的流程示意图;
[0040]
图2为本发明实施例中种基于异构图神经网络的社交推荐方法的原理框架示意图;
[0041]
图3为本发明实施例中注意力权重计算的原理图;
[0042]
图4为本发明实施例中图注意力神经网络的原理图。
具体实施方式
[0043]
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步阐述。
[0044]
在本实施例中,参见图1和图2所示,本发明提出了一种基于异构图神经网络的社
交推荐方法,包括步骤:
[0045]
s10,根据客户端上的本地数据构造局部异构图;
[0046]
s20,客户端向服务器请求模型参数,使用图注意力网络模型对局部异构图进行嵌入学习,以处理本地图的异构性和客户端的个性化信息;
[0047]
s30,一个用户和一个客户端相关联,在客户端加入伪项目标签后,使用损失函数计算客户端的梯度,之后通过一个本地差分隐私模型后上传到服务器;
[0048]
s40,服务器收集多个客户端的梯度,进一步更新模型参数训练社交推荐模型;通过社交推荐模型输出的本地客户端嵌入进行社交推荐。
[0049]
作为上述实施例的优化方案,在所述步骤s10中,包括步骤:
[0050]
s11,客户端的本地数据包括存储评级数据和社交数据,每个客户端c
n
和用户n相关联;
[0051]
s12,建立客户端c
n
的局部异构图g
n
,局部异构图g
n
包括用户节点和项目节点,有两种边类型,分别为用户
‑
项目边类型和用户
‑
用户边类型,包含客户端用户的一阶邻居,其中,项目节点表示为用户节点表示为
[0052]
作为上述实施例的优化方案,在所述步骤s20中,包括步骤:
[0053]
s21,对于第n个客户端,根据局部异构图获取它的项目嵌入为和用户嵌入为
[0054]
其中,均是嵌入矩阵,k表示项目总数,p表示用户的总数;
[0055]
s22,将获取的嵌入输入到图注意力网络模型进行嵌入学习,得到用户社交关系的注意力权重和项目邻居关系的注意力权重;包括步骤:
[0056]
使用关注层学习每个邻居的权重,对于社交对(u
n
,u
p
)的注意力得分公式为其中,e
un
表示用户n的嵌入,w1是社交对线性映射矩阵,注意力层为单层前馈神经网络,使用权重矩阵α和激活函数leakyrelu进行参数化,||代表两个向量的连接运算;进而计算中心节点u的所有邻居权重,得到用户社交关系的最终注意力权重α
np
=softmax
p
(o
np
);
[0057]
使用关注层学习每个邻居的权重,对于项目对(u
n
,t
k
)注意力得分公式为其中,e
un
表示用户n的嵌入,w2是用户项目对线性映射矩阵,注意力层为单层前馈神经网络,使用权重矩阵b和激活函数leakyrelu进行参数化,||代表两个向量的连接运算;进而计算中心节点u的所有邻居权重,得到项目邻居关系的最终注意力权重β
nk
=softmax
k
(ν
nk
)。
[0058]
s23,将用户社交关系和项目邻居的关系聚合,将隐藏嵌入与它们的关系向量连接起来,并使用自我注意机制来学习聚合的权重,公式如下:
[0059]
[0060][0061][0062]
其中,γ
u
,γ
t
,γ
s
分别为隐藏用户社交嵌入、隐藏项目邻居嵌入和中心节点自身嵌入的注意力权重;用户社交和项目邻居的隐藏嵌入分别为和v
u
表示社交关系向量,v
t
表示用户
‑
项目关系向量,v
s
表示中心节点向量,h
s
表示中心节点本身嵌入,c表示注意力层的权重向量。
[0063]
s24,利用聚合结果获取用户的推断节点嵌入
[0064]
s25,将用户的推断节点嵌入和项目嵌入之间进行点积来预测本地项目评分e
t
表示项目嵌入。
[0065]
作为上述实施例的优化方案,在所述步骤s30中,包括步骤:
[0066]
s31,首先采样不在相邻评级项目中的q个项目作为伪项目,表示为然后,我们使用局部模型来预测这些伪项目的评级,预测的评级被四舍五入为伪评级;
[0067]
s32,然后通过均方根误差计算真实值和预测值的误差,公式为:
[0068]
s33,根据所得到的误差,计算出客户端的梯度
[0069]
其中,分别为客户端c的项目嵌入梯度,用户嵌入梯度和模型梯度,θ是可训练的参数;
[0070]
s34,计算得出的梯度输入本地差分隐私模型中,被公式化为
[0071][0072]
其中,clip(g
(n)
,δ)表示用阈值δ限制梯度g
(n)
,laplacian(0,λ)表示具有0均值和λ强度的拉普拉斯噪音;当处理不同幅度的梯度时,恒定的噪声强度是不合适的;
[0073]
因此,于梯度添加动态噪声,公式优化为
[0074]
作为上述实施例的优化方案,在所述步骤s40中,包括步骤:
[0075]
s41,服务器从多个客户端收集梯度,然后聚合这些梯度,公式如下:
[0076][0077]
其中,r
n
用于计算梯度的交互总数,包括真实交互和伪交互;和分别为涉及项目和用户的交互次数;
[0078]
s42,聚合之后,服务器将模型参数θ更新为其中η表示学习率,这个学习过程被操作多次,直到收敛。
[0079]
具体实施例如图2所示,该图为一个双客户端场景。在每个客户端中,使用本地gat图注意力层来推断节点嵌入,并采用注意力层聚合社会邻居和项目邻居。然后,对一组与本地数据绑定的伪项目进行采样,计算损失和梯度。差分隐私模型操作后,嵌入梯度和模型梯度都上传到服务器进行聚合。服务器更新参数后发送到客户端。
[0080]
如图3所示,计算两个嵌入之间的注意力权重i
np
,包括线性映射矩阵w、两个用户嵌入e
un
,e
up
的串联、注意力层a,和激活函数leakyrelu。
[0081]
如图4所示,本地图神经网络gnn通过聚合相邻嵌入学习嵌入用户u1,之后上传到服务器。
[0082]
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。