安卓手机输入法(手机输入法不好用)
陈桦 编译整理
量子位 报道 | 公众号 QbitAI
现在,大部分人的日常生活,都离不开手机上的虚拟键盘,而这其中的大部分人都会觉得虚拟键盘不好用。数据显示,相对于实体键盘,用户用虚拟键盘打字的速度要慢35%。
于是,谷歌又看到了人工智能技术的用武之地。他们优化了Android系统的Gboard输入法,目标是建立智能化机制,无论你选择什么语言都能带来更快的输入速度,并提供拼写建议和错误更正功能。
Google Research官方博客昨天发布文章,介绍了他们对Gboard的优化,量子位编译如下:
我们注意到,移动键盘将触控输入转换为文字的方式与语音识别系统将语音输入转换为文字的方式类似。因此在这一项目中,我们用到了Speech Recognition语音识别技术的经验。
首先,我们建立了空间模型,将混乱的触控点序列匹配至键盘上的按键。其次,我们基于有限状态机(FST)开发了强大的核心解码引擎,根据触控输入序列判断某个单词序列的可能性。由于FST具备的数学形式,以及在语音识别应用中的广泛成功,我们知道,FST能提供必要的灵活性,以支持多种多样复杂的键盘输入行为和语言功能。本文将介绍这两种系统的开发。
神经空间模型在使用移动设备进行输入时,出错通常是由于“粗手指”造成的,也可能是在滑动输入时,误输入成了字母滑动轨迹在空间上非常接近的另一个词,如下图所示。
此外,用户有时也会拼错单词,需要插入、删除或替换单词中的字母。智能键盘需要考虑这些错误的可能性,并快速准确地预测,用户究竟希望输入什么单词。因此,我们为Gboard开发了空间模型,将屏幕上的触控点对应于实际按键,在字母层面上解决这些错误。
此前,Gboard使用高斯模型去量化用户误点击邻近按键的可能性,并使用基于规则的模型去判断认知和手指移动错误。这些模型简单而直观,但无助于直接优化与输入质量相关的指标。利用来自语音搜索声学模型的经验,我们将高斯模型和基于规则的模型替换为统一而高效的LSTM(长短期记忆)模型,并使用CTC(链结式时间分类)规范对其进行训练。
然而,这一模型的训练比我们预期中更复杂。声学模型的训练利用了记录下来的人声数据,但我们无法记录数百万个触控点序列和滑动轨迹。因此,团队使用了用户互动信号。例如,用户可能会修改自动更正或输入推荐功能给出的建议,这被用作了训练时的正面和负面信号,以形成丰富的训练和测试数据集。
来自语音识别的许多技术被用在了NSM模型中,目的是让NSM模型小型化,运行速度足够快,从而适用于任何设备。TensorFlow基础平台被用于训练数百个模型,优化键盘上出现的各种信号,例如单词自动完成、输入推荐和滑动输入等。在一年多的工作之后,最终结果要比开始的版本快大约6倍,而体积则缩小了10倍。此外,自动更正时的错误率降低了约15%,而对离线数据集中手势的错误解码减少了10%。
有限状态机(FST)NSM模型使用空间信息去判断,用户点击的位置或滑动的轨迹。不过对输入法来说还存在其他限制:词法和语法。词法会告诉我们,某种语言中有什么样的单词,而概率性语法则告诉我们,某个单词后面更有可能接上什么样的单词。
为了将这些信息集成在Gboard中,我们使用了FST。在谷歌的语音识别和合成系统中,FST一直都是关键一部分。对于神经语言处理技术,这提供了原理性的方式,以表达多种概率模型(例如词法、语法和正规化工具)。
在Gboard中,“按键到单词”转换器用于表达键盘词法。这一转换器对按键序列和单词之间的映射关系进行编码,从而支持多种按键序列和可能的空间模式。
通用的FST原则可以支持动态模型,这帮助我们开发新的键盘解码器。不过,我们还需要对FST加入新功能。在说话时,你不需要通过解码器去自动完成你说出的单词,或是猜测你要说的下个单词是什么。然而当你通过键盘输入时,你会希望获得单词自动完成和预测功能。此外,我们希望键盘能无缝提供多语言支持。
开发这样的新解码器非常复杂,但FST自身的特点带来了许多帮助。例如,如果希望支持印地语等语言的音译,那么只要对通用解码器进行简单扩展即可。
FST详情:http://www.openfst.org/twiki/bin/view/FST/WebHome
音译模型在许多字符复杂的语言中,罗马字系统被用于将字符转换为拉丁字母,并实现发音上的对应。例如,汉语拼音“xiexie”可以对应于中文字符“谢谢”。拼音帮助用户方便地通过QWERTY键盘去输入,将拉丁字母自动“翻译”成目标字符。
类似地,印地语键盘也可以通过类似方式帮助用户输入,例如“daanth”对应于“दांत”(牙齿)。然而,汉语拼音是一种正规化的罗马字系统,而印地语的音译则更为混乱,例如“daant”同样可以对应于“दांत”。
我们利用转换器将按键序列转化为单词,并用加权语言模型自动化技术提供出现某个单词序列的概率。类似地,我们开发了加权转换器,对于22种印度语系语言将拉丁字母序列和目标字符序列进行映射。
某些语言有多种拼写系统(例如Bodo语可以使用孟加拉文或梵文来拼写),因此在短短几个月时间里,我们就开发了57种新的输入法,实现拉丁字母与本地语言之间的对应。
FST解码器的特征帮助我们利用以往取得的成果,无需再花太大的精力即可支持自动拼写、预测、滑动输入和其他许多用户界面功能,迅速为印度用户提供丰富的体验。
更智能的键盘我们近期的工作将解码延迟缩短了50%,将用户需要手动更正的单词减少了超过10%,使用户可以使用音译方式来输入22种印度语言,并带来了或许你已经注意到的许多新功能。
我们希望最近的这些改变能优化你的输入体验。但我们也知道,移动设备上的输入问题并没有得到完全解决。Gboard做出的一些推荐似乎仍然不符合常理,或是你完全用不到。对用户手势的解码也可能被对应至完全不可能被选择的单词。
然而,我们对更强大机器智能算法的开发开启了新的空间。我们将积极探索,为全球用户开发更多有用的工具和产品。
【完】
One More Thing…
今天AI界还有哪些事值得关注?在量子位(QbitAI)公众号对话界面回复“今天”,看我们全网搜罗的AI行业和研究动态。笔芯~
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com