RailsにBundit Algorithmsを導入する

A/B test

Bundit Algorithmsとは何か?

もともとギャンブルに対する最適な戦略を考えることから始まったデータに基づいた意思決定手法。

Q. 目の前に5つのスロットマシンがある。
それぞれのスロットマシンの当たる確率とその時の報酬は異なる。
さて、手元に100枚のコインがある時、
どのようにコインを配分すれば得られる報酬を最大化できるだろうか?

一般的なスロットマシンには腕と呼ばれる棒がついており、コインを投入してその棒を引くとドラムが回転し始める。つまり上の問題は最も効率的なスロットマシンの腕の引き方を考えるということだ。

そういった理由からBundit Algorithmsでは一つ一つのデザインを腕と呼ぶ。実際、WikipediaでもMulti-armed bandit – Wikipedia, the free encyclopediaという名前で説明されている。ちなみに2015年3月19日執筆時点で日本語版のWikipediaは見つからない。

上の問題のBundit AlgorithmsをWebサイトに当てはめると5つのスロットマシンは5つのデザインに、100枚のコインは100人のユーザになり、この時、どのようにユーザに5つのデザインを表示させれば得られる報酬(=コンバージョン)を最大化できるだろうか?、ということになる。

詳細が知りたい方は以下の書籍に記載されているので一読してみても良いかも。

どうやって導入するの?

[前回]導入したSplitのA/BテストアルゴリズムにBundit Algorithmsを適用するだけで導入できる。

Split.configure do |config|
  config.algorithm = Split::Algorithms::Whiplash
end

関連情報