论文《Federated Social Recommendation with Graph Neural Network》阅读

论文概况

今天总结一下最近阅读的关于联邦社会化推荐的论文《Federated Social Recommendation with Graph Neural Network》,论文 由 UIC(伊利诺伊大学芝加哥分校)数据挖掘方向大牛 Philip S. Yu(俞士纶)团队 Zhiwei Liu 等人 和 北航 Hao Peng 等人完成。论文发表在期刊 TIST (ACM Transactions on Intelligent Systems and Technology) 2022 上。论文主要完成一个基于联邦学习框架下的社会化推荐模型 FeSoG

论文地址: 论文地址

论文整体来说,Writing部分相对比较流畅,easy to read。但是同时文中出现较大比例的typo、语法错误等,对于阅读不太友好。作为本人关于联邦推荐的入门读物,这里总结一下,下面进入具体介绍。
Illustration

Intro

作者首先总结了联邦社会化推荐(Federated Social Recommender System,FSRS)的主要几个挑战:

  • 异构性。social recommendation既包括 U-U 连接,也包括 U-I 连接。
  • 个性化。每个用户的兴趣之间呈现非独立同分布,应该单独处理。
  • 安全性。联邦推荐场景下应注意保护用户的个人隐私

针对上述挑战,作者提出基于图神经网络的联邦社会化推荐(Federated Social Recommendation with Graph Neural Networks, FeSoG)模型。

Methodology

问题形式化

这里先介绍问题形式化 及 关键定义。
用户集合 U = { u 1 , u 2 , … , u N } \mathcal{U}= \left\{ u_1, u_2, \ldots, u_N\right\} U={u1,u2,,uN} 及物品集合 T = { t 1 , t 2 , … , t M } \mathcal{T}= \left\{t_1, t_2, \ldots, t_M \right\} T={t1,t2,,tM},用户与物品、用户与用户之间形成评分矩阵 R ∈ R N × M \mathbf{R} \in \mathbb{R}^{N \times M} RRN×M,用户邻接矩阵 S ∈ { 0 , 1 } N × N \mathbf{S} \in\{0,1\}^{N \times N} S{0,1}N×N

针对联邦推荐场景,

  • 客户端(Client):每个用户 n n n 即一个客户端 c n c_n cn,客户端包含的数据包括 用户对物品的评分 ( R n ⋅ \mathbf{R}_{n\cdot} Rn)和他与其他用户之间的之间相邻关系( S n ⋅ \mathbf{S}_{n\cdot} Sn)。
  • 服务器(Center Server):中心用户不包含用户的邻接数据和用户的交互矩阵。中心服务器包含的数据包含每个client上的参数,每个用户、每个物品的embedding。通过 server 和 client 之间每轮的数据更新,根据 client 上传给 server 的梯度数据进行更新, 更新完成之后再将最新的参数都更新给每个客户端。
  • 联邦社会化推荐(FSRS):对于 任意客户端 c n c_n cn,根据
    当前用户 n n n 的交互向量 r n = { r n 1 , r n 2 , ⋯   , r n k } \mathbf{r}_{n} = \{{r}_{n1}, {r}_{n2}, \cdots, {r}_{nk}\} rn={rn1,rn2,,rnk} 及 一阶邻居向量 s n = { s n 1 , s n 2 , ⋯   , s n p } \mathbf{s}_{n} = \{{s}_{n1}, {s}_{n2}, \cdots, {s}_{np}\} sn={sn1,sn2,,snp} n , p ∈ { 1 , 2 , ⋯   , N } n, p \in \{1, 2, \cdots, N\} n,p{1,2,,N} k ∈ { 1 , 2 , ⋯   , M } k \in \{1, 2, \cdots, M\} k{1,2,,M}),FSRS 在 不知道每个client 的 raw data 的基础上预测用户的交互数据。

问题形式化:

上述 FSRS 的定义如下所示:
用户 n n n 的 交互数据 T ( n ) = { t 1 ( n ) , t 2 ( n ) , … , t k ( n ) } \mathcal{T}^{(n)}=\left\{t_1^{(n)}, t_2^{(n)}, \ldots, t_k^{(n)}\right\} T(n)={t1(n),t2(n),,tk(n)},社交邻居 U ( n ) = { u 1 ( n ) , u 2 ( n ) , … , u p ( n ) } \mathcal{U}^{(n)}=\left\{u_1^{(n)}, u_2^{(n)}, \ldots, u_p^{(n)}\right\} U(n)={u1(n),u2(n),,up(n)},FSRS 预测 mask 掉的物品 t ∗ ∈ T \ T ( n ) t^* \in \mathcal{T} \backslash \mathcal{T}(n) tT\T(n) 的交互分数。

通过对 每个客户 c n c_n cn 构建本地的局部异构图 G n \mathcal{G}_{n} Gn(包含U-U 及 U-I),

给出形式化定义:给定每个 客户 n n n 的局部异构图集合 { G n ∣ n = 1 N } \left\{\mathcal{G}_{n} \mid _{n=1}^{N}\right\} {Gnn=1N},在不接触 local graph 中raw data 的前提下,FSRS致力于预测 连边 ( u n , t ∗ ) (u_n, t^*) (un,t) 的值。

FeSoG

在这里插入图片描述

本地图设计

这部分就是设计了一个GAT网络,完成异构图上的embedding传播,这部分embedding是根据center server 下载的,本地用户只保存他自己的交互物品 和 好友用户,因此只能传播一阶邻居信息,这里不做赘述,把公式摆在底下。

o n p = LeakyReLU ⁡ ( a ⊤ [ W 1 e u n ∥ W 1 e u p ] ) . (1) o_{n p}=\operatorname{LeakyReLU}\left(\mathbf{a}^{\top}\left[\mathbf{W}_1 \mathbf{e}_{u_n} \| \mathbf{W}_1 \mathbf{e}_{u_p}\right]\right).\tag{1} onp=LeakyReLU(a[W1eunW1eup]).(1)

α n p = softmax ⁡ p ( o n p ) = exp ⁡ ( o n p ) ∑ i = 1 P exp ⁡ ( o n i ) . (2) \alpha_{n p}=\operatorname{softmax}_p\left(o_{n p}\right)=\frac{\exp \left(o_{n p}\right)}{\sum_{i=1}^P \exp \left(o_{n i}\right)}.\tag{2} αnp=softmaxp(onp)=i=1Pexp(oni)exp(onp).(2)

v n k = LeakyReLU ⁡ ( b ⊤ [ W 2 e u n ∥ W 2 e i k ] ) . (3) v_{n k}=\operatorname{LeakyReLU}\left(\mathbf{b}^{\top}\left[\mathbf{W}_2 \mathbf{e}_{u_n} \| \mathbf{W}_2 \mathbf{e}_{i_k}\right]\right).\tag{3} vnk=LeakyReLU(b[W2eunW2eik]).(3)

β n k = softmax ⁡ ( v n k ) = exp ⁡ ( v n i ) ∑ i = 1 K exp ⁡ ( v n i ) . (4) \beta_{n k}=\operatorname{softmax}\left(v_{n k}\right)=\frac{\exp \left(v_{n i}\right)}{\sum_{i=1}^K \exp \left(v_{n i}\right)}.\tag{4} βnk=softmax(vnk)=i=1Kexp(vni)exp(vni).(4)

h u ( n ) = ∑ p = 1 p α n ρ W h e u p . (5) \mathbf{h}_u^{(n)}=\sum_{p=1}^p \alpha_{n \rho} \mathbf{W}_h \mathbf{e}_{u_p}.\tag{5} hu(n)=p=1pαnρWheup.(5)

h t ( n ) = ∑ k = 1 K β n k W h e k . (6) \mathbf{h}_t^{(n)}=\sum_{k=1}^K \beta_{n k} \mathbf{W}_h \mathbf{e}_k.\tag{6} ht(n)=k=1KβnkWhek.(6)

h t ( n ) \mathbf{h}_t^{(n)} ht(n) 是 交互图 embedding, h t ( u ) \mathbf{h}_t^{(u)} ht(u) 是 社交图 embedding,通过注意力系数进行加权求和计算,如下所示:

γ u = exp ⁡ ( c ⊤ [ h u ( n ) ∥ v u ] ) exp ⁡ ( c ⊤ [ h u ( n ) ∥ v u ] ) + exp ⁡ ( c ⊤ [ h t ( n ) ∥ v t ] ) + exp ⁡ ( c ⊤ [ h s ( n ) ∥ ∥ v s ] ) , γ t = exp ⁡ ( c ⊤ [ h t ( n ) ∥ v t ] ) exp ⁡ ( c ⊤ [ h u ( n ) ∥ v u ] ) + exp ⁡ ( c ⊤ [ h t ( n ) ∥ v t ] ) + exp ⁡ ( c ⊤ [ h s ( n ) ∥ v s ] ) , γ s = exp ⁡ ( c ⊤ [ h s ( n ) ∥ v s ] ) exp ⁡ ( c ⊤ [ h u ( n ) ∥ v u ] ) + exp ⁡ ( c ⊤ [ h t ( n ) ∥ v t ] ) + exp ⁡ ( c ⊤ [ h s ( n ) ∥ v s ] ) . (7) \begin{aligned} & \gamma_u=\frac{\exp \left(\mathrm{c}^{\top}\left[\mathbf{h}_u^{(n)} \| \mathbb{v}_u\right]\right)}{\exp \left(\mathrm{c}^{\top}\left[\mathbf{h}_u^{(n)} \| \mathbf{v}_u\right]\right)+\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_t^{(n)} \| \mathbb{v}_t\right]\right)+\exp \left(\mathrm{c}^{\top}\left[\mathbf{h}_s^{(n)}\|\|_{v_s}\right]\right)}, \\ & \gamma_t=\frac{\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_t^{(n)} \| \mathbf{v}_t\right]\right)}{\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_u^{(n)} \| \mathbf{v}_u\right]\right)+\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_t^{(n)} \| \mathbb{v}_t\right]\right)+\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_s^{(n)} \| \mathbf{v}_s\right]\right)}, \\ & \gamma_s=\frac{\exp \left(\mathbf{c}^{\top}\left[\mathbf{h}_s^{(n)} \| \mathbf{v}_s\right]\right)}{\exp \left(c^{\top}\left[\mathbf{h}_u^{(n)} \| v_u\right]\right)+\exp \left(c^{\top}\left[\mathbf{h}_t^{(n)} \| \mathbb{v}_t\right]\right)+\exp \left(c^{\top}\left[\mathbf{h}_s^{(n)} \| \mathbf{v}_s\right]\right)}.\end{aligned} \tag{7} γu=exp(c[hu(n)vu])+exp(c[ht(n)vt])+exp(c[hs(n)vs])exp(c[hu(n)vu]),γt=exp(c[hu(n)vu])+exp(c[ht(n)vt])+exp(c[hs(n)vs])exp(c[ht(n)vt]),γs=exp(c[hu(n)vu])+exp(c[ht(n)vt])+exp(c[hs(n)vs])exp(c[hs(n)vs]).(7)
e n ∗ = γ s e u n + γ u h u ( n ) + γ t h t ( n ) (8) \mathbf{e}_{n}^*=\gamma_s \mathbf{e}_{u_n}+\gamma_u \mathbf{h}_u^{(n)}+\gamma_t \mathbf{h}_t^{(n)} \tag{8} en=γseun+γuhu(n)+γtht(n)(8)
通过内积计算 交互分数:
R ^ n t = e n ∗ ⊤ e t . (9) \hat{\mathbf{R}}_{n t}={\mathbf{e}_n^*}^\top \mathbf{e}_t.\tag{9} R^nt=enet.(9)
本地训练损失函数定义如下:
L u = ∑ t ∈ T ( u ) ( R u t − R ^ u t ) 2 ∣ T ( u ) ∣ (10) \mathcal{L}_u=\sqrt{\frac{\sum_{t \in \mathcal{T}^{(u)}}\left(\mathbf{R}_{u t}-\hat{\mathbf{R}}_{u t}\right)^2}{\left|\mathcal{T}^{(u)}\right|}}\tag{10} Lu= T(u) tT(u)(RutR^ut)2 (10)

Local Graph Neural Network
上述内容计算完成本地的所有计算过程,embedding 和模型参数通过center server download下来,在本地进行 GAT 计算,并通过 反向传播完成参数更新(如公式(10)所示)。

本地差分隐私

在上述基础上,由于设计到 client 和 server 之间的 梯度上传 和 参数下载,为了防止用户信息泄露(根据FedMF,连续两次上传的梯度被获取后,可以推测出用户的rating信息),在上传过程中加入了本地差分隐私(Local Differential Privacy,LDP)操作。

具体地,就是就梯度数据进行clip操作(范围控制在 δ \delta δ 内),同时加入 一定强度范围( λ \lambda λ)内的 Laplacian Noise。具体如下所示:
g ~ ( n ) = clip ⁡ ( g ( n ) , δ ) + Laplacian ⁡ ( 0 , λ ) . (11) \tilde{\mathbf{g}}^{(n)}=\operatorname{clip}\left(\mathbf{g}^{(n)}, \delta\right)+\operatorname{Laplacian}(0, \lambda). \tag{11} g~(n)=clip(g(n),δ)+Laplacian(0,λ).(11)

具体操作中,为实现动态噪声,使用如下实现形式:
g ~ ( n ) = clip ⁡ ( g ( n ) , δ ) + Laplacian ⁡ ( 0 , λ ⋅ mean ⁡ ( g ( n ) ) ) , (12) \tilde{\mathbf{g}}^{(n)}=\operatorname{clip}\left(\mathbf{g}^{(n)}, \delta\right)+\operatorname{Laplacian}\left(0, \lambda \cdot \operatorname{mean}\left(\mathbf{g}^{(n)}\right)\right), \tag{12} g~(n)=clip(g(n),δ)+Laplacian(0,λmean(g(n))),(12)
其中, g ( n ) = { g t ( n ) , g m ( n ) , g u ( n ) } = ∂ L u ∂ Θ \mathrm{g}^{(n)} = \{ \mathbf{g}_t^{(n)}, \mathbf{g}_m^{(n)}, \mathbf{g}_u^{(n)} \} = \frac{\partial \mathcal{L}_u} {\partial \Theta} g(n)={gt(n),gm(n),gu(n)}=ΘLu

Pseudo-Item Labeling

为进一步保护用户隐私(梯度为 0 的 梯度向量对应用户的 未交互 物品),作者加入了 q q q 个假标签,记作 T ~ ( n ) = { t ~ 1 ( n ) , t ~ 2 ( n ) , … , t ~ q ( n ) } \tilde{\mathcal{T}}^{(n)}=\left\{ \tilde{t}_1^{(n)}, \tilde{t}_2^{(n)}, \ldots, \tilde{t}_q^{(n)} \right\} T~(n)={t~1(n),t~2(n),,t~q(n)}。在预测过程中,通过四舍五入的方式将 sample 出来的 pseudo items 作为标签进行训练,以提高 传输过程中的 安全性。具体如下:
L ~ u = ∑ t ∈ T ( u ) ∪ T ~ ( u ) ( R u t − R ^ u t ) 2 ∣ T ( u ) ∣ , (13) \tilde{\mathcal{L}}_u=\sqrt{\frac{\sum_{t \in \mathcal{T}(u) \cup \tilde{\mathcal{T}}^{(u)}}\left(\mathbf{R}_{u t}-\hat{\mathbf{R}}_{u t} \right)^2}{\left|\mathcal{T}^{(u)}\right|}}, \tag{13} L~u= T(u) tT(u)T~(u)(RutR^ut)2 ,(13)
其中, R ^ u t ∈ R \hat{\mathbf{R}}_{u t} \in \mathbb{R} R^utR 表示标签值, R u t ∈ N \mathbf{R}_{u t} \in \mathbb{N} RutN 表示 预测值。

模型优化

作者将梯度数据分为三部分,模型梯度 g ‾ m \overline{\mathbf{g}}_m gm,物品 embedding 梯度 g ‾ t \overline{\mathbf{g}}_t gt,及用户 embedding 梯度 g ‾ u \overline{\mathbf{g}}_u gu,通过对应client 对应rating数量大小 进行 加权求期望的操作完成 中心服务器 平均梯度 的计算,并根据梯度完成模型参数的更新。更新之后将参数下载到 各个 client ,将参数进行更新。具体如下:
g ‾ m = ∑ n ∈ N ∣ R n ∣ ⋅ g ~ m ( n ) ∑ n ∈ N ∣ R n ∣ , g ‾ t = ∑ n ∈ N ∣ R n ∣ ⋅ g ~ t ( n ) ∑ n ∈ N ∣ R n t ∣ , g ‾ u = ∑ n ∈ N ∣ R n ∣ ⋅ g ~ u ( n ) ∑ n ∈ N ∣ R n t ∣ , (14) \begin{aligned} &\overline{\mathbf{g}}_m =\frac{\sum_{n \in \mathcal{N}}\left|\mathcal{R}_n\right| \cdot \tilde{\mathbf{g}}_m^{(n)}}{\sum_{n \in \mathcal{N}}\left|\mathcal{R}_n\right|}, \\ &\overline{\mathbf{g}}_t =\frac{\sum_{n \in \mathcal{N}}\left|\mathcal{R}_n\right| \cdot \tilde{\mathbf{g}}_t^{(n)}}{\sum_{n \in \mathcal{N}}\left|\mathcal{R}_n^t\right|}, \\ &\overline{\mathbf{g}}_u =\frac{\sum_{n \in \mathcal{N}} \left|\mathcal{R}_n\right| \cdot \tilde{\mathbf{g}}_u^{(n)} }{\sum_{n \in \mathcal{N}} \left| \mathcal{R}_n^t \right|}, \end{aligned} \tag{14} gm=nNRnnNRng~m(n),gt=nNRntnNRng~t(n),gu=nNRntnNRng~u(n),(14)

模型训练

上述所有过程,作者通过 一个 算法 进行了 整体展示,这对于理解整体流程很有帮助,具体如下:

Algorithm

论文总结

上述内容就是关于 FeSoG 模型的所有内容,模型写作非常流畅。值得推荐!

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值