エンジニアの太田です。12月といえばアドベントカレンダー!ということで、弊社もFLYWHEELアドベントカレンダーを行います!
第1日目の今回は LinkedIn のA/B テスト基盤とその文化を解説した論文「From Infrastructure to Culture: A/B Testing Challenges in Large Scale Social Networks」1を紹介したいと思います。
Google や Microsoft、Facebook や Amazon といった企業はデータに基づいた意思決定を行うことでプロダクトを改善し続けています。エンジニアが新しい機能を実装するとき、その効果を A/B テスト2を用いてどのように評価するかを考慮することが求められ、結果が悪ければせっかく開発した新機能も日の目をみることはありません。しかし、各企業が使用している A/B テストのフレームワークの詳細や、テストを走らせるときの課題、A/B テスト文化を会社に根付かせるための仕組みを解説してくれている記事・論文は多くはありません。この論文では
- A/Bテストプラットフォームの技術的詳細やUIのスクリーンショット
- 実際に行われたA/Bテストの詳細な解説
- 会社にA/Bテスト文化を根付かせるための仕組み
が紹介されており、A/Bテストを導入したい企業や、A/Bテストの仕組みは存在するものの、スケールしていなかったり、開発だけでなく全社にその重要性を啓蒙していきたい人にとってはとてもありがたい論文です。
論文の概要
A/Bテストプラットフォーム XLNT
LinkedIn では、早い時期からアドホックなA/Bテストは社内の速いイノベーションのスピードに追いつけないことを問題視していました。そこで開発されたのが A/B テストのプラットフォームである XLNT(エクセレント)です。XLNTはA/Bテストのすべてのプロセス、つまりテストをデザインし、プロダクションで走らせ、結果を解析することまでサポートしています。最初は40のテスト、60の指標をサポートしていたXLNTは、この論文発表当時には同時に400のテストを走らせ、1000以上の指標をサポートするようになっていました。この急成長は、プラットフォームがスケーラブルであるだけでなく、データに基づく意思決定プロセスの重要性を強調してきた成果だと述べられています。
XLNT は以下のような課題を解決するよう開発されました
- スケーラビリティ:日々増加するA/Bテストの数とデータのボリュームの両方に対応する必要があります。
- 既存のプラクティスを組み込む:過去のA/Bテストから得たベストプラクティスをサポートする必要があります。
- 開発基盤との統合:LinkedInのサービスを構成している開発基盤にきちんと統合されています。
- フレキシビリティ:各チームは異なる指標、異なるニーズがあり、プラットフォームはそれらをサポートできるように柔軟である必要があります。
- 利便性:開発以外の人も扱えるように、デザイン、デプロイ、解析において直感的なUIを提供します。
XLNT ダッシュボードのスクリーンショット1
統一的な指標の重要性
この論文のなかで何度も強調されているのが、A/Bテスト文化を根付かせるために統一的な指標がいかに重要かという点です。
自動化された解析:解析の自動化は、A/Bテストを誰でもすばやく行えるようにするために重要です。自動化することによって、時間のかかるアドホックな解析の手間を省くだけでなく、各々の解析による間違いを無くし、複数のA/Bテスト同士で一貫性のある指標を用いて比較を可能にし、科学的に検証可能なレポートを作成することができます。
指標の責任の分担:当時の時点ですでに1000以上存在する指標を、A/Bテストチームがすべてを管理・保守することは不可能でした。LinkedInでは指標を 1)全社用 2)プロダクト別 3)機能別 の3つのグループに分け、責任を分担して管理・保守を行っています。全社用の指標はA/Bテストチームが管理しますが、プロダクト別、機能別の指標は各チームが責任を持ちます。
セグメントの解析:XLNTは詳細なセグメントの指標を見ること(たとえば 「アメリカにいるスペイン語を話す iOS ユーザー」のCTR)をサポートしています。しかし1000以上あるすべての指標に対して、すべてのセグメントの組み合わせを計算するのは、計算的・ストレージ的に現実的ではありません。そこで各A/Bテストを走らせる前に、解析する対象のセグメントを指定することで、効率化をはかっています。
ビジネスレポートとの統合:A/Bテストとビジネスレポートでは似たような指標が議論されますが、それぞれ別々に生成されると、同じ指標でも食い違うことがあります。LinkedIn では一つのシステムから生成される統一的な指標を全社的に使うことによって、混乱を避け、開発チームがA/Bテストの結果とビジネス上の指標と結びつけたり、ファイナンスチームがA/Bテストの結果をビジネス予測に利用することができるようになります。
A/Bテスト文化を育てる
データ駆動の意思決定を行うためには、便利なA/Bテストプラットフォームを導入するだけでなく、A/Bテスト文化を育てることが重要です。この論文の4章では、データ駆動型の文化を全社に根付かせるための仕組みについて述べています。
ビジネスレポートとの統合:前の章でも述べましたが、ビジネスレポートとA/Bテストの指標をまとめることでA/Bテストを開発だけでなく全社で使うことが可能になります。
サイト・ワイド・インパクトの活用:多くのA/Bテストは特定のプロダクトや機能への影響を調べます。しかし同時にサイト全体の影響を計算することでA/Bテスト同士の影響の大きさを比較が可能になります。
影響の大きいA/Bテスト(Most Impactful Experiments)を追跡:LinkedInのようなサイトでは、ある機能での変更が他の機能へ影響を与えることもよくあります。XLNTは自動で各指標への影響の大きいA/Bテストを見つけます。各チームが自分たちの指標を管理し、他のテストやローンチからの影響に注意を払うことで、社内でのA/Bテストに関する議論が活発になります。
まとめ
LinkedIn では強力で柔軟なA/Bテストのプラットフォームを作ることで、データ駆動の決断を早く大きなスケールで行うことを可能にしています。さらに、プラットフォームだけでなくA/Bテスト文化を育て、根付かせることも重要であり、そのための仕組みづくりと合わせてはじめてデータ駆動な意思決定を行うことができています。
本稿では触れられませんでしたが、2章ではXLNTの技術的詳細が語られています。また3章ではA/Bテストを走らせる上で直面する現実的な問題、例えばお互いに干渉するA/Bテストをどう走らせるかや、ユーザー同士が影響し合うSNS上でA/Bテストを走らせる上での独特な問題などにも触れており、大変興味深い知見が詰まっています。ご興味があればぜひ読んでみてください!
Notes
- From Infrastructure to Culture AB Testing Challenges in Large Scale Social Networks | LinkedIn Engineering – https://engineering.linkedin.com/data/publications/resources/2015/from-infrastructure-to-culture-a-b-testing-challenges ↩
- A/Bテスト – Wikipedia – https://ja.wikipedia.org/wiki/A/B%E3%83%86%E3%82%B9%E3%83%88 ↩