学界 | 谷歌输入法背后的机器智能:思你所思,想你所想!

很多人每天花费大量时间使用移动设备键盘:撰写电子邮件,发短信,参与社交媒体等。 然而,移动键盘仍然在处理速度方面处于劣势。 用户平均在移动设备上的打字速度比在物理键盘上慢35%。 为了改变这一点,最近谷歌团队为Gboard for Android提供了许多改进,致力于创建一个智能机制的 键盘,能够为用户以任何选择的语言提供建议和纠正错误,从而实现更快更高质量的输入。

事实上,移动键盘将触摸输入转换为文本的方式类似于语音识别系统将语音输入转换为文本的方式,雷锋网了解到,该团队将利用语音识别的经验来实现触摸输入。

  • 团队首先创建了一个强大的空间模型,将原始触摸点的模糊序列映射到键盘上的按键,就像用声学模型将声音定位到语音单元的顺序一样。
  • 第二,构建一个基于有限状态传感器(FST)的核心解码引擎,以确定给定输入触摸序列的最有可能的字符序列。 随着数学形式主义和语音应用的广泛成功, FST解码器将提供支持各种复杂键盘输入行为以及语言特性所需的灵活性。 在这篇文章中,将为您详细介绍这两个系统的发展。

神经空间模型

移动键盘输入的错误通常归结于“胖手指打字”(fat finger typing,或在滑动打字中定位到空间位置相似的词,如下图所示)以及认知和操作错误(表现为拼写错误,字符插入,删除或互换等)。 智能键盘需要能够解决这些错误,并且可以快速准确地预测正确的单词。 据雷锋网了解,该团队为Gboard构建了一个空间模型,在字符级别处理这些错误,将屏幕上的触摸点映射到实际按键。

两个位置相似的词:“吸血鬼vampire”和“价值value”的平均滑动路径

一直到最近,Gboard还在使用高斯模型量化敲击相邻按键的概率和基于规则的模型,来表示认知和动作错误。 这些模型简单直观,但并不能直接优化与更高的打字质量相关的指标。 根据语音搜索声学模型方面的经验,用连接时间分类(CTC)标准训练的单个高效长期短期记忆(LSTM)模型替代了高斯模型和基于规则的模型。

然而,训练这个模型比预期的要复杂得多。 虽然声学模型是从人类转录的音频数据进行训练的,但是并不能轻松地转录数百万的触摸点序列和滑动轨迹。 所以该团队利用用户交互信号,例如自动修正和建议选择作为负面和正面的半监督学习信号,因此形成了丰富的培训和测试集。

对应单词“可以could”(左)的原始数据点,以及每个采样方差(右)的归一化采样轨迹

使用来自语音识别文献的大量技术来迭代NSM模型,使其足够小且足够快以便在任何设备上运行。 TensorFlow基础设施用于训练数百种模型,优化键盘上显示的各种信号:完成,建议,滑动等。

经过一年多的 努力,完成的模型比初始版本快6倍,大小仅是最初的十分之一。同时,它还显示出在脱机数据集上的错误自动更正减少约15%的错误,而错误解码手势则减少了10%。

有限状态转换器

虽然NSM使用空间信息来帮助确定敲击或滑动的字符是什么,但还是有一些额外的限制——词汇和语法 ——这些是可以承受的。词典告诉我们语言中出现了什么词汇,而概率语法告诉我们什么话可能接在其他的话后面。为了对这些信息进行编码,使用有限状态换能器。 FST(Finite-State Transducers)一直是Google语音识别和综合系统的关键组成部分。它提供了一种原则性的方式来表示自然语言处理中使用的各种概率模型(词典,语法,规范化等)以及操纵,优化,组合和搜索模型所需的数学框架。

在Gboard中,一个键传感器紧凑地表示键盘这个词,如下图所示。 它编码从按键序列到字的映射,允许替代键序列和可选空格。

该转换器沿着从起始状态(粗体1)到最终状态(两圈状态0和1)的路径编码“I”,“I’ve”,“If”。 每个弧用一个输入按键(“:”之前)和一个对应的输出字符(“:”之后)标记,其中ε编码空符号。 “I’ve”中的撇号可以省略。 用户有时会跳过空格键。 为了说明这一点,转换器中的单词之间的过渡空格键是可选的。 ε和空格后弧允许存在多个单词。

概率n元传感器用于表示键盘的语言模型。 模型中的状态代表一个(直到)n-1个字的上下文,并且离开该状态的弧,将被标记为一个后续字符以及跟随该上下文的概率(由文本数据估计)。 这些与给出关键触摸序列的可能性(滑动中的离散触摸或连续手势)的空间模型被组合并且用波束搜索进行探索。

通用FST原则,如流式传输,动态模型支持等,为构建新的键盘解码器带来了很大的帮助,但还需要添加一些新的功能。 当人们说话的时候,并不需要解码器来完善你所说的话,或者猜测你会在后面说些什么来省下几个音节; 但是当你输入时,你会感受到词语完成和预测的帮助。 此外,该团队希望键盘可以提供无缝多语言支持,如下所示。

在Gboard上输入三种语言

让新的解码器投入实际应用是一项复杂的工作,但FST原则有很多好处。 例如,支持印地语等语言的音译只是解码器的简单扩展。

音译模型

在许多具有复杂脚本的语言中,已经开发了罗马化系统,以将字符映射成拉丁字母,通常根据其发音。 例如,拼音“xièxiè”对应汉字“谢谢”。 拼音键盘允许用户在QWERTY布局上方便地输入单词,并将它们自动“翻译”到目标脚本中。 同样,一个音译印地语键盘允许用户输入“daanth”(牙齿)“दांत”。 而拼音确定是一个罗马化系统,印地语音译则更模糊; 例如“daant”将是“दांत”的有效替代方案。

印地语的滑动字符转换

正如从字母序列到单词(词典)的传感器映射以及为单词序列提供概率的加权语言模型自动化,该团队为拉丁语按键序列和目标脚本符号序列构建了22种印度语的加权转换器映射。 一些语言属于多个书写系统(例如Bodo可以写在孟加拉文或梵文的脚本中),因此在音译和本机布局之间,在短短几个月内就建立了57种新的输入法。

FST解码器的本质性质将支持完成所有的工作,预测,滑动打字和许多UI功能,无需额外的工作,从而使 Gboard能够从一开始就向印度用户提供丰富的体验,一个更智能的键盘。

总而言之,最近的工作将解码延迟降低了50%,将用户手动更正的字数减少了10%以上,能够为印度的22种官方语言提供音译支持,并启用了许多新功能。

虽然谷歌团队希望这些最近的变化能够改善用户的打字体验,但他们也同时认识到,在移动设备上打字的问题绝对不能算是解决了。 Gboard仍然会提出似乎不直观或低效用的建议,并且手势的解码建议仍然可能为人类永远不会选择的词语。 然而,该团队的工作为强大的机器智能算法的转变开辟了新的空间,谷歌正在积极探索为全球用户提供更有用的工具和产品。

via research.googleblog,AI科技评论编译

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

工具 | 用Python做自然语言处理必知的八个工具

Python以其清晰简洁的语法、易用和可扩展性以及丰富庞大的库深受广大开发者喜爱。其内置的非常强大的机器学习代码库和数学库,使Python理所当然成为自然语言处...

1686
来自专栏AI科技评论

总结 | Laura:AI 字幕翻译经验分享

越来越多的小伙伴们加入到 AI 课程的字幕翻译队伍。在这些翻译同学中,有些是 AI 相关领域的学生或从业者,有些是纯粹的知识爱好者,很多同学并未上过英语翻译课程...

632
来自专栏CSDN技术头条

利用GPU和Caffe训练神经网络

本文为利用GPU和Caffe训练神经网络的实战教程,介绍了根据Kaggle的“奥托集团产品分类挑战赛”的数据进行训练一种多层前馈网络模型的方法,如何将模型应用于...

19410
来自专栏量子位

苹果推出高精度手写识别系统,可准确识别3万字符集

安妮 编译自 苹果机器学习博客 量子位 出品 | 公众号 QbitAI 在手机、平板和可穿戴设备不断普及的今天,手写识别比以往任何时候都重要。但这并非易事,拿汉...

3527
来自专栏ATYUN订阅号

使用LSTM预测比特币价格

本文以“时间序列预测的LSTM神经网络”这篇文章为基础。如果没有阅读,我强烈建议你读一读。 考虑到近期对比特币货币的泡沫的讨论,我写了这篇文章,主要是为了预测比...

3237
来自专栏技术随笔

深度学习 — 图像风格化实验记录

------问对了问题 ,就成功了一半 Tags: 深度学习 CNN 图片风格化 ---- ? A Neural Algorithm of Artistic S...

33012
来自专栏各种机器学习基础算法

NLTK学习笔记(二)

词意消歧 在词意消歧中,我们要算出特定上下文中的词被赋予的是哪个意思。 思考存在歧义的词 serve 和 dish: (1) a. serve: help wi...

2747
来自专栏新智元

让神经网络替你编程:如何用深度学习实现程序自动合成

【新智元导读】本文介绍了训练神经网络学习用复杂的函数式语言(FlashFill DSL)进行编程取得的成功,标志着神经程序合成方面一个令人兴奋的突破。 ● 作...

3798
来自专栏数据科学与人工智能

【Python环境】Python语言下的机器学习库

Python是最好的编程语言之一,在科学计算中用途广泛:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。 当然,它也有些缺点;其中一个...

2686
来自专栏机器之心

业界 | 微软RobustFill:无需编程语言,让神经网络自动生成程序

选自Microsoft Research blog 作者:Rishabh Singh等 参与:李泽南 长久以来,摆脱编程语言的束缚,让计算机自我生成程序一直是开...

2485

扫码关注云+社区