IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

グーグルのクラウドを支えるテクノロジー

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第68回 Federated Learning:モバイルデバイスを用いた分散学習技術(パート2) (中井悦司) 2019年10月

はじめに

 前回に引き続き、2019年に公開された論文「Applied Federated Learning: Improving Google Keyboard Query Suggestions」を元にして、モバイルデバイスを用いた分散学習技術である「Federated Learning」の適用事例を紹介します。今回は、検索キーワード予測に使用するモデルの詳細を解説します。

Baseline ModelとTriggering Model

 前回の図2で説明したように、Gboardの検索キーワード予測システムでは、2種類の機械学習モデルを組み合わせた予測が行われます。事前学習済みのBaseline Modelにより、候補となる複数のキーワードを生成して、Triggering Modelにより、実際に表示するキーワードの絞り込みを行います。
 まず、Baselineモデルでは、Google Knowledge Graph(KG)と呼ばれるデータベースを用いて、入力テキストに含まれる単語がどのようなカテゴリーに属するかという情報を取得します。その上で、そのカテゴリーにあったキーワードを予測します。論文の中では、「Let's eat Charlie's」と入力すると、これはレストランに関連する文書だという判別が行われて、「Charlie's」という名前を含むレストランを検索するためのキーワードが候補として得られる、という例が紹介されています。この部分には、LSTMと呼ばれる、自然言語処理でよく用いられるニューラルネットワークモデルが使用されます。
 続いて、Triggering Modelでは、ロジスティック回帰と呼ばれる線形モデルを用いて、それぞれの候補について個別に「そのキーワードがクリックされる確率」を予測して、これが一定値以上のものを実際に表示します。ここでは、よりローカライズされた情報を用いた予測が行われますが、具体的には、次のような情報を使用します。まず、Baseline Modelから出力される候補には、それぞれのキーワードについて、検索カテゴリー(たとえば、さきほどの例では「レストラン」)、Baseline Modelによるスコアなどの補足情報が付与されています。さらに、デバイス上で得られる追加の情報には、次のようなものがあります。

・そのキーワードが過去に表示された回数と実際にクリックされた回数
・そのキーワードが過去5分、10分、30分、60分以内に表示された回数と実際にクリックされた回数
・現在の曜日、時間帯などの時刻情報

 このような情報を総合することで、個々のデバイスを利用するユーザーに応じてパーソナライズされた結果が得られるというわけです。また、このモデルを学習する際は、これまでこのキーワードが表示された際に、実際にそれがクリックされたかどうかという情報を正解ラベルとして用います。キーワードごとに個別に予測を行うので、モデルの出力は、「クリックされる確率」というとてもシンプルな情報になります。そして、次に説明するように、このシンプルさは学習後のモデルの分析にも役立ちます。

学習済みモデルのチェック方法

 Federated Learningに限らず、機械学習モデルの学習処理を自動化する場合、学習後のモデルに想定外の問題がないことを事前にチェックしてから本番環境にリリースする必要があります。これは、モデルのアップデートに伴って、突然、予測の精度が下がるといった問題を回避するために必要な作業です。一般には、テスト用のデータを用いて予測精度のチェックを行いますが、Triggering Modelで利用されているロジスティック回帰の場合、モデルに含まれるパラメーター(ウェイト)の値を直接にチェックするということも可能です。簡単に言うと、個々の入力データについて、それがどの程度重要かを表すのがウェイトの値になりますので、人気のある検索カテゴリーのウェイトは値が大きく、あまり検索されないカテゴリーのウェイトは値が小さくなるといった傾向が期待されます。実際のウェイトの値が、直感的に期待される結果と大きくずれている場合は、学習処理に何らかの問題が発生している可能性があります。
 さらに、このような分析から、モデルそのものを改善するためのヒントが見つかることもあります。たとえば、ある入力データに対するウェイトの値が0だった場合、そのデータは予測には無関係だということです。あるいは、数値データを一定の幅で区切って離散化して入力する場合、どのような幅で区切るのが適切かを判断することもできます。たとえば、予測精度が上がることを期待して、非常に細かい幅で区切ったとしても、学習後のウェイトの値がほとんど同じであれば、そこまで細かく区切る意味はなかったということになります。冒頭の論文によると、現在、このような分析・チェックは、アナリストが手動で行っているそうですが、ウェイトの値が正常範囲に収まっているかなどのチェックは、自動化していくこともそれほど難しくはないでしょう。

次回予告

 今回は、2019年に公開された論文2019年に公開された論文「Applied Federated Learning: Improving Google Keyboard Query Suggestions」を元にして、Federated Learningの仕組み、特に機械学習モデルの詳細について説明しました。次回は、実際の学習状況を示すデータ、あるいは、最終的な予測精度の変化などを紹介したいと思います。

Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes