協調フィルタリング
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Collaborative_filtering.gif/300px-Collaborative_filtering.gif)
協調フィルタリング(きょうちょうフィルタリング、Collaborative Filtering、CF)は、多くのユーザの嗜好情報を蓄積し、あるユーザと嗜好の類似した他のユーザの情報を用いて自動的に推論を行う方法論である。趣味の似た人からの意見を参考にするという口コミの原理に例えられることが多い。
例えば、ユーザAがアイテムXを好むとすると、アイテムXを好む別のユーザBが好むアイテムYを探し出し、ユーザAもアイテムYを好むのではないか、という推論をコンピュータによって自動的に行う。実装にはユーザ同士の類似度を、同じアイテムにつけた評価の相関係数などによって表して類推に利用することが多い。
協調フィルタリングはリコメンデーション(推薦)やパーソナライゼーションに利用されている。実際にAmazon.comの「おすすめの商品」や、はてなアンテナの「おとなりアンテナ」などに応用されており、Web 2.0においてロングテールを支える要素技術として捉えることができる。
協調フィルタリングにはユーザの評価付けによる明示的なものと、システムの操作履歴(例えばブラウザの閲覧履歴)などを利用した暗黙的なものがある。
推薦システムを実現するものとしては協調フィルタリング以外にもコンテンツベースの方法があるが、たとえば本であればユーザが好む本と同じ著者の本を推薦するなどというもので、コンテンツ自体が似ているかどうかを判別するための情報(ここでは著者の情報)が必要となる。協調フィルタリングはコンテンツが何であれ、ユーザによる評価が与えられれば利用できる。
歴史
[編集]協調フィルタリングは、過去の挙動パターンやユーザ・プロファイル・データにより、ユーザに関連情報を提供する初期の情報フィルタリングシステムに由来する。 このシステムはWeb探索の応用ないし役には立ちにくい性質で、新規ユーザはプロファイルデータが少ないため嗜好の傾向が把握しにくく、効果的なフィルタリングが行えないコールドスタート問題が生じた。
協調フィルタリングを利用した最初のシステムは、ゼロックスのパロアルト研究所が開発したTapestryである。 TapestryはE-mailとNetnewsのフィルタリングを行うシステムであり、他のユーザによって文章に付与された任意の注釈(annotation)に基づき、文章のフィルタリングを行う。 しかし、小規模な集団内で利用されただけであり、どの評価者の意見を参考にするのかといったqueryを記述(TQLというSQLに似た専門言語)しなければならないといった問題があった。
USENET Netnewsは、簡単にアクセスできる記事を用いて多くのユーザを得て、協調フィルタリングを推進した。 ユーザは評判に基づいて記事を評価することができ、他のユーザはこれらの評価から記事を探すことができた。
実装例
[編集]協調フィルタリングの実装方法にはいくつかあるが、「相関分析」を応用する方法が一番シンプルかつ古典的である。
例えば商品の購入や、記事の閲覧等のユーザ行動を数値化しプロファイル・蓄積する。 新規ユーザ行動と蓄積された既存の他ユーザ行動で相関分析を行い、高い相関が認められるユーザと「嗜好が近い」ものと仮定する。
「嗜好が近い」のであれば同じような「行動を好む」と予想し、蓄積された既存の他ユーザにはあるが新規ユーザにはない行動(商品の購入や、記事の閲覧)をおすすめ情報として提示する。