中国大手3社BATも使っている ABテストの落とし穴
インターネットの世界では、ABテストはこれまでにない程重要なものだと認識されています。
目次
有名な2つのケース
ケース1:オバマ大統領の選挙チームが用いたABテスト
2008年、オバマ氏は選挙で勝利し、米国の第44代大統領となりました。この時の彼の選挙チームの働きは無視できません。大統領選挙のページの中で、オバマ大統領のチームはABテストを利用して、16ものパターンの中から最良のパターンを選び出しました。結果として、選挙ページの”change” のコンバージョン率が40.6%向上しました。
図1
図2
この実験では、図1の画像または動画(4種類)と図2の異なるボタン(4種類)を自由に組み合わせ、16種類の異なるパターンを作りました。全てのパターンでそれぞれ一定のトラフィックが得られたことを一定の期間観察した後、最高のコンバージョン率だったパターンを選び、すべてのユーザーに適用しました。
最終的に残ったのは下のパターンでした。
オバマ大統領の選挙チームの説明によると、ユーザーは動画の再生に大きなプレッシャーを感じやすく、その時のネットワーク環境も再生効果を保証できそうにありませんでした。それで、動画よりも写真を重視したデザインが選ばれました。温かい家庭が写っている写真が選ばれたのは、アメリカ人が家庭を大切にする文化を持っているためで、有権者との距離を縮めることができると考えられたようです。ボタンに書かれているメッセージも、アメリカの有権者が独立した考え方を強く意識していることを踏まえて選び抜かれました。非常にシンプルでも、粗暴だったり、扇動的になる恐れのある、”join us”(加入しよう!)とか”sign up”(サインアップしよう!)といったメッセージは避け、皆が受け入れやすく、平和的な”learn more”(もっと知りたい方は…)という言葉が選ばれました。
ケース2:Facebookが用いたABテスト
2012年、Facebookの製品VPを務めたSam Lessin氏は、ザッカーバーグ氏の強い支持を得て30人から成るチームを率い、新しいバージョンを半年以上の期間をかけて開発しました。 ネット上に公開される前の外部ユーザーおよび社内従業員の評価では、新しいバージョンはクールでファッショナブルであり、旧バージョンよりもはるかに見た目の良いものでした。(下の2つの図を参照)
旧バージョン
新バージョン
Facebookは、世界でも一流のインターネット企業であり、重要な反復ではABテストを確実に行ないます。初めは新しいバージョンにトラフィックの1%を割り当て、その後徐々に2%、5%と増加させました。
テストの結果は予想外のものでした。新しいバージョンは、ユーザー参加度、オンラインになった時間、広告の数、収入および4つのコアとなる指標において、古いバージョンよりもずっと劣っていたのです。
最初は、ユーザーが新しいバージョンに慣れていないためだと考えられていたので、トラフィックが12%に拡大され、観察期間も3ヶ月に延長されましたが、結果は同じように悪いものでした。新しいバージョンは20%の収入減少を招くことになり、最終的にFacebookは思い切った決断をし、すべてのユーザーを古いバージョンに戻しました。そうしてやっと、以前と同じような成績に回復したのです。
中国でも、有名な大学生ソーシャルネットワーキングサイトが、少量のトラフィックを割り当てて行っていたBプランのテストをいきなり全トラフィックに切り替えてオンラインで公開しました。結果は皆さんもご存知の通りです。現在このサイトは、完全にインターネット界で三流に落ちぶれてしまいました。
こうした例から分かることは、恐ろしいのは商品の失敗自体ではなく、ABテストを行わないまま、直接商品をオンラインで公開してしまう会社のシステムや文化だということです。
では、国内の一流企業が行なったABテストの一つのケースを見てみましょう。
ABテストの一つのケース
上にある2つの異なるパターンのカードでABテストを行なったところ、最終的にパターン2はパターン1に比べて、CTR(クリック率)が24.8%向上しました。
ABテストなしでいきなりオンライン上に公開する場合、チームのメンバーは自分を正当化するためのデータを必死に見つけなければなりません。たとえ証拠となるようなものがこじつけであっても、対外的には「改善されました!」とでも発表しておけば、多くの人はひっきりなしに「いいね!」を押してくれるものです。
でも、実際のところ、GoogleやFacebook、MicrosoftがABテストをした結果、90%の新しいデザインが現状のものに劣る、ということを覚えておかなければなりません。いくら自分のチームが素晴らしいといっても、GoogleやFacebook、Microsoftに匹敵するわけではないでしょう。
チームが非常に独創的であっても、皆が自分の意見に固執し、互いに誰も説得できないようなら、チームとしての意思決定は難しくなります。
ABテストは、チームの変化から始まります。誰の考案したパターンが優れていて全面的に推進していくかを、ああでもない、こうでもないと激しく議論するよりは、ABテストを実行してそのデータを元に決定すればよいのです。
以下では、ABテストの基本的な概念と、よく陥りがちな落とし穴について詳しく説明します。
ABテストとは何か?
例を挙げてみましょう。あなたがある製品の改善提案をし、それをバージョンBと名付けたとします。しかし、既存のバージョン(バージョンA)よりも効果があるかどうか分かりません。
それで、オンラインユーザーのトラフィックのうち1%をバージョンBに回し、残りの99%をバージョンAに残しておきます。そして一定期間観察したのち、もしバージョンBがバージョンAよりも優れているなら、トラフィックの100%をBに回します。もしAがBよりも良いようなら、改善策を練り直してからもう一度テストを実施します。もし新しいバージョンがABテストを実施することなくオンラインで公開されれば、Facebookの例で考えたように新しいバージョンが既存の製品を全くダメにしてしまうかもしれません。
ここでのバージョンとは、新しいアルゴリズムかもしれませんし、テキストやデザイン、運営方法、UIのスタイルかもしれません。同時にテストするのは必ずしも2つだけという訳ではなく、ABCDEと複数のバージョンをテストする場合もあるでしょう。
ABテストで直面する問題
ABテストは必ずしも上記のように単純ではなく、例えば次のような問題が発生するかもしれません。
1、1%のトラフィックと99%のトラフィックの中で、ユーザーの特徴を同じように分布させるにはどうしたら良いか?
2、テストの過程で、別の新しいバージョン(バージョンC)を思いついた場合、同時にテストすることは可能か?
3、複数のテストを実施し、合計トラフィックが100%を超える場合、どのようにテストすることができるか?
4、バージョンAとBの指標をどのように比較考量できるか?例えば、色々な指標がそれぞれ違う場合、どうやって決定するか?
5、バージョンBとAの指標の違いが、ランダムなエラーによるのか、それとも統計的に信頼できるのかをどうやって判断するか?
ABテストの基本原理は「制御変数法」
設定インデックス値= F({隠れた変数列}、{可視変数列(計画変数を含む)})。
パフォーマンス指標のデータ値は、関数Fと幾つかの変数の取る値によって決まります。それで、
指標の比較結果を単純にそれぞれのバージョンの違いのせいだと決めつけることはできません。特に、その中には永遠に知ることのできない隠れた変数列が含まれており、それが大きな影響を与えているのです。
では、結論を出すためにFとすべての変数を知る必要があるのでしょうか?
もっと簡単な方法もあります。2つのバージョンの中の他の変数を一定に保つのです。
そうすれば、バージョンAとBの指標の違いがバージョンそのものの違いに起因すると結論づけることができます。ABテストは、制御変数法を利用した考え方です。製品のそれぞれのバージョンが同じ時期に、同じような人々に対するものであること(同じような特徴の分布)、また、計画変数以外の変数が同じであることを保証することで、指標の差がバージョンの違いによるものであることが判断できます。それによってより優れたバージョンを選択し、それを全トラフィック上で公開できるようになり、より良い結果が期待できるのです。
ABテストの役割は非常に大きいのですが、それを行なうのはそれほど単純ではなく、陥る落とし穴も少なくありません。
ABテストの落とし穴にはどんなものがあるか?
2つのグループの特徴が同じようにならない場合
ABテストでは、それぞれのバージョンにトラフィックを分割する必要があります。もし、適切に分割することができなければ、それぞれのバージョンに分けられたユーザーグループの特徴が一緒になってしまい、テストとして意味をなさなくなってしまいます。もっと分かりやすくするために、例を挙げて考えましょう。
グループGに対してABテストを実施して、ユーザーの登録コンバージョン率を高くするためにどのような賞品が有効かを調べたいとします。賞品AをBBクリーム、賞品Bをカミソリとすることにしましょう。グループGにはG1(女性だけ)とG2(男性だけ)というサブグループで成っており、それぞれを占める人数は同じ(それぞれ50%)です。ユーザーを同質のものにするために、2つのバージョンに割り当てられたユーザーのトラフィックは男女の比率が一定(女:男=1:1)でなければなりません。
そうすると、予想外のことが起きます。
テストの中で賞品AのBBクリームに割り当てられたグループは、G1(女性だけ)で、賞品Bのカミソリに割り当てられたのはG2(男性だけ)になってしまいました。最終的には一つの賞品が他のものよりも高い登録コンバージョン率になります。
では、もしBBクリームの方がカミソリよりも登録コンバージョン率が高かった場合、「BBクリームの方がカミソリよりも人気があるので、全てのユーザーにBBクリームを与えれば良い」と結論づけることができるでしょうか?
もちろんそうではないでしょう。この結論によると、女性が好きなものと男性が好きなものは同じだ、と言っていることになります。そして、登録コンバージョン率の高い賞品AをグループGの全てのユーザーに与えなければなりません。男性がBBクリームを受け取った時、心の中でどう思うか想像できるでしょうか?
ここで問題になったのは、異なるバージョンに分けられている人の2つのグループが同質のものではなかったからです。上で述べた例は理解しやすくするために、比較的大げさになりましたが、実際の過程においてよくあるのは、バージョンA、Bどちらとも男女混合のグループにするという分け方です。しかし、その比率は全体的な1:1の分布とは異なるので、同じように間違ったテスト結果になってしまいます。
したがって、合理的な分割のアルゴリズムを設計し、同じ特徴を持ったグループの人々を確実に各バージョンに正しく分割することが、ABテストの結果を信頼できるものにするための前提なのです。ダーウィンもABテストの比較的信頼できる分割アルゴリズムを導き出すために1年以上も模索したのです。
違う時間にテストした場合
上記の例において、バージョンAとバージョンBが全く同じ特徴を持っているグループGに分割され、テストが実施される場合、そのデータは必ず比較可能性を有しているでしょうか?
そうとは限りません。もう一度、極端な例で考えてみましょう。ある日、バージョンAのユーザートラフィックが100万人、バージョンBのトラフィックが0人だったとします。次の日、今度はバージョンAが0人、Bが100万人でした。
全体的に見ると、この2日間のバージョンAとBの累計テストトラフィックは、どちらもそれぞれ100万で、2つのグループの特徴も同じです。テスト結果は信頼できるものに思えるかもしれませんが、実際はそうではありません。
もし、これがソーシャルネットワークサイトだったとしたら、このテストはただ単に同じ製品の異なるバージョンAとBの中で、ユーザーが自ら「友達を追加」した量を観察しているにすぎないかもしれません。
例えばある日、バージョンAを使っているユーザーがはるかに多かったとしましょう。「友達を追加」するのには丸一日以上の時間が必要ですから、その日、その状況のどんな場面においてもBのトラフィック数は劣勢になります。しかし、この場合トラフィックの優劣はバージョンの優劣の違いによるのではありません。
同じことがブログサイトに関しても言えます。様々なバージョンを比較する中で、ユーザーのブログ開設率や編集率も同じような間違いを引き起こすことがあるかもしれません。
別の状況もあります。ユーザートラフィックの数が突然増加するような特別な日があるかもしれません。例えば、バージョンAが功を奏する日がたまたま休日で、バージョンBが平日だったとします。そうすると、バージョンAとバージョンBを比較することはBにとって不公平なことでしょう。
上で述べた公式、インデックス結果値= F({隠れた変数列}、{可視変数列(計画変数を含む)})ですが、隠れた変数列と可視変数列の非常に大部分は、時間が関係しています。時間が異なると、変数列の値も違ってきます。それで、この変数列を全くコントロールできないという前提では、正確なテスト結果も期待できないのです。
最後に私たちが扱ったケースを皆さんにもご紹介します。
スタイル1の文案:「葵花宝典」を使えば、XXXを簡単に使えます
スタイル2の文案:どのような機能が最も人気があるか、お教えしましょう
初期はテスト管理の規範がなかったので、上記の2つのスタイルのテストは時間を変えて実施しました。
1:スタイル1は4月7日10:00からテストを開始
2:スタイル2は4月7日0:00からテストを開始
最終的な統計は、パフォーマンスの違いを示しています。4月7日10:00以降にテストを始めたユーザーだけを見れば、スタイル1に比べてスタイル2は約0.3%しかCTRが増加しませんでした。テストの時間を同じにする、という前提となる条件に合致しているのでこの結論は信頼できるでしょう。
しかし、4月7日全体のデータを見てみると、スタイル2はスタイル1に比べてCTRが約1%増加しています。この場合は、テストの時間を同じにする、という前提となる条件に合致していないのでその結論は疑わしいと言えます。
このことから、次のことが分かります。
1:テストのバージョン(上のスタイル1やスタイル2のようなもの)を比較する際には、必ず同じ時間にテストを始めなければならない
2:テストの過程で、全てのバージョンのトラフィックを勝手に操作してはならない。上で述べた問題に間接的につながる恐れがある。
AAテストの意識がない場合
AAテストは、ABテストの双子の兄弟のようなもので、インターネット企業の中には、ランテストと呼んでいるものもあります。 AAとは、テストの中での様々な要素が全く同じ2つのバージョンを意味しています。ではこのテストを行う意義は何でしょうか?このテストはイベントトラッキングやトラフィックの分割、テストの統計の正確さを計測するためのもので、ABテストの結果の信頼性を高めることです。
命題1を次のように設定したとします。「イベントトラッキング、トラフィックの分割、テスト統計の結果はどれも問題ない。この場合、AAテストの全てのバージョンのデータは必ず同じものになる」。
もし、命題1が成り立つなら、対偶の命題2「もしAAテストの全てのバージョンのデータに明らかな差があるなら、テストのイベントトラッキング、トラフィックの分割、テスト統計結果の少なくとも一つに問題がある」も必ず成立します。
厳密な意味では、AAテストで合格したからといって、上記の3つ(イベントトラッキング、トラフィックの分割、テスト統計の結果)に全く問題がないことを証明できるわけではありません。しかし、AAテストで合格しなければ、上の3つの中で少なくとも一つのものに必ず問題がある、と結論づけることができます。
したがって、ABテストの素養のあるチームは、ABテストの前に必ずAAテストを実施します。
テストの逆転がある場合
テストがオンラインで公開されて1日が経ったとします。もし、その日にバージョンAがバージョンBよりも結果が良かった場合、2日目、3日目の結果も同じようになると結論することができるでしょうか?
ユーザーが新しいバージョンを試したのはもしかすると好奇心のためかもしれず、初めは活発に利用しているように思えるかもしれません。しかし、時間が経つにつれ次第に冷静になり、テスト結果のデータはあるべき位置に落ち着いてくるでしょう。
もし、テストの観察期間を早く終わらせてしまうなら間違った結論を下しやすくなります。逆も同じことが言えます。ある改善されたバージョンにユーザーも初めは慣れないかもしれません。しかし、使っていくうちに旧バージョンよりも便利であることに気づき、テスト結果が良くなっていくかもしれません。
他に、テストのバージョンサンプルが少なすぎる場合も逆転現象が起きる場合があります。コインを100回投げて表が出る回数と、100万回投げて表が出る回数の比率は同じではないかもしれません。
大数の法則では、テスト回数の増加と共に変数の確率分布も理論上の分布に近づいていきます。もし、テストの1日目に利用したユーザーの数がたったの100人だった場合、サンプルが少なすぎるので、テスト結果がランダムである確率が高くなります。テストの期間が長くなるとテストのサンプルも多くなってきて、結果は逆転してしまうこともあります。
一般的には、サンプルとなるユーザーの数が1000人を下回る場合、テスト結果を保証することができないので、ABテストを行うことはオススメしません。
キャリーオーバー効果
化学の授業で実験をする時、先生からまず試験管をキレイに洗うよう言われたかもしれません。これはただ単に衛生的な問題のためだけではありません。実験で使われる化学薬品が試験管に残っている薬品と混ざった場合、実際の試験結果は信用することができなくなるからです。この問題のことを「キャリーオーバー」と言います。
インターネットの製品のテストにおいても、同じような問題が存在します。例を挙げてみましょう。
00001番から10000番のユーザーのグループと、10001番から20000番のユーザーのグループが、AとBという二つのバージョンに分けられてテストが実施されました。このテストの後に新しいテストが行われます。もし特別な事情がなければ、そのまま00001番から10000番のユーザーはバージョンA1のテストを、10001番から20000番のユーザーはバージョンB1のテストを受けます。
このテストの結果は信頼できるものでしょうか?
00001番から10000番のユーザーは以前にバージョンAのテストを受け、今回は皆がバージョンA1のテストを受けることになりました。10001番から20000番のユーザーはバージョンBを受けた後、バージョンB1のテストになりました。
最初のテストを受ける前、二つのグループは同質のものであったはずですが、最初のテストが終わった後、すでに同質のものではなくなってしまいました。それで二つ目のテストに入る前に、特定のアルゴリズムを用いてグループを組み直し、新しい番号順に並べ替え、同質のグループ二つに分けてからテストを行わなければなりません。あるいは、20001番から30000、30001から40000のような、全く新しい番号を作り出してテストする必要があるでしょう。
上記のものはよくある例の一部に過ぎず、実際の過程ではもっと多くの落とし穴に直面するでしょう。
まとめ
国内有数のインターネット企業であるBATの中で、ABテストは非常に普通に行われており、Baidu(バイドゥ)は1000にも上るABテストを並行して行なっています、Alibaba(アリババ)とTencent(テンセント)も大規模なマルチビジネスをサポートするABテストを実施するためのシステムを保有しています。
「ABテストの文化をどのようにして会社の遺伝子に根付かせるか?」という問いが、今全てのインターネット企業に問いかけられているのです。
[原文 : http://www.opp2.com/84497.html]
[newspicks url=”https://newspicks.com/news/3107318″]