FedGNN: Federated Graph Neural Network for Privacy-Preserving Recommendation阅读笔记

动机

本文是2021年ICML上的一篇论文。通常基于GNN的推荐系统模型是需要将用户与物品的交互图集中在一起进行学习,但这可能会造成用户隐私泄露。本文提出的FedGNN框架可以从分散的用户数据中训练GNN模型,同时保护用户隐私,该模型可以和普通的图神经网络一样捕获到高阶交互(邻居),以达到更好的效果。

算法

在FedGNN中,每个用户节点保存着他的交互物品和与他有相同交互物品用户的子图(包含三部分),同时节点的embedding层将这三种节点转换成它们的嵌入,分别为。用户和其交互物品的embedding可在训练过程中调整,但是邻居用户的embedding需要固定(作者发现这种方法相比动态更新邻居节点效果会更好)。之后就可以根据自身选用的GNN模型在这个局部图中计算出用户,交互物品,邻居用户的隐向量表示,然后根据预测器计算出用户对物品的评分,并结合真实得分计算出损失,根据损失可以获得梯度上传给服务器节点。
服务器节点在每一轮选择一些节点令它们计算局部梯度并上传至服务器,在收集并聚合好所有选择用户的上传梯度之后,将聚合梯度分发给各个用户节点,各个用户节点更新本地参数(用户与其交互物品的embedding)。
算法整体框架可见下图。

保护用户隐私

用户节点在上传梯度时,如果是直接上传原始的梯度,那么服务器很容易就可以分辨出该用户与哪些物品有交互,因为有交互的物品梯度是非零的。除此之外,GNN梯度与预测器梯度编码了用户对物品的偏好,在这部分有可能会泄露用户隐私。
为了解决第一个问题,我们可以随机采样M个该用户未产生过交互的物品作为虚拟交互物品,并使用均值和方差与真实交互物品梯度相同的高斯分布生成虚拟交互物品的梯度,将这部分梯度和真实物品梯度与模型梯度一起上传至服务器。
对于第二个问题,我们使用具有阈值为δ的无穷范数剪切梯度,并应用一个具有零平均拉普拉斯噪声的本地差分隐私模块。

用户-物品交互图扩展

如何在不暴露用户隐私的情况下找到和其具有相同交互物品的邻居节点?服务器节点产生一个公钥并分发给所有用户节点,在接收到公钥后,用户使用同态加密技术去加密他所交互的物品的id,然后用户将其自身embedding和加密后的交互物品id发送给一个第三方服务器,第三方服务器根据加密后的物品id进行匹配,给每个用户提供他邻居节点的embedding,这里邻居节点是匿名的。
算法流程如下。

结果

作者在本框架中使用GAT模型,相比与基于矩阵分解的联邦推荐模型,本文所提出的模型效果更好。相比与集中训练的GNN推荐模型,本文提出的模型性能与它们接近。

总结

本文提出的FedGNN框架很有新意,对于图神经网络来说,很难做到在保护用户隐私的同时,捕获到高阶邻居信息。本文所提出的框架可以捕获到二阶邻居的信息,总体上来说取得了很好的效果,但是本文提出的框架还存在一些问题。首先是作者文中提出了,如果第三方服务器联合主服务器,那么用户的交互物品就会暴露,这是一个安全隐患。第二个,FedGNN相对于原版的GNN来说,模型性能损失还是比较明显的,作者在比较损失的时候,没有将原版GAT加入表中,这里猜测原版GAT会明显比使用FedGNN框架的GAT效果好,因此,我认为这个模型还有改进空间。

posted @ 2022-04-12 20:41  South1999  阅读(367)  评论(0编辑  收藏  举报