CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回からは、2019年に公開された論文「AutoML for Contextual Bandits」を紹介します。Contextual Banditsは、レコメンデーションに用いられる機械学習アルゴリズムの一種ですが、この論文では、Contextual Banditsに必要な回帰モデルの構築にAutoML Tablesを用いた実験結果が示されています。
AutoML Tablesは、表形式のデータを元にして、「教師あり学習」の機械学習モデルを自動構築するGoogle Cloudのサービスです。「教師あり学習」というのは、学習対象のデータに「正解ラベル」が含まれているもので、たとえば、Kaggleで初心者向けの課題とした出題された「House Price Prediction with Boston Housing Dataset」がこれにあたります。この課題では、ボストンで過去に販売された住宅について、その販売価格に加えて、郵便番号、部屋数、税率、周辺の大気の状態(一酸化窒素濃度)などのデータが与えられており、販売価格以外のデータから、対応する販売価格を予測するモデルを構築します。この場合、販売価格が「正解ラベル」にあたります。AutoML Tablesを用いると、このような正解ラベルを含む表形式のデータを使って、新規のデータに対する正解ラベルを予測するモデルを自動的に構築することができます。このような数値データを予測するモデルを一般に「回帰モデル」と呼びますが、AutoML Tablesでは、データが属するカテゴリーを予測する「分類モデル」を構築することもできます。
冒頭の論文では、レコメンデーションに用いられる機械学習アルゴリズムの一種である、Contextual BanditsにAutoML Tablesを利用する方法が説明されています。Contextual Banditsは、学習データの収集とモデルの学習処理を並行して行う「強化学習」の一種になりますが、順を追って説明するために、まずは、シンプルな回帰モデルの例から説明します。
あくまで架空の例になりますが、レコメンデーションの機能を持ったオンラインショップのWebサイトがあるとします。ユーザーがログインすると、いくつかのおすすめ商品が表示されます。この時、ユーザーは、おすすめ商品を選択して購入する場合もあれば、そうでない場合もあります。そして、この結果は、ログイン時のユーザーの状態を表すコンテキスト(プロフィール情報、時刻など)とあわせて、図1の様な表形式のデータとして記録されます。右端の「販売結果」には、おすすめ商品を購入した場合は販売価格が記録されて、購入しなかった場合は0が記録されます。
図1 収集した学習データの例
このデータをもとにして、AutoML Tablesを用いて、「コンテキストとおすすめ商品」から「販売結果」を予測する回帰モデルを構築することができます。数学的に表記するならば、「コンテキスト」を「状態s」、表示したおすすめ商品を「アクションa」、販売結果を「報酬r」と表して、状態とアクションのペア(s,a)から報酬rを予測する関数「r=Q(s,a)」を作ることができるというわけです(図2)。
図2 AutoML Tablesによる回帰モデルの構築
そしてこのような関数Q(s,a)ができれば、これを元にしてレコメンデーションエンジンを作ることができます。ユーザーがWebサイトを訪れてログインしたタイミングで、さまざまなアクションaについて、それをおすすめ商品として表示した場合に得られる報酬rを計算して、これができるだけ大きくなる商品を実際のおすすめ商品として選択します。--- ただし、この考え方だけでは、実際にはうまくいきません。図1のデータを集めるには、はじめからレコメンデーション機能を持ったWebサイトが存在する必要があります。つまり、レコメンデーションエンジンを作るために、レコメンデーション機能が必要になるという、「鶏と卵」の問題が発生するのです。これを解決するのが、Contextual Banditsの考え方になります。
今回は、2019年に公開された論文「AutoML for Contextual Bandits」に関連して、AutoML Tablesによる回帰モデルの構築、そして、レコメンデーションエンジンへの応用について説明しました。今回説明した方法では、「鶏と卵」の問題が発生することになりますが、次回は、これを解決するContextual Banditsの考え方を説明した上で、論文内で紹介されている、実際のデータを用いた実験結果を紹介したいと思います。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes