中国人工智能学会

Chinese Association for Artificial Intelligence

CCAI 2020 演讲实录丨杨强:《联邦学习最新进展》

发布时间:2020-09-18

8月29日至30日,由中国科学技术协会、中国科学院、南京市人民政府为指导单位,中国人工智能学会、南京市建邺区人民政府、江苏省科学技术协会主办的主题为“ 智周万物 ”的2020中国人工智能大会(CCAI 2020)在新加坡·南京生态科技岛举办。在29日大会主旨报告环节,CAAI名誉副理事长、微众银行首席AI官杨强教授为我们带来了题为《联邦学习最新进展》的精彩演讲。

15-1.jpg

杨强

CAAI名誉副理事长

微众银行首席AI官 

以下是杨强教授的演讲实录:

刚才有幸听了图灵奖获得者Bengio教授讲的Modular逻辑、高层和低层沟通之间新的进展,非常兴奋。因为这让我看到现在人工智能在理论方面的建设和认知学终于有联系了,这种联系有点像19世纪、20世纪初理论物理学的一些观察,怎么去解释大自然,开始有了一些理论。 

今天要讲的联邦学习也像物理学与工程学的结合,有物理学的理论和实验,怎么把知识转变成工程上的一些成就?如何让火箭上天?如何设计卫星、大桥?这就是我今天讲的重点,题目是《联邦学习最新进展》。 

背景介绍

人工智能最近的发展日新月异,其中很重要的一个支撑就是大数据。如图所示,随着数据的增加,错误率逐年下降,准确率逐年上升,我们因此非常兴奋;但是同时说明了人工智能离不开大数据,这也为我们带来了隐忧。我们看到周边的情况往往都是小数据,尤其在企业并没有那么多海量数据,数据孤岛的问题很严重。

是否可以用某种聪明的办法获得大数据?我的研究主要有两个方面。第一,如果有两个数据集,一个是大数据,一个是小数据,如果我们要解决小数据里的人工智能问题就没有办法了,因为数据太小,但可以借助大数据的力量,在这两个领域之间进行知识迁移。一个必要条件就是这两个领域足够相似,有很多数学和工程的工具可以帮助我们建立相似度。第二,如果有很多数据是散落在不同领域里,若让它们共建一个联合模型,如何建?即联邦学习。这两个都是一脉相承的,它们的共性都是发生在两个或更多的领域之间。 

问题:能不能把小数据聚合起来成为大数据?

现在关于人工智能和大数据有很多法律法规,比如数据是有归属、包含用户隐私的,因此任何一个数据拥有方不可以随意把数据用在其未经用户许可的目的上,这也是欧洲2018年推出的一个非常严格的法规——GDPR的要求,很多大公司也因此被巨额罚款。不仅在欧洲,在美国也面临这样的处境。国内的法律也是日趋严格,有很多所谓的大数据公司也因此受到惩罚。我国的《数据安全管理办法》不仅在国家层面,也在地区层面全面推进。例如,我曾经参加过深圳市组织的类似GDPR法规的草案讨论,讨论的非常细致和全面,充分说明了目前我国不仅从政府层面还是从公司、社会的层面,对数据和隐私的保护非常重视。 

做技术的人面临一个抉择,做人工智能需要大数据,而数据是散落在各方,又没有一个合法的办法把它们物理地聚合起来,如何能够进行人工智能的工作?有没有从技术手段既能够满足法律的要求,又能够得到人工智能所需的大数据?我们的手段就是联邦学习。 

右图代表有五个数据拥有方,其数据都是互补的,在现在的状态下它们没有办法随意物理传递数据,但是它们可以合作建模。首先建模的原始数据无交换,没有暴露隐私给任何其他一方;其次模型建立的全局模型效果和物理聚集数据建模的效果几乎一样;同时,模型也是分布在不同地方,且每个地方有一个部分模型。这就是“数据不动模型动”,这也是我们的联邦学习的一个口号。 

这个道理我经常给企业家们讲,他们听不懂数据和人工智能模型,我经常举的一个例子就是,假设建立一个模型,就像喂养一只小羊,过去的做法是把草买到羊的所在地,也就像我们到各地去买数据运到模型建立的服务器里来建模,但现在这个方法不行了,因为数据不能出本地,有什么办法能让这只羊长大?可以带着这只羊到各处去吃草,在吃草时也不暴露每个地方的隐私。这种方法既可以把羊养大,又可以保护每个地方草的隐私,两全其美。 

在这个思路驱动下,就出现了两大联邦学习的做法。希望在服务器建立这个模型,就像在服务器养这只羊,但是这个数据是分布在终端的,数据不能出本地,可以在任何一个本地建一个小的模型、粗略的模型,这是我们所看到的神经网络。把模型里的参数(即W权重)加密,参数加密状态下运到服务器进行模型建立和更新;把更新后的模型加密下发到各个终端;在终端再加密状态下,就可以让本地模型成长。这个方法相当于把数据按照样本来切割,每个切割的部分都赋予到任何一个终端。因此,我们把它叫做“横向联邦”,因为横向切割就相当于对样本的切割。 

刚才提到了数次隐私,其中有一个概念是希望加密满足一个条件,即对加密包的某种操作,比如某种函数是可以分配到每一个元素里的(叫做分配律);就是说,对于加法来说,对两个包的加密相当于两个加密包之和,就是可以隔着加密包对这些数据进行函数操作,因此可以产生很多做法。 

现在类似这种加密方法日新月异,在效率上,以及在算法的宽广性和覆盖性上已经取得了很大成就,并且有不同的方法来做这个事情,如多方安全计算等。谷歌把这个方法用在手机模型的更新上,安卓手机上的模型如果不断对人工智能的模型进行更新,就需要用这样一个方法和云端进行沟通不断更新它的数据。谷歌这种做法叫做“横向联邦学习”。 

2018年初我们推出另外一个做法。刚刚讲的是对横向对用户进行切割,我们观察到在国内有很多ToB的应用,更多是在特征类的切割,假设左右两边是两家银行,各自有用户不同的特征,它们也有欲望去合作,但是又限于监管和法律而不能够把数据随意传递,这种情况下用一种“纵向联邦学习”就可以达到这个目的。 

什么叫做纵向联邦学习?就是在数据不出本地前提下,可以对你有的这些特征进行建模,这个模型的参数也可以在加密状态下和另外一方进行沟通。因为同态加密的特点,就可以让本地模型和对方模型都在沟通过程中进行成长,结果就是有一个联合模型在共同成长。这个联合模型的建立过程中也没有暴露任何一方的隐私。现在它在各大互联网和非互联网机构等领域得到了广泛应用,比如医院和医院之间、物流公司之间都可以行这样的联邦学习。 

例如,我们博士生看到一个非常好机会来做新的研究,拿周老师的西瓜书随意翻到任何一个算法,然后在前面加上“联邦”两个字。比如随机森林,就可以做成一个联邦学习的随机森林。可以在纵向两方进行联邦学习,同时可以在横向进行联邦学习,这是新加坡国立大学何炳胜老师带领的团队做出来的。 

这个领域是否只是算法设设计?不仅如此,因为它是多领域的交叉,希望得到右边所示的生态。不同机构之间形成合作的网络共同建模,达到这一点需要做很多研究,比如如何能够满足安全合规?因此做这项工作需要做人工智能技术的人,以及做监管和法律的人在一起研究。要进行防御攻击,假设某一个参与方是坏人,系统是否足够鲁棒,能够防御其攻击。 

如何提高算法的效率?因为在联邦交互过程中会有很多加密和解密的过程,是否可以通过芯片和硬件来完成。 

技术应用,更多拓广——联盟机制

所谓联盟机制就是如何设计一个经济学的模型,能够鼓励大家持续地参加到这个联盟里,不断贡献新数据;一定要获利,如何保证大家公平获利,并且使这个获利机制透明,让大家都认可,这需要引入博弈论。 

博弈论展示

任何一个数据拥有方,希望利用它的某部分数据参加到这个联盟。这个联盟在获得更大收益后,如何能够公平地分配给大家,使每个人都觉得在这里是得益的,这里有很多智能体的研究。 

我们经常在手机上用的新闻推荐和短视频推荐,过去因为有一个巨大的公司,几乎所有的用户数据都可以做个性化推荐,如用矩阵分解,但在法律法规前提下,他们收购这种数据和从用户手机上上传这种数据已经变成非法了。在这种状态下能否用联邦学习进行更好的推荐?答案是肯定的。因此现在也有一大批研究者正在研究如何在联邦学习的状态下、在保护隐私的状态下,做这种联邦推荐,也被我们进一步发展成一个联邦广告的形式,也就是广告投放在媒体方可以和广告商、可以和用户物理分开进行。 

用联邦做电影推荐的展示

案例1 金融信贷风控。这在金融界是非常有用的,是金融的核心。金融信贷就是用户画像、风险控制,用户画像画得越全,知道对方借贷也好、理财也好,知道用户越多效果就会越好,这个效果可以用AUC,也可以用KS值。KS值是在银行界经常使用的类似AUC增长的表达,利用联邦学习以后,可以把互联网公司和支付公司、银行连成一个联盟,它的效果也会增加。现在也有上百家银行在进行这样的合作。 

案例2 在保险里也可以进行这样的合作。如有保险公司1、2、3这三家保险公司服务的用户群体不同,但给的险种几乎类似,也就是若特征有很大重叠,但是样本没有那么大重叠,他们就可以利用横向联邦搭一个拓扑;若他们和其他的互联网公司也许在样本有很大重叠,但特征没有那么大的重叠,则可以采用纵向联邦。最后就像学计算机体系结构一样,可以设计某种结构,对这种企业特别管用。这也在瑞士再保险测试中表现非常好的。 

案例3 我们和央行合作做的反洗钱。洗钱数据几乎是黑天鹅事件,是非常珍贵、非常少的,大部分数据都是合法的,如何能够让不同的银行在不交换数据前提下,把他们洗钱数据使用起来,并且和一些互联网公司合作把用户的行为数据也加进来,建立一个更加强大的反洗钱系统,这也是获得了实践的印证。 

以上所说的联邦广告,即广告营销,也在我们和一些合作者之间调通了,数据的供给方和推荐系统之间可以进行各种各样的数据联邦,包括用户的喜好、历史数据、广告本身,有很多相关例子。 

 • 计算机视觉。现在每一个工地都有具体应用,如房地产公司在建楼时有很多摄像头都在观察器械的使用和人流是否安全——有没有戴安全帽、有没有明火、有没有火焰出现;还有行人检测、出行检测、火焰检测、烟雾检测的应用都是通过计算机视觉来做的。但是,每家工地的数据有限,因为时间和样本有限,所以有必要把不同的工地连接起来,但是他们是不同的公司,所以不愿意把数据共享。在这一前提下,我们用联邦学习建立了一个很庞大的安全检测的联邦检测视觉应用,在深圳落地使用。 

• 语音。现在很多家庭都有语音机器人(如“给我放支歌”等)逐渐会收集用户数据,但是不希望这个数据上传,因为不知道它有没有在录别的。然而几千万家终端对于更新我们的声学模型非常有用。问题来了,能否在不上传数据前提下不断更新模型?这在ToB上也非常有用,比如服务中心call center每天面临上百万个incoming  call,对用户进行机器人的辅导;像微众银行现在98%的回答都是用机器人,有很多录音,这些录音在不同地区会有不同的口音,如河南、深圳、四川等。能否建立一个通用的声学模型,利用不同地区的数据,在不传递物理数据的前提下,也可以用联邦学习做声学模型。 

 • 物流。物流企业有上下游库存预测,如有一些摄像头在观察货架的程度,货架是否满了,这些货品来自哪家公司等?会给一个整体的预测。这种预测对于物流来说(如新零售也好、电商也好)非常重要。现在就可以把不同家的仓库连起来,变成库存预测模型。 

• 医疗。最近和腾讯医疗实验室合作,把十几家医院里的脑卒中数据、中风数据用联邦学习结合起来,建立了一个全局模型,使一些之前没有办法用自动手段、用人工智能手段来做检测的小医院,现在就可以使用了,最好情况下将准确率提高了20%。 

在新冠疫情中,健康码是必不可少的。但是到国外去发现,他们几乎不用健康码,认为健康码或多或少会侵犯用户隐私。因为产生健康码背后的计算有两大步骤,第一步是要调用用户行为数据;第二步是把一个人的数据和其他人的数据进行比对,看看有没有接触。这两步如果做得不好就会把某个人的隐私暴露给不应该知道的人。而我们通过联邦学习,把这种物理隔开,使这种数据的计算都是在加密状态下进行,最后的效果是只有手机持有人才知道最终结果,知道健康码应该是绿码还是红码。 

上面讲的是当两个数据集有某种交集,比如样本交集或特征交集的前提下是可以做联邦学习的,如果没有交集怎么办?这时就可以用迁移学习解决这样的问题,把联邦学习和迁移学习相结合。 

这里有红色和蓝色两个领域,它们之间没有表面重叠,但如果在语义上有很多重叠,比如两个都是有关病人的胸片数据,或者有关物流的仓储数据,可以发现其中有一些子空间;在子空间上,红色这些是有重叠的。在这些交互的子空间上是可以进行联邦学习的,找到同分布的子空间,这可以使我们能够推出一个联邦迁移学习的深度学习模型,在深度学习模型找子空间就非常容易。比如找到一些层,这些层代表了它们共同的子空间,可以进行直接的迁移;对于不同部分,各自再去建模,这样就使得这种模型的建立可以在没有表面交互的情况下也可以进行。

假设有一个坏人混入了这个联盟,一个目的是探测别人的隐私,去学别人的数据,我们有没有办法应对。对于模型和数据的攻击来自三个方面,要分别对待。第一方面,坏人可以推断、训练数据;第二方面,可以损害训练的模型;第三方面,通过测试数据来蒙混过关。   

这里特别要强调的是在大规模的工业应用中,我们不能在所有方面都使用最严格的同态加密,所以很多为了效率的提升,使用的是差分隐私。但差分隐私有一定概率会暴露用户隐私的,如最近MIT的韩松教授就证明,如果差分隐私注入的噪音不够多,对方有可能猜出我的原始数据。这就变成了工业上的一个难题。 

我们最近成功地解决了这一难题。即,在每一方都建立一个对抗模型,使对抗模型一方的任务是和其他方沟通,另一方是建立模型,只要把这两个模型分开,就可以保证我们在完全保护隐私和隐私完全泄露之间找到一个最佳平衡点,也就不用顾虑暴露隐私,同时能够有非常高的效率。 

最近在机器学习界比较火的自动机器学习AutoML,联邦学习因为很多参与方是没有人工智能技术能力的,AutoML和联邦学习的结合就势在必行。 

例如,安全检测。如手机银行,首先要进行人脸识别。这项工作就需要和一个人工智能公司、人脸公司合作。过去要把所有人脸数据都传到银行端或传到另外几家公司端,现在用联邦学习就解决这个问题,而且自动建立这个模型。自动化就是通过联邦学习的基本算法,里面有一个可以自动学习的深度学习网络拓扑结构,可以通过自动化机器学习得到。其效果也是提高了建模能力,对任何一个参与方的人工智能能力(如任何一个金融公司)要求大为降低。 

因为联邦学习是一个类似于操作系统的技术,一定是多个参与方持续投入,所以需要建立一个生态。这个生态非常重要,除了算法的建设,对于生态、平台、标准、技术,甚至教育我们都要投入。在2019年推出了世界上第一个工业级联邦学习的开源平台,现在在Linux Fundation上也是一个金牌软件,对应国内国际专利也是100以上,有超过300家企业机构、150家高校在使用,全世界的人都在贡献。它是支持机器学习的主流算法,并且有多个安全多方的协议。同时因为是多家合作,所以要说同一种语言,要有一个标准衡量参与方是否达到这个标准,达到了才能参与到这个联盟。最近,我们将会和IEEE推出世界上第一个联邦机器学习的国际标准,同时在国内也有类似的行业的标准等。我们也建立了第一个联邦学习的产业联盟,最主要的任务是标准的研制和认证。有了标准以后,标准要有一个机构,这个机构用的联邦学习的产品是否符合安全标准,要有一个中立的机构来做这种认证和咨询。同时也需要更多人才的培养等。我们也在开始建立开源数据集、公共数据集,第一个数据集是改变工地的安全数据集,也开放向全世界的人使用。 

总结

人工智能向前发展离不开大数据,建立这种数据的机制不能仅靠物理聚集数据,要有一种生态,这种生态的建立与技术、法规、激励机制,以及联盟的建立和开源是分不开的,所以是一个大工程,希望大家都可以参与。 

(本报告根据速记整理)

CAAI原创 丨 作者杨强教授
未经授权严禁转载及翻译
如需转载合作请向学会或本人申请
转发请注明转自中国人工智能学会