打开手机,选择文本,长按复制
长按文字进行选择,相信大家在手机上进行此类操作应该是非常频繁的。细心的同学会发现,假如你想选择一个叫做“文本”的名词时,无论你将手指放在“文”字或者“本”字上,手机都会自动将这两个字都进行选择。
下图是我用荣耀20手机的记事本做的测试(白色圆圈为触屏操作):
再比如说,当我们在文本框中选中地址时,它自动会出现地图导航的标志;当我们在文本框中选中手机号码时,它自动会出现拨号的标志。(地址和手机号均为随机输入)
智能文本选择技术
没错,这就是我们今天要说的智能文本选择技术,其作为Android O的一部分于2017年推出,是Android最常用的功能之一。可通过预测用户点击所需的词或词集,帮助用户轻松、快速地选择、复制和使用文本,并自动适当扩展选择。通过这个功能,选择会自动扩展,对于定义了分类类型的选择,例如地址和电话号码,用户可以通过一个应用程序打开选择,从而节省用户更多的时间。
让联邦学习来提高文本选择的智能性吧
今天,我们描述如何通过使用联邦学习来训练神经网络模型来提高智能文本选择的性能,同时保持用户的隐私。这项工作是Android新的私有计算核心(Private Compute Core)安全环境的一部分,使我们能够在某些类型的实体上提高模型的选择精度高达20%。
用于词类选择的服务器端代理数据
智能文本选择与智能关联背后的技术相同,它不是任意预测的,而是关注定义良好的词类,比如地址或电话号码,并试图预测这些类别的选择范围。在没有多词实体的情况下,训练模型会只选择单个词,以减少多词错误选择的频率。
智能文本选择功能最初是使用来自网页的代理数据来训练的,我们使用schema.org网站提供的注释数据进行训练。然后,这些词类被嵌入到随机文本的选择中,模型被训练为只选择已知词类,而不溢出到周围的随机文本中。
虽然这种使用schema.org提供的数据的培训方法可以工作,但它有几个限制。这些数据与我们期望用户在设备上看到的文本非常不同。例如,带有schema.org注释的网站词类的格式通常比用户在手机上输入的格式更合适。此外,用于训练的词类嵌入的文本样本是随机的,不能反映设备上的现实上下文。
用于联邦学习的设备反馈信号
有了这个新的技术,模型不再使用代理数据进行跨度预测,而是在设备上使用联邦学习对真实交互数据进行训练。这是一种机器学习模型的训练方法,在这种方法中,一个中央服务器协调模型训练,在许多设备中分离,而使用的原始数据保持在本地设备上。一个标准的联邦学习培训流程如下:
- 服务器从初始化模型开始。
然后,开始一个迭代过程,
- 手机设备得到一个初始化模型
- 手机设备使用其本地数据改进模型
- 手机设备只发送改进的模型,而不发送用于训练的数据。
- 最后,服务器平均它收到的更新,以创建在下一次迭代中发送的模型。
对于智能文本选择,每当用户点击选择文本并修正模型的建议时,Android就会得到精确的反馈,了解模型应该预测的选择范围。为了保护用户隐私,这些选择被暂时保存在设备上,服务器端不可见,然后通过应用联邦学习技术来改进模型。这种技术的优点是可以用推理过程中看到的同一类型数据来训练模型。
联邦学习与隐私
联邦学习方法的优点之一是它支持用户隐私,因为原始数据不会暴露给服务器。相反,服务器只接收更新后的模型权重。尽管如此,为了防范各种威胁,我们探索了保护设备上数据、安全地聚合梯度和降低模型记忆风险的方法。
训练联邦智能文本选择模型的设备上代码是Android的私有计算核心安全环境的一部分,这使得它特别适合安全地处理用户数据。这是因为Private Compute Core中的训练环境与网络是隔离的,并且只有在应用联邦和其他隐私保护技术时才允许数据出口。除了网络隔离之外,私有计算核心中的数据还受到策略的保护,这些策略限制了数据的使用方式,从而防止恶意代码进入设备。
为了聚合由设备上的训练代码产生的模型更新,我们使用Secure Aggregation,这是一种加密协议,允许服务器计算联邦学习模型训练的平均更新,而无需阅读单个设备提供的更新。除了由Secure Aggregation单独保护,更新还由传输加密保护,从而创建了两层防御网络攻击的防御层。
最后,我们研究了模型记忆。原则上,训练数据的特征可以编码到发送给服务器的更新中,在聚合过程中幸存下来,最终被全局模型记住。这使得攻击者可以尝试从模型中重建训练数据。我们使用了Secret shareer的方法,这是一种分析技术,可以量化模型无意中记忆训练数据的程度,以经验验证模型没有记忆敏感信息。此外,我们使用了数据屏蔽技术,以防止某些类型的敏感数据被模型所看到。
结合起来,这些技术有助于确保联邦智能文本选择以一种保护用户隐私的方式进行训练。
实现卓越的模型质量
最初尝试使用联邦学习来训练模型,但没有成功。损失没有收敛,预测基本上是随机的。调试训练过程是困难的,因为训练数据是在设备上,没有集中收集,所以无法检查或验证。事实上,在这种情况下,甚至不可能确定数据是否符合预期,这通常是调试机器学习管道的第一步。
为了克服这个挑战,我们仔细地设计了高级的度量标准,使我们能够理解模型在训练期间是如何表现的。这些指标包括训练示例的数量、选择的准确性以及每种实体类型的召回率和精度指标。这些指标是在联邦训练期间通过联邦分析收集的,类似于模型权重的收集过程。通过这些指标和许多分析,我们能够更好地理解系统的哪些方面工作得很好,以及哪里可能存在漏洞。
在修正了这些错误并进行了额外的改进之后,例如对数据实现了设备上的过滤器,使用了更好的联邦优化方法,并应用了更健壮的梯度聚合器,模型得到了良好的训练。
结果
使用这种新的联合方法,我们能够显著地改进Smart Text Selection模型,其程度取决于所使用的语言。在多词选择准确性方面,典型的改进幅度在5%至7%之间,而单词的性能没有下降。正确选择地址(支持的最复杂的实体类型)的准确性提高了8%到20%,这取决于所使用的语言。这些改进导致每天为用户自动扩展数百万个额外的选择。
国际化
这种联合学习方法对于智能文本选择的另一个优点是它能够扩展到其他语言。服务器端培训需要对每种语言的代理数据进行手动调整,以便使其更类似于设备上的数据。虽然这只在某种程度上起作用,但每增加一门语言都需要付出巨大的努力。
然而,联邦学习管道训练的是用户交互,而不需要这样的手动调整。一旦这个模型在英语上取得了很好的效果,我们就把同样的管道应用到日语上,并且看到了更大的改进,而不需要专门为日语选择调整系统。
我们希望这个新的联合方法能让我们将智能文本选择扩展到更多的语言。理想情况下,这也可以在不需要手动调优系统的情况下工作,这使得它甚至可以支持低资源语言。
结论
Google开发的一种基于用户交互的学习预测文本选择的联邦方法,从而大大改进了智能文本选择模型,并部署到Android用户中。这种方法需要使用联邦学习,因为它不需要在服务器上收集用户数据。此外,Google还使用了许多最先进的隐私保护方法,如Android的新的私有计算核心、安全聚合和秘密共享方法。结果表明,在训练模型时,隐私不一定是一个限制因素。相反,其设法获得了一个明显更好的模型,同时确保用户数据保持私有。