Gboard背后的机器学习

来源:互联网 发布:淘宝旺铺基础版在哪里 编辑:程序博客网 时间:2024/06/05 22:10

大多数人每天会花许多时间在敲击手机键盘上:发送邮件、编辑文本、参与社交媒体等等。然而,手机键盘使用起来依然很麻烦。用户使用手机键盘的平均速度比物理键盘慢35%。为了改变现状,我们最近对Android Gboard提供了许多令人振奋的改进。致力于创造一个智能机制,让用户可以更快输入,同时提供建议与纠正错误,无论你选择什么语言。

具备识别功能的手机键盘能够把触摸输入翻译成文本,有点像语音识别把语音翻译成文本,我们利用在语音识别方面的经验,以追求我们的愿景。首先,我们创建强大的空间模型,把原始模糊序列的触摸点映射到键盘键值上,就像声学模型将声音序列映射到语音单元一样。第二步,我们基于有限状态机(FST)创建一个强大的核心解码引擎,根据触摸输入序列来识别相似词语序列。它具有数学形式主义并且在语音应用取得巨大成功,我们可知一个FST解码器可以灵活支持大量复杂的键盘输入行为与语言特征。在这篇文章中,我们将详细介绍这两个系统的发展。

神经空间模型

手机键盘输入容易引起的错误是由于手指触摸范围过大(或者在滑动过程中,出现相似单词,如下图所示),沿着认知运动模型(主要表现在:拼写错误、字符插入、互换和缺失等等)。一个智能键盘需要支持纠正错误与快速准确地预测用户期望输入的词语。因此,我们为Gboard构建一个空间模型来解决字符等级错误,将屏幕上触摸点映射成实际的键值。


                    训练空间相似的两个词语:“value”和“vampire”

目前,Gboard采用高斯模型来估计按到相邻按键的概率,与采用一个基于规则模型来表现认知运动错误。这些模型简单直观,但是它不允许我们直接优化与打字质量相关的指标。基于我们的经验与语音搜索声学模型,我们用一个单一、高效的短期记忆(LSTM)模型的训练与连接时间分类(CTC)的标准,取代高斯与基于规则的模型。

但是,训练这个模型比我们预期的要复杂得多。由于声学模型是从人类转录的音频数据进行训练,人们无法转录出数以百万计的触摸点序列与滑动痕迹。所以,团队运用用户交互信号,恢复自动更正和建议选择正与负的半监督学习,形成丰富的训练与测试集。如下图所示:


语音识别的文献多采用NSM模型使其小,速度不够快,可以运行在任何设备上。TensorFlow 基础设施用来训练成千上万的模型,优化键盘发出的各种信号:完成、建议、滑动等等。经过一年努力后,运算速度比以前版本快6倍,体积小10倍,并且误纠错率降低15%,误解码手势降低10%。

有限状态机

NSM模型运用空间信息来帮助确定按下的或者滑动的是什么键值,还有额外的词汇和语法在承受范围之内。一个词汇告诉我们语言中出现了什么词,概率语法告诉我们这个单词可能跟着的其他单词。我们采用有限状态机来解码这个信息。有限状态机早已成为google的语音识别与合成系统的重要组成部分。它们提供一个规则方式来代表不同概率的模型(词汇、语法、正则化等等),在自然语言处理的数学框架中,需要操纵、优化、合并与搜索模型。一个关键字转换,紧凑地表示键盘词库如下图所示:


转换器编码“I”、“I've”、“If”沿着开始状态的路径到终点路径,每个圆弧表示一个输入键的标签,与编码空信号时对应输出的单词。在“I've”中的撇号可以省略。用户可能有时候跳过空格栏。为了解决这个问题,转换器中单词之间空格跳转是可选的。空格、回退键允许接收多于一个单词。概率n-gram转换器是用来表示键盘语言,模型中状态代表n-1的单词内容。一个弧离开该状态被标志与候机字连同它出现的概率跟随上下文内容(从文本数据中估计)。这些连同空间模型,给出关键触点似然序列(离散或连续手势滑动抽头的条目分类),结合束搜索的进行探讨。

通用FST规则,比如流,需要支持动态模型,这将花费我们大量时间来构建解码器,但是一些新的功能也需要添加上去。当你说话时,解码器不需要完成你的话或者猜你说什么,以节省几个音节。但是当你打字时,你很感激单词补全和预测的帮助。此外,我们希望键盘提供多语言的无缝切换,如下图所示:


这是一个艰巨的努力让新的解码器落地(诞生),但FST的规则有许多好处。例如,支持语言,如印地语译音,只是一个简单通用解码器的扩展。

音译模型

许多带有复杂脚本的语言,拼音系统已经发展到地图字符转换成拉丁字母,根据自己的语音发音。例如,拼音“xièxiè”对应中国字符是“谢谢”(Thank you)。拼音键盘可以让用户方便在QWERTY进行布局,它们自动翻译成目标脚本。同样地,一个音译印度键盘允许用户输入“daanth”来表示“दांत”(teeth)。而在罗马拼音系统约定中,印度音译更加模糊,例如 “daant” 有效代替 “दांत”。


正如字母顺序,转换器映射(词汇)和加权的语言模型,自动提供单词序列概率。我们加强了转换器映射拉丁字母关键序列和目标脚本符号序列之间的22种语言。一些语言支持多个书写系统(例如Bodo可以使用孟加拉语言,或者Devanagari脚本)之间音译和本地布局,我们在短短几个月建立了几十个新的输入方法。

FST解码器的一般性质,让我们充分利用我们所做的工作,以支持完成、预测、滑动打字和许多UI功能,没有额外努力,我们印度用户从一开始就为我们提供丰富的经验。

一个更智能的键盘

总体来说,我们减少了拉丁文50%的解码,减少必须手动纠正单词超过10%,使得我们能够推出支持印度22种官方语言的音译系统,并启动了许多新功能,可能你已经注意到。

当我们希望最近的改进可以提高用户打字体验,我们意识到在设备上打字是无法解决的。Gboard仍然建议,看似不直观的,或者人们永远不会选择的低效手势解码成单词。但是,我们转向强大的机器智能算法开辟了新的空间,我们正在积极探索,以开发更多工具与产品,为全球用户提供服务。

阅读全文
0 0
原创粉丝点击