
预测文本的工作原理是:根据你已经输入的内容,估算接下来最可能出现的字母、单词或短语,并提供最可能的选项。这个估算来自语言模型。早期手机中的模型是按常见程度排序的词典。后来,模型开始统计某个词后面接另一个词的概率。如今,模型通常是读取整个句子并直接在设备上运行的神经网络。
不过 《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 语言模型 | 所有可见上下文 | 单词、短语或句子剩余部分 | 流畅但并非你本意的短语 |
从按键到显示建议之间发生了什么
无论使用哪种模型,处理流程都包含相同的步骤:
- 键盘或应用读取上下文:收集光标前的文本,有时也会识别你正在使用哪个应用。
- 模型为可能出现的后续单词或短语分配概率。
- 软件会过滤掉置信度低的猜测,以及不应出现建议的位置,例如密码字段。
- 它会显示最合适的一到三个选项:手机会显示一排单词,短语工具则会显示行内灰色文字建议。
- 之后,许多系统还会根据你接受并经常输入的词语和短语进行调整。
过滤这一步比看起来更重要。如果工具总是显示内容,你就会习惯忽略它。如果工具在不确定时保持安静,那么它开口时你才会留意。
为什么预测经常出错
预测只是概率判断。模型可以猜出礼貌回复的大致形式,却不知道你即将承诺的日期,也不知道你指的是谁的名字。新消息的开头最难预测,因为此时几乎没有上下文。句子越长,建议就越准确。
让错误猜测仍然可以接受的关键,在于建议的呈现方式。如果接受只需按一个键,而忽略无需任何操作,那么错误的猜测不会造成任何代价:继续输入即可。
Windows PC 上的预测文本功能
Windows 为实体键盘提供单词级文本建议。Microsoft 的 设置指南 表示在你输入时根据拼写预测单词。Word 的文本预测更进一步,还会建议单词或短语。Microsoft 将它们列为 会分析你内容的 Office 连接体验之一,但只有在某些情况下才具备基本的离线功能。
Typeahead 会在你自己的 PC 上运行一个紧凑型语言模型,并在 Windows 应用(例如 Word、Outlook、Chrome 和 WhatsApp)中建议句子的后续内容,即使离线也能使用。按 Tab 或向右箭头键即可接受建议。关于 为什么小型设备端模型已经足够 说明了为什么这项任务不需要云端规模的模型。
常见问题
预测文本算是人工智能吗?
预测文本会从我输入的内容中学习吗?
为什么 Windows 只建议单个词?
为什么消息中的第一个建议通常不太好?
Typeahead 将本地模型的短语级预测功能带到 Windows 桌面应用中。用你自己的文字试用七天。
获取 Typeahead