システム提供において、基本的に高速であればあるほど顧客は嬉しいものだが、実際のところ高速なシステムを提供して、どの程度の価値が発生するのかが気になったので、調べてみた。
Three Challenges in Building Industrial-Scale Recommender Systems” - Keynote for ORSUM@RecSys’20
3rd Workshop on Online Recommender Systems and User Modeling でのkeynote session で発表された内容
講演者は Sebastian Schelter さんという方で、アカデミックもインダストリーもどちらもバリバリにこなしている人だった。日本だとこういう経歴の人ってかなり珍しい気がするので、やはり層が厚い
ふと @hagino3000 さんのツイートが印象に残っていたので、記録のためにこちらに。1年くらい前のやり取りだけど、印象に残っていて今回この記事を書いたきっかけでもある。
推薦システムのレイテンシが15msと32msで差が出るかA/B Testしたって。推薦結果は同じで片方はあえて遅らせたって事だよな、はじめて聴く実験だ。15msの方がrevenueが良かったとの事。 twitter
公開されている動画はこちら
Three Challenges in Building Industrial-Scale Recommender Systems” - Keynote for ORSUM@RecSys’20
19,20枚目のスライド
要約すると、
既存の研究では、検索エンジン上で人工的に応答速度を遅らせた際にネガティブな影響が発生した。
では、逆に応答速度を早めた場合どのような影響になるのだろうか? とてもおもしろい事例があるので是非紹介したい、
オンプレのシステムからGoogle Cloud に移行するイベントを利用した実験を行った。マイグレーション時にサービングシステムの最適化などを行い、マイグレーション後のシステム性能向上した。この最適化により、モデルやシステム構成は全く同じだが、p90 の応答速度がオンプレのシステムでは 32ms だったものが、GCPでは15ms に向上した。 これにより生じた差異を活用して、以下のA/B テストを行った。 32ms をcontroll, 15ms をtest 群に分けてA.B テストを行ったところ、商品のオーダー、収益に関する指標が2% 向上した。
Google による Speed Matters 実験
Sebastian さんが上記の講演で名前を出して言及はしなかったが、言及していた実験はGoogle の Speed Matters 実験だと思う。(こんな実験をわざわざするケースが他にもあったら教えてほしい)
その名の通り、速度は重要という実直なタイトルの実験である。
1pのnews letter 形式でまとめられた実験結果だが非常に面白い
実験内容としてはシンプルで、検索エンジンにリクエストを投げる際に、
1,Pre-header
: HTTP GET リクエストを受信後、すべてのサーバー処理を X mx
の期間一時停止
2.Post-header
: ヘッダー送信後サーバーの処理が完了する前に X mx
の期間すべてのサーバー処理を一時停止
3. Post-ads
: 広告を表示した後に X mx
の期間のみ一すべてのサーバー処理を一時停止
各アプローチの応答時間の停止時間で、日次の検索実行を行う人数がどれくらい減少したかがまとめられている。
どれも明確なインパクトが発生しているが、
わかりやすいものを抜き出すと、Post-headerでの時間を
- 200ms 遅らせたものが 、6週間で毎日の平均検索実行者の数が
-0.29%
減少 - 400ms 遅らせたものが 、6週間で毎日の平均検索実行者の数が
-0.59%
減少
また、6週間の時間をかけて以下の結果が得られた。
グラフでは、 6週間 Post-header
の時間を、200ms
, 400ms
遅らせた際に検索実行回数がどのように変化するかが示されている。
検索エンジンの応答速度が遅くなることで、遅延される時間が長いものほど、その遅延の影響により、検索を行う顧客は、徐々に検索を行わなくなっていった。
-0.5%
と聞くとそんなに大きな数字ではないと感じるかもしれないが、Google 検索の規模での -0.5%
は決して小さいものではない。
結論
速さにはビジネス的な価値がある。