“A Dirty Dozen” の論文を読んだメモ (1): A/B テストを評価するメトリクス

ちょっと前に巷で話題になっていた A/B テストに関する MS の論文 A Dirty Dozen: Twelve Common Metric Interpretation Pitfalls in Online Controlled Experiments をご多分に漏れず読んでいるので、自分なりに気になったところを掻い摘んでメモを残していきます。

今回は chap.4 Metric taxonomy のメモです。

(Photo by Vitaly V. Kuzmin / Wikipedia)

A/B テストにおける指標値 (メトリクス) の分類

この論文では、A/B テストの結果を定量的に見るためのメトリクスをその目的ごとに以下の 5 つに分けて扱っています。

  • Data quality metrics
  • Overall evaluation criteria (OEC) metrics
  • Guardrail metrics
  • Local feature metrics
  • Diagnostic metrics

Data quality metrics

Data quality metrics は、そもそも A/B テストが正しく実施できているのか、A/B テストによって得られたサンプルが信用できるのか否かを測るメトリクスです。例えば、A/B テストにおける統制群と実験群のサンプリング比率 などがそのメトリクスに相当します。

A/B テストでは原則として、ユーザやトラフィックを統制群 (control group) と実験群 (treatment group) に同じ割合でランダムサンプリングし、実験群に対してある施策や新機能を適用するといった何らかの介入を施します。

このとき、統制群と実験群がそれぞれ 1 つであれば、サンプリング比率の期待値は 0.5 となります。その期待値に対して比率の実績値が 0.5 からずれている場合を sampling ratio mismatch と称し、A/B テストの実施に関わる何かしらの問題 (主にはサンプリング) が発生していることを示唆します。このサンプリング比率の実績値が期待値と異なる状況を見過ごして A/B テストの結果を分析してしまうと、誤った結論を導きかねません。

では具体的に「比率の実績値が期待値からずれているか否か?」を判断するにはどうしたらよいのか、というと例えば カイ二乗検定を用いた適合度検定 を利用して判断することができるでしょう。

Overall evaluation criteria (OEC) metrics

OEC metrics は、A/B テストの成否 (実験群に対する介入が思惑通りに良い結果をもたらしたのか) を判別し、またその効果が如何ほどかを測るメトリクスです。

OEC metrics に適しているのは、A/B テストを実施している短期間 (数日から数週間程度)で測定可能であり、かつビジネス的な価値やユーザの満足度を示唆するメトリクス です。ものによっては KPI で代用することもできそうですが、MAU のような長期間を対象にするメトリクスは OEC metrics としては不向きです。

OEC metrics の具体的な例としては、Trustworthy Online Controlled Experiments: Five Puzzling Outcomes Explained の論文で挙げられているように、1 ユーザあたりの平均収益 (average revenue per user) などが当てはまります。

OEC metrics はその利用用途から明らかなように 1 つのサービスやプロダクトごとに 1 つであることが理想なのですが、サービスやプロダクトによっては複数の重要なメトリクスがトレードオフの関係になっていたりして、必ずしも 1 つのメトリクスで表すことができない場合もあるかと思います。そのような場合はそれら複数のメトリクスをもって OEC metrics とします。

Guardrail metrics

Guardrail metrics は、ある A/B テストを実施したときに実験群において 良からぬ変化が起きているかどうか を検知するメトリクスを指します。

例えば検索エンジンでは、検索結果のページロードにかかる時間などが Guardrail metrics に相当します。ページロードにかかる時間は当然ながら小さいほどよいわけで、A/B テストを実施していてそのページロード時間の悪化が顕著であると明らかになれば早々に A/B テストを打ち切ってしまったり、逆にページロード時間の悪化が十分に許容できるほど小さいので A/B テストの割り当てを徐々に拡大してく… という判断も Guardrail metrics を設ければできるようになります。

そのほか Data-Driven Metric Development for Online Controlled Experiments: Seven Lessons Learned の論文では、OEC metrics で評価するのが適切ではない A/B テストを実施する際の代替メトリクスとしての利用や、ユーザ満足度といった直接的な測定が難しく OEC metrics が設定できない A/B テストにおける Guardrail metrics の利用が述べられています。

Local feature metrics / Diagnostic metrics

Local feature metrics は、プロダクトを構成する個々の機能の性能を測定するメトリクスです。例えば、何かしらの Web サービスにおいて、各種メニューやボタンなどの要素それぞれのクリック率などが Local feature metrics に相当するでしょう。

論文ではその他にも、購買ファネルにおける各ステージから次のステージへの遷移確率 (アプリインストールの広告で例えるなら、インプレッションからクリックに至る クリック率、クリックからインストールに至る コンバージョン率、インストールから課金に至る 課金率 など) も Local feature metrics であると述べています。

そして、これらの Local feature metrics はときとして、OEC metrics がなぜ変化したのかを解釈する ための Diagnostic metrics としても使われます。

ある施策によって Local feature metrics を改善させることができたとしても、必ずしも OEC metrics がそれに追従して改善するとは限らず、変化しないもしくは悪化してしまうことがあり得ます。あちらを立てればこちらが立たずといった感じで、ある Local feature metrics の改善が他の Local feature metrics の悪化を引き起こすこともあり得るため、この Local feature metrics の解釈には注意が必要です。

まとめ

  • A/B テストの結果を評価する前に、Data quality metrics でそもそも正しく A/B テストが行われていたかを確認しよう
  • A/B テストの結果は OEC metrics で評価しよう
    • OEC metrics が設定できない、もしくは OEC metrics を利用するのが適切ではない A/B テストの場合は Guardrail metrics を代替メトリクスとして利用する方法もあるよ
  • A/B テスト実施中も Guardrail metrics を観察して、明らかに期待していないメトリクスの悪化が見られたら A/B テストの打ち止めを検討しよう
  • ある Local feature metrics が改善したとしても OEC metrics は悪化しているかもしれないので解釈には注意しよう