
予測入力は、すでに入力した内容を踏まえ、次に来る可能性が最も高い文字、単語、フレーズを推定し、有力な候補を提示します。この推定には言語モデルを使います。初期の携帯電話では、単語の一般的な使用頻度で並べた辞書がそのモデルでした。その後、どの単語の次にどの単語が続くかを示す統計情報が使われるようになりました。現在は通常、文全体を読み取って端末上で動作するニューラルネットワークが使われています。
でも WindowsでAI自動補完を使うためのガイド では、PCでフレーズ候補を使う方法を説明しています。この記事では、その仕組みを世代ごとに解説します。
第1世代:曖昧さを解消する辞書
T9は、ハードウェア上の問題を解決するものでした。電話のキーパッドには12個のキーがあり、その大半にはそれぞれ3文字または4文字が割り当てられています。Tegic Communicationsは、 「曖昧さを解消する縮小キーボードコンピューター」 の特許を1995年に出願し、1998年に認可されました。キーを一つ押すたびに曖昧さが生じます。ソフトウェアは、キー入力の並び全体に一致する辞書の単語を調べ、最も可能性の高い単語を最初に表示します。
4-6-6-3と入力すると、その並びに当てはまるのは good, home や goneT9はキーだけでは、どの単語を意味しているのか判断できません。最もよく使われる単語を最初に提示し、ほかの候補に切り替えられるようにします。ここで言語を理解しているわけではありません。これは、順位付けされた辞書検索です。
第2世代:どの単語のあとにどの単語が続くかを数える
スマートフォンのキーボードの上に表示される候補バーには、入力を始める前に次の単語を予測するという、もうひとつの発想が加わりました。これを実現する古典的な方法が、n-gramモデルです。大量のテキストを対象に、ある単語のあとに、その前にある1語または2語に続いて各単語が現れる頻度を数え、最も頻度の高い続きの語を候補として提示します。
SwiftKeyは初期のキーボードをn-gram技術で構築しました。2015年にニューラル版をリリースした際、 TechCrunchは 旧方式の限界について同社自身が説明した内容です。つまり、単語の根底にある意味を理解できないということです。n-gramモデルは「see you」のあとに「soon」が続くことが多いと知っています。しかし、「soon」と「shortly」がほぼ同じ意味だとはわからず、さかのぼって見られるのも数語だけです。
第3世代:類似性を学習するニューラルネットワーク
ニューラル言語モデルは、似た単語が近くに配置される空間上の点として単語を表現します。そのため、これまで一度も数えたことのない単語の組み合わせのあとでも、妥当な予測ができます。2015年10月にリリースされたSwiftKeyのNeural Alphaは、この方式で構築された初のキーボードでした。
Googleは2018年の論文で、Gboardの次の段階について説明しました。 「Federated Learning for Mobile Keyboard Prediction」です。次の単語を予測するモデルには、サーバーではなくスマートフォン上で学習するリカレントニューラルネットワークが使われました。端末はローカルの入力データを使ってモデルを改善し、テキストではなくモデルの更新情報を送り返します。 Googleのシステムに関する論文 では、その規模は約140万パラメーターとされています。今日の基準では非常に小さいものです。2023年、Googleは Gboardの次の単語予測に使われるニューラルモデルすべて に、差分プライバシーの保証が適用されたと発表しました。
第4世代:トランスフォーマーとフレーズ全体
2017年の論文 「Attention Is All You Need」で紹介されたトランスフォーマー・アーキテクチャでは、直前の数語だけでなく、それ以前の文脈にあるすべての単語をモデルが考慮できます。これにより、フレーズ単位の候補提示が実用的になりました。文全体の主題や語調を把握したまま予測できるのです。
AppleはiOS 17で、iPhoneの入力方式をトランスフォーマーに移行しました。同社の 2023年の発表 では、自動修正機能について、「単語予測のための最先端のオンデバイス機械学習言語モデルであるトランスフォーマー言語モデルを基盤としている」と説明しています。また、スペースバーをタップすると単語や文を補完できる、インライン予測機能も追加しました。
大規模言語モデルも同じ仕組みで動作しますが、規模ははるかに大きくなっています。単語または単語の一部である次のトークンを予測し、それを付け加えて、再び次のトークンを予測します。フレーズ候補はこの処理を数回繰り返したもので、早い段階で止めて、採用するか無視するかを選べる灰色の「ゴーストテキスト」として表示されます。 ゴーストテキストのガイド では、Windowsでの表示例を紹介しています。
| 世代 | 参照するもの | 提示するもの | 典型的な失敗 |
|---|---|---|---|
| 辞書による曖昧さの解消(T9) | 1つの単語を入力するために押したキー | 一致する候補のうち最も頻度の高い単語 | 同じキーに対応する別の単語 |
| n-gram統計 | 直前の1語または2語 | 次に続く可能性の高い単語 | 話題を考慮しない一般的な候補 |
| リカレントニューラルネットワーク | これまでの文を圧縮した情報 | 意味に合った次の単語 | 長い文では文脈を見失う |
| トランスフォーマー言語モデル | 画面に表示されている文脈全体 | 単語、フレーズ、または文の残り | 意図していないのに、流暢なフレーズが提示される |
キー入力から候補表示までに起きること
モデルの種類にかかわらず、処理の流れは同じです。
- キーボードまたはアプリが文脈を読み取ります。カーソルより前のテキストを収集し、ときには使用中のアプリも確認します。
- モデルは、次に来る可能性のある単語やフレーズに確率を割り当てます。
- ソフトウェアは、確信度の低い予測や、パスワード欄など、候補を表示すべきでない場所での候補を除外します。
- 最適な候補を1~3件表示します。スマートフォンでは単語の候補バーを使い、フレーズ入力ツールではゴーストテキストをインライン表示します。
- 多くのシステムはその後、ユーザーが採用した単語や、頻繁に入力するフレーズに合わせて調整します。
フィルタリングの工程は、見た目以上に重要です。常に何かを表示するツールは、候補を無視する習慣をつけてしまいます。確信が持てないときは表示せず、候補を出すときだけ表示するツールなら、候補に目を向けてもらえます。
予測がよく外れる理由
予測はあくまで確率にすぎません。モデルは丁寧な返事の文体を予測できても、これから約束する日付や、あなたが念頭に置いている人の名前まではわかりません。新しいメッセージの書き出しは、まだ文脈がほとんどないため、最も予測が困難です。文が長くなるにつれて候補の精度は上がります。
誤った候補でも許容できるのは、候補の提示方法のおかげです。採用するにはキーを1回押すだけで、無視するのに何もする必要がないなら、間違った候補による損失はありません。そのまま入力を続ければよいのです。
予測入力がWindows PC上で動作する仕組み
Windowsには、物理キーボード向けの単語単位の予測候補機能があります。Microsoftの セットアップガイド によると、入力中のスペルに基づいて単語を予測します。Wordのテキスト予測ではさらに進んで、単語やフレーズを候補として提示します。Microsoftはこれらの機能を コンテンツを分析するOfficeの接続エクスペリエンスに含めていますが、基本的なオフライン機能が使えるのは一部のシナリオに限られます。
Typeaheadはコンパクトな言語モデルを自分のPC上で実行し、Word、Outlook、Chrome、WhatsAppなどのWindowsアプリで、文の続きを候補として提示します。オフラインでも動作します。Tabキーまたは右矢印キーで候補を採用できます。 小型のオンデバイスモデルで十分な理由 このタスクにクラウド規模のモデルが必要ない理由を説明しています。
よくある質問
予測入力はAIの一種ですか?
予測入力は、私が入力した内容を学習しますか?
Windowsが単語だけを提案するのはなぜですか?
メッセージの最初の候補がたいてい的外れなのはなぜですか?
Typeaheadは、ローカルモデルによるフレーズ単位の予測機能をWindowsデスクトップアプリに提供します。ご自身の文章で7日間お試しください。
Typeaheadを入手