このサイトは、ほんの入り口です

ここにあるのは、だれかが実際に調べ、考え、作ってきたことを集めたメモです。気になったら、ページの下の「参考にした情報源」から、もとの本や記事、それを生み出した人たちに、直接ふれてみてください。このメモには書ききれないおもしろさが、そこにあります。

スマホは どうして、つぎに うつ ことばを 当てられるの?

スマホの予測変換は、どうやって次の言葉を当てているのか

スマホの予測入力は、タッチ位置の誤差と言葉の並びをどう使って次の言葉を当てるのか

分野:技術

スマホで もじを うつのは、パソコンの キーボードより、へいきんで 35%も おそいと いわれて います。ゆびの ずれなどで、うつのに 時間が かかる ことが あります。

それなのに、「あり」と うつだけで「ありがとう」が 出て きます。どうして つぎの ことばが わかるのでしょう。この ページを 読むと、ゆびの ずれを 読む ぶぶんと、ことばの ならびを おぼえた ぶぶんが、わかれて はたらいて いる ことが わかります。

スマホの小さな画面で打つ文字は、物理キーボードで打つより、平均で約35%遅いと報告されています[1]。ところが、数文字打っただけで、続きの言葉が候補に並びます。しかも、2018年に提案された端末の中で動くモデルは、大きさが7.40MBで、1回の予測が平均6.47ミリ秒(0.00647秒)だったといいます[6]。

なぜ、そんな小さなものが、次の言葉を当てられるのでしょうか。この記事を読むと、指の位置のずれを直す部分と、言葉の並びから次を予想する部分の、役割の分かれ方が分かります。

スマホでの入力は、物理キーボードより平均で約35%遅いとされる[1]。この遅さを埋めるのが予測入力である。2018年に提案された端末上の予測モデルは、サイズ7.40MB、平均予測時間6.47ミリ秒(0.00647秒)で動いた[6]。小さな画面の誤差と、言葉の不確かさの両方を抱えながら、なぜ次の言葉に届くのか。

この記事を読むと、タッチ位置の補正と言語モデルの分担、N-gramからニューラルネットワークへの置きかえで何が変わったか、新語を端末の外に文章を出さずに学ぶ方法と、その条件が分かる。

読み方を切り替えられます。画面の上にある「よみかた」のボタンで、小学校低学年むけ・小学校高学年むけ・中学生むけの3つの書き方に切り替わります。むずかしいと思ったら、いつでもやさしい方に戻ってください。選んだ読み方はブラウザが覚えているので、次に別の記事を開いたときも同じ読み方で始まります。

1. スマホで うつと、どうして おそく なるの?

1. 小さな画面で打つと遅くなるのは、なぜか

1. 小さな画面の入力は遅い:予測入力が求められた背景

がめんの 上で、おや ゆびを うごかして、ちいさな キーを ねらいます。ゆびは キーより 大きいので、となりの もじを おして しまう ことが あります。

Googleの けんきゅうチームは、へいきんの 人が スマホで うつと、パソコンの キーボードより 35%ほど おそいと 書いて います。そこで、さいごまで うたなくても、つづきを だして くれる しくみが ひつように なりました。

じつは、この なやみは スマホより まえから ありました。2000ねんの けんきゅうでは、けいたい電話の ボタンで、1つの ボタンを 1回ずつ おして、たくさんの ことばが 入った じしょで 「どの ことばか」を えらぶ やりかたが、ためされて います。

電車の中で、親指1本でメッセージを返す場面を考えてみましょう。画面のキーは小さく、指のほうが大きいので、隣のキーを押してしまうことがあります。Googleの研究チームは、平均的な人がモバイル機器で打つと、物理キーボードより約35%遅いと説明しています[1]。

この遅さをどうにかしたい、という悩みは、スマホより前の携帯電話にもありました。2000年の研究は、1文字につき1回だけキーを押し、あいまいなところは大きな辞書で決める入力方法を提案し、実際に利用者に試してもらっています[2]。「少ない操作で打ち、残りは辞書に任せる」という考え方は、このころからありました。

では、いまのスマホでは、何に任せているのでしょうか。

画面のキーは指より小さいため、押したつもりのキーと、反応したキーがずれやすい。Googleの研究チームは、平均的な利用者がモバイル機器で打つと、物理キーボードより約35%遅いと述べている[1]。この数値は1つの研究チームによる平均であり、人や端末で変わる。

とはいえ、少ない操作で打つ工夫は、スマホ以前にさかのぼる。2000年の研究は、1文字につき1回だけキーを押し、大きな辞書で曖昧さを解く入力方法を提案し、利用者テストを行った[2]。操作を減らし、残りを辞書に補わせる発想は、今の予測入力と共通する。ただし、辞書で候補を絞ることと、直前の言葉から次を確率で予想することは、別の工夫である。では、今の予測入力は、何を使い分けているのか。

2. まちがえて おしても、なおせるのは なぜ?

2. 押し間違いを読み取る部分と、言葉を予想する部分

2. 空間モデルと言語モデル:誤差の補正と言葉の予想の分担

答えを 先に いうと、はたらきが 2つに わかれて います。1つめは、ゆびが ふれた ばしょの ずれを 読む ぶぶんです。2つめは、ことばの ならびを おぼえた ぶぶんです。

Googleの Gboardという キーボードでは、1つめを 「くうかんモデル」と よびます。ゆびが ふれた ばしょの まちがいや、なぞって うつ うごきを あつかう ために、「LSTM」という しくみが ひとつ つかわれて いると、Googleは せつめい して います。

キーの ばしょの なおしかたと、ことばを なおす はたらきは、べつの ものと して 書かれて います。たとえば「ありがと」を「ありがとう」に 直す はたらきは、2つめの ほうです。

先に答えの要点を書くと、予測入力は、少なくとも2つの部分が手分けして働いています。1つは、指が触れた場所のずれを読み取る部分。もう1つは、言葉の並びを学んだ部分です。

GoogleのキーボードアプリGboardでは、前者を空間モデルと呼びます。以前は、ずれを正規分布で考えるモデルと、決まりごとにもとづくモデルが別々にありましたが、Googleはこれらを1つの効率のよいLSTM(長短期記憶)モデルに置きかえ、指のずれやなぞり入力を扱うと説明しています[1]。

押し間違いは、キーの位置の補正と、単語の自動修正という、別々の機能で直されます[3]。つまり「ありがと」を「ありがとう」に直すのは、位置の補正ではなく、言葉の側の働きです。では、言葉の側は、何を手がかりにしているのでしょうか。

入力の誤差が直る仕組みは、少なくとも2つの部分に分かれている。1つは、触れた位置のずれを読む空間モデル、もう1つは、言葉の並びを扱う言語モデルである。

Googleは、Gboardの空間モデルで、それまでのガウス分布にもとづくモデルと規則にもとづくモデルを、単一で効率のよいLSTM(長短期記憶)モデルに置きかえた、と説明している[1]。タッチ位置の誤差と、指でなぞる入力の両方を、この1つのモデルが扱う。

2024年の論文でも、打ち間違いは、キーの位置を補正する機能と、単語を自動修正する機能で直されるものとして書き分けられている[3]。つまり、位置のずれは空間の側、語としておかしい綴りは言語の側が受け持つ。後者の言語の側が、次の単語の予想にもつながる。では、言語の側は何を手がかりに動くのか。

3. 「よそくへんかん」は、ひとつの はたらきなの?

3. 「予測変換」は、1つの技ではない

3. 補完・修正・次の単語の予測:予測変換と呼ばれるものの中身

ふだん「よそくへんかん」と よんで いる ものは、じつは いくつかの はたらきが まざって います。Gboardの せつめいでは、ことばを おぎなう はたらき、なおしたものを やりなおす はたらき、つぎの ことばを よそくする はたらきが、べつべつに 書かれて います。

つぎの ことばを あてる ときに つかうのは、「ことばの モデル」です。Googleは、ことばごとに この モデルが あって、いつ どう なおすか、つぎの ことばは なにかを きめて いると せつめい して います。

日本語でも、かんがえかたは にて います。ひらがなを 漢字に かえる ときも、いくつか ある こうほの なかから、いちばん ありそうな ものを えらぶ、「かくりつ」を つかう けんきゅうが あります。

ふだん「予測変換」と呼んでいる機能は、実は1つの技ではありません。Gboardの解読部分(入力を読み解く部分)は、単語の補完、修正のやり直し、次の単語の予測という機能を、別々の働きとして備えている、と論文に書かれています[3]。打ちかけの続きを出すのが補完、これから打つ単語を先に出すのが次の単語の予測です。

次の単語を当てる中心になるのが、言語モデルです。Googleは、言語ごとに用意した言語モデルが、いつ・どのように自動修正するか、次の単語をどう予測するかを決めている、と説明しています[4]。

日本語では、かな漢字変換にも確率が使われます。情報処理学会に載った研究は、入力に対して最も確率の高い、仮名漢字まじりの文を出力するという方式を提案し、規則と重みにもとづく従来の方式と区別しています[5]。「よそう」が「予想」になるか「予測」になるかを、確率で選ぶ、という考え方です。

では、その言語モデルは、どんな形で言葉の並びを覚えているのでしょうか。

日常で「予測変換」と呼ぶものは、1つの機能ではない。2024年の論文は、Gboardの解読部分(デコーダー)が、単語の補完、修正のやり直し(ポストコレクション)、次の単語の予測という機能を、別々の働きとして提供していると述べる[3]。補完は、打ちかけの語の続きを出す。次の単語の予測は、まだ打っていない語を出す。

次の単語を決めるのは、言語ごとの言語モデルである。Googleは、言語モデルが、いつどのように自動修正するか、次の単語をどう予測するかを決めていると説明している[4]。

日本語のかな漢字変換にも確率の考え方がある。情報処理学会で発表された森らの研究は、入力に対して最も確率の高い仮名漢字混じり文を出力するという方式を提案し、規則と重みにもとづく従来の方式とは異なる、としている[5]。ただし、現在の日本語入力アプリが内部でどの方式を使っているかは、会社や端末ごとに異なる。

言語モデルは、どのように言葉の並びを記憶しているのか。そこに、容量という壁があった。

4. ふるい やりかたと あたらしい やりかたは、なにが ちがうの?

4. 短い並びだけ覚えるモデルと、長い文脈を使えるモデル

4. N-gramからニューラルネットワークへ:置きかえで変わったこと

むかしの ことばの モデルは、「N-gram」という かたちでした。いくつかの ことばの ならびだけを おぼえて おくので、ながい 文の つながりまでは かんがえられません。スマホの 中に 入れる ために、おぼえて おける りょうに かぎりが ある ことも、むずかしい ところだと 書かれて います。

2024ねんの けんきゅうでは、この N-gramの かわりに、ニューラルネットワークの ことばの モデルを いれました。すると、うった ことばを なおす わりあいが、ことばによって 0.26%から 1.19%の はばで さがったと ほうこくされました。

ただし、どちらの モデルが ふだんの つかいやすさで すぐれて いるかは、じょうきょうしだいで わかれる ところです。

従来の言語モデルは、N-gramと呼ばれる形が使われてきました。これは、数個の言葉の並びだけを手がかりにするもので、長い文脈は考えられません。端末に入れるサイズの制約の下では、並びが少なすぎて当てにくくなる「スパース性」という問題が知られている、と論文は述べています[3]。

2024年の研究では、このN-gramの代わりに、ニューラルネットワーク言語モデルを探索の中に取り入れました。その結果、いくつかの言語圏で、単語の修正率を0.26%から1.19%の幅で下げたと報告されています[3]。応答にかかる時間が少し延びることは、許容範囲とされています。

この数字は1つの研究の結果で、言語ごとに幅があります。実際の使いやすさで、どちらが自然な予測を出すかは、状況によって評価が分かれる、という見方もあります。

ここで1つ、気になることが出てきます。ニューラルネットワークは大きくなりがちなのに、スマホの中でどれだけ小さくできるのでしょうか。

従来の言語モデルはN-gramが主流だった。数個の語の並びだけを参照するため、長い文脈を使えない。端末に収めるモデルの大きさの制約の下では、出現が少ない並びを十分に記録できず、スパース性の問題が起こる、と2024年の論文は述べている[3]。

同じ論文は、Gboardの探索の中にニューラルネットワーク言語モデル(NN-LM)を導入し、言語圏ごとに単語の修正率を0.26%から1.19%の幅で下げたと報告する。レイテンシ(応答時間)が増えることは許容範囲とされた[3]。幅が示されている点が重要で、言語ごとに効果の大きさが違う。また、修正率の数字が体感の使いやすさにそのまま結びつくとは限らない。N-gramとニューラルモデルのどちらが自然な予測かは、状況で評価が分かれる。

ここまでの置きかえには、必ず「端末に載るのか」という条件が付く。載せるには、どれくらい小さくできるのか。

5. スマホの 中に 入るのは、どのくらい 小さいから?

5. 7.40MBと6.47ミリ秒:端末の中の予測モデルの小ささ

5. 端末に載る大きさと速さ:2018年のオンデバイスモデル

2018ねんの けんきゅうで、スマホの 中だけで うごく ことばの よそくモデルが ていあん されました。この モデルの おおきさは 7.40MBで、1かい あてるのに かかる じかんは、へいきんで 6.47ミリびょうです。

6.47ミリびょうは、0.00647びょうの ことです。1びょうあたり 150かいほど できる けいさんに なります(へいきんの じかんから かんたんに 出した かずです)。

この モデルは、ネットワークの むこうに ある 大きな コンピューターでは なく、手の ひらの スマホで うごきます。この おおきさなら、スマホの 中で うごかす ことが できます。

2018年の研究(ACL Anthologyに載った論文)は、端末の中で動く、ニューラルネットワークによる単語予測モデルを提案しました。モデルの大きさは7.40MB、平均の予測時間は6.47ミリ秒です[6]。

6.47ミリ秒は0.00647秒です。1秒を6.47ミリ秒で割ると約155回になるので、平均で見れば、1秒に150回あまり予測できる計算になります(平均時間から単純に出した数字で、実際の1秒間の回数ではありません)。人が1文字を打つあいだに、予測が何度も終わる速さです。

この大きさと速さなら、予測は、ネットワークの向こうのコンピューターではなく、端末の中で動かせます。次の章では、入力した文章をサーバーに送らずに学習する連合学習という考え方を説明します。

ただし、これは2018年の1つの研究のモデルで、いまのGboardのモデルの数値ではありません。

2018年の研究は、端末上で動くニューラルネットワークによる単語予測モデルを示した。サイズは7.40MB、平均予測時間は6.47ミリ秒(0.00647秒)である[6]。

1秒を6.47ミリ秒で割ると約155になるので、平均時間から単純に見積もれば、1秒に150回あまり予測できる。実際の1秒間の回数ではなく、平均予測時間からの換算である。

この論文が示したのは、モデルのサイズと平均予測時間である。スマホの中で動かせる大きさと速さだ、ということまでが読み取れる。文章を送るかどうかは別の話で、連合学習(第6章)では、入力した文そのものをサーバーに送らずに学習する。ただし、これは2018年の研究が示したモデルの数値であり、現在のGboardの本体の数値ではない。

では、端末の中で完結するなら、学習のほうはどうなるのか。

6. あたらしい ことばは、どうやって おぼえるの?

6. 新しい言葉を、文章を外に出さずに覚える方法

6. 連合学習と差分プライバシー:端末の外に文章を出さずに学ぶ

ことばは、どんどん ふえます。新しい ことばを おぼえる ためには、たくさんの 文を つかって まなぶ ひつようが あります。ただ、じぶんの 文を ネットに おくるのは、しんぱいです。

そこで 「れんごうがくしゅう」という やりかたが つかわれます。うった 文そのものを サーバーに 送らず、スマホの 中で がくしゅうして、モデルを よく する やりかたです。Gboardの せつめいでは、これは じゅうでん中、Wi-Fiに つないで いる とき、つかって いない ときに かぎって おこなわれます。

ことばを あつめる しごとは、めずらしい ことばでは さらに むずかしく、その ことばで 書かれた 文が ほとんど ない ときは、文を あつめる こと じたいが 大へんです。

言語モデルを育てるには、その言語の文章をたくさん集めた「コーパス」が必要です。文章が少ない言語では、集めること自体が難しい、とGoogleは説明しています[4]。しかも言葉は、毎日のように新しく生まれます。

そこで使われるのが、連合学習(Federated Learning)です。ユーザーのテキストをサーバーに送らず、端末の上で学習し、その成果だけでモデルを改善できる、と2018年の論文は述べています[7]。絵文字の予測でも、連合学習で作ったモデルが、サーバー側で学んだモデルより良い性能を示した、という報告があります[8]。

新しい単語を見つける場面でも、Gboardは、差分プライバシーと連合解析という技術で、端末上から新しい単語(語彙にない言葉)を見つけているとGoogleは書いています[9]。

Gboardのヘルプによると、連合学習は、充電しているとき、Wi-Fiにつながっているとき、使っていないときにだけ使われます[10]。使っていないときに、そっと学ぶ、という作りです。

言語モデルの学習には、その言語の文章を集めた「コーパス」が要る。Googleは、文章が少ない言語では、コーパスを集めること自体が難しいと述べる[4]。加えて、新語は常に生まれるため、一度作ったモデルを更新し続ける必要がある。

この課題に対して使われるのが連合学習である。2018年の論文は、機微なユーザーデータをサーバーに持ち出さず、クライアント端末上で言語モデルを学習する枠組みとして示した[7]。絵文字の予測でも、連合学習のモデルは、サーバーで学習したモデルより良い性能を示した[8]。

新語(語彙にない語)の発見には、連合解析と差分プライバシーを組み合わせた技術が使われるとされる[9]。Gboardのヘルプには、連合学習が行われるのは、充電中・Wi-Fi接続中・端末の不使用時に限られると書かれている[10]。

なお、ヘルプのうち入力候補機能の説明は、Pixel 4a以降の端末で、対応言語が英語・フランス語・ドイツ語・イタリア語・スペイン語と書かれている[11]。ここまで述べた仕組みが日本語入力でそのまま使われているかは、資料からは断定できない。プライバシーを守りながら精度を上げることと、どの程度の精度低下まで許せるかの基準は、公開された資料では具体的に定められていない。

7. じぶんの スマホで、たしかめて みよう

7. 自分のスマホの候補を、1週間見てみる

7. 自分の端末で候補の出方を観察し、原典に当たる

きょう できる こと

いつも つかう あいさつ(たとえば「おはよう」)の さいしょの 2もじだけ うって、でて くる こうほを ノートに 書き うつして みましょう。キーボードの せっていに 「よそく」や「がくしゅう」の スイッチが あれば、おとなの 人と いっしょに 見て みましょう。

しらべる とき

1しゅうかん、いつもどおり つかって、こうほが かわるかを 見て みます。かわるか かわらないかは、スマホに よって ちがいます。かわらなくても、それが 見つけた こたえです。

候補を書き写す

いつも使う言葉の最初の2文字だけを打って、出てくる候補をノートに書き写してみましょう。最初に出る候補、2番目、3番目で、順番が自分の使い方に合っているか見ます。

1週間続けて見る

1週間、いつもどおり使ってから、同じ2文字をもう一度打って、候補の並びを比べてみましょう。変わるかどうかは、端末や設定で違います。変わらなくても、それが観察の結果です。設定に学習に関する項目があれば、保護者と一緒に見てみましょう。

資料を読むなら

Googleの研究ブログ[1]は、空間モデルの図つきの説明があります。ヘルプ[10]は日本語で読めます。

手で観察する

自分の端末で、よく使う言葉の最初の2文字を打ち、候補の順番を書き写す。1週間、いつもどおり使った後で、同じ2文字を打ち、順番を比べる。変わるかどうかは、端末とアプリの設定で異なる。変化がなくても観察結果になる。設定に学習に関する項目があれば、保護者と確認する。この観察は、言語モデルの更新が候補にどう表れるかを、一例だけ確かめる試みである。

資料を読むなら

Googleの研究ブログ[1]は、空間モデルとLSTMの説明がある。N-gramからニューラルへの置きかえは[3]、端末上のモデルの大きさと速さは[6]、連合学習は[7]が原典である。日本語のかな漢字変換と確率の関係は[5]で読める。条件を表す語(「平均」「この研究では」)に注目して読むと、どこまで言えるかが分かる。

しらべた もとの じょうほう

参考にした情報源

参考にした情報源と、その使い方

本文で使った資料です。

  1. Google Research. The Machine Intelligence Behind Gboard. https://research.google/blog/the-machine-intelligence-behind-gboard/ (入力の遅さ/空間モデル)
  2. Predictive text entry methods for mobile phones (Strathclyde). https://strathprints.strath.ac.uk/2580/ (2000年の1キー1文字と辞書の方法)
  3. Neural Search Space in Gboard Decoder (EMNLP Industry 2024). https://aclanthology.org/2024.emnlp-industry.93/ (補完・次の単語の予測/N-gramとNN-LM)
  4. Google. Say hello to 500 languages on Gboard. https://www.blog.google/products/search/say-mrhb-msawa-mihofnima-or-hello-500-languages-gboard/ (言語モデルの役割/コーパス)
  5. 確率的モデルによる仮名漢字変換(情報処理学会). https://ipsj.ixsq.nii.ac.jp/records/48876 (かな漢字変換と確率)
  6. On-Device Neural Language Model Based Word Prediction (COLING 2018). https://aclanthology.org/C18-2028/ (モデルの大きさと予測時間)
  7. Federated Learning for Mobile Keyboard Prediction (arXiv:1811.03604). https://arxiv.org/abs/1811.03604 (端末上での学習)
  8. Federated Learning for Emoji Prediction in a Mobile Keyboard (arXiv:1906.04329). https://arxiv.org/abs/1906.04329 (絵文字予測の結果)
  9. Google Research. Improving Gboard language models via private federated analytics. https://research.google/blog/improving-gboard-language-models-via-private-federated-analytics/ (新しい単語の発見)
  10. Gboard ヘルプ「Gboard の機能向上の仕組みについて」. https://support.google.com/gboard/answer/12373137?hl=ja (連合学習が使われる条件)
  11. Gboard ヘルプ「入力候補を表示して間違いを修正する」. https://support.google.com/gboard/answer/7068415?hl=ja (入力候補機能の対応言語)

なおした ところ

更新履歴

更新履歴(改版の記録)

  •  初版を公開。

このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。