1.3.2 联邦学习的基本术语
我们希望对密码学和联邦学习感兴趣的学生、工程师、研究人员都能通过本书对联邦学习有更全面的了解。因为联邦学习涉及很多机器学习、密码学和数据安全方面的基础知识,所以我们将从头开始解释每一个概念,并不要求读者有密码学和机器学习背景,读者将通过本书掌握相关的数学理论基础和实际编程。为了做到这一点,我们在本节主要为读者呈现常见的联邦学习术语,其他相对不常出现的术语可以参见本书后续章节。
首先,联邦学习是一种机器学习技术。机器学习是计算机从数据中寻找统计规律的过程,像人一样解决不确定性问题。比如,在不同的光照条件下判断出熟人及其名字(人脸识别)、依据对某人历史行为的评估决定是否借钱给他(风控准入建模)以及借给他多少钱(授信额度建模)等。人从书本、课堂以及实践探索中不断积攒经验,成为具有智慧的个体;机器学习与此略有不同,它的经验来源于大量的数据,接受某个领域的数据便可被训练成为该领域的“智能体”,例如,利用大量的人脸图像可以训练出人脸识别或身份认证系统。利用数据获得经验的过程称为建模,利用经验对新数据做出估计或者预测的过程称为推理。
其次,根据数据的分布形式,联邦学习可以分为三种常见的应用类型:横向联邦学习、纵向联邦学习、联邦迁移学习,针对这三种应用类型的详细实例可参见本书第6章(纵向联邦学习)、第7章(横向联邦学习)和第8章(联邦迁移学习)。
横向联邦学习(也被称为水平联邦学习)是一种满足以下条件的联邦学习形式,限定各个联邦成员提供的数据集特征含义相同、模型参数结构相同,并使用联邦平均等隐私保护技术生成联邦模型。在推理过程中,联邦模型在联邦成员内单独使用。这种形式使得联邦模型能够利用多方的数据集进行模型训练,提升推理泛化能力。不同数据集的样本是不同的,因此从模型训练效果上来看,总的训练数据集是各个联邦成员数据集按照样本维度堆叠的,因为样本一般表示为行向量,所以这种形式称为“横向的”或者“水平的”。横向联邦学习适合业务相近但客群差异较大的场景。例如,在手机智能输入法应用中,不同用户的目标都是利用历史输入序列预测下一个输入词。因此,可以使用横向联邦学习来利用数千万个用户的输入序列特征建立“热门词”的模型。
与横向联邦学习相比,纵向联邦学习(也被称为垂直联邦学习)的不同之处在于,限定各个联邦成员提供的数据集样本有足够大的交集,特征具有互补性,模型参数分别存放于对应的联邦成员内,并通过联邦梯度下降等技术进行优化。在推理过程中,联邦模型需要联合所有参与方一起使用,由各个参与方依据自身的特征值和参数算出中间变量,最终由业务方聚合中间变量获得结果。业务方是指提供业务场景和业务标签Y的联邦成员,在联邦架构中也被称为Guest方;与之对应的,仅提供特征X而不提供业务标签的联邦成员称为数据方,也被称为Host方。这种形式使得联邦模型能够从不同视角(特征维度)观测同一个样本,进而提升推理的准确性。不同数据集的特征维度是不同的,因此从模型训练效果上来看,总的训练数据集是各个联邦成员数据集按照特征维度堆叠的。因为特征一般表示为列向量,所以这种形式称为“纵向的”或者“垂直的”。纵向联邦学习适合客群相近但业务差别较大的场景。例如,在风险评分应用中,可以使用纵向联邦学习从借贷历史、消费等不同维度考察用户风险。
联邦迁移学习是一种特殊的形式,既不限定数据集的特征含义相同,也不需要样本有交集,是一种在相似任务上传播知识的方法。例如,企业A是一家资讯服务提供商,需要提升广告推荐模型的效果。企业B是一家电商公司,需要提升商品推荐模型的效果。在这种情况下可以使用联邦迁移学习,利用双方相似的用户浏览序列,抽取深层用户行为特征作为知识,在双方模型间共享和迁移,最终提升双方模型的效果。可以看到,两个联邦成员的输入数据的含义是不同的,客群是不同的(不需要找出相同样本),预测目标也是不同的,相同之处在于双方的业务均与用户的喜好和习惯有关,而这些喜好和习惯可以作为知识共享,降低了模型过拟合的可能性,从而提升了模型效果。
再次,联邦学习的最大特点是对用户的隐私进行保护,使得隐私数据可以得到产业界应用,为用户提供更好的服务。当前,比较常见的隐私保护技术包括安全多方计算、同态加密、差分隐私,说明如下。
安全多方计算是一种用于多方协作的分布式计算技术,在多个数据参与方进行共同计算的情况下,保证互不信任的各个参与方在获取所需计算结果的同时不会泄露原始数据信息。安全多方计算需要针对不同的应用使用不同的计算协议,包括不经意传输协议、秘密共享协议等。
同态加密是一种基于数学计算加密的密码学技术,在四则运算与加密运算之间满足交换律,即针对数据A,通过同态加密技术加密产生数据B,在加密数据B上进行数据加减等运算。所得到的结果,与我们在数据A上进行相同的加减运算并加密得到的结果是一样的。同态加密一般分为全同态加密和半同态加密。其中,全同态加密同时满足加法同态加密和乘法同态加密,半同态加密只能满足其中一种。
差分隐私是一种在敏感数据上添加噪声保护隐私的方法,例如某数据库的样本特征是隐私信息,只能允许查询其样本集的特征值总和等统计信息。在没有噪声的情况下,攻击者首先查询包含用户A的集合S1的特征值总和,然后查询不包含用户A的集合S2的特征值总和,两者相减即可得到用户A的特征值(这类攻击手段称为差分攻击)。在有噪声的情况下,差分攻击只能得到经过两次随机噪声污染的特征值,用户隐私得到保护。差分隐私的难点在于选择添加噪声的强度。一方面,噪声太强将导致数据不可用;另一方面,噪声太弱将导致隐私保护形同虚设,隐私信息可能通过特定手段被获取。