Semi-decentralized Federated Ego Graph Learning for Recommendation

ops/2024/9/24 10:15:40/

论文概况

本文是2023年WWW的一篇联邦推荐论文,提出了一个半去中心化的联合自我图学习框架。

Introduction

作者提出问题

  • 现有的推荐方法收集所有用户的自我图来组成一个全局图,导致隐私风险。
  • 联合推荐系统已被提出来缓解隐私问题,但在客户端设备的可扩展性和资源限制方面面临挑战。
  • SemiDFEGL 框架引入了设备到设备的协作,以提高可扩展性并降低通信成本。
  • 该框架利用预测的交互项目节点来连接孤立的自我图,从而能够以保护隐私的方式使用高阶协作信息。
  • 所提出的框架与模型无关,可以与现有的基于图神经网络的推荐方法和隐私保护技术集成。

Method

在这里插入图片描述

A.设备内局部自我图嵌入

该方法涉及利用中央服务器生成虚假的共同物品,以连接用户并创建一个本地协作子图。每个客户端首先通过图神经网络(GNN)的消息传递机制学习本地自我图的嵌入表示。
e u ( k + 1 ) = A g g F u n ( e u ( k ) , { e i ( k ) } i ∈ N ( u ) ) \mathbf{e}_u^{(k+1)}=AggFun(\mathbf{e}_u^{(k)},\{\mathbf{e}_i^{(k)}\}_{i\in\mathcal{N}_{(u)}}) eu(k+1)=AggFun(eu(k),{ei(k)}iN(u))
e u ( k + 1 ) = ∑ i ∈ N ( u ) 1 N ( u ) N ( i ) e i ( k ) e i ( k + 1 ) = ∑ u ∈ N ( i ) 1 N ( i ) N ( u ) e u ( k ) \mathbf{e}_{u}^{(k+1)}=\sum_{i\in\mathcal{N}_{(u)}}\frac{1}{\sqrt{\mathcal{N}_{(u)}}\sqrt{\mathcal{N}_{(i)}}}\mathbf{e}_{i}^{(k)}\\\mathbf{e}_{i}^{(k+1)}=\sum_{u\in\mathcal{N}_{(i)}}\frac{1}{\sqrt{\mathcal{N}_{(i)}}\sqrt{\mathcal{N}_{(u)}}}\mathbf{e}_{u}^{(k)} eu(k+1)=iN(u)N(u) N(i) 1ei(k)ei(k+1)=uN(i)N(i) N(u) 1eu(k)

在初始轮中,我们将用户嵌入作为自我图嵌入
e e g o = e u \mathbf{e}_{ego} = \mathbf{e}_{u} eego=eu
下面我们将服务器中的物品嵌入和自我图嵌入进行聚类。
J m ( P , C ) = ∑ i = 1 M + N ∑ j = 1 C ( P i j ) l d ( x i , c j ) 2 J_m(P,C)=\sum_{i=1}^{M+N}\sum_{j=1}^C\left(P_{ij}\right)^ld\left(\mathbf{x}_i,\mathbf{c}_j\right)^2 Jm(P,C)=i=1M+Nj=1C(Pij)ld(xi,cj)2
P i j = ( d ( x i , c j ) ) 2 / ( 1 − l ) / [ ∑ k = 1 c ( d ( x i , c k ) ) 2 / ( 1 − l ) ] c j = [ ∑ i = 1 M + N P i j l x i ] / [ ∑ i = 1 M + N P i j l ] P_{ij}=\left(d\left(\mathbf{x}_{i},\mathbf{c}_{j}\right)\right)^{2/(1-l)}/\left[\sum_{k=1}^{c}\left(d\left(\mathbf{x}_{i},\mathbf{c}_{k}\right)\right)^{2/(1-l)}\right]\\\mathbf{c}_{j}=\left[\sum_{i=1}^{M+N}P_{ij}^{l}\mathbf{x}_{i}\right]/\left[\sum_{i=1}^{M+N}P_{ij}^{l}\right] Pij=(d(xi,cj))2/(1l)/[k=1c(d(xi,ck))2/(1l)]cj=[i=1M+NPijlxi]/[i=1M+NPijl]
c是群的中心,d(·)为距离函数。该操作将自我图和物品进行分类。
之后,对于每个用户的成员关系,我们选择具有最大值的元素,以确保每个用户/客户机只属于一个组。对于每个项目的隶属关系,我们选择前k个最大的元素,以便同一项目可以属于多个组。
因此,分配给每个组的项目称为预测交互项目节点(也称为假公共项目),并用于连接到组内的每个用户,以形成高阶局部子图。

B.设备到设备协作

设备与设备之间进行图级别的信息传播。
首先,在局部进行用户和物品的嵌入计算。
e u = ∑ k = 0 K α k e u ( k ) ; e i = ∑ k = 0 K α k e i ( k ) \mathbf{e}_{u}=\sum_{k=0}^{K}\alpha_{k}\mathbf{e}_{u}^{(k)};\quad\mathbf{e}_{i}=\sum_{k=0}^{K}\alpha_{k}\mathbf{e}_{i}^{(k)} eu=k=0Kαkeu(k);ei=k=0Kαkei(k)
随后,利用假邻接物品进行图级别的信息传播。

C.设备到服务器协作

在本地学习节点嵌入后,我们通过从每个组中采样设备并将项目嵌入上传到中央服务器以更新全局项目嵌入表来执行设备到服务器的协作。
为了保护用户的交互数据,每个客户端采样了一些它没有交互的项目,并随机生成它们的嵌入e,具有与实际交互项目嵌入e相同的均值和方差。
此外,由于嵌入也可能泄露用户隐私,我们对上传的嵌入进行基于l1范数的阈值裁剪。
e ^ i = c l i p ( e ^ i , δ ) + L a p l a c e ( 0 , λ ) \hat{\mathbf{e}}_{i}=\mathrm{clip} (\hat{\mathbf{e}}_{i},\delta)+\mathrm{Laplace}(0,\lambda) e^i=clip(e^i,δ)+Laplace(0,λ)

D.模型预测和训练

在中央服务器上,通过计算用户上传自我图嵌入和每个条目嵌入的排名分数,生成模型预测。
y u i = e e g o T e i y_{ui}=\mathbf{e}_{ego}^T\mathbf{e}_i yui=eegoTei
L = − ∑ i ∈ N u ∑ j ∉ N u ln ⁡ σ ( y u i − y u j ) + λ ∥ e ∥ 2 \mathcal{L}=-\sum_{i\in N_{u}}\sum_{j\notin N_{u}}\ln\sigma\left(y_{ui}-y_{uj}\right)+\lambda\left\|\mathbf{e}\right\|^{2} L=iNuj/Nulnσ(yuiyuj)+λe2

E.结果

在这里插入图片描述

总结

本文介绍了一种新颖的联合推荐系统方法,可解决隐私问题和可扩展性问题,为设备上的推荐提供了一种有前途的解决方案。


http://www.ppmy.cn/ops/38424.html

相关文章

【牛客】排列计算

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 如果直接涂色来计算单点权重&#xff0c;2e5*2e5必然超时。 所以用差分进行优化。 3. 代码实现 #include<bits/stdc.h> using name…

Java线程池(更新中)

1.线程池介绍 顾名思义&#xff0c;线程池就是管理一系列线程的资源池&#xff0c;其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息&#xff0c;例如已完成任务的数量。 总结一下使用线程池的好处&#xff1a; 降低资源消耗。通过重复利用已创建的…

c#设置或者获取一个泛型整数指定bit的值

1.设置 代码如下&#xff08;示例&#xff09;&#xff1a; /// <summary>/// 设置一个整形数的每一个bit的值/// </summary>/// <typeparam name"T"></typeparam>/// <param name"flag">bit位0或者1</param>/// <…

<网络安全>《82 微课堂<安全产品微简介(2)>》

2 简单的了解复杂的安全产品 产品说明漏洞扫描或挖掘漏洞扫描和挖掘都是为了发现系统或软件漏洞。区别是挖掘要发现0day漏洞&#xff0c;漏洞扫描发现已知漏洞。准入主要是对合规设备入网进行验证。上网行为管理关注用户网络访问的行为&#xff0c;比如是否泄密、占用带宽过大…

【备战软考(嵌入式系统设计师)】07 - 计算机网络模型

七层模型 计算机网络中比较常见的有OSI七层模型和TCP/IP四层模型。 软考中主要考七层模型&#xff0c;但是实际中使用的还是四层模型比较多&#xff0c;我们主要是为了考试&#xff0c;那就主要讲讲七层模型。不过实际上四层模型就是将七层模型压缩了三层&#xff0c;本质上是…

学习笔记:【QC】Android Q - IMS 模块

一、IMS init 流程图 高清的流程图参考&#xff1a;【高清图&#xff0c;保存后可以放大看】 二、IMS turnon 流程图 高清的流程图参考&#xff1a;【高清图&#xff0c;保存后可以放大看】 三、分析说明 1、nv702870 不创建ims apn pdp 2、nv702811 nv702811的时候才创建…

TMS320F280049 CLB模块--总览(0)

CLB模块是可配置的逻辑块&#xff0c;和FPGA的CLB有些不同。 下图是CLB模块在系统中的交互&#xff0c;图中CLB XBAR和TILE是CLB。从049中有4个CLB&#xff0c;也就是TILE1-4。 下图是CPU和CLB交互的示意图。 下图是CLB的时钟。 参考文档&#xff1a; TMS320F28004x Real-Tim…

查看pytorch与cuda对应版本

查看cuda版本 打开cmd,输入nvidia-smi&#xff0c;即可可以看到cuda的版本了 2. pytorch与cuda版本对应关系 可以参考这篇文章&#xff0c;写的非常详细&#xff1a;https://blog.csdn.net/FL1768317420/article/details/134769203