联邦学习中,由于数据的统计异构问题,用户间的隐私数据具有分散、Non-IID(非独立同分布)特性,每个用户本地的数据分布会随着用户所在地以及用户偏好而变动。反映在模型性能上的情况就是:Local models 的性能远高于 Global model 的精度。
原因很简单,模型的暴力聚合(FedAvg)并不是线性的求和,每个用户自身的模型参数仅适合本身的数据,而不同用户数据间的数据分布以及质量差距较大。
Personalization 技术的提出:由于用户数据的高度 Non-IID 以及用户对模型性能要求的不一致,单个的 Global model 很难满足所有参与者的需求,因此需要采用一种个性化的方法使得 Global model 针对每个用户进行优化。
挑战
- 不同设备的存储、计算、通信性能的差异(系统异构)
- 数据分布的不一致性(统计异构)
- 对不同环境、不同人物所需的模型不一致(模型异构)
目前的研究技术方法
多任务学习 ( Multi-task Learning )
在多任务学习中,模型通过利用任务之间的共性和差异来共同学习。通过共享相关联任务(related task / auxiliary task)的表示,能够提升原始任务(original task)的泛化性能。我们可以将多任务学习看成对人类学习过程的模仿,为了学习新任务,我们经常运用通过学习相关任务获得的知识。例如,第一个婴儿学会识别脸部,然后可以将这些知识应用于识别其他物体。
模型需要面对 个任务,每个任务 对应一个模型 的参数表示为:
因此矩阵为 ,通过 L1 正则的方式来约束模型的参数量,删去了不太重要的模型参数。但是任务之间并非紧密相关,与无关任务共享信息实际上可能会损害性能(negative transfer), 因此加入了惩罚项: ,通过调节惩罚项 Ω 中 的值来对模型进行控制。
可以发现,多任务学习的核心是对模型的共享(share)和个性化(Personalization), 通过判别任务之间的相关性决定哪些 layer 应该共享,从而对模型的泛化能力进行改善。
但是在现实世界中可能事先不知道任务之间的关系,因此通过Multi-task Learning 的方法可以直接捕获Non-IID数据和模型之间的关系,这使其特别适合于解决联邦学习的统计异构(Statistical challenge)。
《Federated Multi-task Learning》在联邦学习环境中构建了一种 Personalized 模型,研究用于多任务学习的 MOCHA 算法来解决分布式系统中 Communication cost, straggler 和 fault tolerance 问题。
传统的多任务学习的损失函数:
其中:
- 和 很难同时凸,而且公式的求解困难。
- 固定 , 的更新仅与数据 相关,而数据 分布在不同节点中,造成了困难。
- 固定 , 的更新仅依靠 ,与数据 无关。
元学习 ( Meta-Learning )
元学习是一种 Learn to learn 的学习方式,通过训练使得模型结果对各类 Task 具有普适性。
目的是得到一个能对全局任务最优的 能够使得
《Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks》 提出 MAML(Model-Agnostic Meta-Learning) 算法,目的是找到一组最适的初始化参数 ,使得在对新task时能够通过一轮梯度下降 fine-tune 得到较优的初始化模型参数 。
在 MAML 中,用来训练全局初始化模型 的数据是很多组任务(training task),每个任务中也有训练数据(Support set)和测试数据(Query set)。
在每一次训练中,全局模型 根据 Support set 的数据进行梯度下降得到 ,将所有 training task 任务中计算的 loss 求和得到总 loss:
概括:MAML 将原本的随机初始化策略作为学习优化目标,通过取样一系列 task,根据 得到适合本 task 的任务,再计算 loss 反向传播优化。
通过 meta-learning 的方式能够学到对任务不敏感、泛化能力强的策略,适合在 Personalization 方面做应用。
《Improving Federated Learning Personalization via Model Agnostic Meta Learning》、《Personalized Federated Learning: A Meta-Learning Approach 》、《Adaptive Gradient-Based Meta-Learning Methods》等文章在联邦学习不同方面给出了 Meta-learning 的尝试。
全局模型 + Personalization 层
这篇 ICML 2021 的 《Exploiting Shared Representations for Personalized Federated Learning》 算是比较典型的 Global model + personalized layer 的文章了,具体解读参考这篇链接。
传统 Centrailized learning 通过 Representative learning 训练能取得很好的效果。既然如此,能否对 Federated learning 中 Non-IID 的数据找到一个 Shared representatiion?
一种共享 global representation,个性化 client-heads 的模型更新方案
共享表示 ,将高维数据表示 map 到低维空间中;
个性化 head: ,将低维表示输出为结果;
训练过程中,每个用户共同训练该 global representation learning structure, 再用各自的数据训练自己的 client-special heads.
论文表示:由于 ,使得本地 client-special heads 需要训练的参数量很少,易于计算和拟合本地数据。
目标函数修改为:
算法具体流程:
算法主要有两处更新:
第一处是 client-special heads 的更新(算法流程里公式好像写错了)
第二处就是 shared representation 的更新
其中 表示 learning rate 为 , 经过 SGD 等方式对 f 的梯度计算更新 h.
基于 HyperNetwork 的个性化
本文设计了一种 centralized personalized federated hypernetwork (pFedHN) 的结构,通过 pFedHN 可以为每个用户生成 unique and diverse local model,而且因为 pFedHN 不需要传输 hypernetwork 的参数,所以 Communication cost 不需要考虑 model size 的影响。
: 指 HN 的模型参数;
: 指 local model 的参数;
用户根据自身数据特征通过 embedding 层生成 作为超参数网络 h 的输入;
得到每个用户的本地模型权重;
所有模型构成一个集合 , 用户共享参数 并维持自身个性化的程度;
优化目标: .
反向传播为: , 因此通信过程中只需传输本地梯度
更新 的方式通过 ,
每个用户计算本地 loss: ,
本地 Personal Classifier \mathcal{W}_i 的训练: .
HyperNetwork(pFedHN) & Local model 的结构是人为提前定义好的;
pFedHN 直接将每个用户 Node 的 id 作为 Embedding 的输入;
pFedHN 通过 Embedding 指导 Local model 的初始化;
Local model 根据初始化的模型训练 E epochs 得到模型 并计算 用于 pFedHN 的更新(相较于共享 pFedHN的梯度,传输 local model 模型大小的梯度更 Communication-Efficient );
在链式求导步骤中使用 , 将全局部分求导 和局部模型求导 分离,从而减少通信量 (从全局模型 规模的通信变为局部模型 规模的通信)。