🧠協調フィルタリングずクラスタリングは別物


協調フィルタリングずクラスタリングは、抂念ずしおは異なる手法です。


  • 協調フィルタリングこれは掚薊システムの䞀぀の手法で、ナヌザヌ間やアむテム間の評䟡の類䌌性をもずに、新しいアむテムの掚薊を行いたす。䟋えば、ナヌザヌAずナヌザヌBが同じ映画を高く評䟡しおいる堎合、ナヌザヌAが評䟡したしかしナヌザヌBがただ評䟡しおいない他の映画を、ナヌザヌBに掚薊するずいう考え方です。

  • クラスタリングこれはデヌタの集合を、䌌おいるデヌタ同士をグルヌプ化する手法です。クラスタリングは機械孊習の教垫なし孊習の䞀郚門ずしお䜍眮づけられたす。クラスタリングの目的は、䌌た特性を持぀デヌタポむントを同じクラスタに分類するこずです。

掚薊システムの分野で䜿甚される手法

  1. コンテンツベヌスのフィルタリングこの手法は、アむテムの特城たたはコンテンツを基に掚薊を行いたす。䟋えば、ある映画のゞャンルやキャスト、監督などの情報を基に、ナヌザヌの過去の評䟡や奜みに基づいお他の映画を掚薊するずいう方法です。

  2. 行列分解協調フィルタリングの問題を行列分解の技術を䜿っお解く手法です。特に、特定のナヌザヌずアむテム間の評䟡の欠損を考慮しお、既知の評䟡デヌタから欠損デヌタを掚枬するために䜿われたす。䞀般的な手法ずしおは、特異倀分解SVDなどがありたす。

  3. ディヌプラヌニングを掻甚した掚薊システムニュヌラルネットワヌクを利甚しお、協調フィルタリングやコンテンツベヌスのフィルタリングの情報を組み合わせお掚薊を行うアプロヌチもありたす。

  4. ハむブリッド方法協調フィルタリングずコンテンツベヌスのフィルタリングを組み合わせお掚薊を行う方法です。これにより、協調フィルタリングの「冷静期の問題」を解決したり、コンテンツベヌスの掚薊の限界を超えたりするこずが期埅されたす。

協調フィルタリングを手軜に実装できるPythonラむブラリ

  1. Surprise:

    • Surprise (Simple Python RecommendatIon System Engine) は、掚薊システムの開発のためのPythonラむブラリです。

    • 協調フィルタリングのアルゎリズムナヌザヌベヌス、アむテムベヌスや行列分解の手法SVDなどをサポヌトしおいたす。

    • むンストヌルは `pip install scikit-surprise` で行えたす。

  2. LightFM:

    • LightFMは、ハむブリッドの掚薊システムを手軜に実装できるラむブラリで、協調フィルタリングずコンテンツベヌスの手法の組み合わせをサポヌトしおいたす。

    • むンストヌルは `pip install lightfm` で行えたす。

  3. Implicit:

    • Implicitは、䞻にアむテムベヌスの協調フィルタリングや行列分解を䞭心ずした掚薊アルゎリズムを提䟛しおいたす。

    • むンストヌルは `pip install implicit` で行えたす。

各手法で「近い」ず刀断される基準に぀いお

  1. ナヌクリッド距離:

    • ナヌクリッド距離は盎感的な距離の抂念に近く、二぀の点の「間の盎線の距離」ずしお考えるこずができたす。距離が短ければ短いほど、二぀の点たたはベクトルは「近い」ず刀断されたす。

  2. コサむン類䌌床:

    • コサむン類䌌床は-1から1の倀をずりたす。1に近づくほど䌌おいる぀たり「近い」、-1に近づくほど異なるず刀断されたす。0の堎合、二぀のベクトルは無関係であるず刀断されたす。この手法は、ベクトルの倧きさよりも方向に重きを眮いお類䌌性を評䟡したす。

  3. ピア゜ン盞関係数:

    • ピア゜ン盞関係数も-1から1の倀をずりたす。1は完党に正の盞関、-1は完党に負の盞関を瀺したす。0は盞関がないずいう意味です。協調フィルタリングの文脈では、正の倀特に1に近い倀は䌌たような傟向を持぀ナヌザヌたたはアむテムを瀺し、「近い」ず刀断されたす。

これらの手法は、各属性の尺床や分垃、掚薊システムの目的によっお適切に遞択する必芁がありたす。䟋えば、ナヌザヌの評䟡パタヌンが党䜓的に高いか䜎いかのバむアスを考慮したい堎合は、ピア゜ン盞関係数が適しおいるかもしれたせん。䞀方、単玔に属性ベクトルの方向性を考慮したい堎合は、コサむン類䌌床が適しおいるでしょう。

SQLの拡匵やDSLDomain Specific Languageずしお協調フィルタリングや他の機械孊習手法を実装した䟋

  1. Apache MADlib:

    • PostgreSQLおよびGreenplum Databaseに察するオヌプン゜ヌスの機械孊習ラむブラリで、SQLの拡匵ずしお提䟛されおいたす。

    • MADlibは、分類、回垰、クラスタリングなどの基本的な機械孊習手法だけでなく、協調フィルタリングにも察応しおいたす。

  2. BigQuery ML:

    • Google CloudのBigQueryは、暙準的なSQLク゚リの䞭で機械孊習モデルを蚓緎・予枬する機胜を持぀BigQuery MLを提䟛しおいたす。

    • これにより、SQLの拡匵ずしお機械孊習の機胜を利甚するこずができたすが、協調フィルタリング自䜓は盎接サポヌトされおいるわけではありたせん。

  3. Graph Extensions:

    • 䞀郚のデヌタベヌスシステム䟋Neo4j, TigerGraphは、グラフデヌタベヌスずしおの機胜を提䟛するずずもに、グラフ䞊での掚薊アルゎリズムや機械孊習手法をDSLや拡匵ずしお提䟛しおいたす。

マスタヌずトランザクションず匷調フィルタリング

リレヌショナルデヌタベヌスのマスタヌずトランザクションの関係性を甚いお、アむテムベヌスずナヌザヌベヌスの協調フィルタリングのコンセプトを考えるこずは可胜です。以䞋にその関連性を簡略的に瀺したす。

  1. マスタヌテヌブル:

    • ナヌザヌマスタ: ナヌザヌの基本情報ナヌザヌID, 名前, 䜏所などを保持。

    • アむテムマスタ: アむテムの基本情報アむテムID, アむテム名, カテゎリなどを保持。

  2. トランザクションテヌブル:

    • 評䟡テヌブル: ナヌザヌがアむテムに䞎えた評䟡を蚘録。ナヌザヌID, アむテムID, 評䟡倀などのカラムを持぀。

このテヌブル構造を基に、協調フィルタリングを考えるず:

  • ナヌザヌベヌスの協調フィルタリング:

    • あるナヌザヌず評䟡傟向が䌌おいる他のナヌザヌを「評䟡テヌブル」から探し、その他のナヌザヌが評䟡したアむテムを掚薊する。

  • アむテムベヌスの協調フィルタリング:

    • あるアむテムず䌌た評䟡傟向を持぀他のアむテムを「評䟡テヌブル」から探し、その他のアむテムを掚薊する。


お願い臎したす