现在,大部分人的日常生活,都离不开手机上的虚拟键盘,而这其中的大部分人都会觉得虚拟键盘不好用。数据显示,相对于实体键盘,用户用虚拟键盘打字的速度要慢35%。
于是,谷歌又看到了人工智能技术的用武之地。他们优化了Android系统的Gboard输入法,目标是建立智能化机制,无论你选择什么语言都能带来更快的输入速度,并提供拼写建议和错误更正功能。
GoogleResearch官方博客昨天发布文章,介绍了他们对Gboard的优化,量子位编译如下:
我们注意到,移动键盘将触控输入转换为文字的方式与语音识别系统将语音输入转换为文字的方式类似。因此在这一项目中,我们用到了SpeechRecognition语音识别技术的经验。
首先,我们建立了空间模型,将混乱的触控点序列匹配至键盘上的按键。其次,我们基于有限状态机(FST)开发了强大的核心解码引擎,根据触控输入序列判断某个单词序列的可能性。由于FST具备的数学形式,以及在语音识别应用中的广泛成功,我们知道,FST能提供必要的灵活性,以支持多种多样复杂的键盘输入行为和语言功能。本文将介绍这两种系统的开发。
神经空间模型在使用移动设备进行输入时,出错通常是由于“粗手指”造成的,也可能是在滑动输入时,误输入成了字母滑动轨迹在空间上非常接近的另一个词,如下图所示。
此外,用户有时也会拼错单词,需要插入、删除或替换单词中的字母。智能键盘需要考虑这些错误的可能性,并快速准确地预测,用户究竟希望输入什么单词。因此,我们为Gboard开发了空间模型,将屏幕上的触控点对应于实际按键,在字母层面上解决这些错误。
此前,Gboard使用高斯模型去量化用户误点击邻近按键的可能性,并使用基于规则的模型去判断认知和手指移动错误。这些模型简单而直观,但无助于直接优化与输入质量相关的指标。利用来自语音搜索声学模型的经验,我们将高斯模型和基于规则的模型替换为统一而高效的LSTM(长短期记忆)模型,并使用CTC(链结式时间分类)规范对其进行训练。
然而,这一模型的训练比我们预期中更复杂。声学模型的训练利用了记录下来的人声数据,但我们无法记录数百万个触控点序列和滑动轨迹。因此,团队使用了用户互动信号。例如,用户可能会修改自动更正或输入推荐功能给出的建议,这被用作了训练时的正面和负面信号,以形成丰富的训练和测试数据集。
来自语音识别的许多技术被用在了NSM模型中,目的是让NSM模型小型化,运行速度足够快,从而适用于任何设备。TensorFlow基础平台被用于训练数百个模型,优化键盘上出现的各种信号,例如单词自动完成、输入推荐和滑动输入等。在一年多的工作之后,最终结果要比开始的版本快大约6倍,而体积则缩小了10倍。此外,自动更正时的错误率降低了约15%,而对离线数据集中手势的错误解码减少了10%。
有限状态机(FST)NSM模型使用空间信息去判断,用户点击的位置或滑动的轨迹。不过对输入法来说还存在其他限制:词法和语法。词法会告诉我们,某种语言中有什么样的单词,而概率性语法则告诉我们,某个单词后面更有可能接上什么样的单词。
为了将这些信息集成在Gboard中,我们使用了FST。在谷歌的语音识别和合成系统中,FST一直都是关键一部分。对于神经语言处理技术,这提供了原理性的方式,以表达多种概率模型(例如词法、语法和正规化工具)。
在Gboard中,“按键到单词”转换器用于表达键盘词法。这一转换器对按键序列和单词之间的映射关系进行编码,从而支持多种按键序列和可能的空间模式。
通用的FST原则可以支持动态模型,这帮助我们开发新的键盘解码器。不过,我们还需要对FST加入新功能。在说话时,你不需要通过解码器去自动完成你说出的单词,或是猜测你要说的下个单词是什么。然而当你通过键盘输入时,你会希望获得单词自动完成和预测功能。此外,我们希望键盘能无缝提供多语言支持。
开发这样的新解码器非常复杂,但FST自身的特点带来了许多帮助。例如,如果希望支持印地语等语言的音译,那么只要对通用解码器进行简单扩展即可。
FST详情:治疗白癜风的药中科出席第十届健康中国论坛大会