共同フィルタリングについて知っておく必要があるのは
デモクラス
を取る(あなたの連絡先の詳細を提供しない、ダウンロードリンクは数秒であなたに電子メールで送信されます)
共同フィルタリングレモメンダーシステムや共同フィルタリングアルゴリズムのようなコア概念に入る前に、推薦システムを理解してみましょう。
レコメンダーシステムは、服のような製品や映画、サービスなどの可能性のあるアイテムを”推薦”するために、ユーザーの好みを予測することを目的としています。、推薦システムはあらゆる範囲の選択の余剰のために今日非常に重要になり、会社がよりよく高められた動きのための彼らのプロダクトかサービスを置
レコメンダーシステムを構築するには、コンテンツベースとコラボレーションフィルタリングの二つの方法があります。 この記事では、共同フィルタリングの例と一緒に、共同フィルタリングについて詳しく見ていきます。
35% のAmazon.comの収益は、その推薦エンジンによって生成されます。
協調フィルタリングが推奨システムを実行する方法には二つの方法があり、それは狭いものとより一般的なものです。
狭い意味では、協調フィルタリングは、あるユーザーの好みを予測し、他の多くの類似したユーザーの好みを収集して研究することによって機能します。
詳細なカリキュラムをダウンロードし、オリエンテーションセッションへの無料アクセスを得る
時間:10:30AM-11:30AM(IST/GMT+5:30)
例えば、ユーザAとユーザBの両方が同じ洗濯機を好む場合、ユーザBの他の好みは、ユーザAが好みおよび必要性が類似しているので、ユーザAが興味を持つで これは、もちろん、考慮に多くの異なるユーザーと多数の好みや反応、したがって用語、共同フィルタリングを取ることによって行われます。
Collaborative Filtering Source–Recommender System
より一般的な意味では、collaborative filteringは、パターンを導出するために彼らの活動を研究することによって、ユーザーの好みを予測するプロセスです。
例えば、好き嫌い、スキップ、ビューを研究することにより、推薦システムは、ユーザーが好きなものと嫌いなものを予測することができます。
コラボレーションフィルタとコンテンツベースのフィルタリングの違いは、前者はアイテム情報を必要とせず、代わりにユーザー設定で動作することです。
協調フィルタリングの種類
メモリベースまたは最近傍アルゴリズム
推薦システムソース-データサイエンスに向けて
この方法は、評価システムを使用して、類似したユーザー、または”隣人”の好みを考慮して、あるユーザーの好みを予測する。 ここで設定を計算するには、ユーザーベースの共同フィルターとアイテムベースの共同フィルターの2つの方法があります。
まず、ユーザーベースの共同フィルタリングについて考えてみましょう。 ユーザー uᵢ、i=1、…nおよびアイテムpⱼ、j=1、…mについて、評価n x mの行列があるとしましょう。 この方法の仕組みは、ユーザー iの好みを計算して他のユーザーと一致させ、上位Xの類似ユーザーを選択し、アイテムrᵢⱼの評価を取得し、加重平均を見つけて、ユー
一部のユーザーは寛大すぎる傾向があり、実際に楽しんでいないアイテムに対して高い評価を与える傾向があり、一部のユーザーは厳しすぎる傾向があり、好きなアイテムに対しても低い評価を与えるという事実を考慮して、この共同フィルタリングの方法は、バイアスを取り除くために式を修正する。 これを修正するために、加重平均を計算するときにすべてのアイテムの各ユーザーの平均評価を減算し、ターゲットユーザーに対してそれを加算し直します。
類似性は、ピアソン相関とコサイン類似性の2つの方法で計算できます。
この方法をまとめると、好みの点でターゲットユーザーに最も似たユーザーを見つけ、アイテムの評価を比較し、選択したアイテムのターゲットユーザーの潜在的な評価として予測することが考えられます。
アイテムベースの共同フィルタリングでは、二つのアイテムを比較し、あるユーザーが二つのアイテムに類似した評価を与えると、それらが類似していると仮定します。 次に、このユーザーからのほとんどのX類似アイテムの評価の加重平均を計算することによって、アイテムのユーザーの評価を予測します。 例として下の画像を参照してください。
アイテムベースのフィルタリングSource-Medium
モデルベースの協調フィルタリング
協調フィルタリング推奨システムのこの方法では、異なるデータマイ これらのモデルのいくつかの例は、ベイジアンネットワーク、クラスタリングモデル、特異値分解、確率的潜在意味解析、多重乗法因子、潜在ディリクレ配分、マルコフ決定プロセスベースのモデルである。
ハイブリッド協調フィルタリング
この方法は、メモリベースとモデルベースの協調フィルタリングシステムを組み合わせて、スパース性や情報の損失 しかし、この方法は構築するのがより複雑です。
詳細なカリキュラムをダウンロードし、オリエンテーションセッションへの無料アクセスを得る
時間:10:30AM-11:30AM(IST/GMT+5:30)
Collaborative Filtering Example
collaborative filtering recommenderシステムをよく理解するために、リアルタイムのcollaborative filteringの例を取り上げ、Pythonでcollaborative filteringアルゴリズムを構築しましょう。 最初のステップは、データセットを定義することです。 あなたがPythonの初心者なら、この知識記事をチェックしてください:
Dataset
この共同フィルタリングの例では、最初に一連のアイテムとこれらのアイテムに反応したユーザーを含むデータを蓄積する必要があります。 この反応は、評価や好き嫌いのように明示的にすることも、アイテムを表示したり、ウィッシュリストに追加したり、記事を読んだりするなど、暗黙的にすることもできます。
これらのデータセットは、通常、ユーザー、アイテム、およびこれらのユーザーがこれらのアイテムに与えた反応のセットで構成される行列として表されます。 ここに例があります:
5人のユーザーと5つの項目を持つ行列Source–Real Python
この行列は、評価1-5(評価なし)の間で、5つの項目i1-i5を評価した5人のユーザー u1-u5を表します。 多くのユーザーがリスト内の多くの項目を評価することはほとんどないため、ほとんどの場合、これらの行列には完全なセルよりも空のセルがあります。 これはスパース行列と呼ばれます。
これは、共同フィルタリングアルゴリズムのプロジェクトのための高品質のデータソースのリストを使用することができます。 開始するには良い場所は、各ユーザーが少なくとも20の映画を評価していると、943人のユーザーによって与えられた1682映画のための100,000評価が含まれているMovieLens100k
データセットには多くの有用なフィールドがありますが、特に焦点を当てているのは次のとおりです:
u.item: the list of moviesu.data: the list of ratings given by users
u.dataファイルには、評価とユーザー ID、アイテムID、評価、およびタイムスタンプの個別のリストが含まれています。 ここに例があります:
MovieLens100kデータソースの最初の5行–Real Python
ファイル全体には、100,000のそのような評価のデータが含まれています。
協調フィルタリングアルゴリズムの作成
このプロジェクトを実行する背後にあるアイデアは、1にあります。 同様の設定を持つユーザーを識別し、2. まだ評価していないユーザーによる映画の評価を予測します。 また、結果の正確さも考慮する必要があります。
1と2は、異なるアルゴリズムのセットを使用して達成されます。 覚えておくべき重要な点は、サンプルユーザーの年齢、人口統計などを心配していないことです。 または映画のジャンル、等。 私たちが懸念しているのは、これらのユーザーによるこれらの映画の暗黙的および/または明示的な評価です。
結果の精度を測定するために、二乗平均平方根誤差や絶対平均誤差などのオプションを使用できます。
メモリベースの共同フィルタリングアルゴリズム
この方法では、ユーザー Uがアイテム(ムービー)Iを与える可能性のある評価Rを予測しようとしています。
最初のステップは、ユーザー Uと同様の好みを持つユーザーを見つけてから、評価Rを計算することです。
同様の好みを持つユーザーを見つける方法の例を次に示します。 小さなデータセットを考えてみましょう:
これらは2つの映画の評価であり、4人のユーザー A、B、C、Dによって与えられます。:
評価ソースをプロットする-Real Python
プロットポイント間の距離は、関心のある類似点についてのアイデアを得るための一つの方法です。 次のプログラムを使用して距離を計算できます。
from scipy import spatial
私たちはscipyを使用しています。空間的な。距離。距離を計算するユークリッド関数。 A、B、およびDからCの距離を計算しています。 距離に関してはDと言うかもしれませんが、テーブルを見ると、aとCはどちらも映画2が映画1の2倍好きであるため、aとCがより整列していると言うかもしれません(実際の評価ではなく比率を考慮して)が、ユーザー Dは両方の映画をほぼ同じように好きであり、好みが異なる可能性があることを示しています。 ユークリッド距離が予測できないものは、ユーザーを結ぶ線の角度から派生する可能性があります。 ユーザーに参加すると、グラフは次のようになります。
二つの線の間の角度が小さいほど、それらの参照がより似ていることがわかります。 プログラムでこれを見つけるには、次のように実行します。
aとbのコサイン類似性が0であり、類似性が近いことがわかります。 ユークリッド距離とコサインの類似性を使用すると、好みで類似性を計算するために使用できるさまざまな方法の2つがあります。
評価の計算
ユーザー Uと同様の好みを持つユーザーを特定したら、まだ評価されていない場合にr Uが映画に与える評価を予測します。 繰り返しますが、これには多くの方法があります。
簡単な方法の1つは、同様のトップユーザーによってその映画に与えられた評価の平均を見つけることです。 数式は次のようになります:
n人のユーザーが与えた平均評価の数式Source–Real Python
上位の類似ユーザーに意見の違いが多い場合は、加重アプローチに行くこともできます。 これは、最も近い類似したユーザーにより多くの重みを与え、次に重みを降順にすることを意味します。 式は次のようになります。
協調フィルタリングの制限
一つは、メタデータを考慮しません。 ユーザーは、たとえば、その中の俳優の好みに基づいて映画を評価することができますが、共同フィルタリングではこれは考慮されません。
もう一つの欠点は、多くのユーザーが多くの項目を評価していない限り、共同フィルタリングはあまり効果的ではないということです。 だけにして、それは同様の聴衆のための最高の試合を行い、その後、評価を予測することができます。
協働フィルタリングには膨大なデータセットが必要であるため、類似点が近いユーザーを取得できるようにするには、データのスパース性の問題がよくあ 前に見たように、スパース行列は完全なものよりも空のセルが多い行列です。
スケーラビリティは別の問題であり、共同フィルタリングアルゴリズムは通常nユーザーを考慮して書かれています。 データセットが大きくなるにつれて、プログラム全体が大規模になる可能性があります。
Collaborative Filtering Recommender Systemsのアプリケーション
Collaborative Filtering Recommender Systems Source–Real Python
Collaborative Filteringは、ソーシャルウェブで最も高い使用率を示しています。 あなたは、他の多くの間で、YouTube、Netflixの、とRedditのようなアプリケーション上のアクションで共同フィルタリングが表示されます。 これらのアプリケーションは、共同フィルタリングを使用して、ユーザーが予測アルゴリズムに基づいて好きになる可能性が最も高い動画/投稿を
協調フィルタリングは、制限にもかかわらず、推薦者プログラムにとって一般的な方法です。 また、同様の好みや嗜好のユーザーによる購入に基づいて、製品を推奨するために電子商取引プラットフォームでも使用されます。
プログラマは、協調フィルタリングをより正確にするためにアルゴリズムを混合し、最も正確な結果を得るために方法や予測を混合する必要があ Mining Massive Dataset bookのRecommender Systemsの章は、共同フィルタリングに関する優れた情報源でもあります。
詳細なカリキュラムをダウンロードし、オリエンテーションセッションへの無料アクセスを得る
時間:10:30AM-11:30AM(IST/GMT+5:30)
また、ほとんどの機械学習愛好家が目指すデータ科学者になる方法に関する完全なガイドも用意されています。
適切なデータサイエンススキルセットを取得するには、データサイエンスコースに登録する必要があります。 これは、データ科学者としてのキャリアを向上させるのに役立ちます。