Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Contextual package

400 views

Published on

Rのcontextual packageの紹介です。

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Contextual package

  1. 1. contextual package Japan.R Shota Yasui 2018/12/1
  2. 2. Shota Yasui (@housecat442) 所属: Adtech Studio AILab 経歴: 2013年 CA新卒入社 広告事業本部 2015年 Adtech Studio 異動 DMP 2016年 Dynalyst(DSP)→ProfitX(SSP) 2017年 AILabで研究をスタート 元々は経済学と因果推論をやってました。 アドテクでは機械学習利用の設計や検証をしたり、 機械学習の知識を前提としたデータ分析をやってます。 2
  3. 3. そもそもバンディットとは・・・? x candidates a,b,c,d b Y policy = Predict + decision slot _1 slot _2 slot _3 slot_1 slot _2 ● ユーザーに見せる広告のテンプレートを決めたい ● 次々とくるユーザーに対して最も clickされそうなテンプレートを選択する ● 選ぶ→結果を見る→選ぶ→結果を見る→選ぶ・・・・を一定期間続ける →逐次的に意思決定をする時に望ましい結果をなるべく大きくするようなアルゴリズム
  4. 4. 活用と探索の話 slot _1 slot _2 slot _3 slot_1 slot _2 ABtest CTR = 10% CTR = 5% slot _1 slot _2 slot _3 t = 1 t = 2 割と良くやられている話・・・ どっちが良いか解らないからまずは ABテストで比較 よかった方を採用して使う
  5. 5. 活用と探索 slot _1 slot _2 slot _3 slot_1 slot _2 ABtest CTR = 10% CTR = 5% slot _1 slot _2 slot _3 t = 1 t = 2 というかABテストのモチベーションはほとんど・・・ どっちが良いか解らないからまずは ABテストで比較 よかった方を採用して使う探索 活用
  6. 6. Contextual Package ● Banditのシミュレーションと、オフライン評価を行うもの。 ○ 人工データ=シミュレーション(今日はこっち ○ 実データ=オフライン評価(いつもはこっちの話してます ● インストール方法 ○ 一応CRANにもあるが
  7. 7. Epsilon-Greedy ● 選択肢の性能を評価して、最も良さそうなものを一定確率で選ぶ。 a. この確率をEpsilonと呼ぶ ● 選択肢の評価方法 a. 単純に集計する:click回数/表示回数 を選択肢ごとに算出 b. モデルで評価する:選択肢ごとに回帰モデルを作ってユーザーの情報とかを入れる ➡このふたつを比較するシミュレーションを行う
  8. 8. シミュレーションの設定を決める シミュレーションのiteration回数を決める。2000回意思決定させる。 同じシミュレーションを何回繰り返すか決める。 50回 列が選択肢を表す。 →1列目は選択肢1がサンプルタイプ1で0.8の性能があり、他では 0.1しか性能がないことを示している。 行がContextを表す。 →1行目はサンプルタイプ1で、選択肢1が 0.8の性能があり他の選択肢は 0.1しか性能がないことを示す。 三つの腕と、三つのタイプのサンプルで、 それぞれの性能を決める。
  9. 9. シミュレーションのセットアップ 報酬が2値で、contextで報酬の期待値が変化する様な バンディットシミュレーションを作る。 シミュレーションで評価したいアルゴリズムを決める。 ● ContextualBinaryBandit$newで腕とデータの生成を行う。 ● weightの設定に基づいて選択肢の登録やデータも勝手に作ってくれる。 ● Agent$newで試したいシミュレーションを作れる。 ○ EpsilonGreedyPolicy:単純集計で選択肢を評価する ○ ContextualEpsilonGreedyPolicy:回帰モデルで選択肢を評価する ○ 0.1は評価に関わらずランダムに選ぶ確率
  10. 10. シミュレーションのセットアップ ● Simulatorに作ったagentや設定を入れる。 ● defaultでdoparallelがONなので注意 ● $runでシミュレーションを実行
  11. 11. regretの結果 ● 二つの方法の結果を比較 ● 理想的な選択の結果からの悪化を regretと呼ぶ ● E Greedyはサンプルのタイプを気にせに全体平 均的に良いものを選ぶ。 ● cE Greedyはサンプルのタイプごとに良いものを モデルで見つける。 ● 結果的に後者の方が圧倒的に悪化が小さい →よりベターな選択ができている。
  12. 12. 何が嬉しいのか? ● 色々な設定で検証ができる ○ 他の意思決定方法と性能を比較できる ○ Agentを自分で実装しなくて良いので楽 ● 実問題を想定した評価もできる ○ Replay Methodの再現とかもできる ○ ランダムに選択したログをプロダクトからもらえば、バンディットでどの程度改善できそうかは示すこ とができる。
  13. 13. Enjoy!

×