ニュース

グーグルはスマートテキスト選択をどう改善したのか?その手法が明らかに

 Googleが2017年にリリースした「Android O」で利用可能となったスマートテキスト選択は、Androidスマートフォンで最も良く使われる機能の一つ。

 ユーザーがタップするたびに、目的の単語や単語のセットを予測することで、テキストを簡単かつ迅速に選択、コピーできる。

 選択範囲は自動的に拡大され、住所や電話番号などを選択すると、それらを開く地図アプリや電話アプリなどで表示することで、異なるアプリ間でテキストをコピー&ペーストする手間と時間を節約できる。

スマートテキスト選択のイメージ

フェデレーション ラーニングを導入して改善

 Googleは、フェデレーション ラーニングを利用して、ユーザーのプライバシーを守りながら、ユーザーのやりとりをニューラルネットワークモデルに学習させることで、スマートテキスト選択を改善したその方法を公式ブログで明らかにした。

 スマートリンクファイと同じ技術を用いるスマートテキスト選択は、任意の選択範囲を予測するのではなく、住所や電話番号などの明確に定義された要素に焦点を当て、それらのカテゴリの選択範囲を予測する。また、複数の単語から成る要素が存在しない場合には、誤って複数の単語を選択する頻度を最小限に抑えるために、1つの単語のみを選択するように学習モデルを改良する。

 スマートテキスト選択はもともと、schema.orgのアノテーションが適用されたWebページをソースにしたプロキシデータによって学習が行われた。続いて、これらの要素をランダムなテキストに埋め込み、その周囲のテキストに影響を与えることなく要素を選択できるように改良された。

 このアプローチは一定の働きを見せたが、データは、ユーザーがデバイス上で目にすると思われるテキストとはかなり異なるなど、いくつかの点で限界があった。

 たとえば、schema.orgのアノテーションがあるウェブサイトは、ユーザーが携帯電話で入力するよりも、適切なフォーマットの要素を備えている。さらに、学習のために要素が埋め込まれたテキストサンプルはランダムで、デバイス上の実際の文章を反映していなかった。

 新たな学習モデルでは、単語の区切り予測にプロキシデータを用いるのではなく、デバイス上の実際のやりとりを元に、フェデレーション ラーニングにより学習する。

 フェデレーション ラーニングとは、機械学習モデルの一種で、中央のサーバーがモデル学習を多数のデバイスに分割する役割を担い、学習に使用する生データはローカルのデバイス上に残す。

 標準的な学習プロセスは、サーバーがモデルの初期化を行い、デバイスがサンプルを受け取り、選択されたデバイスが自らのローカルデータを使ってモデルを改良し、改良したモデルのみを送信するプロセスを繰り返す。その後、サーバーは受け取った更新情報を平均化し、次の反復で送信するモデルを再生成する。

【フェデレーション ラーニングのイメージ動画】

プライバシー保護の取り組み

 スマートテキスト選択では、ユーザーがテキストを選択するためにタップし、選択範囲を修正するたびに、モデルが予測すべき正確なフィードバックをAndroidが取得する。

 ユーザーのプライバシーを保護するために、選択範囲は一時的にデバイスに保存され、フェデレーション ラーニングの手法によりモデル改良に利用される。

 フェデレーション ラーニングの利点として、生のデータはサーバーに展開されず、ユーザーのデバイス上に保つため、プライバシーが保護できる。サーバー側では、更新されたモデルのみを受け取りする。

 同モデルを改良するためのデバイス上のコードは、Android上のセキュア環境である「Private Compute Core」の一部であり、ユーザーデータを安全に扱うのに適している。「Private Compute Core」は、ネットワークと分離されているほか、データのやりとりは、データの連合処理時やその他のプライバシー保護技術が適用された場合のみ許可される。

 ネットワークからの隔離に加えて、「Private Compute Core」のデータは、その使用方法を制限するポリシーにより保護されるため、デバイス上に侵入する悪意のあるコードからも保護される。

 デバイスから送信された学習モデルの差分を集約するために、Googleではセキュア・アグリゲーションと呼ばれる暗号プロトコルを使用している。このプロトコルにより、サーバーは個々のデバイスから送信された更新情報を読まずに、フェデレーション ラーニングモデルの改良を計算できる。

 セキュア・アグリゲーションによる保護に加えて、学習モデルの更新はトランスポート暗号によって保護され、ネットワーク上の攻撃者に対して二層の防御壁を持つ。

 最後に、Googleではモデルの記憶に関する保護方法も検討した。原理的には、トレーニングデータの特徴がサーバーに送信される更新情報にエンコードされ集計処理を経て、グローバルモデルに記憶される可能性があるため、攻撃者はモデルから学習データを復元できる可能性がある。

 これに対して、Googleではモデルが意図せずに学習データを記憶する度合いを定量化する分析手法である「Secret Sharer」を用いて、モデルが機密情報を記憶していないことを実験的に確認した。さらに、データのマスキングにより、機密性の高いデータがモデルに見られないようにした。

 これらの技術の組み合わせにより、スマートテキスト選択はユーザーのプライバシーを保護する方法で学習が行われる。

「スマートテキスト選択」が大幅に改善、多言語対応も容易に

 新しいフェデレーション ラーニング手法により、スマートテキスト選択の大幅な改善に成功した。改善度合いは、使用する言語によって異なるが、複数単語の選択精度は5%~7%改善し、単一の単語を選択するパフォーマンスは低下しなかった。また、最も複雑な種類の要素である住所を正しく選択できる精度は、8%~20%改善した。

 フェデレーション ラーニングによるスマートテキスト選択の更なる利点に、追加の言語への対応が容易な点がある。サーバー側での学習には、各言語のプロキシデータをデバイス上のデータに近づけるために、手動で調整する必要があった。これは、ある程度効果的ではあるが、言語が増えるために膨大な労力が必要だった。

 フェデレーション ラーニングでは、このような手作業による調整を必要とせず、ユーザーとデバイスのやりとりを元にした学習を行う。英語で良い結果が得られた後、同じ処理を日本語にも適用したところ、日本語にあわせた調整の必要なしに大きな改善が得られたという。

 Googleでは、フェデレーション ラーニングによりスマートテキスト選択をより多くの言語に拡張できると期待している。理想的には、システムを手動で調整することなく、リソースの少ない言語にも対応することを目指している。