插图描绘了一张书桌,上面有一部老式按键电话、一部智能手机、一台笔记本电脑,以及一排空白的木制字母积木

预测文本的工作原理是:根据你已经输入的内容,估算接下来最可能出现的字母、单词或短语,并提供最可能的选项。这个估算来自语言模型。早期手机中的模型是按常见程度排序的词典。后来,模型开始统计某个词后面接另一个词的概率。如今,模型通常是读取整个句子并直接在设备上运行的神经网络。

不过 《Windows 上的 AI 自动补全指南》 介绍如何在 PC 上获得短语建议。本文则按代际逐一解释其背后的工作机制。

第一代:消除歧义的词典

T9 解决的是一个硬件问题。手机键盘只有十二个按键,其中大多数按键各对应三个或四个字母。Tegic Communications 于 1995 年为一项 “缩减键盘消歧计算机” 申请了专利,并于 1998 年获批。每次按键都可能对应多个字母。软件会查询哪些词典词条与整个按键序列相匹配,并将最可能的词排在最前面。

按下 4-6-6-3,这组按键可以对应 good, home 和 gone。仅凭按键,T9 无法判断你想输入哪一个。它会优先提供频率最高的词,并让你循环切换其他选项。这里没有任何语言理解能力:它只是查询词典并按概率排序。

第二代:统计某个词后面接什么词

手机键盘上方的建议栏引入了第二个思路:在你输入下一个词之前就对它进行预测。实现这一点的经典方法是 n 元语法模型。它会统计大量文本中,每个词在前面一个或两个词之后出现的频率,并建议最常见的后续词。

SwiftKey 的早期键盘采用了 n 元语法技术。2015 年,该公司发布神经网络版本时, TechCrunch 报道了 该公司对旧方法局限性的描述:它无法理解词语的深层含义。n 元语法模型知道“see you”后面常接“soon”。但它不知道“soon”和“shortly”的意思几乎相同,而且它只能回看前面几个词。

第三代:能学会词语相似性的神经网络

神经语言模型会将词语表示为空间中的点,相似的词彼此靠近。这样,即使遇到从未统计过的词语组合,它也能做出合理猜测。SwiftKey 于 2015 年 10 月发布的 Neural Alpha,是该公司首款以这种方式构建的键盘。

Google 在一篇 2018 年的论文中介绍了 Gboard 的下一步发展: 《用于移动键盘预测的联邦学习》。其下一词预测模型是循环神经网络,在手机而非服务器上训练:设备利用本地输入数据改进模型,并发送回模型更新,而非文本内容。一篇 Google 系统论文 指出,其规模约为 140 万个参数;以今天的标准来看,这个模型很小。Google 于 2023 年报告称, Gboard 的所有下一词预测神经网络模型 现在都具备差分隐私保障。

第四代:Transformer 与完整短语

Transformer 架构由 2017 年的论文 《Attention Is All You Need》提出。它让模型能够评估上下文中的所有先前词语,而不只是最近的几个词。这使短语级建议变得切实可行:模型可以在预测时顾及整句话的主语和语气。

Apple 在 iOS 17 中将 iPhone 输入法迁移到了这种架构上。其 2023 年公告 介绍了一种基于“Transformer 语言模型,即最先进的设备端机器学习语言模型,用于词语预测”的自动更正功能。公告还介绍了行内预测功能,点击空格键即可补全单词或句子。

大型语言模型的工作方式相同,只是规模大得多。它们会预测下一个 token(一个词或词的一部分),将其添加进去,再次进行预测。短语建议就是这一循环执行若干次后的结果;循环会提前停止,并以灰色“文字建议”的形式显示,你可以接受或忽略。 《灰色文字建议指南》 介绍了这一功能在 Windows 中的显示方式。

阶段查看的内容提供的建议典型错误
词典消歧(T9)一个词对应的按键与按键匹配且频率最高的词按键相同但选错了词
n 元语法统计前一个或两个词可能出现的后续词忽略话题的泛化建议
循环神经网络压缩表示的当前句子符合语义的后续词长句中容易丢失上下文
Transformer 语言模型所有可见上下文单词、短语或句子剩余部分流畅但并非你本意的短语

从按键到显示建议之间发生了什么

无论使用哪种模型,处理流程都包含相同的步骤:

  1. 键盘或应用读取上下文:收集光标前的文本,有时也会识别你正在使用哪个应用。
  2. 模型为可能出现的后续单词或短语分配概率。
  3. 软件会过滤掉置信度低的猜测,以及不应出现建议的位置,例如密码字段。
  4. 它会显示最合适的一到三个选项:手机会显示一排单词,短语工具则会显示行内灰色文字建议。
  5. 之后,许多系统还会根据你接受并经常输入的词语和短语进行调整。

过滤这一步比看起来更重要。如果工具总是显示内容,你就会习惯忽略它。如果工具在不确定时保持安静,那么它开口时你才会留意。

为什么预测经常出错

预测只是概率判断。模型可以猜出礼貌回复的大致形式,却不知道你即将承诺的日期,也不知道你指的是谁的名字。新消息的开头最难预测,因为此时几乎没有上下文。句子越长,建议就越准确。

让错误猜测仍然可以接受的关键,在于建议的呈现方式。如果接受只需按一个键,而忽略无需任何操作,那么错误的猜测不会造成任何代价:继续输入即可。

Windows PC 上的预测文本功能

Windows 为实体键盘提供单词级文本建议。Microsoft 的 设置指南 表示在你输入时根据拼写预测单词。Word 的文本预测更进一步,还会建议单词或短语。Microsoft 将它们列为 会分析你内容的 Office 连接体验之一,但只有在某些情况下才具备基本的离线功能。

Typeahead 会在你自己的 PC 上运行一个紧凑型语言模型,并在 Windows 应用(例如 Word、Outlook、Chrome 和 WhatsApp)中建议句子的后续内容,即使离线也能使用。按 Tab 或向右箭头键即可接受建议。关于 为什么小型设备端模型已经足够 说明了为什么这项任务不需要云端规模的模型。

常见问题

预测文本算是人工智能吗?
现代预测文本通常算是:手机键盘和短语工具使用神经语言模型。T9 等较早的系统则是按词频排序的词典查询,没有学习模型。
预测文本会从我输入的内容中学习吗?
许多系统会。它们会适应你经常使用的词语和短语。学习是在设备上还是服务器上进行,取决于具体产品,因此请查看其隐私信息。
为什么 Windows 只建议单个词?
面向实体键盘的 Windows 文本建议会根据你输入的拼写来预测单词。短语级建议需要能够读取整个句子的语言模型;Word 文本预测以及 Typeahead 等第三方工具都提供这种功能。
为什么消息中的第一个建议通常不太好?
因为此时几乎没有上下文。语言模型根据光标前的词语进行预测,所以句子越长,建议就越准确。

Typeahead 将本地模型的短语级预测功能带到 Windows 桌面应用中。用你自己的文字试用七天。

获取 Typeahead