Drkcore

06 02 2013 Python Tweet

A/Bテストを超え、学習しながらウェブを最適化させる手法 (Bandit Algorithms for Website Optimization)

ふと気になったので読んでみたら、当たりをひいた。

強化学習をウェブサイトの最適化に利用する方法に関しての本で、A/Bテストの何が問題かを説明してそれを克服するためのアルゴリズムを3つ紹介している

  • Epsilon-greedy
  • SoftMax
  • UCB1

コードはPythonで書かれているので読みやすい。

ProductName Bandit Algorithms for Website Optimization
John Myles White
Oreilly & Associates Inc / 2000円 ( 2012-12-31 )


実際のビジネスでは、A/Bテストで等確率でAB振り分けるために劣っている方のテストの分だけ収益が減ってしまうし、かといってテストをしないと、よりよいサイトを見出す機会がなくなってしまう。つまりexploreを最大化するか、exploitを最大化するかというようなジレンマを抱えることになる。

求められているのは、劣っているサイトデザインに対するテスト(損失)を最小にしつつベストなサイトデザインに収斂していく手法である。そういう問題をMultiarmed Bandit Probremと呼ぶらしく、上の3つはそういった問題を解くためのよく知られたアルゴリズムだそうだ。

最初の2つはランダム性を使う(Softmaxは焼きなまし法だ)のに対し、UCBはつかわない。UCB1は明らかに期待を持てないオプション以外のものを選択しつつ、期待値を更新していくという方法で、駄目なオプションをドンドン脱落させていくイメージに近い。

UCBはちょっと前までコンピューター囲碁にも使われていたらしい。コメントで触れられているpdfがわかりやすい。

局面を上手にスコア化して期待値の高い手を選択していくという手法は結構面白いかもしれない。例えば創薬のプロジェクトを将棋とか囲碁のようなものと捉えて、これから合成しようとしている化合物群が、求めるプロファイルにどんだけ近づいているかとかそんな期待値をスコア化して、exploreとexploitをバランスよく取り入れるとかはやれるんじゃないかなぁ。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021