最終更新日:2026年9月23日
gk recommendation machine_learning
まず結論
協調フィルタリング(Collaborative Filtering)は、ユーザーの評価・閲覧・購入などの行動履歴を利用して、似た好みを持つユーザーや、似た反応を受けるアイテムの関係から推薦する方法です。
G検定では、コンテンツベース推薦との違いを最優先で押さえます。
- 協調フィルタリング:ユーザー・アイテムの行動履歴や評価を使う
- コンテンツベース:商品のジャンル・特徴などアイテム属性を使う
直感的な説明
協調フィルタリングは、
あなたと好みが似ている人が好きなものを勧める
というイメージです。
たとえば、AさんとBさんがこれまで同じ映画を高く評価していて、Bさんだけが映画Xを高く評価しているなら、Aさんにも映画Xを推薦します。
一方、コンテンツベース推薦では、映画Xのジャンル・出演者・キーワードなどの内容を見て推薦します。
定義・仕組み
推薦システムでは、ユーザーとアイテムの関係を行列として表すことがあります。
- 行 → ユーザー
- 列 → アイテム
- 値 → 評価、クリック、購入、視聴など
この関係から、まだ評価していないアイテムへの好みを推定します。
ユーザーベース
好みが似ているユーザーを探し、そのユーザーが評価したアイテムを推薦します。
アイテムベース
同じユーザーから似た評価を受けるアイテムを見つけ、似たアイテムを推薦します。
行列分解・埋め込み
協調フィルタリングは、近傍の類似度だけでなく、ユーザーとアイテムを低次元の潜在表現へ写す行列分解や埋め込みでも実現できます。
したがって、
協調フィルタリング=必ずユーザー同士を直接比較する
と限定しないことが重要です。
コンテンツベースとの違い
| 観点 | 協調フィルタリング | コンテンツベース |
|---|---|---|
| 主に使う情報 | 評価・閲覧・購入など | ジャンル・説明・属性 |
| 他ユーザーの情報 | 利用する | 必須ではない |
| 新しい好みの発見 | 得意な場合がある | 既存の好みに近づきやすい |
| 新規対象への弱さ | 履歴不足に弱い | 属性があれば補いやすい |
いつ使う?(得意・不得意)
得意な場面
- 多くのユーザー行動が蓄積している
- アイテムの細かな属性を人手で作りにくい
- 他の利用者の傾向から意外な推薦を出したい
注意点
- 新規ユーザーの履歴がない
- 新規アイテムに評価がない
- 評価行列が非常に疎である
といった場合に推薦が難しくなります。
特に新規対象の履歴不足はコールドスタート問題です。
G検定ひっかけポイント
商品属性を中心に使う?
❌ ジャンル・価格・説明文だけから推薦する
⭕ それはコンテンツベース推薦
他ユーザーの反応を使う?
⭕ 似た利用者の評価や、ユーザーとアイテムの相互作用を使う → 協調フィルタリング
コールドスタートに強い?
❌ 新規ユーザーほど得意
⭕ 履歴がない新規ユーザー・新規アイテムには弱い
協調フィルタリング=近傍法だけ?
❌ 必ずユーザーの最近傍だけを使う
⭕ 行列分解や埋め込みを使う方法もある
まとめ(試験直前用)
- 協調フィルタリング=行動履歴・評価から推薦
- コンテンツベース=アイテム属性から推薦
- ユーザーベースとアイテムベースがある
- 行列分解・埋め込みも利用できる
- 新規ユーザー・新規アイテムにはコールドスタート問題
- 履歴を見る? 属性を見る?で切り分ける