Netflixを支える推薦システムの裏側
見出し画像

Netflixを支える推薦システムの裏側

masa_kazama

イントロ

Netflixは、スマホやPCがあれば、どこでもいつでも、映画やドラマを見放題で楽しむことができます。今年はお家時間が増えたことで、Netflixをより満喫している方も多いのではないでしょうか。実際に、2020年1月〜3月に会員が全世界で1600万人ほど増え、合計1億8000万人を超えています。

Netflixをいくつかの数字で見てみると、さらにその凄さに驚かされます。

・全世界のインターネット通信量(下り)の15%をNetflixが占めており、YouTubeを超える世界一の動画サービス
・時価総額が20兆円超え
・サブスクリプション収入が月々約1500億円

そんな多くのユーザーを有するNetflixの魅力の1つに、推薦システムがあります。Netflixのホーム画面には、今話題の作品やユーザーにパーソナライズ化されたおすすめの作品が並びます。

画像1

Googleの検索と違って、Netflixではユーザーが作品を探さなくても、ユーザーの視聴履歴などを使ってユーザーが好みそうな作品を教えてくれます。実際に、視聴される作品は、80%がレコメンド経由で20%が検索経由になっています。

この記事では、Netflixの核となる推薦システムについて、Netflixの歴史を振り返りながら、どのように開発されてどのような価値をユーザーに届けてきたのかを書籍や論文などを参考にしながら、解説していきたいと思います。(※私自身は、Netflix社とは関係がなく、Netflixの推薦システムの歴史や仕組みが面白く、それを紹介してみたいという思いで書いています。もし、間違い等がありましたら、お知らせください。推薦システムについて書籍を書いてみたく、その一環でこの記事を書いています。詳細は前回のこちらの記事をお読みください。)

おかげさまで、「推薦システム実践入門 ―仕事で使える導入ガイド」というタイトルでオライリージャパンから出版されることになりました。(2022/04/07更新)

この記事の対象読者は、Netflixの推薦システムの仕組みが気になる方や、自社サービスに推薦システムを組み込みたいと思っている方を想定しています。この記事が、推薦システムを作るときのなにかしらの気付きになりましたら幸いです。

Netflixの創業

Netflixは1997年にランドルフとヘイスティングスによって創業され、1998年にオンラインでのDVDの販売/レンタルサービスが始められました。アメリカでは、そのころはVHSが主流で、1997年にDVDプレイヤーが商用化されたばかりで、1998年はまだまだDVDが普及していませんでした。そこで、ランドルフはDVDプレイヤーのメーカに狙いを定め、一緒にキャンペーンができないかを、ソニー、東芝、パナソニックに提案しに行きました。CESという家電の見本市で、各会社のCEOと交渉しましたが反応はよくありませんでした。

しかし、後日、東芝のCEOから連絡があり、東芝と共同でプロモーションキャンペーンを行えることになりました。東芝が販売するDVDプレイヤーすべてに、Netflixで無料で3枚のDVDをレンタルできるクーポンをつけました。東芝が創業間もないベンチャー企業と提携するのは、大きなリスクでしたが、背景には、ソニーに次いで業界2位という事情がありました。このおかげもあり、ユーザーは増えていきました。

サービス開始から2ヶ月後にAmazonのCEOジョフベゾスから呼び出しがあり、千数百万ドルほどでの買収の提案を受けましたが、事業のポテンシャルを信じ、提案を断っています。今後AmazonがDVDのオンライン販売に参入してくる可能性を懸念し、NetflixはDVD販売をやめオンラインレンタルに集中していきます。

しかし、DVDレンタル事業でなかなかユーザーが定着していませんでした。プロモーションキャンペーンで新規ユーザーは増えるものの再訪問してくるユーザーは多くありませんでした。ユーザーの定着を目指し、様々なテストを行い、結果のデータを分析し、良い施策を見つけていきました。ランドルフはもともとマーケティングの出身で、オフラインでのA/Bテストをいろいろ試していました。

そして、ついにユーザーが離脱しない仕組みを産み出しました。それは、「延長料金なし」「月額定額料金」「お気に入りリストの作品を自動発送」というものでした。月々定額で、1度に4枚のDVDを借りることができ、1枚観終わって返却すると、お気に入りリストに入っているDVDが自動的に1枚送られてきます。サブスクリプションの仕組みは今となっては、至るところに普及していますが、その当時は珍しく、Netflixの代名詞にもなりました。

画像3

推薦システムの開発

サービス開始から1年ほど経つと、取り扱う作品が数千本になってきました。最初は、手動でスリラーを探している人向けのトップ10リストなどを作っていましたが、作品数が多くなるにつれ、限界がきました。ユーザーが愛する映画を見つけるお手伝いをするのがNetflixの本当の目標でした。そこで、ヘイスティングスは、トップページに、複数の枠を表示して、各枠内に複数の映画を表示する構造を提案し、おすすめの作品を自動で選択するアルゴリズムを開発していきました。この表示形式は今のNetflixにも引き継がれています。

おすすめの作品を出すことには、他にも理由がありました。物理的なDVDを配送する仕組みであるため、人気新作映画のDVDの在庫がないということがたびたびおきました。そこで、新作ではないがユーザーが気に入る映画をおすすめすることで、人気の映画を大量に仕入れることを避けコストを抑えました。

レコメンドのアルゴリズムは、最初は、映画のジャンルや俳優、公開年などの入手可能なデータを使ういわゆるコンテンツベースのレコメンドを試しましたが、あまり納得感がいくレコメンドになりませんでした。というのもジャンルや出演俳優が似ていても、視聴するユーザー層が全く違うということが多々あるからです。

そこで、Amazonが採用していた協調フィルタリングという手法を使って、レコメンドエンジンを作っていきます。Amazonでは共通の購買行動をもとに、この商品を買った人はこの商品も買っていますというおすすめを出してきます。

この手法をNetflixに適用すると問題点が出てきました。2つの作品を観たからといって、その2つが好きであったかは分かりません。仮に、片方の作品は好きだけど、もう片方はイマイチだった場合に、単純にレンタル履歴のデータだけを使って、レコメンドエンジンを作ると、片方の作品を観た人には、もう片方の作品がおすすめされてしまいます。

そこで、ユーザーに映画を星で5段階評価してもらい、そのデータをもとにレコメンドエンジンを作ることになりました。ユーザーは協力的でレコメンドに必要なデータは、すぐに集まりました。

そして、2000年に「CineMatch(シネマッチ)」というレコメンドエンジンが完成しました。ユーザーのレンタル履歴やお気に入り作品から、その人が気に入りそうで、かつ、在庫にある映画を薦めてくれるレコメンドエンジンになりました。

2006年には、Netflixのユーザー数が400万人を超えました。そして、ユーザーの増加に伴い、レビューも増えていき、レコメンドエンジンの性能も向上していきました。Netflixユーザーの予約リストに入っている映画のうち実に70%がシネマッチによる推薦作品でした。

興味深いことに、CEOであるヘイスティングス自身もシネマッチのアルゴリズムを改良していました。ヘイスティングスは、大学では数学を大学院ではコンピュータサイエンスを学んでおり、人間行動の数値化に興味を寄せていました。ヘイスティングスのアルゴリズムに対する熱の入れようは次のエピソードからも知ることができます。

ヘイスティングス自身が後年語ったところによれば、当時はアルゴリズムに熱を入れ過ぎてほとんど休むことがなかった。クリスマス休暇の家族旅行でユタ州のスキーリゾート地パークシティーを訪ねたときのことだ。スイスシャレー風のホテル内に閉じこもり、ノートパソコンでシネマッチのアルゴリズムと格闘していた。妻のパティは「子供のことを無視して、せっかくのバカンスを台無しにしている」と不平をいった。」
[NETFLIX コンテンツ帝国の野望 :GAFAを超える最強IT企業から引用]

Netflix Prize

ヘイスティングスは、シネマッチのアルゴリズムを一段と飛躍させるために、優勝賞金100万ドルのアルゴリズムコンテストを2006年に開催することを決定しました。
アルゴリズムコンテストは、公開されたNetflixの5つ星評価のデータを使って、レコメンドエンジンを作るというものです。そして、シネマッチのレコメンド精度より10%向上することができたチームに賞金100万ドルが授与されます。10%が達成されなくても、毎年、1位のチームにはプログレス賞と呼ばれる賞金5万ドルが払われます。

5つ星の評価データは匿名化されており、量としては1億件にも及んでいます。各チームは1日1回結果を投稿することができ、スコアボード上でスコアを確認することができます。この仕組は、今でいうデータ分析コンペのKaggleの先駆けと言えるかもしれません。

コンテストを開始すると反響は大きく、ニューヨーク・タイムズの一面で掲載され、海外の報道機関でも報じられました。開始日だけで、5000以上のチームや個人が参加登録しました。そして、開始から1週間以内にシネマッチのスコアを超える成績を2つのチームが出しました。

1年目の結果は、10%には届かないもののシネマッチを8.4%上回る成績を収めたAT&Tの研究者のチームが、プログレス賞を受賞し賞金5万ドルを受け取りました。

2年目は、精度向上のスピードが鈍化し、1年目と比べて1ポイントしか向上しませんでした。受賞したチームは1年目と同じくAT&Tの研究者チームでした。

3年目は、各チームが大規模に連携して、それぞれの手法を組み合わせて精度を上げていきました。AT&Tの研究者チームもオーストリアの良さそうなチームを見つけてメールを送り、国際電話をかけて、力を合わせていきました。

2009年6月26日に、10%を超える最新版アルゴリズムをAT&Tの研究者チームが提出しました。規定により、30日以内にそれを上回る成績を出せば、そのチームが優勝となります。この30日間に熱いドラマがありました。

AT&Tの研究者チーム以外の上位のチームがいくつか集結して「アンサンブル」というチームをつくりました。各チームのアルゴリズムを組み合わせてアップデートし投稿すると、AT&Tのチームをわずかに0.04ポイント上回りました。これは、2009年7月25日の出来事でした。AT&Tのチームには、24時間しか逆転のチャンスが残されていませんでした。AT&Tのチームはオーストリアのチームとも連携しながら、あとスコアが0.1〜0.2だけでも良くなるように、ラストスパートをかけ、コンテスト終了間際に改良版を提出しました。

画像4

アンサンブルのチームも終了間際に改良版を提出しており、なんと、最終スコアはAT&Tのチーム(BellKor’s Pragmatic Chaos)とアンサンブルのチームが同列で並びました。そして、規定により、20分ほど早く提出していたAT&Tのチームが優勝することになりました。

Netflix Prizeの影響

Netflix Prizeは推薦システムの分野に大きな影響を与えました。コンテストには最終的に、世界186ヵ国から4万チーム以上が参加登録しました。
Netflix Prizeでは、1億件にも及ぶ5つ星評価のデータが公開されたことで、さまざまな新しいレコメンド手法が産み出されました。その中でも、優勝したAT&Tのチームが提案したMatrix Factorization(行列分解)と呼ばれる手法は、推薦システムの分野において、大きな変化点になりました。それ以降から現在に至るまで、行列分解をベースにした手法が数多く提案され、BigQuerySparkなどでの推薦システムは、行列分解をベースにしています。

優勝したアルゴリズムは、100を超えるアルゴリズムを組み合わせた複雑なものであり、実際にNetflixではそのアルゴリズムは用いられていません。また、使用されていない他の理由として、ストリーミングサービスの登場があります。2007年からNetflixではストリーミングで映画を観れるサービスを提供しています。ストリーミングサービスでは、ユーザーがどのデバイスで、いつ、どのくらい、映画を観ていたかなどのよりリッチなデータを知ることができます。DVDのオンラインレンタルのときの5つ星評価より豊富なデータが取れるようになったことで、それらのデータを使った新しいレコメンドエンジンの開発が重要になってきました。また、5つ星評価を予測するというタスクを解くのではなく、レコメンドする作品群が多様であるようにするなどの正確性以外の指標も重要になってきました。

最近のNetflixでは、5つ星評価の仕組みがなくなり、良い/悪いの2段階評価になっています。作品をおすすめするときは、マッチ度を表示しています。

画像5

話は戻りまして、Netflix Prizeについてですが、第2回目のNetflix Prizeコンテストが開催されることが発表されていたのですが、プライバシーの問題でキャンセルになりました。テキサス大学の研究者がNetflix Prizeのデータの匿名化は脆弱で復元できてしまうことを指摘する論文を公開したためです。

Netflixでの推薦システムの具体例

Netflixでの推薦システムの具体例をいくつかみていきたいと思います。

ホームページのレコメンド
Netflixのホームページでは、1つのテーマに沿った横に長い枠が、複数配置されています。

画像6

枠には、「視聴中コンテンツ」や「Netflixで人気の作品」、「気軽にみよう」などのタイトルがつけられています。

画像7

この枠の候補は数万あり、そこからユーザーに最適な枠を選び、さらに、その枠内でユーザーに適した作品を並び替えて表示しています。枠が1つだけで作品が大量に並べられているだけだと、作品1つ1つを見る必要があります。一方で、枠が複数あると、そのときに興味がある枠に着目して、その枠内の作品だけを吟味すれば、素早く好みの作品に出会うことができます。
この仕組みを達成するには、さまざまな機械学習の技術が組み合わせれています。例えば、枠のタイトルの選び方、枠や作品の並べ方、各枠で重複する作品があったときの削除の仕方、そしてアルゴリズムを変更したときの評価の仕方などです。(詳しくは、こちらの記事をお読みください。)

サムネイル写真の最適化
サムネイル画像は、作品の雰囲気を瞬時にユーザーに伝えるのに大切です。
Netflixでは作品ごとにどのサムネイル画像を見せたら、ユーザーがエンゲージしてくれるかをA/Bテストで検証して、反応が良いサムネイルを選んでいます。
例えば、こちらの作品では、悪役が写っているサムネイルほど反応が良く、子供向け作品やアクション作品では、悪役が写るサムネイルのほうが反応良いそうです。

画像8

また、面白いことに、国ごとに反応されやすいサムネイル画像は違ってきます。

画像9

さらに、Netflixでは個人ごとに最適なサムネイル画像を計算して提示しています。例えば、「Good Will Hunting」という作品をユーザーにおすすめするときに、ロマンスものが好きなユーザーには、主人公の二人が顔を寄せている画像を見せます。一方で、コメディーが好きなユーザーには、有名なコメディアンの出演者を使った画像を見せます。

画像10

この個人ごとの画像最適化には、contextual banditsという手法が使われています。ユーザーが過去にどの作品を閲覧したか、どの国でどのデバイスを使っているかなどの特徴量を使って、各作品ごとに数十ある画像から最適な画像を選ぶように学習します。(アルゴリズムの詳細やreplayという手法を使ってのオフラインでの評価の詳細は、こちらをご参考ください。)

コールドスタート問題の解決
コールドスタート問題とは、ユーザーやアイテムの情報がないときに適切にレコメンドできない問題を指します。Netflixでは会員登録時に、好きな作品を複数選択するように誘導することで、この問題を解決しています。これをスキップしたユーザーに対しては、人気な作品などを幅広くおすすめし、実際の視聴履歴などの蓄積されるデータを使って、パーソナライズしていきます。

画像2

最近のトレンド
Recent Trends in Personalization: A Netflix Perspective」というスライドの中で次の5つを上げています。(こちらから発表動画も観ることができます。)

画像11

まとめ

Netflixの推薦システムの歴史を振り返りつつ、いくつかの具体例をとりあげました。NetflixではCEO自らが推薦システムのアルゴリズムの改良を行い、また、賞金100万ドルの推薦システムのアルゴリズムコンテストを開催するなど、推薦システムがビジネスの核になっていることが伺いしれます。

この記事を書くにあたって、参考にした文献を下記にまとめました。詳細が気になる方は文献をご確認ください。

次回は、Spotifyを支える推薦システムの裏側をテーマに記事を書けたら思います。

参考文献

不可能を可能にせよ! NETFLIX 成功の流儀
Netflixの創業者で初代CEOのランドルフによるNetflixの1996年の創業から、2004年に自身がNetflixを退職するまでのストーリ。Netflixの創業秘話やスタートアップならでの生々しい話が詰まっていて、スタートアップに興味ある人にはおすすめの一冊です。リリース当日にアクセスが殺到して、サーバーが落ちて、サーバーを買いに行く話や、創業メンバーがどんどん辞めて、最後にはCEOの座をヘイスティングスに譲り、自身も退職してしまう話など、臨場感があり、ところどころ感情移入してしまうようなストーリです。
推薦システムに関しては、シネマッチについて少し触れられています。

NETFLIX コンテンツ帝国の野望 :GAFAを超える最強IT企業
創業から、2012年くらいまでのNetflixの企業成長の物語です。最初の方はランドルフの本と被る部分はありますが、ランドルフの本には載っていないビデオレンタルチェーンのブロックバスターとの攻防がとてもエキサイティングでした。最終的にブロックバスターは倒産してしまうのですが、ブロックバスター社内で若手がタッグを組み、Netflixとやりやい、ブロックバスターに勝利の道筋が見えはじめるところのストーリは手に汗握ります。しかし、ブロックバスターのCEOが交代し、新CEOによって、無情にも若手の頑張りが無になってしまうなどいろいろ考えさせられる本でもあります。
推薦システムに関しては、シネマッチやNetflix prizeについて詳しく書かれています。

NETFLIXの最強人事戦略~自由と責任の文化を築く~
Netflixで最高人事責任者を務めた著者による人事や企業文化についての本です。ハイパフォーマンス文化を育むためのノウハウが散りばめられています。
推薦システムに関しては、ほとんど書いていないですが、推薦システムのエンジニアを引きつける企業文化や仕組みについて知ることができます。

Netflixの推薦システムに関する研究/開発のホームページ
Netflixが今まで研究/開発してきた推薦システムに関して、スライドや記事、論文などがまとまっています。Netflixの推薦システムの研究者の求人情報もあり、どのような人を求めているかも知れて、面白いです。例えば、「Senior Research Scientist」だと、

Requirements:
・4+ years of experience applying machine learning in industry
・Strong background in machine learning with a broad understanding of unsupervised and supervised learning methods
・Strong software development experience
・Successful track record of delivering results in complex cross-functional projects
・Strong mathematical skills with knowledge of statistical methods
・Great communication skills
・MS (PhD preferred) in Computer Science, Electrical Engineering, Statistics, or related areas.

となっていまして、StrongでGreatなスキルが要求されています。

The Netflix Recommender System: Algorithms, Business Value, and Innovation
Netflixの推薦システムの概要、ビジネス的な価値、ABテストの仕方などが簡潔にまとまった論文です。

Netflix Prizeに関する記事/論文

Recommended for you: The Netflix Prize and the production of algorithmic culture
Netflixの公式ブログ
BellKor’s Pragmatic Chaos Wins $1 Million Netflix Prize by Mere Minutes
How the Netflix Prize Was Won
The Netflix Prize: How a $1 Million Contest Changed Binge-Watching Forever
Netflix Prizeの優勝したチームの手法についての解説論文


Deep Dive into Netflix’s Recommender System
Netflixの推薦システムについてまとめた記事です。特に、ホーム画面の推薦の仕組みについて詳しく書かれています。

Netflixはエンターテイメントの王者となり得る。その凄さをまとめました。
Netflixの凄さについてまとめたnote記事です。売上などのスライドがわかりやすく、Netflixのビジネスの凄さについて理解しやすいです。

ヒット作はデータから生まれる。巨大エンタメ企業「Netflix」、“テクノロジー企業”としての顔
Netflixの技術的な凄さについて簡潔にまとめられた記事です。

Harald Steckさんの研究
Netflixで推薦システムの研究をされているHarald Steckさんの論文リストです。個人的に、Steckさんの推薦システムに関する研究が好きで、「Training and testing of recommender systems on data missing not at random」という論文や「Calibrated recommendations」など、既存の推薦システムに対して違う視点を与えてくれます。

Interactive Recommender Systems with Netflix and Spotify
NetflixとSpotifyによるインタラクティブレコメンドのチュートリアルのスライドです。アーキテクチャの図などもあり、具体的にどのようにサービスに組み込むかの参考になります。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!