Netflixがレコメンデーション・アルゴリズムのクオリティと開発のスピードを上げるA/Bテストの仕組み

Innovating Faster on Personalization Algorithms at Netflix Using Interleaving by Netflix Tech Team

7 min readDec 15, 2017

--

日本にもすでに入ってきて人気があるようですが、Netflixという映画やテレビ番組のストリーミングを行う会社がシリコンバレーにあります。ここはその昔、Netflix Prizeという、一億円ほどの賞金をかけたレコメンデーション・エンジンの精度を上げるコンテストをやったり、ユーザーの映画の嗜好データを使うことで、人気が出るかどうかをわかった上でオリジナルの映画・テレビ番組の作成を行っていることでも有名です。

そんな彼らが最近、映画のレコメンデーションの品質を上げるためにどうやってアルゴリズムを作っているのかを発表してました。

ちなみに、レコメンデーションのアルゴリズムと言ってもNetflixではいろんなところで使われています。以下のようなNetlifxの一般的な画面ですと、最初の行に出てくるリストはユーザー一人ひとりの視聴履歴をもとにしたランキングにもとづくレコメンデーションにですし、2行目のトレンディングのリストは、他のユーザー達の間で最近よく視聴されている映画のランキングをもとにしたレコメンデーションになります。

普通こういったものは、いくつものアルゴリズムを作ってその中からどれが一番いいのかをA/Bテストして決めていくのですが、Netflixではこのテストを二つのフェーズに分けているようです。

最初のステージではインターリービングという手法を用いて、もっとも結果の出そうなランキングのアルゴリズムだけを選別していきます。そして2番めのステージで長期的にNetflixのビジネスにとって重要な指標をもとにしたいわゆるA/Bテストを行います。

このやり方がいいのは上のチャートにもあるようにインターリービングのフェーズですでに可能性のあるアルゴリズムの数を絞ってしまうので、その後のA/Bテストのフェーズではテストするユーザーの数と期間が、最初から全てのアルゴリズムをA/Bテストにかけてしまう場合に比べて、大幅に短縮されるということです。

それでは、インターリービングとはそもそも何なのでしょうか。

普通のA/Bテストでは、二つのアルゴリズムAとBがあったとすると、一部のユーザーをアルゴリズムAにアサインして、別のグループのユーザーをアルゴリズムBにアサインした上で、二つのアルゴリズムのパフォーマンスをそれぞれのグループのユーザーのアクティビティをもとに評価します。ただ、このグループ分けの際に、グループAとグループBのユーザーの特徴を同じにするというのがかなり難しいというのが現実です。

それは、あるユーザーはものすごく視聴時間が長いかもれしないし、あるユーザーは視聴時間は短いかもしれないがたくさんの番組を見るかもしれません。さらに、このものすごく視聴時間が長いユーザーというのは全体から見ると少しの人数しかいないかもしれませんが、全視聴時間の合計からすると大きな割合を占めているかもしれません。つまり、こうしたユーザーが、分析の結果に必要以上に影響を及ぼしてしまうということが起きえます。

インターリービングでは、それぞれのユーザーを二つの別々のアルゴリズムのグループに分けるのではなく、どのユーザーも両方のアルゴリズムに触れるようにします。

例えば以下のようにA(ピンク)とB(青)の2つのレコメンデーションのアルゴリズムがあったとします。それぞれがレコメンドする映画とそのランキングは少し違います。

そしてそれぞれのアルゴリズムによってレコメンドされる映画を以下のように交互に同じユーザーに提示します。

こうしてそれぞれのユーザーがどちらのアルゴリズムでレコメンデーションされたものをどれだけの時間視聴したかという情報をモニターすることで、どちらのアルゴリズムがよいかを判断するわけです。

こうして、ユーザーを別々のアルゴリズムのグループに分けた際に生じる不均衡という問題を解決しているわけですが、このインターリービングの手法にも限界があります。というのも、それぞれのユーザー毎の好みのアルゴリズムという情報が分かるのはいいですが、ユーザーのリテンション、エンゲージメントなどというビジネスにとって重要な指標にどう影響するのかを判断するには、アルゴリズムAに割り当てられたユーザーとアルゴリズムBに割り当てられたユーザーのアクティビティを比べる必要があるからです。

そこでNetflixではこの評価の部分は、2つ目のフェーズで行う一般的なA/Bテストで行っているわけです。

私も映画、テレビ番組を見るときはよくNetflixを使いますが、NetflixのレコメンデーションはApple、Amazon、Googleなどに比べてもほんとにクオリティが高いですが、こうして現状に満足せず絶えず改善をしているところがすばらしいと思います。なんといってもこのレコメンデーションこそが、今日におけるプロダクト、サービスのユーザー・エクスペリエンスそのものになり得るわけですから、もちろんここにしっかりと投資をするというのは、ビジネス的にも理にかなっていると思います。

データサイエンスを学んでみたい方

来年1月の中旬に、私どもExploratoryが日本向けに用意した、データサイエンス・ブートキャンプが東京で行われます。データサイエンスの手法を基礎から体系的に、プログラミングなしで学んでみたい方、そういった手法を日々のビジネスに活かしてみたい方はぜひこの機会に、参加を検討してみてください。以下に詳しい情報があります。

--

--

CEO / Founder at Exploratory(https://exploratory.io/). Having fun analyzing interesting data and learning something new everyday.