2024年、Netflixで視聴されたコンテンツの80%以上がアルゴリズムによるレコメンドから発見されている。
ユーザーが自分で検索して見つけたコンテンツは、全視聴の20%に満たない。残り80%は「あなたはこれが好きかもしれない」というシステムの提案によって生まれた視聴だ。
さらに驚くべき数字がある。このレコメンドシステムによって、Netflixは毎年10億ドル以上のコスト削減を実現している。
「コスト削減?」と思うかもしれない。レコメンドは収益を生むものではないのか。
答えはこうだ。
「見たいコンテンツをすぐ見つけられない」ことが、Netflixの最大の解約原因だったのだ。レコメンドが機能することで解約が防止され、その防止コストが年間10億ドルに相当するという計算だ。
「良いコンテンツを持つこと」ではなく「良いコンテンツを適切な人に届けること」こそが、Netflixの競争優位の本質だ。
この設計思想は、日本の通販企業に何を語るか。
Netflixが解いた「選択のパラドックス」
心理学者バリー・シュワルツは「選択のパラドックス」という概念を提唱した。
選択肢が増えれば増えるほど、人間は選べなくなり、満足度が下がるという現象だ。
Netflixは2025年時点で米国だけで約7,000本のコンテンツを持つ。これは「無限の選択肢」だ。
選択肢が多すぎると、人間は最善の選択をするための努力を諦め、「もういいや」となる。
「見るものを探している間に、見ることをやめてしまう。」
これはNetflixが解かなければならない最重要課題だった。そしてその答えがレコメンドエンジンだった。
通販企業の「商品点数」も、まったく同じ問題構造を持っている。
10万点を超えるSKUを持つECサイトで、ユーザーが「欲しいものを見つける」体験はどうなっているか。
検索バーに打ち込み、フィルタを設定し、無限にスクロールし、比較、そして疲れて離脱する。
Netflixが学んだことは、「良い商品(コンテンツ)を持つことと、それを適切な人に届けることは別の問題だ」ということだ。
Netflixのアルゴリズムの「3つの軸」
Netflixのレコメンドシステムは単一のアルゴリズムではない。複数のモデルが協調して動く「アンサンブル」だ。その核心を構成する3つの軸がある。
軸①:協調フィルタリング(Collaborative Filtering)
「あなたと同じ作品を好んで見ているユーザーが、他に何を見ているか」を分析する手法だ。
ユーザーAが視聴:作品X、作品Y、作品ZユーザーBが視聴:作品X、作品Y、作品W→ ユーザーAに作品Wをレコメンド→ ユーザーBに作品Zをレコメンド
Netflixはこれを2億3,000万人以上のユーザーデータで実行している。
「あなたと似た趣味を持つ100万人が、この作品を見ている」という巨大なパターン認識だ。
通販への翻訳
「この商品を買ったお客様が他に買っているもの」がこの手法の最もシンプルな実装だ。
AmazonはこれだけでECの歴史を変えた。
軸②:コンテンツベースフィルタリング(Content-Based Filtering)
ユーザーの好みのパターンを「コンテンツの属性」と照合する手法だ。
「このユーザーはノルウェー語の犯罪ドラマを好む」「このユーザーは90分以内の映画を繰り返し見る」「このユーザーは夜10時以降に視聴を開始する」
これらの属性パターンと、コンテンツの属性(ジャンル・言語・尺・俳優・監督)を照合する。
通販への翻訳
「このユーザーはナチュラル系スキンケアを好む」「このユーザーは3,000〜5,000円の価格帯で購買する」「このユーザーは月末に購買する傾向がある」
これらをSQL的に実装することが、コンテンツベースフィルタリングの通販版だ。
軸③:行動シグナルの解釈(Behavioral Signal Interpretation)
Netflixが他の競合と根本的に異なる強みがここにある。
「何を見たか」ではなく「どう見たか」を分析する。
- 再生したが2分で止めた → 好みではなかった
- 一時停止して再生した → 気になる部分があった
- 同じシーンを見直した → 強く反応した
- 見終わった直後に次のエピソードを再生した → 高いエンゲージメント
- 週末の深夜に視聴した → この文脈での好みパターン
通販への翻訳
「何を買ったか」だけでなく「どう行動したか」をデータとして活用することだ。
商品ページの閲覧時間、カートへの追加と削除、複数商品の比較閲覧。
これらが「購買意図のシグナル」だ。
「サムネイルの個別最適化」見えないパーソナライゼーション
Netflixのパーソナライゼーションで最も驚くべき事実がある。
同じ作品でも、ユーザーによって異なるサムネイル(アートワーク)が表示される。
あるユーザーにはロマンス要素が強調された画像を、別のユーザーにはアクション要素が前面に出た画像を、また別のユーザーには特定の俳優が大きく映った画像を、同じ映画の「看板の顔」を、見る人によって変える。
これを「文脈的バンディット」と呼ぶ。
異なるサムネイルのクリック率をA/Bテストで継続的に学習し、どのユーザーにどの見せ方が最も反応を引き出すかを最適化し続ける。
この数字が示す効果
パーソナライズされたサムネイルにより、クリック率が最大25%向上したことが報告されている。
通販への翻訳
商品一覧ページで全ユーザーに同じ「商品の顔(メイン画像・キャッチコピー)」を見せることは、「全員に同じサムネイルを見せるNetflix」と同じだ。
機能訴求を好むユーザーには機能を前面に、デザイン重視のユーザーにはビジュアルを前面に、価格を最重視するユーザーには価格とコストパフォーマンスを前面に、同じ商品の「見え方」を変えるだけで、クリック率と転換率は大きく変わりうる。
レコメンドが変えたコンテンツ発見
Netflixの研究によれば、レコメンドシステムを現在のものからより単純なアルゴリズムに置き換えると、エンゲージメントが4〜12%低下する(2025年11月のarXiv論文より)
しかしそれ以上に重要な発見がある。
レコメンドによって最も恩恵を受けているのは「中程度の人気コンテンツ」だという事実だ。
超人気作品は何もしなくてもユーザーが探してくる。ニッチな作品は一部のコアファンが探す。
しかし「知る人ぞ知る良作」「自分では絶対に辿り着かなかったが、見たら大好きになる」
これらの「長尾の宝」を適切な人に届けることが、レコメンドの最大の価値だ。
通販への翻訳
売上ランキング上位の商品はどんな売り場でも売れる。問題は「埋もれた良品」だ。
「このユーザーはこの商品の存在を知らないが、知ったら必ず買う」という組み合わせは、10万点のカタログの中に無数に存在する。
レコメンドエンジンはその「発見されるべき出会い」を生み出す仕組みだ。
日本の通販企業がNetflixから学べること
Netflixの技術を「そのまま真似る」必要はない。むしろ重要なのは「その設計思想を学ぶ」ことだ。
学ぶべき設計思想①:「何を買ったか」より「どう関わったか」を見る
購買データだけでなく、閲覧行動・クリック・カート追加・検索ワード
これらの「暗黙のフィードバック」が、ユーザーの好みを最も正直に示す。
学ぶべき設計思想②:「見せ方の個別最適化」に投資する
同じ商品でも、誰に・どんな文脈で見せるかで反応は変わる。
メールの件名・商品画像の選択・トップページのバナー、これら全てがパーソナライゼーションの対象だ。
学ぶべき設計思想③:「解約防止」こそ最大のROI
Netflixが10億ドルのコスト削減を「レコメンドの成果」として計上するように、通販企業の「顧客維持コストの削減」もレコメンドの価値として測定すべきだ。
SQLで実装できる最初の一歩
-- 「この商品を買った顧客が次に買った商品」——最もシンプルな協調フィルタリング
SELECT
first_purchase.product_id AS first_product_id,
first_purchase.product_name AS first_product_name,
next_purchase.product_id AS next_product_id,
next_purchase.product_name AS next_product_name,
COUNT(DISTINCT first_purchase.customer_id) AS customer_count,
ROUND(
100.0 * COUNT(DISTINCT first_purchase.customer_id)
/ SUM(COUNT(DISTINCT first_purchase.customer_id))
OVER (PARTITION BY first_purchase.product_id)
, 1) AS next_purchase_rate_pct
FROM (
-- 各顧客の注文を時系列で並べる
SELECT
customer_id,
product_id,
product_name,
order_date,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date) AS purchase_seq
FROM order_items oi
JOIN orders o ON oi.order_id = o.order_id
WHERE o.status = 'completed'
) first_purchase
JOIN (
SELECT
customer_id,
product_id,
product_name,
purchase_seq
FROM (
SELECT
customer_id,
product_id,
product_name,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date) AS purchase_seq
FROM order_items oi
JOIN orders o ON oi.order_id = o.order_id
WHERE o.status = 'completed'
) t
) next_purchase
ON first_purchase.customer_id = next_purchase.customer_id
AND next_purchase.purchase_seq = first_purchase.purchase_seq + 1 -- 次の購買
WHERE first_purchase.purchase_seq = 1 -- 最初の購買
AND first_purchase.product_id != next_purchase.product_id
GROUP BY
first_purchase.product_id,
first_purchase.product_name,
next_purchase.product_id,
next_purchase.product_name
HAVING COUNT(DISTINCT first_purchase.customer_id) >= 10 -- 統計的信頼性の担保
ORDER BY
first_purchase.product_id,
customer_count DESCこのSQLが「Netflixの協調フィルタリングの最もシンプルな通販版」だ。
「このカテゴリを初めて買ったユーザーが次に買う商品は何か」
この問いを起点に、メールのレコメンド・次回購買の提案・カートページの追加提案が設計できる。