Googleが新たな機械学習手法をテスト中、クラウドではなくスマホ上で学習実施

ユーザーのプライバシーを保護しつつ、いかにAIによってビッグデータを分析するか?

Googleはこの課題の解決に向け、新たな機械学習モデルをテスト中だと発表しました。

従来はモバイル端末を使うユーザーによる行動データ、たとえば検索時に表示される予測キーワードの中からどれをクリックしたか等々、は同社のデータセンターに集約されていました。

そうしてクラウド上に一元化されたユーザーデータが、機械学習モデルによる分析の対象になっていたのです。

しかし行動データを一つの場所に集めておくということは、その分だけ個人が特定される可能性が増してしまいます。

仮にクラウド上のデータだけでは特定できなかったとしても、外部にある別のデータと照合することで、個人が判別できてしまう恐れも。実際にNetflixが以前そんなことになっていましたね。

Googleの新手法、学習データはクラウドに残さず

今回Googleが発表した手法は、機械学習を使った行動データの分析を、ユーザーのモバイル端末上で実施しようというもの。そして結果をGoogleのクラウド上に送信するわけですが、それは分析されたデータ丸ごとではなく、親モデルの改善に必要な分だけを抽出して送信するそうです。

つまり個別のユーザーによる行動データがクラウド上に丸々存在する、という事態を避けることができるようになるわけです。

この「Federated Learning」と呼ばれる一連の流れを図にしたものがこちら。
FederatedLearning_FinalFiles_Flow Chart1

まず個々のユーザーがAndroid端末を使うことによって、行動データが発生。端末にダウンロードされている機械学習モデルがそれに最適化されます。

(A.)それぞれのユーザーによる行動データのうち、クラウド上にある親モデルの改善に必要な分だけが抽出・集約されます。

(B.)多くのユーザーから集約されたデータを「平均化」(averaged)する、という手順を繰り返した後に、

(C.)クラウド上の親モデルに適用します。

こうして多くのユーザーによる行動データを使って改善された親モデル。その結果は、すぐに個々の端末での利用に反映されるそうです。これまでのように、Googleがアップデート版をリリースするタイミングを待つ必要がなくなるわけです。

Federated Learningの適用先

GoogleはこのFederated Learningのテストとして、Android向けのキーボードアプリ「Gboard」で検証を進めているとのこと。

検索時に表示される予測キーワードのうち、どのキーワードがクリックされたのか?どんな文脈で検索されたのか?といった情報をクラウド上に集約して、親モデルによる予測精度を改善していくというもの。

Gboardの利用画面
Gboardの利用画面

実装するにあたっては、TensorFlowの簡易版を使っているとのこと。

ちなみに普通にスマホを使っている時に、こんなモデルをローカルでグルグルまわされたらたまったものではないですが、もちろんそこもちゃんと考慮されています。

Federated Learningが端末上で稼働するタイミングは、
・端末が使われていない
・電源につながれている
・Wi-Fiにつながれている
という条件を満たした時のみとのこと。

02_Personalization sleeping

Federated Learningの課題

ただFederated Learningにも技術的な課題はあります。

従来の機械学習モデル、つまり学習データをクラウド上に集約するやり方であれば、
SGDのような最適化アルゴリズムを大規模データ上で一気に走らせることができます。

しかし各端末上で機械学習モデルを走らせるFederated Learningでは、処理があちこちに分散される上に、レイテンシが大きく処理能力も低くなる。さらにモデルを走らせることができるタイミングも限られてしまいます。

そこで解決策として、端末とクラウドとのやり取りの数を少なくするためのアルゴリズムを開発しているほか、アップロードされるデータを圧縮する技術も適用するとのことです。

Federated Learningによって、Googleの各種サービスの使い勝手がどう変わるのか楽しみですね。

ただGoogleによると、これまでの機械学習モデルを全て捨てて、Federated Learningを全面採用することはないとのこと。Gmailのように、学習元となるデータが最初からクラウドにあがっているサービスもあるためです。

ちなみにAppleも、Federated Learningと近い「Differential Privacy」という手法を2016年の開発者向けカンファレンス「WWDC」で発表しています。

プライバシーを保護しつつ、ビッグデータを分析する手法の開発については、各社ともに力を入れているようです。