記事著者の電子メール: [email protected] 住所: 広東省恵州市
▲ この章のプログラム
⚪ Spark の協調フィルタリングの概念を理解します。
1. 協調フィルタリングの概念
1.コンセプト
協調フィルタリングは、クラウドソースの知恵を活用する方法です。多数の既存のユーザーの好みを使用して、未使用のアイテムに対するユーザーの好みを推定します。根底にある考え方は類似性の定義です。
1. ユーザーベースの協調フィルタリングの概念
ユーザーベースの方法では、2 人のユーザーが同様の好みを示した場合 (つまり、同じアイテムに対してほぼ同じ好み)、
次に、彼らの興味が似ていると仮定します。不明なアイテムをユーザーの 1 人に推奨するには、類似したアイテムをいくつか選択します
ユーザーは自分の好みに基づいて各項目の総合スコアを計算し、そのスコアを使用して項目を推奨します。その全体的なロジックは次のとおりです。
他のユーザーも特定のアイテムを好む場合、それらのアイテムが推奨される可能性があります。
2. 項目ベースの協調フィルタリングの概念
アイテムベースの方法を使用して推奨を行うこともできます。この方法は通常、既存のユーザーの好みやアイテムのレビューに基づいています。
レベル状況を考慮してアイテム間のある程度の類似性を計算します。現時点では、同様のユーザーからの同じ評価を持つアイテムは、より類似しているとみなされます。
アイテム間の類似性が分かれば、ユーザーは接触したアイテムによって表現され、そのアイテムとこれらの既知のアイテムとの間の類似性を見つけることができます。
類似の製品を含むアイテムを表示し、これらのアイテムをユーザーに推奨します。同様に、既存のアイテムと同様のアイテムを使用して、包括的な
結合されたスコアは、未知のアイテムの類似性を評価するために使用されます。
2. 協調フィルタリングの推奨方法
1. ユーザーベースの推奨事項
ユーザーの類似性に基づいたレコメンデーションの場合、「同じ考えを持つ」という簡単な言葉でそれを表現できます。これも真実です。
たとえば、映画を見たいが、自分の好みに合うかどうかわからない場合は、どうすればよいでしょうか。インターネットで紹介文を見つけたり、短い予告編を見たりするのは確かに良い考えですが、その映画が実際にあなたの好みに合うかどうかについて、より詳細で正確な情報は得られません。現時点での最善の方法は次のとおりです。
シャオ・ワン: お兄さん、この映画を見に行きたいのですが、見ませんでしたか?どうでしたか?
Xiao Zhang: そうでもないです。ガールフレンドと一緒に観に行きました。彼女は熱心に観ていました。私は半分だけ観て、その後携帯で遊びました。シャオ・ワン: 最近見た良い映画はありますか?
シャオ・チャン: 「サンダー XX」を観てください。私もよく観ました。あなたも気に入っていただけると思います。
シャオ・ワン: わかりました。
これは日常生活でよく起こる会話であり、ユーザーベースの協調フィルタリング アルゴリズムの基礎です。
Xiao WangとXiao Zhangは良い友達です。良き友人として、彼らは同じ趣味を持つべきです。その上で、お互いに自分の好きなものを勧めるのは合理的であり、勧められた側も、勧められたものによってもたらされる幸福感や満足感をより享受できると考えるのには理由があります。
以下の図は、ユーザーベースの協調フィルタリング アルゴリズムのパフォーマンスを示しています。
写真からもわかるように、ユーザー 3 に商品を勧めたい場合、この商品をどう選ぶかが大きな問題となります。既存の情報では、ユーザー 3 は項目 1 と項目 5 を選択し、ユーザー 2 は項目 2 と項目 4 を選択する傾向があり、ユーザー 1 は項目 1、項目 4、および項目 5 を選択しています。
読者の合理的思考によれば、これ以上分析することなく、ユーザー 1 とユーザー 3 は選択の好みがより類似していることがわかります。したがって、ユーザー 1 とユーザー 3 の両方が同じ項目 1 と 5 を選択したと考える十分な理由があり、項目 3 をユーザー 3 に推奨することは完全に合理的です。
これは、ユーザーベースの協調フィルタリング アルゴリズムに基づいた推奨事項です。指定したターゲットと同じターゲットを持つ既存ユーザーを特定の計算方法でスキャンし、与えられた類似度に基づいてユーザーの類似度を計算し、最もスコアの高いユーザーを選択し、レコメンド結果としてユーザーにフィードバックします。彼らの既存の情報に基づいて。この推奨アルゴリズムは比較的シンプルで計算結果も分かりやすく、実用価値が高い。
2. アイテムベースの推奨事項
アイテムベースの推薦アルゴリズムでは、アルゴリズム全体の原理を 1 つの単語で説明することもできます。それは「羽鳥が群がる」ということです。
今回、Xiao Zhang さんはガールフレンドへのプレゼントを購入したいと考えていました。
シャオ・チャン: もうすぐバレンタインデーです。彼女にプレゼントを買いたいのですが、何を買えばいいのかわかりません。この前、レーシングカーのモデルを買ったことで彼女に死ぬほど叱られそうになりました。
シャオ・ワン: ああ?そうなると、彼女が好きなものを本当に買いたくないのです。彼女は普段何が好きですか?
Xiao Zhang: 彼女は普段漫画、特に「ドラえもん」を見るのが好きで、何もすることがないときは何話か見ています。
シャオ・ワン: それなら、彼女にドラえもんのモデルセットを買ってあげるといいよ。きっと気に入ってくれるよ。
Xiao Zhang: いいアイデアですね、試してみます。
会話から、Xiao Zhang がガールフレンドへのプレゼントを買いたくて、Xiao Wang にアドバイスを求めたことがわかります。
不慣れなユーザーの場合、特定のユーザー情報がない場合、ユーザーの既存の嗜好データに基づいて未知のアイテムを推奨するのが合理的です。これはアイテムベースの推奨アルゴリズムです。
2. 事例 - ユーザーと映画の推薦
1. コードの簡略版
org.apache.spark.SparkConf をインポートします
org.apache.spark.SparkContext をインポートします
scala.collection.mutable.Mapをインポートする
オブジェクト Driver1{
def main(args:Array[String]):Unit={