Semi-decentralized Federated Ego Graph Learning for Recommendation

news2024/11/20 9:30: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.coloradmin.cn/o/1657161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【半夜学习MySQL】数据库概念详解探索数据库到底是如何存储的?

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。 🎯每天努力一点点,技术变化看得见 文章目录 什么是数据库主流数据库与数据库分类数据库的基本使用数据库的启动及关闭查看配置文件与数据库存储位置连接数据库服务器服务…

Linux进程——Linux环境变量

前言:在结束完上一篇的命令行参数时,我们简单的了解了一下Linux中的环境变量PATH,而环境变量不只有PATH,关于更多环境变量的知识我们将在本篇展开! 本篇主要内容: 常见的环境变量 获取环境变量的三种方式 本…

[性能优化] ScrollView视图优化为循环列表

问题描述: 原先商城的物品栏中的item 是load在一个scrollView 下,用于滑动查看。仅仅在父级panel下是使用了NGUI原生的scrollview 组件,随着商场物品列表中新物品的增多。panel下加载的实例也非常庞大。而大部分的实例用户也无法看到&#x…

YOLOv5,YOLOv7改进之结合​SOCA

1.SOCA moudle结构图 2,YOLOv5,YOLOv7改进之结合​SOCA 1.配置common.py文件 #SOCA moudle 单幅图像超分辨率 class Covpool(Function):@staticmethoddef forward(ctx, input):x = inputbatchSize = x.data.shape[0]dim = x.data.shape[1]h = x.data.shape[2]w = x.data.sha…

上位机图像处理和嵌入式模块部署(树莓派4b和c++新版本的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 自己读书的时候是03年,学习c也是差不多04年开始,到现在基本上20年了。这20年过程当中,其实c的语言版本一直是在…

队列 (Queue)

今日励志语句:别总听悲伤的歌,别总想从前的事,别让过去拖住脚,别让未来被辜负。 前言:前面写了一篇 栈的实现,接下来学习一下它的"兄弟" 一、队列的概念: 队列: 也是数据…

nginx代理原理(端口复用)探究

前言:对于一些常用的插件,我们应该学会如何使用。同时,其实现原理也要进行深究,可以为其他的项目开发做借鉴。 探究方案: 一、发布两个不同的服务,这两个服务的端口不致 二、配置nginx,让这两…

JavaScript百炼成仙自学笔记——13

函数七重关之六(“new”一个函数) 看个代码: function hello(){console.log(this); } 1、this:也是JavaScript中的一个关键字,永远指向当前函数的调用者 解释一下,有两层意思: ①this要嘛不出现&#…

从心理学角度看,GPT 对人有什么影响?

开启个性化AI体验:深入了解GPT的无限可能 导言 GPT 与我们日常生活的融合标志着技术进步的重大飞跃,为提高效率和创新提供了前所未有的机遇。然而,当我们与这些智能系统日益紧密地交织在一起时,探索它们对个人产生的细微的心理影响…

康姿百德集团公司官网价格统一,产品编码可查真伪售后有保障

康姿百德床垫,静音设计让你享受安静睡眠环境 随着越来越多的人睡眠质量差,夜间难以入睡,人们开始意识到睡眠问题已经不仅仅是健康问题,更上升为一种社会问题,急需得到解决。作为寝具行业中的优质品牌,康姿…

【Linux】如何定位客户端程序的问题

文章目录 1 客户端程序和服务端程序的差别2 问题类型2.1 崩溃(crash)2.2 CPU高2.3 内存高2.4 线程卡死 3 总结 1 客户端程序和服务端程序的差别 客户端程序是运行在终端上,通常都会与业务系统共存,而服务端程序通常会运行在单独的节点上,或者…

Leetcode—394. 字符串解码【中等】

2024每日刷题&#xff08;131&#xff09; Leetcode—394. 字符串解码 实现代码 class Solution { public:string decodeString(string s) {string curstr;int curNum 0;stack<pair<string, int>> st; for(char c: s) {if(isdigit(c)) {curNum curNum * 10 (c…

污水处理设备集中管理

在环境保护日益成为社会发展重中之重的今天&#xff0c;污水处理设备的有效管理显得尤为关键。传统的管理方式往往存在效率低下、响应不及时等问题&#xff0c;难以满足现代污水处理的需求。而HiWoo Cloud平台的污水处理设备集中管理系统&#xff0c;以其高效、智能的特点&…

python代码无法点击进入,如何破???

python代码无法点击进入&#xff0c;如何破&#xff1f;&#xff1f;&#xff1f; 举个栗子&#xff1a; model.chat是无法进入的&#xff0c;这时可以使用如下的命令进行操作&#xff1a; ?model.chat

Linux migrate_type进一步探索

文章接着上回Linux migrate_type初步探索 1、物理页面添加到buddy系统 我们都知道物理内存一开始是由memblock进行分配管理&#xff0c;后面会切换到buddy系统管理。那么接下来我们看一下&#xff0c;memblock管理的物理页面是怎么添加到buddy系统中的。 start_kernel() -&g…

【数据库原理及应用】期末复习汇总高校期末真题试卷06

试卷 一、选择题 1&#xff0e; ________是长期存储在计算机内的有组织,可共享的数据集合. A.数据库管理系统 B.数据库系统 C.数据库 D.文件组织 1&#xff0e; 有12个实体类型&#xff0c;并且它们之间存在15个不同的二元联系&#xff0c;其中4个是1:1联系类型&#xff0c;5…

Ubuntu22.04下安装kafka_2.12-2.6.0并运行简单实例

目录 一、版本信息 二、安装Kafka 1. 将Kafka安装包移到下载目录中 2. 安装Kafka并确保hadoop用户对Kafka目录有操作权限 三、启动Kafka并测试Kafka是否正常工作 1. 启动Kafka 2. 测试Kafka是否正常工作 一、版本信息 虚拟机产品&#xff1a;VMware Workstation 17 Pro…

javaWeb快速部署到tomcat阿里云服务器

目录 准备 关闭防火墙 配置阿里云安全组 点击控制台 点击导航栏按钮 点击云服务器ECS 点击安全组 点击管理规则 点击手动添加 设置完成 配置web服务 使用yum安装heepd服务 启动httpd服务 查看信息 部署java通过Maven打包好的war包项目 Maven打包项目 上传项目 …

三勾软件 / 三勾点餐系统门店系统,java+springboot+vue3

项目介绍 三勾点餐系统基于javaspringbootelement-plusuniapp打造的面向开发的小程序商城&#xff0c;方便二次开发或直接使用&#xff0c;可发布到多端&#xff0c;包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。 在…