SmartNewsで広告プロダクト責任者をやっております、渡部と申します。 今回はSmartNews Adsのデータサイエンスへの取り組みをご紹介いたします

詳細はAWS Summit Tokyo 2015 「SmartNews のデータサイエンティストの高速イテレーションを支える広告システム」にて当社エンジニアが登壇いたしますのでそちらもお楽しみに!

データは非常に大事

SmartNewsはData Science, Machine Learningを技術の中核とする会社です。 データはSmartNewsにおける全ての意思決定において非常に重要な要素となります。 これは広告システムであるSmartNews Adsにおいても同様です。

今回は、SmartNews Adsにおいてどのようにデータを用いて意思決定しているかをご紹介いたします。

意思決定はどうするか

AB Test

繰り返しになりますが、SmartNews Adsでは全ての機能変更をAB Testし、その結果を見て全面展開するか、撤退するかを決めています。 軽微なUIの修正であっても必ずAB Testで結果を見てから適用されます

確認すべき項目

もちろん詳細な項目は各テストによっても異なりますが大きく分けて以下の2点を確認します
  • 1) 広告のパフォーマンス
  • 2) SmartNewsの各種KPIへの影響
前者の広告のパフォーマンスはもちろん広告システムの変更なので確認すべきことは言うまでもありません。しかし、広告事業をする上でSmartNews自体への影響がどの程度あるのかを確認する必要があります。

具体的な例を挙げると、例えば広告の表示数を増やした場合、少なくとも以下の2点を確認しなければいけません

  • 広告のクリック数は増えたのか?
  • 記事のクリック数は減ったのか?

最終意思決定

このデータを元に意思決定を行います。 もちろん、統計的に有意だったのかどうかなどは見ておくべきポイントですが、本当にそれだけでいいのでしょうか? そのあたりについて次節で我々の考え方をご説明いたします

AB Testで大事なこと

全ての変更はテストする

私は自分を信じていません。Productを作る上で直感は非常に重要ですが、直感のみに頼ることはせず、かならずどんな変更もテストします。

Cleanな状況でテストを実施することで、行おうとしているシステムの変更が全体にどのような影響があるのかを適用前に推し量ることができる事も非常に重要なポイントです。例えば、広告におけるパフォーマンスは時期や案件の状況によっても変わってきます。本番適用後に一喜一憂するのではなく、「今回適用した変更による差分はこれくらい」と理解することが非常に重要です。

そのために必要なことは、

  • システムアーキテクチャー全体をtestableにするべく設計する
  • テスト実施のコストを可能な限りゼロに近づける
ということです。テストを実施するための手順が多いので煩わしくなって意識的/もしくは無意識にテストをすっ飛ばしてしまうということは非常によくある事例だと思います。

意志決定するのは人間

では最終的な意思決定はどうするのかというポイントですが、SmartNewsでは「必ずデータが良い方を選択する」とはしていません。それでは人間が介在する必要はありません。(将来、人間が介在しなくてもこの辺りの意思決定が行われる未来が来るかもしれませんね。ワクワクしますね。)

それはなぜか。

我々はスタートアップです。「イノベーションを起こすこと」でしか存在理由を見出せません。短期的にはデータ上悪い結果が出ていたとしても、時にはPassionを信じて突き進むべき時があります。

しかし、テストを通じて以下のことは確認することができます

  • 想定している短期的な損失は想定の範囲内か
  • 想定していない箇所の損失は起きていないか
たとえば、「売上が10%低下することは予想していたけども30%も低下するならばこの変更は行わなかったよ」と後悔することは避ける事ができます。

もちろんこんな痺れるテストばかりじゃありませんが、最終的に判断をするのは人間である我々であり、我々の想いと情熱が意思決定の原動力です。

それを実現するための仕組み

高速なData Driven Iteration

これを実現するための仕組みをSmartNews Adsではローンチ早期から整備してきました。基本的なポリシーは以下になります
  • データを分析する人だけがデータ構造を知っていれば良い
  • 配信プログラムに手を入れることなくデータ構造を知っている人が配信設定を作れる
  • 特別な集計Queryを書かなくてもテスト結果が自動的に集計されてDashboardでだれでも見られる
これは、以下の様な仕組みで成り立っています
  • 誰もが簡単にデータにアクセスできる仕組み
  • 誰もが高速にデータを検索できる仕組み
  • データを元に計算したモデルを簡単に本番環境でテスト出来る仕組み
  • テスト配信結果を自動的に集計して可視化する仕組み

これを実現する技術基盤

ふわっとした話ばかりで恐縮です! 実際にこれがどのような技術で動いているかはAWS Summit Tokyo 2015 「SmartNews のデータサイエンティストの高速イテレーションを支える広告システム」にて当社エンジニアが登壇いたしますのでそちらをお楽しみに! 続きは会場で!

空気なんか読んでる場合じゃない

最後にちょっとだけ宣伝です。 データサイエンスは試行錯誤の連続です。したがってこのIterationを超高速に回し続け、try & errorを兎に角続ける必要があります。 そこで、SmartNews Adsの開発チームでは“20%ルール”というルールを設けています。どっかで聞いたことがある?私もそんな気がしますが、内容は結構違います。

ルールの概要は以下になります

  • 全てのエンジニアはProduction環境でユーザー全体の20%を上限として自由にテストすることができる
  • 上司への許可を取る必要はないが、チームへの周知は必要
テスト用スロットは5%ずつ4つ用意されていて、google calendarの設備予約で予約するだけ!

なぜ上司の許可を取る必要がないのか?

SmartNewsではエンジニアとテクノロジーを信じています。我々の信じているエンジニアが情熱を持って取り組みたいと思ったチャレンジを、規制するよりも推奨することがSmartNewsを前に進める原動力になると信じています。

それにもし仮にテスト結果が悪かったとしたら、その場でテストを止めることができます。自動的に集計されるDashboardがありますので。

計画よりも実行! 空気を読んで遠慮してる場合じゃない! エンジニアの力を解き放つのは今!!

SmartNewsでは力を解き放ちたいエンジニア、データサイエンティストの方を積極採用中です! http://about.smartnews.com/ja/careers/

※ 上述の20%ルールは広告開発チームで勝手に始めた制度で、正式な人事上の制度ではありません。 形式を整えるよりもまず動いてしまう、そんなスタートアップ精神のほうが楽しいじゃん!と思っています。