1

PySparks mllibパッケージは、明示的および暗黙的なデータそれぞれについて推奨モデルをトレーニングするtrain()およびtrainimplicit()メソッドを提供します。PySparkリコメンダーの作成中にユーザーアイテムの機能を組み込む方法は?

暗黙的なデータでモデルを訓練したいと思っています。具体的には、商品購入データ。

uはaは

u1, i1, 1 u1, i2, 1 u2, i2, 1 u2, i3, 1 ... un, im, 1

:それは、ユーザーが何度もアイテム以上を購入するというのが私の場合には非常に稀であることから、「評価」や「好み」は常に1です。だから私のデータセットは次のようになりますユーザーと私はアイテム。

私はユーザーの人口統計、場所などのアイテム機能だけでなく、多くの機能を備えています。しかし、pyspark.mllib.als.trainまたはpyspark.mllib.als.trainimplicitの方法では、ユーザーまたはアイテムの機能を組み込むことはできません。

また、fastFMまたはlibfmの使用を検討しました。どちらも、ALSソルバを実装するファクタライゼーションマシンのパッケージであり、回帰/分類の問題としてフレーム推奨です。これらのケースを使用して、ユーザー、アイテムなどの機能をトレーニングデータに含めることができます(X)。しかし、予測変数yは、1つのベクトルにすぎません(私は明示的な評価は購入のみではありません)。

この問題を回避するにはどうすればよいですか?

答えて

0

SparkのMFは、ユーザアイテムイベント(暗黙的)/レーティング(明示的)に基づく単純な協調フィルタリング実装です。プレフィルタリングまたはポストフィルタリングデータを使用して2D(ユーザアイテム)推薦者のコンテキスト情報を導入することができます。たとえば、人口統計情報M/FとkNNリコメンダ(MFでもかまいません)があります。まず、プレフィルタリングのために、同じコンテキストを持つレコードのみを選択することです。それ以上にkNNを実行しています。同じ方法でMFを作成するには、FとMの2つのモデルを生成する必要があります。次に、最初のステップで推奨を生成しながら、適切なモデルを選択します。どちらの手法も、「推薦システムハンドブック」に詳しく説明されています。

モデリングコンテキスト - FMは良い方法です。あなたのためにこの投稿が役に立つかもしれないと考えてください:How to use Python's FastFM library (factorization machines) for recommendation tasks?。あなたは暗黙の例が暗黙のユーザーのフィードバックを導入する方法を見つけるでしょう。ランキング予測に注意してください。ほとんどの場合、推奨事項は適切な方法です。

別のオプション - 独自のヒューリスティックを紹介します。最終スコアを破ることによって。たぶんあなたは知識/ビジネス目標/あなたやユーザーに価値をもたらすことができる他のものがあります。

関連する問題