• 深入理解联邦学习——纵向联邦学习


    分类目录:《深入理解联邦学习》总目录


    假设进行联邦学习的数据提供方为 A A A B B B,第三方为 C C C,则纵向联邦学习步骤如下:

    1. 在系统级做加密样本对齐,在企业感知层面不会暴露非交叉用户
    2. 对齐样本进行模型加密训练:
      • 由第三方 C C C A A A B B B发送公钥,用来加密需要传输的数据;
      • A A A B B B分别计算和自己相关的特征中间结果,并加密交互
      • A A A B B B分别计算各自加密后的梯度并添加掩码发送给 C C C,同时拥有类标侧计算加密后的损失发送给 C C C
      • C C C解密梯度和损失后回传给 A A A B B B
      • A A A B B B去除掩码并更新模型

    纵向联邦学习

    我们以岭回归为例说明纵向联邦学习的训练过程。假设存在数据集 { x i A } ( i ∈ D A ) \{x_i^A\}(i\in D_A) {xiA}(iDA) 和数据集 { x i B , y i B } ( i ∈ D B ) \{x_i^B, y_i^B\}(i\in D_B) {xiB,yiB}(iDB) ,其中 B B B为拥有类标的数据拥有方,我们以线性回归为例说明纵向联邦学习的训练过程:

    1. A A A B B B分别初始化模型参数 Θ A \Theta_A ΘA Θ B \Theta_B ΘB,则目标函数为: min ⁡ Θ A , Θ B ∑ i ( Θ A x i A + Θ B x i B − y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) \min_{\Theta_A, \Theta_B}\sum_i(\Theta_Ax_i^A+\Theta_Bx_i^B-y_i)^2+\frac{\lambda}{2}(||\Theta_A||^2+||\Theta_B||^2) ΘA,ΘBmini(ΘAxiA+ΘBxiByi)2+2λ(∣∣ΘA2+∣∣ΘB2)
    2. u i A = Θ A x i A u_i^A=\Theta_Ax_i^A uiA=ΘAxiA u i B = Θ B x i B u_i^B=\Theta_Bx_i^B uiB=ΘBxiB,则对原目标函数同态加密后( [ [ ⋅ ] ] [[\cdot]] [[]]表示同态加密)可表示为: [ [ L ] ] = [ [ ∑ i ( u i A + u i B − y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] + [ [ ∑ i ( ( u i B − y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] + 2 ∑ i ( [ [ u i A ] ] ( u i B − y i ) ) ]=[[i(uAi+uBiyi)2+λ2(||ΘA||2+||ΘB||2)]]=[[i(uAi)2+λ2||ΘA||2]]+[[i((uBiyi)2)+λ2||ΘB||2]]+2i([[uAi]](uBiyi))
      [[L]]=[[i(uiA+uiByi)2+2λ(∣∣ΘA2+∣∣ΘB2)]]=[[i(uiA)2+2λ∣∣ΘA2]]+[[i((uiByi)2)+2λ∣∣ΘB2]]+2i([[uiA]](uiByi))
    3. 我们令: [ [ L A ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] [ [ L B ] ] = [ [ ∑ i ( ( u i B − y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] [ [ L A B = 2 ∑ i ( [ [ u i A ] ] ( u i B − y i ) ) ] ] [ [ d i ] ] = [ [ u i A ] ] + [ [ u i B − y i ] ] ]=[[i(uAi)2+λ2||ΘA||2]][[LB]]=[[i((uBiyi)2)+λ2||ΘB||2]][[LAB=2i([[uAi]](uBiyi))]][[di]]=[[uAi]]+[[uBiyi]]
      [[LA]][[LB]][[LAB[[di]]=[[i(uiA)2+2λ∣∣ΘA2]]=[[i((uiByi)2)+2λ∣∣ΘB2]]=2i([[uiA]](uiByi))]]=[[uiA]]+[[uiByi]]
      [ [ L ] ] = [ [ L A ] ] + [ [ L B ] ] + [ [ L A B ] ] [[L]]=[[L_A]]+[[L_B]]+[[L_{AB}]] [[L]]=[[LA]]+[[LB]]+[[LAB]]
    4. 计算梯度: [ [ ∂ L ∂ Θ A ] ] = ∑ i [ [ d i ] ] x i A + [ [ λ Θ A ] ] [ [ ∂ L ∂ Θ B ] ] = ∑ i [ [ d i ] ] x i B + [ [ λ Θ B ] ] ]=i[[di]]xAi+[[λΘA]][[LΘB]]=i[[di]]xBi+[[λΘB]]
      [[ΘAL]][[ΘBL]]=i[[di]]xiA+[[λΘA]]=i[[di]]xiB+[[λΘB]]

    针对数据提供方为 A A A B B B以及第三方为 C C C,纵向联邦学习的训练步骤如下:

    \qquad\quad 数据提供方为 A A A数据提供方为 B B B第三方为 C C C
    步骤 1 1 1初始化参数 Θ A \Theta_A ΘA初始化参数 Θ B \Theta_B ΘB创建加密秘钥对,并将公钥发送给数据提供方为 A A A B B B
    步骤 2 2 2计算 [ [ u I A ] ] [[u_I^A]] [[uIA]] [ [ L A ] ] [[L_A]] [[LA]]并发送给数据提供方 B B B计算 [ [ u I B ] ] [[u_I^B]] [[uIB]] [ [ d i ] ] [[d_i]] [[di]] [ [ L ] ] [[L]] [[L]],并将 [ [ d i ] ] [[d_i]] [[di]]发送给数据提供方 A A A,将 [ [ L ] ] [[L]] [[L]]发送给第三方 C C C
    步骤 3 3 3初始化掩码 R A R_A RA,计算 [ [ ∂ L ∂ Θ A ] ] + [ [ R A ] ] [[\frac{\partial L}{\partial\Theta_A}]]+[[R_A]] [[ΘAL]]+[[RA]] 并发送给第三方 C C C初始化掩码 R B R_B RB,计算 [ [ ∂ L ∂ Θ B ] ] + [ [ R B ] ] [[\frac{\partial L}{\partial\Theta_B}]]+[[R_B]] [[ΘBL]]+[[RB]] 并发送给第三方 C C C解密 L L L并发送 ∂ L ∂ Θ A + R A \frac{\partial L}{\partial\Theta_A} + R_A ΘAL+RA给数据提供方 A A A,发送 ∂ L ∂ Θ B + R A \frac{\partial L}{\partial\Theta_B} + R_A ΘBL+RA给数据提供方 B B B
    步骤 4 4 4更新参数 Θ A \Theta_A ΘA更新参数 Θ B \Theta_B ΘB

    在整个过程中参与方都不知道另一方的数据和特征,且训练结束后参与方只得到自己侧的模型参数,即半模型。由于各参与方只能得到与自己相关的模型参数,预测时需要双方协作完成:

    1. 第三方 C C C将待预测用户ID分别发送给数据提供方 A A A B B B
    2. 数据提供方 A A A B B B分别计算 u A u^A uA u B u^B uB并进行同态加密得到 [ [ u A ] ] [[u^A]] [[uA]] [ [ u B ] ] [[u^B]] [[uB]]
    3. 数据提供方 A A A B B B将同态加密后的 [ [ u A ] ] [[u^A]] [[uA]] [ [ u B ] ] [[u^B]] [[uB]]发送给 第三方 C C C
    4. 第三方 C C C计算同态加密后的预测值 [ [ y ] ] = [ [ u A ] ] + [ [ u B ] ] [[y]]=[[u^A]]+[[u^B]] [[y]]=[[uA]]+[[uB]]再解密得到预测值 y y y

    参考文献
    [1] 杨强, 刘洋, 程勇, 康焱, 陈天健, 于涵. 联邦学习[M]. 电子工业出版社, 2020
    [2] 微众银行, FedAI. 联邦学习白皮书V2.0. 腾讯研究院等, 2021

  • 相关阅读:
    如果后端返回了十万条数据要你插入到页面中,你会怎么处理?
    作为一名普通的java程序员,我想和大家分享一下4年来的工作内容
    【CentOS7】基于python2,3安装docker-compose
    翻译软件-免费翻译软件-自动批量翻译软件
    Bytebase 2023 第三季度回顾
    FFplay文档解读-20-音频过滤器五
    UNIAPP----修改原生导航栏样式,加图标,加文字,加点击事件。
    MTR 网络连通性测试工具 基础入门 整理
    Vue入门
    gitlab git lfs的替代软件整理汇总及分析
  • 原文地址:https://blog.csdn.net/hy592070616/article/details/132699917