联邦学习:算法详解与系统实现
上QQ阅读APP看书,第一时间看更新

2.4 联邦学习与自然语言处理

自然语言处理(Natural Language Processing,NLP)是人工智能和语言学领域的分支学科,一般有认知、理解、生成等部分。

自然语言认知和理解是让计算机把输入的语言变成有意思的符号和关系,然后根据目的再处理。自然语言生成系统则是把计算机数据转化为自然语言。

随着计算机视觉领域中CNN技术的不断发展,研究者也开始在自然语言处理中采用相似的技术来处理文本信息。然而,卷积神经网络只是关注局部信息的网络结构,导致它在文本信息处理上难以捕捉和存储长距离的依赖信息。人们一方面想通过扩大卷积核、增加通道数来定位捕捉长距离依赖信息,另一方面又害怕由于扩大模型参数所导致的维度灾难。另外,循环神经网络(Recurrent Neural Network,RNN)及其变体——长短期记忆网络(Long Short Term Memory,LSTM)、门控循环单元(Gate Recurrent Unit,GRU)相继被提出来解决这些问题,该结构能够将前文的信息写入记忆模块之中,是因为它们内部有各种门结构。其中,输入门能够让神经网络有选择性地记录一些长时的有效信息,遗忘门会有针对性地抛弃一些冗余信息,更新门可以让网络根据输入对自身当前的状态进行实时更新。然而,这种序列式网络结构及其将有效信息分散存储的方式还是不能很好地存储那些超长的文本依赖信息。此外,这种结构还不能方便地进行并行化加速。

2017年,横空出世的Transformer带着全新的自注意力机制(Self-Attention Scheme)及其变体BERT和GPT-3等,开始霸占各种NLP任务中的最优模型(State-Of-The-Art,SOTA)榜单。自注意力机制可以并行、动态地更新输入文本中每个单词的映射结果,由此捕捉长距离的单词序列化信息。超强的模型性能需要大量的模型参数,最新模型的参数以数十亿计。随着参数的增多,模型性能似乎还在不断上升。现在,一些Transformer模型在CV领域也有应用,比如Vision Transformer(ViT)。然而,这些自然语言处理方法都需要将用户的隐私数据存储起来,共同训练模型。在现实情况下,用户的自然语言数据也是高度敏感的,因此我们需要引用联邦学习技术。

在智能化时代,智能手机几乎是标配的电子产品,其中的输入法成为与他人沟通的必要一环。作为输入法中的佼佼者,Gboard支持600多种语言,安装量超过10亿次。Gboard提供多种输入功能,包括点击和单词手势输入、自动校正、单词补全和下一个单词预测。从用户产生的数据中学习频繁输入的单词是开发移动设备键盘的一个重要组成部分。常见用法包括融入新的流行词汇(名人姓名、流行文化词汇等),或者简单地弥补最初键盘实现中的遗漏,特别是对于资源较少的语言。单词列表通常被称为词汇表,可能是手工录入的,也可能不是。词汇表中缺少的单词无法在键盘建议条上预测,也无法通过手势输入;甚至于,即使输入正确,也可能被自动更正。此外,移动键盘模型在很多方面受到限制。为了在低端和高端设备上运行,模型应该小,推理时间延迟应该低。用户通常希望在输入事件发生后的20毫秒内得到可见的键盘响应。考虑到移动键盘应用程序的使用频率,如果CPU消耗不受限制,客户端设备的电池可能会很快耗尽。因此,语言模型的大小通常被限制为数十兆字节,词汇表限制为数十万个单词。这意味着支持该模型的词汇表在本质上是有限的。因此,在这个相当短的词汇表中发现并包含最有用的单词是至关重要的。而不在词汇表中的单词通常被称为词汇表外(Out-Of-Vocabulary,OOV)单词。注意,词汇表的概念并不局限于移动设备的键盘。其他自然语言应用,例如神经机器翻译(Neural Machine Translation,NMT),依赖词汇表在端到端训练中对单词进行编码。因此,学习OOV单词及其排序是一项相当普遍的技术需求。考虑到在集中的服务器上传输和存储用户内容有隐私泄露风险,但是只从单个用户设备上训练语言模型(这里可以是任意序列化的RNN模型)学习效果又不会好,因此,谷歌提出用联邦学习技术FederatedAveraging训练用户设备上的模型。当有模型交互更新需求时,只上传即时模型更新到服务器并进行模型聚合,而将用户的原始数据留在自己的设备上,原理类似图2-4。

除此之外,研究者还提出用联邦学习技术来处理输入法的下一个单词提示预测任务。下一个单词预测提供了一个方便用户进行文本输入的工具。基于少量用户生成的文本,语言模型可以预测下一个最可能出现的单词或短语。使用联邦学习训练的神经语言模型比传统的基于服务器收集和训练的模型表现出更好的性能。相似的任务还有Emoji表情建议功能,这两种任务因为其内在的相似性,所以采用了相似的网络设计,即LSTM的变体——耦合输入遗忘门(Coupled Input and Forget Gate,CIFG)。与门控循环单元(GRU)一样,CIFG使用单个门来控制输入和循环单元自连接。与LSTM相比,这种耦合使每个单元的参数数量减少了25%。CIFG架构在移动设备环境中具有优势,因为它减少了计算次数和降低了参数量,而不影响模型的性能。

有的公司把联邦学习技术扩展到了输入法的搜索查询建议中,即当用户输入文本时,Gboard使用基线模型(baseline model,也指最基础的模型,结合知识图谱和LSTM模型,并采用传统的服务器训练方式)来确定并显示与输入相关的搜索建议,如图2-5所示。例如,键入“Let's eat at Charlie's”(去查理家餐馆吃饭)可能会显示一个网页的查询建议,以搜索附近同名的餐馆,其他类型的建议包括动图和表情包图片。它们通过使用FL训练的额外触发模型(triggering model,该模型从基线模型中接收建议的查询候选项,并确定是否应该向用户显示建议。实验中使用的触发模型是经过训练的逻辑回归模型,以此预测点击概率,输出给定查询的分数,分数越高,表示对建议的信任度越高),过滤基线模型中的查询建议来改进该项功能。通过将查询建议与FL推理相结合,它们完成了对Gboard建议质量的改进,同时保护了用户隐私并遵守移动设备约束。类似地,为了提高浏览器URL地址栏中输入建议的排序性能,它们使用联邦学习以保护隐私的方式训练了一个用户交互模型。这个模型成功地取代了手工制作的启发式模型方法。结果显示,用户可以少输入半个字符来找到他们想要的东西。

图2-5 谷歌输入法的搜索查询建议训练示意图。这里使用了TensorFlow的移动端框架TensorFlow Lite来进行模型训练

在智能时代,人们更常接触的是智能手机上的语音助手功能,唤醒词检测用于开启与语音助手的交互。关键字识别通过连续监听一个音频流来检测预定义的关键字或一组关键字。唤醒词的典型例子包括不同场景中的应用,如“Hey Siri”“OK,Google”和“小爱同学”等。一旦检测到唤醒词,语音输入就会被语音理解引擎激活,从而增强语音助手的感知能力。唤醒词检测器通常以一种always-on(常驻后台)方式在设备上运行,这主要带来了两个困难。第一,它应该以最小的内存占用和计算成本运行。唤醒词检测器的资源约束是20万个参数和20MFLOPS(Million Floating-point Operations per Second,每秒百万个浮点操作)。第二,唤醒词检测器在各种使用情况下都应该表现一致,并对背景噪声具有鲁棒性。由于模型可以在任何时候被触发,因此高准确性更加重要:它被期望捕获大部分命令(高召回),而不是无意触发(低误报率)。如今,唤醒词检测器通常是根据在真实使用环境中收集的数据集进行训练的,例如用户的家里。语音数据本质上也是敏感数据。最近,Snips研究了联邦学习在嵌入式唤醒词检测上下文中的应用。他们首次提出使用受常用的深度神经网络优化算法Adam启发的自适应平均策略来代替标准的联邦加权平均模型,大大减少了达到目标性能所需的通信轮数。该算法在每个用户的上游通信成本仅为8MB,这在智能家庭语音助手的背景下是可以接受的。

除了虚拟数字键盘和语音方面的应用,来自波士顿儿童医院的研究者Dianbo Liu提出利用大量的临床记录,将NLP模型用于训练一个医学上有用、可推广的上下文表示模型。此外,由于临床医生在医院和医疗保健系统之间书写记录的方式差异很大,因此从多方获取数据是很重要的。然而,由于隐私和监管问题,共享临床数据是困难的。以联邦学习的方式训练NLP模型是克服这些挑战的一个很好的选择。在文章中,他们采用联邦学习,利用来自多个站点的临床记录对BERT模型进行训练,而不会使记录内容泄露。他们还提出可以对不同的下游任务,例如名称实体识别(Name Entity Recognition,NER)进行BERT模型的联邦学习微调。

从数字虚拟键盘到语音再到临床记录,联邦学习在NLP领域的应用越来越丰富。我们期待以后可以形成一个更大规模的NLP预训练模型,囊括几乎所有的NLP任务。