私は、暗黙的なフィードバックに基づく推奨によって推奨システムを実装しようとしています。したがって、私はタプル(ユーザ、アイテム、カウント)を使用してユーザアイテムマトリックスを作成しています。推奨エンジンメトリック
私は、Insightのデータ科学のブログにこれは本当に素敵な例を使用して、私の推薦システムを実装しました:http://insightdatascience.com/blog/explicit_matrix_factorization.html
しかし、映画のレンズセットに比べて、私のデータセットが非常に希薄です。この例では、データセットの6.3%が満たされていますが、その数値は私の0.30%になります。したがって、私のデータセットには多くの未知の値があります。私は約2900ユーザーと5000アイテムを持っています。
私はモデルを訓練しており、トレーニングMSEは降りることを拒否しています。私はparamtersを最適化しようとしましたが、役に立たない。私は以下の質問をしました:
(1)MSEは信頼できる基準ではありませんか?私はこの議論を行った:https://www.quora.com/How-do-you-measure-and-evaluate-the-quality-of-recommendation-engines
しかし、A/Bテストは私にとっては選択肢ではない。機械学習モデルでの私の経験は、トレーニングMSEがある時点で動かなくなった場合、かなり悪いことだと教えてくれました。(理由はたくさんあります)
私は正しく評価していませんか?
(2)コールドスタートの問題?私はユーザベクトルとアイテムベクトルをこのように初期化しています:
self.user_vectors = np.random.normal(size=(self.num_users,self.num_factors))
self.item_vectors = np.random.normal(size=(self.num_items,self.num_factors))
ここで変更できるものはありますか?
私は次に何をするのか混乱しています。行列の希薄さは非常に高く、私のアルゴリズムが多数のゼロの値を予測していることはわかっています。私は自分のMSEを一定に保っていると確信しています。
どのような考えや方向性が本当にありがとう!
おかげ
**カウント数はあなたのデータセットに何を表しますか?ユーザーが映画を視聴した回数 –
カウントとは、ユーザーが映画を視聴した回数を指します。 –