協調フィルタリングとは
協調フィルタリング(Collaborative Filtering, CF)は、多くのユーザの嗜好情報を収集し、あるユーザと嗜好が似ている他のユーザの情報を活用して、自動的に推論を行う技術です。これは、まるで趣味の合う人の意見を参考にするという口コミのような原理に基づいています。具体的には、ユーザAがあるアイテムXを好むとすると、アイテムXを好む別のユーザBが好むアイテムYを探し出し、ユーザAもアイテムYを好むのではないか、という推論を
コンピュータが自動的に行います。
この技術の実装では、ユーザ同士の類似度を、同じアイテムに対する評価の相関係数などによって数値化し、推論に利用することが一般的です。
協調フィルタリングの応用
協調フィルタリングは、レコメンデーション(推薦)や
パーソナライゼーションに広く利用されています。例えば、
Amazon.comの「おすすめの商品」や、はてなアンテナの「おとなりアンテナ」などがその応用例です。
Web 2.0時代において、
ロングテール商品を支える重要な要素技術として捉えられています。
また、協調フィルタリングには、ユーザによる評価付けという明示的な情報だけでなく、システムの操作履歴(例えばブラウザの閲覧履歴)などの暗黙的な情報も利用されます。
コンテンツベースフィルタリングとの違い
推薦システムには、協調フィルタリング以外にもコンテンツベースの方法があります。コンテンツベースのフィルタリングでは、例えば書籍の場合、ユーザが好む書籍と同じ著者の書籍を推薦するといったように、コンテンツ自体の類似性を判断するための情報が必要です。一方、協調フィルタリングは、コンテンツの種類に関わらず、ユーザによる評価データがあれば利用できるという利点があります。
協調フィルタリングの歴史
協調フィルタリングは、過去の行動パターンやユーザプロファイルデータに基づいて、ユーザに関連情報を提供する初期の情報フィルタリングシステムから発展しました。
しかし、初期のシステムには、新規ユーザのプロファイルデータが少ないために嗜好の傾向を把握しづらく、効果的なフィルタリングができないというコールドスタート問題がありました。
協調フィルタリングを利用した最初のシステムの一つは、
ゼロックスの
パロアルト研究所が開発したTapestryです。Tapestryは、EメールやNetnewsのフィルタリングを行うシステムで、他のユーザが文章に付与した注釈に基づいて文章をフィルタリングしました。しかし、Tapestryは小規模な集団内での利用にとどまり、どの評価者の意見を参考にするかというクエリを記述する必要があるなど、課題も残しました。
USENET Netnewsは、簡単にアクセスできる記事を提供することで多くのユーザを集め、協調フィルタリングの普及を推進しました。ユーザは記事を評価し、他のユーザはこれらの評価を参考に記事を探すことができました。
協調フィルタリングの実装例
協調フィルタリングの実装方法には様々なものがありますが、相関分析を応用した方法が最もシンプルで古典的です。
1.
データ収集: 商品の購入や記事の閲覧などのユーザ行動を数値化し、プロファイルとして蓄積します。
2.
相関分析: 新規ユーザの行動と、蓄積された既存のユーザ行動との間で相関分析を行い、高い相関が見られるユーザを「嗜好が近い」と仮定します。
3.
推薦: 「嗜好が近い」と判断されたユーザが好む行動(商品の購入や記事の閲覧など)のうち、新規ユーザがまだ行っていないものを、おすすめ情報として提示します。
関連用語
集団的知性: 多数の個人の知識や意見を統合することで、より高度な意思決定や問題解決を行う能力。
ロングテール: 売れ筋商品だけでなく、販売量の少ない商品も多数販売することで、全体の売上を伸ばす戦略。
レコメンダシステム: ユーザの嗜好に基づいて、商品やサービスを推薦するシステム。
適合性 (情報検索): 検索結果がユーザの検索意図と合致している度合い。
外部リンク
[1] - 表計算ソフト「Microsoft Excel」での実装例: Excelを使った協調フィルタリングの具体的な実装方法が紹介されています。
[2] - 協調フィルタリングによるリコメンデーション(特許庁 標準技術集): 特許庁が公開している協調フィルタリングの技術資料です。