FedNCF:Federated Neural Collaborative Filtering | 联邦神经协同过滤
论文信息
- 标题:FedNCF: Federated Neural Collaborative Filtering
- 作者:Vasileios Perifanis ∗ ^* ∗, Pavlos S. Efraimidis
- 发表年份:2022
- doi:10.1016/j.knosys.2022.108441
Abstract
\qquad 在这项工作中,我们提出了最先进的神经协同过滤(NCF)方法的联邦版本,用于物品推荐。该算法名为FedNCF,无需用户暴露或传输原始数据就能进行训练。数据本地化既保护了数据隐私,又符合GDPR等法规。尽管联邦学习可以在不传播本地数据的情况下进行模型训练,但原始客户端更新的传输会引发额外的隐私问题。为了应对这一挑战,我们引入了一种保护隐私的聚合方法,它可以满足用户的安全需求。我们从理论上和实验上论证了现有的聚合算法与潜在因子模型的更新不一致。我们提出了一种改进方法,将聚合步骤分解为矩阵分解和基于神经网络的平均。实验验证表明,FedNCF的推荐质量与原始NCF系统相当,而与现有方法相比,我们提出的聚合能够更快的收敛。我们研究了联邦推荐系统的有效性,并从计算成本的角度评估了隐私保护机制。
Introduction
- 推荐系统广泛应用与个性化预测模型,帮助用户识别感兴趣的物品。系统常会收集各种显式反馈(个人背景、评分等)和隐式反馈(与物品的交互)。提供一个基于过去的交互预测未来的偏好,常常被用于电子商务和在线流媒体服务。最常见的推荐系统采用协同过滤(CF)。
- 在集中式学习的情况下,被GDPR等隐私法规和法律的限制,自从联邦学习的出现促进了在不搜集用户信息的机器学习发展,并且在隐私和快速分布式计算方面都有很大的进步。
- 联邦推荐研究仍有不足,并且联邦算法仍然有泄露隐私的分险。服务器可以通过用户上传的参数与全局模型之间的差异推断用户交互的物品有哪些,因为用户只更新交互物品的嵌入。
- 由于服务器能够从用户上传的物品嵌入推断用户交互的物品,所以本文使用SecAvg进行加密。
Federated neural collaborative filtering
Problem definition
- 本地数据不上传
- 用户的数据是non-iid
Notations and Desription
FedNCF中参数的注释和说明
Notation | Description |
---|---|
M M M | 用户数量 |
N N N | 物品数量 |
D D D | 潜在因子维数 |
u ∈ { 1 , 2 , . . . , M } u \in \{1,2,...,M \} u∈{1,2,...,M} | 用户的id |
i ∈ { 1 , 2 , . . . , N } i \in \{ 1,2,...,N\} i∈{1,2,...,N} | 物品的id |
r r j ∈ { 0 , 1 } r_{rj} \in \{0,1 \} rrj∈{0,1} | 用户 i i i和物品 j j j的交互 |
I I I | 共享物品潜在因子向量 |
U i U_i Ui | 用户潜在因子向量 |
N N N | 神经网络权重 |
P i = { U i , I , R i } \mathcal{P}_i = \{U_i, I, R_i \} Pi={Ui,I,Ri} | 用户偏好集合 |
C ⊆ P C \subseteq \mathcal{P} C⊆P | 可以获得客户端数量 |
c ⊆ C c \subseteq C c⊆C | 随机选择的客户端 |
M I MI MI | 加密物品嵌入权重 |
M N MN MN | 加密的神经网络权重 |
M P MP MP | 加密的用户的交互的隐式反馈向量 |
E E E | 本地更新轮数 |
Definition
- 用户更新后的物品嵌入、神经网络权重、用户交互的物品隐式反馈使用SMC加密上传。
- 交互 r r r进行二值化,使用隐式反馈。
- 用户嵌入向量不上传。
FedNCF架构
FedNCF架构一共有三种算法:FedGMF、FedMLP、FedNeuMF。
首先服务器初始化权重 W t = { I t , N t } W_t =\{I_t,N_t \} Wt={It,Nt}
然后随机选择 c ⊆ C ⊆ P c \subseteq C \subseteq \mathcal{P} c⊆C⊆P个用户
将权重 W t W_t Wt广播到用户 c c c
c中每个用户进行epoch轮更新得到参数 U t + 1 , I t + 1 , N t + 1 U_{t+1},I_{t+1},N_{t+1} Ut+1,It+1,Nt+1
本地用户更新用户嵌入
本地用户上传 I t + 1 , N t + 1 I_{t+1},N_{t+1} It+1,Nt+1
服务器聚合参 I t + 1 , N t + 1 = ∑ t − 1 ∣ c ∣ N t + 1 I_{t+1}, N_{t+1}=\begin{matrix} \sum_{t-1}^{|c|} N_{t+1}\end{matrix} It+1,Nt+1=∑t−1∣c∣Nt+1
与前面不同的是在本地用户跟新后的步骤,之前的步骤一样。首先每个用户与其他用户交换随机种子,大家共用一个随机种子矩阵。
使用随机种子 s e e d i j seed_{ij} seedij生成随机矩阵 I R i j , IR_{ij}, IRij, N R i j NR{ij} NRij和随机向量 P R i j PR_{ij} PRij,这里每种矩阵或向量都有 ∣ c ∣ − 1 |c|-1 ∣c∣−1个。
上传 M I t + 1 , M N t + 1 , M P t + 1 MI_{t+1}, MN_{t+1}, MP_{t+1} MIt+1,MNt+1,MPt+1
服务器计算每个物品嵌入被更新的次数 n u m k = ∑ i = 1 ∣ c ∣ M P i k num_k=\begin{matrix}\sum_{i=1}^{|c|}MP_i^k \end{matrix} numk=∑i=1∣c∣MPik, M P i k MP_i^k MPik是一个 c c c维向量,它的每一个值表示表示一个用户的隐式反馈,即0和1,所以加起来为物品 i i i被 m u n k mun_k munk个用户更新,并对 M N i k MN_i^k MNik聚合 ∑ i = 1 ∣ c ∣ M I i k / n u m k \begin{matrix}\sum_{i=1}^{|c|}MI_i^k/num_k \end{matrix} ∑i=1∣c∣MIik/numk。 c c c个用户的数据集数量 n = ∑ i = 1 D n u m k n=\begin{matrix}\sum_{i=1}^{D}num_k\end{matrix} n=∑i=1Dnumk,聚合神经网络参数 N t + 1 = ∑ i = 1 ∣ c ∣ M N t + 1 i / n N_{t+1}=\begin{matrix}\sum_{i=1}^{|c|}MN_{t+1}^i/n\end{matrix} Nt+1=∑i=1∣c∣MNt+1i/n
其中SMC加密过程计算如下,以物品嵌入为例,在聚合的过程中 I R i j 加减的随机矩阵被抵消了,也就是每个用户的参数加减了一个全局和为零的分量 IR_{ij}加减的随机矩阵被抵消了,也就是每个用户的参数加减了一个全局和为零的分量 IRij加减的随机矩阵被抵消了,也就是每个用户的参数加减了一个全局和为零的分量:
Experiments
作者的实验很多,可以大致看下,看看作者在提出方法后都使用哪些实验来丰富论文。
Evaluation settings
- 作者使用了四个数据进行实验,分别为:MovieLens 100k and MovieLens 1M, Lastfm 2k and Foursquare New York (NY)。
- 作者使用最大最小值和数据量的方差和标准差来衡量统计异构(non-iid)。
- 作者采用留一评估法,并且每个正样本采集100个负样本。即在排名时使用1个正样本与100个负样本之间的排名。
- 作者使用HR@K和NDCG@K来评估推荐器的性能。
Implementation details
- 作者使用了pytorch实现,但没有代码
FedNCF:Federated Neural Collaborative Filtering | 联邦神经协同过滤相关推荐
- NCF(Neural Collaborative Filtering)——协同过滤与神经网络的结合
Neural Collaborative Filtering paper 关于协同过滤 协同过滤简而言之就是物以类聚人以群分,在真实场景中,通常会获得一张用户物品交互表,其实就是一个矩阵M, M [ ...
- 联邦学习与神经协同过滤模型的结合
<Federated Neural Collaborative Filtering>论文阅读笔记 发表在2021,SIGIR 1. 背景: 推荐系统能够收集用户的不同特征,如地理位置,评分 ...
- 【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>
Neural Collaborative Filtering--WWW'17 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二.难点问题 未来展望 文章简介 该文由何向南 ...
- 神经协同过滤Neural Collaborative Filtering(NCF)
Neural Collaborative Filtering 简述 矩阵分解(MF) NCF 1.GMF 广义矩阵分解 2.MLP(多层感知机) 3.NeuMF 实验 简述 这篇论文是何向南博士所写 ...
- 【科研导向】Outer Product-based Neural Collaborative Filtering (ConvNCF)基于外积的神经协同过滤<论文理解代码分析>
Outer Product-based Neural Collaborative Filtering--IJCAI'18 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二 ...
- 论文笔记(Neural Collaborative Filtering)
神经协同过滤 论文链接:Neural Collaborative Filtering, WWW'17 原理:融合 GMF 和 MLP 1. 摘要 虽然最近的一些研究使用深度学习作为推荐,但他们主要是用 ...
- Neural Collaborative Filtering 1
目录 2 PRELIMINARIES 3. NEURAL COLLABORATIVE FILTERING 3.1 通用框架 3.2 广义矩阵分解(GMF) 3.3 MLP 3.4 GMF和MLP的聚合 ...
- 论文笔记:Neural Collaborative Filtering(NCF)
前言 论文链接:https://arxiv.org/abs/1708.05031 github:https://github.com/yihong-chen/neural-collaborative- ...
- 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
文章目录 一.摘要 二.介绍 三.准备知识 3.1 从隐式数据中进行学习 3.2 矩阵分解 四.神经协同过滤 4.1 总体框架 4.1.1 学习NCF 4.2 广义矩阵分解(GMF) 4.3 多层感知 ...
最新文章
- java输出gc_GC输出澄清
- Chrome 正在测试标签页的预览功能
- sublime 解决中文乱码
- MySQL(一)基础操作
- centos7本地安装mysql数据库_在CentOS7系统上安装MySQL数据库
- [转载] 【Python】bytes数据类型
- 阿里笔试7/29 9-10点场
- 使用h5制作一个五子棋游戏
- 安装Sql Server:以前的某个安装需要重新引导计算机以便使其更改生效。若要继续,请重启计算机,然后再次运行安装程序。
- 2023上海国际民宿展与您相约7月5-7日,共启民宿升华之旅!
- JavaScript判断输入的数是不是素数
- 云呐|仓库RFID固定资产盘点软件有哪些优势
- 谈谈我对NLP文档级关系抽取中Ign_F1指标的理解(Ign_F1与F1的关系)
- GEE学习笔记 五十四:QGIS展示3D的高程数据
- [认证 授权] 1. OAuth2授权
- flutter 中顶部tabBar底色设置
- 100以内猜字游戏及解析
- 基于Netty开发水利通信软件
- 吉林大学超星慕课《高级程序语言设计》实验06 递归程序设计(2020级)
- MySQL时间戳和unix时间戳区别、MySQL中的时间类型
热门文章
- Hi3536调试记录,内核启动
- Android Studio模拟器报错:Could not initialize DirectSoundCapture
- vim 命令插入、删除、查询、替换操作。
- putty之pscp用法
- 删除后缀Phobos勒索病毒 还原Phobos勒索病毒感染的计算机
- Java正则表达式提取字符的方法实例
- 级联rc滤波_RC低通,高通滤波电路的基本工作原理
- sql入门(3)------SQLServer3
- 诺丁汉大学计算机专业怎样,诺丁汉大学计算机科学专业怎么样 雅思成绩要求如何...
- SpringCloud技术选型
- NCF(Neural Collaborative Filtering)——协同过滤与神经网络的结合