联邦学习,提出至今不过两年而已~
作者:Camel
编辑:唐里
近日,联邦学习概念的提出者之一 Blaise Aguëray Arcas 在韩国针对全球做了一个关于联邦学习的在线workshop。
Blaise Aguëray Arcas是2014年加入的谷歌,在此之前在微软任杰出工程师。加入谷歌后,Blaise领导了谷歌设备端on-device机器智能(Machine Intelligence)项目,同时负责基础研究与新产品研发工作。
联邦学习的概念最初是由Blaise等人于2017年在Google AI Blog上发表的一篇博文中首次提出的。这个概念提出至今不过两年时间,但对它的研究已然甚嚣尘上,几乎每天都至少会发布一篇相关论文,甚至在18年底在港科大杨强教授等人的推动下联邦学习进入了IEEE国际标准。
联邦学习之所以能够在如此短的时间里迅速由一个构想变为一门学科,主要原因在于联邦学习技术作为一种学习范式,能够在确保用户数据隐私的同时解决“数据孤岛”问题。
不过不同于国内主要关注企业之间针对“数据孤岛”的联邦学习,Blaise 等人(或许也在某种程度上代表谷歌)关注更多的则是设备上的联邦学习,这也是联邦学习概念被提出之初的应用场景。
Blaise五年前加入谷歌后不久,便开始了联邦学习的研究。直到2017年,当他们取得了一定的成果,才在博文中进行公布。
一开始,联邦学习只是一个概念,但很快它便被开发成人工智能领域中的一个学科。现在已经有数千篇的文章在讨论联邦学习。在今年12月份在温哥华举行的机器学习顶会 NeurIPS上也将会有一个专题专门讨论联邦学习。另一方面,现在也有很多公司也在以此为基础构建他们的模型。这说明整个人工智能社区已经开始重视这种技术了。
那么为什么联邦学习能够如此快速地被整个社区重视呢?
大家应该知道,目前人工智能已经发展到了这样一个节点:我们希望能够用少量的数据做更多的工作。这也是当前人工智能的核心话题之一。
神经网络可以做很多的认知,语言处理、语音合成、图像识别,甚至还可以下围棋,这些都能达到人类甚至超越人类的水平,这是过去几年我们取得的成就。但是目前的神经网络相比人类还欠缺一点,就是学习的效率,它需要大量的数据进行训练。所以一些大公司,如谷歌、微软、亚马逊等开始提供人工智能服务时需要收集大量的数据,才能去训练大型神经网络。这也是一直以来,整个社区所做的事情。
对于设备端(例如手机)的智能应用,通常情况下的模式是,用户在设备上产生的数据会被上传到服务器中,然后由部署在服务器上的神经网络模型根据收集到的大量数据进行训练得到一个模型,服务商根据这个模型来为用户提供服务。随着用户设备端数据的不断更新并上传到服务器,服务器将根据这些更新数据来更新模型。很明显这是一种集中式的模型训练方法。
然而这种方式存在几个问题:1)无法保证用户的数据隐私,用户使用设备过程中产生的所有数据都将被服务商所收集;2)难以克服网络延迟所造成的卡顿,这在需要实时性的服务(例如输入法)中尤其明显。
Blaise等人便想,是否可以通过做一个大型的分布式的神经网络模型训练框架,让用户数据不出本地(在自己的设备中进行训练)的同时也能获得相同的服务体验。
解决之道便是:上传权重,而非数据。
我们知道神经网络模型是由不同层的神经元之间连接构成的,层与层之间的连接则是通过权重实现的,这些权重决定了神经网络能够做什么:一些权重是用来区分猫和狗的;另一组则可以区分桌子和椅子。从视觉识别到音频处理都是由权重来决定的。神经网络模型的训练本质上就是在训练这些权重。
那么Blaise提出的设备端联邦学习,不再是让用户把数据发送到服务器,然后在服务器上进行模型训练,而是用户本地训练,加密上传训练模型(权重),服务器端会综合成千上万的用户模型后再反馈给用户模型改进方案。
举例来说,输入法是典型的智能推荐应用。当人们使用Google键盘Gboard给家人朋友发信息的时候,传统来说你敲击键盘的数据会被上传到谷歌的服务器,他们通过收集大量数据来训练一个更加符合用户习惯的智能推荐。但在应用联邦学习后,用户敲击键盘的数据将永远保留在本地。用户的手机中有一个不断更新的模型会根据这些数据进行学习和更新,并将更新的权重加密上传到服务器。服务器收到大量用户的模型后,会根据这些模型进行综合训练,并反馈给用户进行模型更新和迭代。
这里或许值得强调,这种在设备端上的模型是经压缩过的,而非像服务器中那种大型神经网络模型。因此模型训练的耗能是非常小的,几乎检测不到。此外,Blaise讲了一个非常形象的比喻,即人会在睡觉的时候通过做梦来更新自己的大脑认知系统;同样设备终端的系统也可以通过闲置时进行模型训练和更新。所以整体上,这并不会对用户的使用体验造成任何影响。
我们将设备上联邦学习的过程总结一下:1)设备端下载当前版本的模型;2)通过学习本地数据来改进模型;3)把对模型的改进,概括成一个比较小的更新;4)该更新被加密发送到云端;5)与其他用户的更新即时整合,作为对共享模型的改进。
整个过程有三个关键环节:1)根据用户使用情况,每台手机在本地对模型进行个性化改进;2)形成一个整体的模型修改方案;3)应用于共享的模型。该过程会不断循环。
其优点是显而易见的。
首先,我们不必将数据上传到云端,服务提供商就看不到用户的数据,这可以提高用户数据的隐私性。因此,通过这种方式,我们不必在隐私和功能之间进行权衡,可以两者兼有。这一点在当下数据隐私越来越受到重视的情况下特别重要。
其次,是降低了延时。尽管5G时代即将到来,但并不是在任何情况下任何地点的网速都能得到保障。如果将用户所有的数据都上传到云端,且服务本身也是从云端进行的反馈,那么在网速较慢的环境下,网络延时将会极大降低用户体验。而联邦学习加持下的服务则不会出现这种情况,因为服务本身就来自于本地。
当然,或许还有一个好处是,在传统的方法下,用户只是人工智能的旁观者——我使用,但我没参与。而在联邦学习场景下,每个人都是“驯龙高手”,每个人都是人工智能发展的参与者。
联邦学习的这种思想,事实上并不仅仅适用于设备用户数据的隐私保护和模型更新。我们将设备用户抽象来看,视作数据的拥有者,可以是手机持有者,也可以是公司、医院、银行等;而服务器或云端视作模型共享综合平台。
因此,联邦学习更是一种新的学习范式,它有以下特点:
在联邦学习的框架下,各参与者地位对等,能够实现公平合作;
数据保留在本地,避免数据泄露,满足用户隐私保护和数据安全的需求;
能够保证参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长;
建模效果与传统深度学习算法建模效果相差不大;
联邦学习是一个「闭环」的学习机制,模型效果取决于数据提供方的贡献。
这样的特点正中当前人工智能发展所面临的困境。
当前,大多数应用领域均存在数据有限且质量较差的问题,在某些专业性很强的细分领域(如医疗诊断)更是难以获得足以支撑人工智能技术实现的标注数据。
同时,在不同数据源之间存在难以打破的壁垒,除了少数几家拥有海量用户、具备产品和服务优势的「巨无霸」公司外,大多数企业难以以一种合理合法的方式跨越人工智能落地的数据鸿沟,或者对于他们来说需要付出巨大的成本来解决这一问题。
此外,随着大数据的发展,重视数据隐私和安全已经成为一种世界性的趋势,而欧盟「数据隐私保护条例」(General Data Protection Regulation,GDPR)等一系列条例的出台更是加剧了数据获取的难度,这也给人工智能的落地应用带来了前所未有的挑战。
从目前的研究进展来看,联邦学习也是解决以上这些问题的唯一选择。
关于联邦学习在国内的进一步发展,可以参考这篇文章《从概念到技术,再到国际标准和开源社区,联邦学习只用两年时间》。值得一提的是,关于「联邦学习」的名字有一个故事:在早期国内将「Federated Learning」大多翻译为「联合学习」,现多称为「联邦学习」。其中的区别是,如果用户是个人,确实是把他们的模型「联合」起来学习,正如 Blaise 等人所做的工作;而如果用户是企业、银行、医院等大数据拥有者,这种技术则更像是将诸多「城邦」结合起来,「联邦」一词则更为准确。这一名字的变化,也反映着联邦学习的研究主体从理论转向实际应用的变化趋势。
更多内容
朋友会在“发现-看一看”看到你“在看”的内容