论文《Federated Recommendation with Additive Personalization》阅读

论文《Federated Recommendation with Additive Personalization》阅读

  • 论文概况
  • Preliminaries
  • Methodology
  • Experiments
    • 消融实验
    • Convergence
    • Curriculum分析
    • 可视化
  • 一点总结

今天带来的是 ICLR 2024 关于联邦推荐的论文《Federated Recommendation with Additive Personalization》,论文由 悉尼科技大学 Zhiwei Li 等人 及 马里兰大学帕克分校(UMD)Tianyi Zhou 完成。论文发表在 ICLR 2024,主要聚焦于 联邦推荐场景下 (1)不同用户与 server 上传下载的各自的 embedding gradient 比较片面;(2)较大的数据量传输影响 传输效率 这几个问题,提出了模型 FedRAPFederated Recommendation with Additive Personalization)。

论文地址:https://openreview.net/pdf?id=xkXdE81mOK
代码仓库:https://github.com/mtics/FedRAP

论文概况

FedRAP实际上就是把每个user 对应的 client 中关于 当前用户的 user embedding 向量与 item embedding matrix 之间的运算进行拆分,具体来说,是将 item embedding matrix进行拆分,分为 C \mathbf{C} C D i \mathbf{D}^{i} Di

针对挑战 C1:大部分 FRS 都是将所有的item embedding 在全局进行共享,忽略了 用户 对 不同物品的 preference。作者使用 C \mathbf{C} C D i \mathbf{D}^{i} Di 的分离对这一问题进行解决。
针对挑战 C2:联邦推荐需要占用较大的通信开销,特别是对于物品数量较多的场景。作者加了一个正则化项进行约束。
此外,作者在一个全局向量 C \mathbf{C} C 的添加过程中,加入了一个渐进式增加的权重函数,用于提高学习精确率。

Preliminaries

  • rating 矩阵 R = [ r 1 , r 2 , ⋯   , r n ] ⊤ ∈ { 0 , 1 } n × m \mathbf{R} = [\mathbf{r}_1, \mathbf{r}_2, \cdots, \mathbf{r}_n ]^{\top} \in \{0,1\}^{n\times m} R=[r1,r2,,rn]{0,1}n×m n n n表示用户数量, m m m表示物品数量。
  • 用户表示 U ∈ R n × k \mathbf{U} \in \mathbb{R}^{n\times k} URn×k,每个客户端 i i i 只保存自己的那一份 u i \mathbf{u}_{i} ui
  • 作者对于物品表示使用了两份矩阵,local item embedding D ( i ) ∈ R m × k \mathbf{D}^{(i)}\in \mathbb{R}^{m\times k} D(i)Rm×k,这部分用户只保存在自己的client端,不进行传输,用于保存用户的个性化信息。
  • 另一份用于保存global item 信息的 embedding 是 C ∈ R m × k \mathbf{C} \in \mathbb{R}^{m \times k} CRm×k。在整个FedRAP中,用于传播的只有 C \mathbf{C} C 这部分而已。
  • 为标记每个用户的 interaction records,使用 Ω = { ( i , j ) : the  i -th user has rated the  j -th item } \boldsymbol{\Omega} = \left\{(i,j): \text{the} \ i\text{-th user has rated the}\ j\text{-th item} \right\} Ω={(i,j):the i-th user has rated the j-th item}

下面介绍具体的方法论部分。

Methodology

FedRAP 的主要创新是在 client 端进行的。

客户端维持 自己的 user embedding 和 所有物品的 item embedding 矩阵,并添加了一个全局 item embedding 矩阵,用于维护全局向量。具体来说,使用内积加sigmoid方法进行interaction预测,如下所示:
r ^ i j = 1 / ( 1 + e − < u i , ( D ( i ) + C ) j > ) (1) \hat{r}_{ij} = 1/ (1+ e^{-<\mathbf{u}_{i}, (\mathbf{D}^{(i)} + \mathbf{C} )_{j}>})\tag{1} r^ij=1/(1+e<ui,(D(i)+C)j>)(1)

损失函数使用 交叉熵损失,如下所示:
min ⁡ U , C , D ( i ) ∑ ( i , j ) ∈ Ω − ( r i j log ⁡ ( r ^ i j ) + ( 1 − r i j ) log ⁡ ( 1 − r ^ i j ) ) . (2) \min_{\mathbf{U}, \mathbf{C}, \mathbf{D}^{(i)} } \sum\limits_{(i,j)\in \boldsymbol{\Omega}} -( r_{ij} \log ({\hat{r}}_{ij}) + (1 - r_{ij}) \log(1 - {\hat{r}}_{ij})). \tag{2} U,C,D(i)min(i,j)Ω(rijlog(r^ij)+(1rij)log(1r^ij)).(2)

另外,添加一个正则化项用于约束 C \mathbf{C} C ,使得 C \mathbf{C} C 能够 与 每个客户端的 个性化信息 扩大差距,加入下式:
max ⁡ C , D ( i ) ∑ i = 1 n ∥ C − D ( i ) ∥ F 2 (3) \max_{\mathbf{C}, \mathbf{D}^{(i)}} \sum\limits_{i=1}^{n} \|\mathbf{C} - \mathbf{D}^{(i)} \|_{F}^{2} \tag{3} C,D(i)maxi=1nCD(i)F2(3)

为了使得早期能够更多地学习 user-item 之间的 interaction 协同过滤信息,在正则化项中加入了两个 权重因子 λ ( a , v 1 ) \lambda_{(a, v_{1})} λ(a,v1) μ ( a , v 2 ) \mu_{(a, v_{2})} μ(a,v2),这里的 a a a 是 iteration 的轮次坐标, v 1 , v 2 v_1, v_2 v1,v2 是宏参。具体的Loss如下:

min ⁡ U , C , D ( i ) ∑ i = 1 n ∑ ( i , j ) ∈ Ω − ( r i j log ⁡ ( r ^ i j ) + ( 1 − r i j ) log ⁡ ( 1 − r ^ i j ) ) − λ ( a , v 1 ) ∥ C − D ( i ) ∥ F 2 ) + μ ( a , v 2 ) ∥ C ∥ 1 . (4) \min_{\mathbf{U}, \mathbf{C}, \mathbf{D}^{(i)} } \sum\limits_{i=1}^{n} \sum\limits_{(i,j)\in \boldsymbol{\Omega}} -( r_{ij} \log ({\hat{r}}_{ij}) + (1 - r_{ij}) \log(1 - {\hat{r}}_{ij}))\\ - \lambda_{(a, v_{1})} \|\mathbf{C} - \mathbf{D}^{(i)}\|_{F}^{2}) + \mu_{(a, v_{2})} \|\mathbf{C}\|_{1}.\tag{4} U,C,D(i)mini=1n(i,j)Ω(rijlog(r^ij)+(1rij)log(1r^ij))λ(a,v1)CD(i)F2)+μ(a,v2)C1.(4)

这里最后一项用的约束是 1-范式,即绝对值之和,越小代表空位越多,因此可以带来越少的通信开销。这里的 λ ( a , v 1 ) \lambda_{(a, v_{1})} λ(a,v1) μ ( a , v 2 ) \mu_{(a, v_{2})} μ(a,v2) 使用相同实现方式,使用 tanh ⁡ ( ⋅ ) \tanh(\cdot) tanh() 完成,具体地, λ ( a , v 1 ) = tanh ⁡ ( a / 10 ) × v 1 \lambda_{(a, v_{1})} = \tanh(a/10)\times v_{1} λ(a,v1)=tanh(a/10)×v1

Server端和正常FRS一样,只不过 FedRAP 只 交互 C \mathbf{C} C。整体流程如下图所示:
FedRAP Architecture
对FedRAP整个算法流程进行总结,如下算法所示,简单高效:
FedRAP Algorithm

Experiments

本文的一大特点是实验部分以图为主,表格倒是比较少(不过放在附录中了,能够查看详细数值)。具体如下:
Overall Comparisons
另外,实验部分写得非常干练,直接把所有的variants都列在一块,在每一块对应要分析的地方直接进行对比。

消融实验

Ablation

Convergence

Convergence

Curriculum分析

即对不同的 λ ( a , v 1 ) \lambda_{(a, v_1)} λ(a,v1) μ ( a , v 2 ) \mu_{(a, v_2)} μ(a,v2) 进行分析,FedRAP采用的是 tanh ⁡ \tanh tanh,除此以外,还提供了诸如sin、固定值、交换0/1、 v 1 / ( a + 1 ) v_1/{(a+1)} v1/(a+1)等方式,如下所示:
Curriculum
结果如下:
Analysis of Curricula

可视化

Visualization

一点总结

除此以外,作者还在文中介绍了一些关于联邦推荐中某个客户端连续两次参与梯度aggregation能够泄露隐私的相关证明。

整体而言,本文提出的方案相对简单,然而有效。simple yet effective。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/745828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【摄像头标定】双目摄像头标定及矫正-opencv(python)

双目摄像头标定及矫正 棋盘格标定板标定矫正 棋盘格标定板 本文使用棋盘格标定板&#xff0c;可以到这篇博客中下载&#xff1a;https://blog.csdn.net/qq_39330520/article/details/107864568 标定 要进行标定首先需要双目拍的棋盘格图片&#xff0c;20张左右&#xff0c;…

易天智能eHR管理平台 CreateUser 任意用户添加漏洞复现

0x01 产品简介 易天智能eHR管理平台是一款功能全面、智能化的人力资源管理软件,旨在帮助企业提高人力资源管理效率和管理水平。该平台通过集成员工信息、薪酬管理、档案人事管理、绩效管理和招聘管理等多个模块,实现了人力资源管理的全面智能化管理。 0x02 漏洞概述 易天智…

Windows11环境下安装Vmware Workstation 16的方法

1、下载VMWare 从网盘下载 https://pan.baidu.com/share/init?surlUpcnqiRv6nUuzO0EOZ22zg 提取码&#xff1a;8888 2、安装VMware虚拟机   第1步&#xff1a;双击上面准备好的Vmware Workstation 16虚拟机软件安装包&#xff0c;即可看到如图所示的安装向导初始界面&#x…

为什么嵌入式驱动开发工程师可以拿高薪?

嵌入式驱动开发是技术密集型的工作。想象一下&#xff0c;每一个硬件设备都需要与之匹配的驱动程序&#xff0c;才能在操作系统中正常工作。刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论…

【知识学习】阐述Unity3D中MaterialTexture的概念及使用方法示例

在Unity3D中&#xff0c;Material和Texture是渲染过程中非常重要的两个概念&#xff0c;它们共同工作以实现丰富的视觉效果。 Material Material是Unity中的一个组件&#xff0c;用于定义物体表面的视觉属性。一个Material可以包含多种属性&#xff0c;如颜色、纹理、反射率等…

道路救援入驻派单小程序开源版开发

道路救援入驻派单小程序开源版开发 1、用户立即救援 2、后台收到救援通知&#xff0c;派单救援师傅. 道路救援入驻派单小程序通常会包含一系列功能&#xff0c;旨在方便救援服务提供商、用户和后台管理系统之间的交互。以下是一个可能的功能列表&#xff1a; 用户端功能&…

第1章 物联网模式简介---独特要求和体系结构原则

物联网用例的独特要求 物联网用例往往在功耗、带宽、分析等方面具有非常独特的要求。此外&#xff0c;物联网实施的固有复杂性&#xff08;一端的现场设备在计算上受到挑战&#xff0c;另一端的云容量几乎无限&#xff09;迫使架构师做出艰难的架构决策和实施选择。可用实现技…

秋招Java后端开发冲刺——非关系型数据库篇(MongoDB)

MongoDB 本文介绍非关系型数据库MongoDB的基础知识和常见面试题。 &#xff08;一&#xff09;基础知识 1. 介绍&#xff1a;MongoDB是一个基于分布式文件存储的数据库&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能数据存储解决方案。 2.特点 特点…

Rust日常开发三方库精选

日常开发三方库精选 对计算机、编程、架构的理解决定一个程序员的上限&#xff0c;而工具则决定了他的下限&#xff0c;三尺森寒利剑在手&#xff0c;问世间谁敢一战。 本文就分门别类的精心挑选了一些非常适合日常开发使用的三方库&#xff0c;同时针对优缺点、社区活跃等进…

聚类距离度量(保姆级讲解,包学会~)

在机器学习的聚类中&#xff0c;我们通常需要使用距离来进行类的划分&#xff0c;或者比较不同类之间的各种距离&#xff0c;这里我们介绍西瓜书上所提出的一些距离计算方式。 首先介绍一下距离的一些性质&#xff1a; 西瓜书上给出了四条性质&#xff0c;第一个是非负性&#…

《高考择校择专业:权衡与抉择的智慧》

分数限制下&#xff0c;选好专业还是选好学校&#xff1f; 2024 年高考的大幕已然落下&#xff0c;然而对于众多考生而言&#xff0c;新的挑战才刚刚开始。在分数既定的情况下&#xff0c;是优先选择心仪的专业&#xff0c;还是更看重知名度高的学校&#xff1f;这无疑是一个令…

BW:CP里添加信息对象小问题记录

之前做视图直接添加进CP里&#xff0c;以为不能直接往CP里加信息对象&#xff0c;还专门建了一个带信息对象的模型&#xff0c;把信息对象拖到CP里&#xff0c;然后再链接视图的字段 今天发现原来不用这样&#xff0c;直接加就可以&#xff0c;小记一下 如图直接诶创建&#x…

网络安全学习路线图(2024版详解)

近期&#xff0c;大家在网上对于网络安全讨论比较多&#xff0c;想要学习的人也不少&#xff0c;但是需要学习哪些内容&#xff0c;按照什么顺序去学习呢&#xff1f;其实我们已经出国多版本的网络安全学习路线图&#xff0c;一直以来效果也比较不错&#xff0c;本次我们针对市…

uniapp横屏移动端卡片缩进轮播图

uniapp横屏移动端卡片缩进轮播图 效果&#xff1a; 代码&#xff1a; <!-- 简单封装轮播图组件:swiperCard --> <template><swiper class"swiper" circular :indicator-dots"true" :autoplay"true" :interval"10000&quo…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-资源约束委派-利用域用户主机加入1.1.1 利用思路1.1.2 利用条件1.1.3 利用过程1.2 横向移动-资源约束委派-Acount Operators组1.2.1 利用思路:1.2.2 利用条件:1.2.3 利用过程:1.3 横向移动-资源约束委派-CVE结合HTLMRelay1.3.…

Echarts 图表添加点击事件跳转页面,但只有图表部分点击才会跳转页面,坐标轴,区域缩放等点击不跳转。

默认的点击事件是这样的&#xff1a; myChart.on(click, function (param) {console.log(param) }) 这个事件需要点击具体图形才会触发&#xff0c;例如我上面的图&#xff0c;想选择a柱子&#xff0c;就需要明确点击到柱体才行&#xff0c;明显不符合正常的预期&#xff0c;正…

SolidWorks薄壁等厚实体转换成钣金方法

1. 打开SolidWorks软件&#xff0c;新建一个零件。选前视基准面绘制草图&#xff0c;二次创建凸台拉伸特征&#xff0c;如图所示。 2. 创建抽壳特征&#xff0c;厚度“2 mm”&#xff0c;如图所示。 3. 添加切口草图&#xff0c;根据钣金加工工艺在所选面上创建切口草图&#x…

SAP-SD-修改字段描述

在销售订单中,想修改某字段名的描述,以客户组12为例,如下图 现在想把这个字段修改为客户组1,选择-F1 双击“数据元素” 双击 域 转到-翻译

如何提升投资伦敦金的分析能力:回测

对伦敦金行情的分析能力&#xff0c;在我们做伦敦金交易的整个体系中是有很重要的作用的。但要提升对伦敦金行情的分析和把握是不太容易的&#xff0c;那有没有方法可以提升&#xff1f;那答案是有的&#xff0c;下面我们就来讨论一下&#xff0c;这个方法就是回测。 回测就是把…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁

CMSIS 2.0 接口中的 Semaphore&#xff08;信号量&#xff09;是用于嵌入式系统中多线程或中断服务例程&#xff08;ISR&#xff09;之间同步和共享资源保护的重要机制。Semaphore 是一种用于控制对多个共享资源访问的同步机制。它可以被看作是一个计数器&#xff0c;用于跟踪可…