NIKKEI TECHNOLOGY AND CAREER

ベイジアンA/Bテストの利点と実験計画策定に関する一検討

この記事はNikkei Advent Calendar 2022の 16 日目の記事です。

情報サービスユニット(BtoBビジネスを展開する部署です)にてデータサイエンティストをしています西川・増田です。 この記事では、弊部署で展開を始めたベイジアンA/Bテストの利点と、その実験計画の一部について簡単に紹介します。

A/Bテストとは?

ここではA/Bテストについて概観しますが、自社のプロダクトにおいて施策の効果を測定したいという課題を抱えている方であれば既にご存知の方も多いと思いますので、適宜読み飛ばしてください。

A/Bテストとは、画面要素やテキストの文言などのUIやUXの変更によってどれくらいの効果が発生したかという測定を、なるべく偏りなく実行するための一連の実験のことを指します。ユーザを2群以上のグループにランダムに分け、一方の群にのみ実際の変更を適用し、他方には変更前の体験を続けて提供します。これにより、群間の分布の差を定量的(統計的)に検定することができるため、いわゆるテックジャイアント企業もこぞって導入している黄金律であり、効果をなるべく正しく検証するための最善の方法と考えられています。

頻度主義に基づく分析の問題点 -なぜベイズ的に解くか-

「A/Bテスト」というキーワードを入力すると、検索エンジンでヒットする記事は、現状ではまだベイズ的に実行している例が多く挙がるわけではないと思います。最近ではソウゾウさん 1、AI Shiftさん 2 のブログなどでも紹介されていましたが、少なくとも2022年現在の日本において、普及しているという事例を耳にすることはそこまで多くありません。では、なぜ私たちはあえてベイズ的にA/Bテストを実行しようと決断したのでしょうか。

ベイジアンとの対比として、従来よく用いられている頻度論があります。頻度論による検定の欠点としてよく挙げられるのが、「停止規則に依存する」というものです。この言葉だけ見てもよくわからないと思うので、これがどういうことか、どのように不自然なのか、を見ていきましょう。

例えば、公平かどうか確かめたいコインがあり、コインの表が出る確率が0.5、という帰無仮説を立てて検定をしたいとします。24回投げて8回表が出たとします。

この時、実験者が「8回表が出るまでコインを投げ続けた」か、「24回という回数を最初から決めて投げた」かで、p値が異なるという欠点があります。なぜなら、p値の定義は、

意図されたサンプリングや検定の手続きを用いるときに,仮定した母集団から実際の結果以上に極端なサンプルの結果を得る確率 3

だからです。(このように、意図した実験のもとで起こりうる結果の確率分布を「サンプリング分布」と言います。何回も同じ意図で実験した時にどのような分布になるか、と考えればわかりやすいかもしれません。)この例のように、実験を終了する条件のことを停止規則と上で呼んでいました。

もう少し詳しく書くと、「8回表が出るまでコインを投げ続けた」ときは、サンプリング分布は以下の図1のような負の二項分布(負の二項分布とは、表が出る回数を決めた時の投げた回数の分布になります[1])で与えられます。p値は0.0466になります。

負の二項分布のp値

一方、「24回という回数を初めから決めていた」ときは、サンプリング分布は以下の図2のような二項分布(二項分布とは、投げる回数を決めた時の表が出る回数の分布になります[2] )で与えられ、p値は0.0758になります。

二項分布のp値

仮に有意水準を事前に5%と決めていたとすると、両者で帰無仮説を棄却するかどうかが変わってしまいます。 つまり、同じデータを得ても、実験者の意図した停止規則に結論が依存してしまうのです。

しかし、ベイジアン分析では推論結果が停止規則に依存しません。これは頻度論の分析に対する大きな長所の一つです。

ベイズのその他の利点:階層的な統計モデリングを利用することで複数の施策を一度のテストで評価できる

これから述べることの概要は、『ウェブ最適化ではじめる機械学習 4』に詳説されているため、ここでは我々なりの解釈で話を進めます。

ベイジアンA/Bテストを用いることのもう1つの利点として、「複数の要素を組み合わせた場合に、1度のテストで各要素の効果を推定できること」が挙げられます。

簡単に説明すると、クリック率を表す分布を何か1つだけ仮定する代わりに、そのさらに背後に「画面要素1の効果を表す分布」、「画面要素2の効果を表す分布」…の存在を仮定し、それらの線型結合によってクリック率が与えられることにします。この方法により、それぞれ求めた事後分布が0より大きい範囲が大きい(95%以上など)場合に正の効果があった(その逆である0より小さい範囲が大きい場合は負の効果があった)と解釈することができます。ただし、それぞれの要素の交互作用を考慮するかしないかなど、分析者の物の見方をモデリングに反映しなければならない余地も残っているため、全自動で分析結果をポンと出せるという類の手法ではないことにご留意ください。

A/Aテストの重要性

それでは実際にA/Bテストを実行しましょう、となった時に大事になる概念が「A/Aテスト」です。なぜこのテストが必要なのでしょうか?その理由は、一言で言うと「実験設定に問題がないかをデバッグ的に確認したいため」です。仮にランダムに振り分けた群の間で、介入施策の実施前に分布に大きな乖離があるとしたら、事後的に両者の分布の統計的な有意差を確かめたかったにもかかわらず、純粋に比較したかった変更要素の効果によるものなのか、単に事前に発生していた分布の乖離によるものなのか区別がつかなくなります。以上の理由から、A/Aテストの導入は頻度主義・ベイズ主義にかかわらず重要であると考えます。

A/Aテストをベイズ的に実行するために考えたこと

『A/Bテスト実践ガイド 5』、通称「カバ本」は、A/Bテストを新たに学ぼうとする方なら一度は耳にしたことがあるのではないかと思います。実際に「カバ本」は、テストの計画や運用に関する注意事項や落とし穴について多面的に解説してあるバイブル的な本であると言えるでしょう。しかしながら、この本で紹介される解析手法は帰無仮説に基づく検定(NHST; Null Hypothesis Significance Testing)を前提としており、ベイズ的なアプローチについてはほとんど触れていません。例えば、A/Aテストの手法の1つとして「p値の分布が一様分布に近いこと」を挙げていますが、そもそもベイズ的アプローチではp値を算出することが一般的ではないので、私たちはどのようにA/Aテストを施行するか考える必要がありました。

それでは私たちが検討したベイジアンA/Aテストの方法の1つを紹介します。もちろん、これが唯一の正解であるというわけではありません。私たちは「テストを実行する前に、振り分けた群の直近のログからクリック率の事後分布を求め、その重なりが無視できない(具体的には、それぞれの群の差の分布の95%ベイズ信用区間が0を跨いでいる)ことを確認できれば、差のない分布であるとみなす」と判断することにしました。

以下ではクリック率を例に用いて説明します。私たちはあるプロダクトにおいて、まず画面要素の変更パターンを合計12通り計画し、クリック率のA/Bテストを実施するために、事前にハッシュ関数を用いて[0]から[11]までの12個の群(グループ)にユーザをランダムに分類しました。次に、事前分布として一様分布を選択し、尤度関数は「テスト実施前の」群内の一定期間のクリック数を用いた二項分布でモデリングすることにし、各群においてクリック率の事後分布theta[0]~theta[11]をMCMCで求めました。その結果、各群のクリック率の差の分布に関する95%の最高事後密度ベイズ信用区間(HDI; Highest posterior Density Interval)は下図のようになりました。ご覧の通り、事後平均(点推定値)に多少のばらつきは出るものの、HDIが全ての群の組み合わせで0をまたぐことが確認できました。

A/Aテストの結果

以上のことから、各群は事前のA/Aテストにてクリック率に統計的に有意な差がないことを確認できました。今後はこの考え方を様々なテストに適用し、上記に挙げた利点を生かした効果測定を推し進めていく予定です。

おわりに

この記事では、ベイジアンA/Bテストの利点について、またその具体例としてA/Aテストの導入方法について説明しました。

日本経済新聞社では、私たちの所属する情報サービスユニットに限らず様々な部署でA/Bテストの導入をますます加速させている真っ最中です!少しでも業務内容にご興味のある方はぜひ、採用インターンのページをご覧ください。

アドベントカレンダーの明日の記事は梅崎さんによる「電子版アプリAPIでのHTTP/3対応と現在のHTTP/3アクセス状況」です。引き続きお楽しみに!

注釈

[1]: 詳細は https://manabitimes.jp/math/1387 を参照

[2]: 詳細は https://manabitimes.jp/math/913 を参照


  1. KatoNao 著, 『ソウゾウにベイジアンA/Bテストを導入しました』, 2022.
  2. 柾屋 著, 『【AI Shift Advent Calendar 2022】ベイズ推定を用いたA/Bテストの評価を実際に試してみた』, 2022.
  3. 次の書籍から引用しています: John K. Kruschke 著,『ベイズ統計モデリング 原著第2版 ―R,JAGS,Stanによるチュートリアル―』, p304, l24-26, 共立出版, 2017.
  4. 飯塚 修平 著,『ウェブ最適化ではじめる機械学習』, オライリー・ジャパン, 2020.
  5. Ron Kohavi, Diane Tang, Ya Xu 著, 『A/Bテスト実践ガイド 真のデータドリブンへ至る信用できる実験とは』, ドワンゴ, 2021.
増田太郎
DATA SCIENTIST増田太郎
西川 凌
DATA SCIENTIST西川 凌

Entry

各種エントリーはこちらから

キャリア採用
Entry
新卒採用
Entry
短期インターン
Entry
カジュアル面談
Entry