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.

Pycon reject banditアルゴリズムを用いた自動abテスト

311 views

Published on

無事pycon JP 2017でrejectされました!
※pythonの話が1枚しかなかったのがまずかったか・・・

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Pycon reject banditアルゴリズムを用いた自動abテスト

  1. 1. banditアルゴリズムを用いた自動ABテスト 株式会社リクルートテクノロジーズ ITソリューション統括部 ビッグデータビジネスコンサルティンググループ 田口 正一
  2. 2. 2Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 自己紹介
  3. 3. 3Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 趣味etc 略歴 所属 氏名 RTC ITソリューション統括部 ビッグデータ部 ビッグデータビジネスコンサルティングG 田口 正一(たぐち しょういち) 前職:シンクタンク系SIer デフォルトリスク計量/ 与信最適化 @地銀(リテールローン) @携帯電話会社(ペイメントサービス) python歴:4歳 サッカー・キャンプ・ポケモン(赤緑〜) 自己紹介
  4. 4. 4Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 話すこと/話さないこと 基本 ・banditアルゴリズムとは ・banditアルゴリズムの種類 事例/ユースケース ・事例 ・ユースケース ・ざっくり構成 トレンド ・著名カンファレンス論文 ・論文紹介 ・詳しい実装 ・詳しいインフラ ・社内の話 話すこと 話さないこと
  5. 5. 5Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. banditアルゴリズムとは
  6. 6. 6Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 環境モデル、長期報酬を考慮しない強化学習 強化学習 banditアルゴリズム 価値関数(長期報酬) 報酬関数(短期報酬) 方策 環境モデル ○ × ○ ○ ○ ○ ○ × 構成要素 出典:強化学習
  7. 7. 7Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 持ち金を増やしたい  スロットマシンを相手にする@ラスベガス
  8. 8. 8Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 持ち金を増やしたい  情報がなければ合理的な選択は不可能 期待 報酬 p1 p2 p3 p4 結局どれがいいの さ・・・
  9. 9. 9Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 情報を集める  ないならプレイして情報を集める 期 待 p1 p2 p3 p4 結局・ 期 待 p1 p2 p3 p4 p1良さ げ? 時刻t =0 時刻t =1 プレイ & 報酬観 測 腕1をプレイ &報酬観測 報 酬 0 0 0 0 総 数 0 0 0 0 報 酬 1 0 0 0 総 数 1 0 0 0
  10. 10. 10Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 情報を集める  期待値に基づいてのプレイが基本方針 期 待 p1 p2 p3 p4 P4最大 期 待 p1 p2 p3 p4 p3最大になった 次はp3か・・・ 時刻t 時刻t +1 プレイ & 報酬観 測 腕4をプレイ &報酬観測 報 酬 r1 r2 r3 r4 総 数 s1 s2 s3 s4 報 酬 r1 r2 r3 r4 総 数 s1 s2 s3 s4+ 1
  11. 11. 11Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 期待値の見積  期待報酬分布を台ごとに生成  ※以降Thompson Samplingの例 時刻t =0での各腕期待報酬分布例 時刻tでの各腕期待報酬分布例 期 待 p1(0) p2(0) p3(0) p4(0) 時刻t =0 報 酬 r1(0) r2(0) r3(0) r4(0) 総 数 s1(0) s2(0) s3(0) s4(0) 期 待 p1(t) p2(t) p3(t) p4(t) 時刻t 報 酬 r1(t) r2(t) r3(t) r4(t) 総 数 s1(t) s2(t) s3(t) s4(t) beta分布で期待 報酬の事後分布を 近似 pn(t) ~ beta(rn(t),sn(t)- rn(t))
  12. 12. 12Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 実際の動き  最初の方はランダム選択(に近い)  情報があまりないので期待報酬推定値が似たような感じになる  情報が増えれば適切な腕ごと報酬分布を推定できる  最適報酬腕をプレイする可能性が上がる ※Thompson samplingでは各分布から1点サンプリングを実施、実現値の最も 高い腕をプレイする 時刻t =0での各腕期待報酬分布 時刻tでの各腕期待報酬分布 各腕プレイ時の 成功/失敗情 報を得る
  13. 13. 13Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 評価指標  Regret = Σ(最適腕の報酬 – 実プレイした腕の報酬)  Regretの最小化を目指す グラフ出典:DataOrigami https://dataorigami.net/blogs/napkin-folding/79031811-multi-armed-bandits 最初は探索的に色々な腕をプ レイするので、Regretが急上 昇 ある程度時間が経つと最適選 択をする可能性が高まり、 Regretの成長は鈍化 ランダム探索よりはるかにマシ
  14. 14. 14Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. banditアルゴリズムの種類  banditアルゴリズムは様々存在する
  15. 15. 15Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 事例紹介
  16. 16. 16Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他社事例  楽天  Cookpad  yahoo  MSN, LinkedIn
  17. 17. 17Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他社事例  楽天  スーパーセール  成約率5%向上 出典: http://business.nikkeibp.co.jp/atclbdt/15/258673/070400266/?n_cid=
  18. 18. 18Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他社事例  Cookpad  contextual banditらしい  対探索時でCTR160% 出典: http://techlife.cookpad.com/entry/2014/10/29/
  19. 19. 19Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他社事例  yahoo  STORY部分にF1~F4のどれを出す?  LinUCB(disjoint,hybrid)を用いた  ε-greedyと比較してCTRが2倍以上 • hybridは早く学べる • disjointは伸びしろあり 出典: http://rob.schapire.net/papers/www
  20. 20. 20Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他社事例  MSN, LinkedIn 20 出典: https://www.quora.com/Are-contextual-bandits-used-in-practice-What-is-their-track-record https://www.quora.com/How-widely-are-bandits-algorithms-used-in-real-modern-recommendations-systems-A
  21. 21. 21Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 自社事例 目的/実施内容  目的  CVR上げたい  (副次的に)工数を削減したい  実施内容  クリエイティブ出しわけ  過去2パターンABテストを手動で実施した結果、数%CVR向上した → banditでパターン数を増やし、より良い結果を目指す  内部的に割り振っているクラスタ情報が存在するので、クラスタ単位での出し わけ
  22. 22. 22Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. アルゴリズム選択  要件  要件的にニュース等と違い、リアルタイム更新の必要性は薄い  論文等で主張されている評価基準(Regret)だけで選べない • 実際に自環境で達成できるかは全く別(特に難しいロジックは) • 事前にある程度の性能予測をしたい ※結果的にどの程度のCVR等KPIの向上が見込めるかは不明(出し分け内容に よるので)だが、現状より良い報酬を持つものがあった場合、きちんと良いものを選 択できるようになるかを見極める  事前の性能予測がいい感じでも、本番でうまく動くかは不明 • ミニマムで作って本番へ • うまくいったらスケール/ロジックエンハンス • リアルタイム更新でないケースでうまくはまる、実装や本番との連携が簡単な仕組み を作る →Thompson Samplingを採用
  23. 23. 23Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. Thompson Sampling  pseudo code(参考まで)
  24. 24. 24Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 他に考慮すべき点  やる事が決まった上でどうロジックを組み込むか  ファイル連携?api?  簡単に実現したい  有事の際すぐにリカバリーできるようにしたい →ユーザ側(フロント)での調整にも対応出来るよう、ファイル連携を選択 案 動き メリット デメリット api 叩かれた時に計算、 プレイ腕を返す フロント実装が楽 フロント側から見て ブラックボックス 叩かれた時にapi側 で持つ確率ファイルか ら抽出、プレイ腕を 返す フロント実装が楽/ API計算はバッチで済む フロント側での調整 /緊急対応しづらい ファイル連携 webサーバ側で持つ 確率ファイルからプレ イ腕を決定 API計算はバッチで済む/ ユーザ側で明日の出し分け 確率がわかる フロント実装が面倒
  25. 25. 25Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. チューニング  ファイル連携なら多少計算時間がかかっても許される  +本来のThompson Samplingの動きと違うので、確率ファイルの生成をする 必要がある  収束保証のない(※)中で、多少時間がかかってもいい動きをするようにしたい ※強化学習系の手法一般に言える(はず)
  26. 26. 26Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. シミュレーション  banditアルゴリズムのバックテストは一般的に難しい  そもそも都合のいいデータがないと不可能  都合のいいデータがある際のテスト方法: https://arxiv.org/pdf/1405.3536.pdf https://arxiv.org/pdf/1003.5956.pdf  シミュレーションでいいものを選ぶ  試したパラメータ • beta分布のパラメータキャップ – 過程で分布が過度に尖ってしまい、プレイする腕の期待報酬分布が尖り過ぎるのを防ぐ。 beta(a,b)のときa+b<=nの範囲で按分する – {100, 200, 300, 500, 700, 1000, なし} • Thompson Sampling実施回数 – プレイする腕を選択する際、TSを何回実施した結果を用いるか – {1, 5, 10, 15, 20, 30, 50, 75, 100}
  27. 27. 27Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. シミュレーション  検証: • 複数の選択肢が存在し、それぞれ報酬が違う場合、時間経過とともに良いものを選択する確率を高めて いけるか、その時のパラメータは何か  前提: • 真の報酬:0.4%を中心に上下4段階ずつ、計9つの腕を用意 • 1段階変化ごとに±3%(元の値から)報酬を変化させている • 1日2000プレイの結果(表出コンテンツ/cv or not)が手に入る • テスト期間は60日間 • 各実験で1000トライアルずつ実施した時の平均報酬の変化をプロット シミュレーション結果 縦軸:期待報酬 横軸:日 この辺が良 さそう
  28. 28. 28Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. ユースケース  以下2点を満たすABテストはbanditアルゴリズムで代替できる可 能性が高い  過去のデータが存在しない(or (特徴)量が少ない)  目的はバイナリ報酬(CV等)の短時間での最適化  古くから存在する簡単なアルゴリズムにもかかわらず適用範囲は広 く、(特に上記ケースでは) ABテストの上位互換として機能すること ができる ※online learning文脈では有用な手段の一つとして地位を確立して おり、主要機械学習カンファレンスに通ったbandit系の論文は相当数 存在し続けている(1カンファレンスあたり~10本程度)
  29. 29. 29Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. デイリーバッチでの計算 出し分け確率を記述したファイルを本番に連携 hadoop adobe analytics (サイカタ) EC2 バンディットエンジン サーバサイド コンテンツ出しわけ モジュール 本番DB コンテンツ&クラスタ と表示確率のペア サイカタ集計 ざっくり構成(全体) S3
  30. 30. 30Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. hadoop サイカタ集計 IF AWS EC2 ③bandit演算 S3 演算終了監視 & IF ①アップロード ⑥ダウンロード or タイムアウト ⑤監視 ④リスト配置 ②イベント発行 ざっくり構成
  31. 31. 31Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. banditアルゴリズム:研究トピックのトレンド  制約付き  バジェット付き  時間経過で腕/ 報酬が変化(中身変化/ 消滅/ 誕生)  ランキング学習  無限腕bandit  グラフとの組み合わせ  適用領域のエンハンス  ページ全体のUI改善  インタラクティブレコメ  オフラインテスト手法 抜粋: KDD, AAAI, NIPS, ICMLの最新accepted papers ※NIPS以外は2017, NIPSは2016,WSDMでは発見できず
  32. 32. 32Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介①  Unimodal Thompson Sampling for Graph- Structured Arms(@aaai17)  無向グラフ+Thompson Sampling • 探索範囲を効率的に絞って、パフォーマンスを上げることが目的  セッティング • 腕をエッジとみなす – 仮にEを最適腕だとする • エッジ間接続 (ノード)を確率pでランダムに作る – on random graphs(1950年代論文)の手法に基づく、ただし » どこからのエッジからでも、移動を繰り返せば最適腕への経路が存在する前提 » 最適腕に近づく際、期待報酬の減少は起こらない前提(両方厳しい・・・) B A E G F DC
  33. 33. 33Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介①  当該時刻で(接続している腕のうち)期待報酬最大のエッジを選択 • リーダーアームと呼ぶ  ある基準(※)で選択したエッジをプレイ、基準以外のケースだと選択エッジに 接続された腕全てでTS実施、最も期待報酬の高いものをプレイする  期待値最大の腕選択に戻る ※後述 B A E G F DC
  34. 34. 34Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介① B A E G F DC  最適腕へ収束していくプロセス  Eをリーダーとして選択→最適腕を選択できている、正解  Cをリーダーとして選択→B,C,EでTS、Eの期待値の方がCより高いので、いず れEがリーダーとして選択される  Bをリーダーとして選択→A,B,C,DでTS、いずれCがリーダーとして選択される。 理由は同上 →Optimal Armに向かっての滝登り
  35. 35. 35Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. G(グラフ),T(制限時間), π(事前分布)を入れる 全腕で時刻Tまでの期待報酬を計算 通算報酬最大の腕(最適腕)を特定 最適腕としての被選択回数 /( 接続ノード数+1) 最適腕をプレイ 最適腕+隣接腕でθだけサンプリング 報酬が最大になる腕をプレイ 論文紹介① ※5行目はRegret計算を簡単にするために、先行論文での提案手法でも導入されているとのこと(本人談) 先行論文での手法:GLSE(Jia and Mannor, 2011), OSUB(Combes and Proutiere, 2014)
  36. 36. 36Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  Efficient Ordered Combinatorial Semi-Bandits for Whole-page Recommendation(@aaai17)  表出するコンテンツ/場所の最適化を同時に目指す  内容的には2016WSDMでのBestPaper, ”Beyond Ranking: Optimizing Whole-Page Presentation”(リンク↓)と似てる  https://pt.slideshare.net/techblogyahoo/wsdm2016beyond- rankingoptimizing-wholepage-presentationyjwsdm BestPaper Efficient~検索結果 全体最適 コンテンツ/ポ ジション最適
  37. 37. 37Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  Best Paperとの比較  どちらもyahooデータセットを使っている論文  どちらも著者にyahoo関係者が入っている Best Paper 紹介 最適化範囲 検索結果全体 コンテンツ表出箇所 アルゴリズム GBDT Thompson Sampling 前提 ランダム出し分け結果が手元にある (論文だと800万PV分) 特になし 特徴量 コンテンツの特徴 ポジション 情報種類(文字、画像、動画等) 情報特徴(サイズ、フォント等) コンテンツの特徴 ポジション
  38. 38. 38Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  やってること  contentsの数:n  候補ポジションの数:k  前提 • 同じコンテンツでも、出すポジションによって報酬が変わる • 1つのポジションには1つのコンテンツしか出せない  場所、コンテンツの配置を下記のように表現する m1 m2 ・・ mk c1 1 c2 1 : 1 cn 1 m1という場所にc1コンテンツ が置かれている & mkという場所にc2コンテンツ が置かれている : : コンテンツ ポジション
  39. 39. 39Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  整数問題→線形計画  上記パターンで実現出来る報酬を最大化するには整数問題を解く  整数問題はコストが高い  {0,1}から[0,1]への変換をしても、得られる結果は同じ  整数問題→線形計画への変換 m1 m2 ・・ mk c1 1 c2 1 : 1 cn 1 m1という場所にc1コンテンツ が置かれている & mkという場所にc2コンテンツ が置かれている : : コンテンツ ポジション
  40. 40. 40Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  最適配置を実現し、CVR最大を目指す  Thompson Samplingでの実現  報酬 r = f(contents, position) ~ 何かしらの期待報酬分布  各選択の期待報酬は下記のように表現できる  f(cn,mk)で表現される分布からサンプリングを実施、実現値を抽出する  あとは線形計画を解いて解を得る m1 m2 ・・ mk c1 f(c1,m1) f(c1,m2) ・・ f(c1,mk) c2 f(c2,m1) f(c2m2) ・・ f(c2,mk) : : : ・・ : cn f(cn,m1) f(cn,m2) ・・ f(cn,mk)
  41. 41. 41Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. 論文紹介②  実験結果
  42. 42. 42Copyright © Recruit Technologies Co., Ltd. All Rights Reserved. まとめ  banditアルゴリズムは  online learning文脈では今でも有用な手法である • 最新の機械学習カンファレンスでも新規手法の提案がある • 特にニュースサイトでは必需品である  データが存在しない/集めづらい領域の最適化ができるようになる  汎用性が高く、アルゴリズム自体も非常に簡単である ※触れなかったけど、アルゴリズム同士を戦わせるbanditとかでも使える(レコメA vs レコメBとか)  アルゴリズム自体に収束保証がない+手動で出し分けを実現した い/一旦終了したいケースが想定されるので、緊急停止ボタン/手 動管理できる仕組みの構築推奨

×