Ch.12

協調フィルタリング:推薦の基礎

Netflixで「こんな作品はいかが?」と表示されたことはありますか。協調フィルタリングは、自分と趣味が近い他ユーザーが高く評価したものを推薦する方式です。この章では評価行列・類似度・近傍ベース予測の概念から式、実務での活用までを扱います。

チャプター別 機械学習図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。機械学習の流れを一覧で確認できます。

ユーザー×アイテムの評価行列から類似ユーザー(近傍)を求め、その評価で空欄を予測します。

① 近傍を探す → ② その評価を参照 → ③ 空欄を予測 → ④ 推薦この作品への近傍の評価 → 私の予測評価を埋める近傍1★ 5この作品?近傍2★ 4近傍 ★5, ★4 → 平均 (5+4)/2 = 4.5 → 予測 ★4類似の視聴がこの作品に ★5, ★4 → 平均で ★4 推薦!

協調フィルタリング:類似ユーザーからr^u,i\hat{r}_{u,i}を予測。

推薦の基礎:協調フィルタリング

協調フィルタリングとは — 他ユーザーの行動(評価・クリック・購入)を利用し、自分に合うアイテムを推薦する方法です。「趣味が近い人が好きなものは自分も好きになりやすい」という直感に基づきます。動画・EC・音楽アプリなどで広く使われています。
直感:近傍の選択を借りる — 映画推薦で、自分と同じA・Bを高く評価した人がCも高く評価していれば、自分もCを好きになる可能性が高いです。この「似た人」を近傍といい、近傍の評価で予測するのが協調フィルタリングの核心です。
数式:評価行列と予測 — ユーザーuuとアイテムiiの評価をru,ir_{u,i}とすると、評価行列は(ユーザー×アイテム)の大きさです。多くのマスは空(疎)です。ユーザー基盤ではユーザーuu類似した近傍NuN_uを決め、未評価のアイテムiiについて近傍の評価の加重平均で予測値r^u,i\hat{r}_{u,i}を求めます。類似度はコサイン類似度ピアソン相関などで測ります。
実務と限界コールドスタート(新規ユーザー・新規アイテムには近傍がない)、疎性の問題があるため、コンテンツベース推薦や行列分解などと組み合わせることが多いです。
推薦はビジネスとUXの要 — きちんとした推薦があると、ユーザーは欲しいものに早くたどり着き、サービスは売上・滞在時間を伸ばせます。協調フィルタリングはパーソナライズの代表的な方法で、データが蓄積されていればメタデータ(ジャンル・タグ)が少なくても推薦できます。
機械学習の応用分野 — 推薦は分類・回帰とは異なる形の問題です。正解ラベルがユーザーごとに違い、行列の空欄を埋めるという視点で扱います。協調フィルタリングを理解すると、その後の行列分解・深層学習推薦へ自然に広げられます。
ユーザー基盤とアイテム基盤ユーザー基盤:自分と似たユーザーを探し、その人が高く評価したアイテムを推薦。アイテム基盤:今見ているアイテムに似たアイテムを探して推薦(「この商品を見た人はこれも見ています」)。どちらも「類似度」と「近傍」の概念を使い、式の構造も似ています。
類似度と予測式 — 類似度su,vs_{u,v}(ユーザーuuvvの間)を求め、予測はr^u,i=rˉu+vNusu,v(rv,irˉv)vNusu,v\hat{r}_{u,i} = \bar{r}_u + \frac{\sum_{v \in N_u} s_{u,v}(r_{v,i}-\bar{r}_v)}{\sum_{v \in N_u} |s_{u,v}|}の形で書けます。近傍の平均加重平均だけでも構いません。評価指標にはMAERMSEなどを使います。
行列分解(MF) — 発展では評価行列を低ランク行列の積で近似する行列分解を使い、空欄予測の精度を上げたり、コールドスタートを緩和するためにコンテンツ・文脈情報を合わせるハイブリッドがよく使われます。
この章では推薦の基礎である協調フィルタリングを扱いました。
- 協調フィルタリング:他ユーザーの評価・クリック・購入などの行動データを使い、自分と趣味が近い近傍を見つけ、その評価で空欄(未評価)を予測する方式です。
- 評価行列:行=ユーザー、列=アイテム。1マス=「1人のユーザーが1つのアイテムに付けた評価」。多くのマスが空の疎行列です。
- 予測の流れ:類似度計算 → 近傍K人を選択 → 近傍の単純平均または加重平均(類似度を重みに)で予測値 r^u,i\hat{r}_{u,i} を求めます。
- 実務:コールドスタート・疎性のためコンテンツベース行列分解ハイブリッドと組み合わせることが多いです。