本文针对 SwiftAgg:Communication-Efficient and Dropout-Resistant Secure Aggregation for Federated Learning with Worst-Case Security Guarantees 这篇文章作笔记。
Abstract 摘要
在摘要中,作者简单介绍了这篇文章提出的一个新的联邦学习安全聚合协议:SwiftAgg,和现有的聚合协议相比,SwiftAgg可以在不牺牲安全性的前提下,显著降低通信开销。
I.INTRODUCTION 引言
文章首先简单介绍了什么是联邦学习(Federated Learning, FL):简单来说,就是允许用户自己根据服务器下发的全局模型训练本地数据,生成一个局部模型,最后将聚合后的数据发给服务器;服务器聚合接收到的局部模型,最终实现全局模型的更新,并迭代。这样可以实现用户数据隐私的保护。
此外,文章提出,由于各种原因,用户可能存在掉线(丢包)的情况,服务器应具备鲁棒性,以应对这种情况。
文章提到了一些安全聚合协议,如SecAgg、TurboAgg、SecAgg+等,但是它们都有或多或少的问题。
文章提出SwiftAgg,既能降低通信负载,又可以对掉线实现鲁棒性:
不需要用户之间all-to-all的通信;
需要的通信成本低;
具有抗掉线能力(鲁棒性);
对于一个好奇的服务器和任意个()“共谋”的用户子集可以实现最坏情况下的信息论安全。
文章符号注释:矩阵用粗体字母表示;对于,表示集合;表示集合的基数(大小);将属于集合,而不属于集合的元素的集合记为;表示随机变量的熵;表示随机变量和的互信息。
II.PROBLEM FORMULATION 问题的形成
首先是对场景和符号的补充说明:
设想这么一种情况:由1个服务器和个用户()组成的联邦学习系统的安全聚合问题。每个,都有长度为的私有的局部模型,记为;且每个都有一个随机变量的集合,其元素从中随机均匀地选择,并且相互独立且独立于局部模型。用户之间和用户与服务器之间可以相互传送信息,且采用无差错的私有通信链路。
用表示用户发送给的消息,表示用户发送给服务器的消息,表示不发送消息的情况。
是关于迄今为止收到的所有消息、和的函数,记相应的编码函数为;同理也是关于迄今为止收到的所有消息、和的函数,记相应的编码函数为。
对子集,令表示服务器收到从包含的用户发来的消息的集合;假设有子集的用户掉线(即在协议执行过程中保持沉默,或发送),令用户掉线数为。
假设协聚合协议执行前有身份未知的用户子集是半诚实的,其中的用户诚实地遵循着协议,但是会好奇,它们可能与中其他用户或者服务器“共谋”,以获取诚实的用户的本地模型的数据。假设对于某个安全参数,假设。
由上述说明与假设得出,一个安全的聚合协议应满足以下条件:
1.正确性约束。服务器利用,能够恢复的数据。由信息论知识可以进一步说明为:
这部分将在IV-C处加以证明。
2.隐私约束。服务器收到后,即使与中用户共谋,也不能获取到本地模型聚合信息之外的其他诚实用户的所有信息,即
SwiftAgg应该实现有个用户共谋,且服务器好奇,但不与半诚实的用户共谋的前提下,也有可能保障隐私(对于诚实用户,服务器不能获取到聚合模型之外的任何信息,半诚实用户也不能获取到本地模型的任何信息)。
这部分将在IV-E处加以证明,但限于篇幅,另开一篇文章进行证明。
为满足上述2个约束,定义用户间通信负载和上行通信负载如下:
归一化的用户间通信负载:用归一化用户之间通信的所有消息的聚合大小,即
归一化的上行通信负载:用归一化用户向服务器发送的所有消息的聚合大小,即
如果存在一组速率元组,,使得
则称是可实现的。
安全聚合问题的容量区域被定义为所有可实现的速率元组的凸闭包,记为。
注:sup指的是实数集合的上确界(最小上界)。
SwiftAgg的通信负载将在IV-D中给出。
III.MAIN RESULT 主要的结果
文章首先引出了一个定理:根据第二部分提出的内容,若令
则有。后续将给出证明。
文章提出SwiftAgg将用户划分为不同的组,且有两个主要阶段:组内秘密共享与聚合以及组间交流与聚合。
IV.THE PROPOSED SCHEME 提出的方案
A.Motivation Example 实例
文章首先引入一个实例去说明SwiftAgg的主要思想:
设置参数,即有12个客户端,分别是;,即有一个客户端出现了掉线;,即至多2个半诚实用户。每个用户除有长度为的私有的局部模型(向量)外,还各自拥有2个随机向量,它们从中随机均匀地选择。
这里假设用户为掉线用户。
每个用户采取如下步骤:
1.分组:用户被任意划分为组,每组大小为,分别记为,并对每组中的用户随机排序。记第组第个用户为。
2.组内秘密共享与聚合:首先定义一个多项式:
其中,。
令为四个不同的常数(这里是因为每组有4个用户),将分配给每组第个用户。随后,每个用户将估值发送给。如果掉线或保持沉默,则恰好被假定为0。
由于在本实例中,假设为掉线用户,则相应的,。
每个用户计算:
在本实例中,每组内最多通信次。
3.组间交流与聚合:在这一阶段,用户计算如下信息:
并将发送给;
用户计算:
用户接收到后会将发送给,若没有接收到,它也会对协议的其他部分保持沉默。由于实例中,若,则用户以此类推。
本实例中,因为为掉线用户,所以也会保持沉默。
4.与服务器通信:最后一组用户,即计算:
并将发送给服务器。
5.恢复结果:定义
可以验证,在本实例中,对于,确实等于(用户保持沉默,没有发送数据)。
由于是一个二次多项式函数,因此可以使用拉格朗日插值法,服务器便能恢复该多项式所有系数。特别地,,服务器便可以恢复聚合后的存活用户本地模型,并满足正确性约束。隐私约束的证明将在后面详述。
B.General case 一般情况
本节中,将对SwiftAgg进行一般化描述。
考虑一个服务器与个用户组成的网络,其中至多个半诚实用户,且有个用户可能会掉线,其索引的集合用表示;第个用户包含本地模型和从中随机均匀地选择的一组随机变量。在这种情况下,服务器希望能恢复聚合的存活用户的本地模型,即,而每个用户的本地模型仍是隐私的。为实现这一目标,SwiftAgg的做法为:
1.分组:将个用户任意划分为个大小为的组,且可被整除,分别记为,并对每组中的用户随机排序。为简单起见,记第组第个用户为。
2.组内秘密共享与聚合:用户构成如下多项式:
其中,,每个用户使用去与其他用户共享局部模型。
令为四个不同的常数,将分配给每组第个用户。随后,每个用户将估值发送给。如果掉线或保持沉默,则恰好被假定为0。
注:后续内容中,如无特殊说明,,。
每个用户计算:
在这一阶段中,每组内最多通信次。
3.组间交流与聚合:在这一阶段,用户计算一条消息,记为,并将它发送给,。
第一组用户计算如下信息:
并将发送给;
第组用户,计算:
用户接收到后会将发送给,若没有接收到,它也会对协议的其他部分保持沉默。
4.与服务器通信:最后一组用户,即计算:
并将发送给服务器。
5.恢复结果:接收到至少个用户子集的结果,服务器便可恢复聚合的局部模型。
C.Proof of correctness 正确性证明
这部分是对SwiftAgg正确性的证明,如无需要,可以直接略过。
为证明正确性,必须证明服务器可以从第组接收到的消息中恢复出。利用上一节中第3/4步的公式,要么等为0,要么为:
因此,若将信息发送给服务器,则等价于,从上式中,可以看出,其中
由于是一个次多项式函数,特别地,,只要服务器至少接收到第组条消息,便可以 使用拉格朗日插值法,恢复和。
对于中任意用户,所有的,都是空的,特别地,所有的都是空的。因此,最后一组中至多个用户向服务器发送空消息,又由于每组大小为,服务器便至少收到条非空消息,从而可以恢复。
D.The communication loads 通信负载
根据C中的公式和结论,服务器需要接收的消息总数为,因此SwiftAgg归一化的上行通信负载;每组内,至多发送条消息,每组中有个用户,此外,每个相邻组中至多发送条消息,因此SwiftAgg归一化的用户间通信负载,其中。
E.Proof of privacy 隐私约束的证明
由于这部分篇幅过长,不做笔记。
V.CONCLUSION 总结
这部分是对整篇文章作的总结。