论文信息

  • 标题: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=1D​numk​​,聚合神经网络参数 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