問題タブ [matrix-factorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
151 参照

keras - Keras で行列分解を実装するときの奇妙な動作

Keras を使用したレコメンデーション用の行列分解の単純なモデルを実装しています。モデルを実行すると、いくつかの奇妙な動作が見つかりました。

  • ユーザーとアイテムの潜在的要因は、ゼロ ベクトルに向かう傾向があります。
  • ゼロ以外の値 (値が 1) だけを当てはめようとしても、これらの潜在因子は 0 になります。さらに奇妙なことに、真の値 (常に 1) と予測値 (常に 1) の差であっても、トレーニングと検証の損失が減少します。ユーザーの潜在因子とアイテムの潜在因子の間の内積である)を増やす必要があります(これらの潜在因子がゼロになるため)。損失指標として「mse」を使用します。

何が起こったのかわかりません。誰かが以前にこの問題に遭遇したことがある場合は、解決策を共有していただければ幸いです。(コードがかなり面倒なので投稿できなくてすみません)。ありがとうございました。

0 投票する
1 に答える
556 参照

machine-learning - 行列分解で過剰適合を検出する方法は正しいですか?

ユーザーのクリック行動記録に基づくレコメンダー システム アルゴリズムとして行列分解を使用しています。2 つの行列因数分解法を試します。

最初のものは基本的な SVD であり、その予測はユーザー ファクター ベクトルuとアイテム ファクターiの積です: r = u * i

2 番目に使用したのは、バイアス コンポーネントを使用した SVD です。

r = u * i + b_u + b_i

ここで、b_ub_iは、ユーザーとアイテムの好みの偏りを表します。

私が使用しているモデルの 1 つはパフォーマンスが非常に低く、もう 1 つは妥当です。なぜ後者のパフォーマンスが悪いのか、私にはよくわかりません。

オーバーフィッティングを検出する方法をグーグル検索したところ、学習曲線が良い方法であることがわかりました。ただし、x 軸はトレーニング セットのサイズで、y 軸は精度です。これは私をかなり混乱させます。トレーニング セットのサイズを変更するにはどうすればよいですか? データ セットからいくつかのレコードを選択しますか?

別の問題は、反復損失曲線をプロットしようとしたことです (損失は です)。そして、曲線は正常なようです:

ここに画像の説明を入力

しかし、私が使用する指標は適合率と再現率であるため、この方法が正しいかどうかはわかりません。反復精度曲線をプロットしましょうか??? または、これはすでに私のモデルが正しいことを示していますか?

私が正しい方向に進んでいるかどうか、誰か教えてください。どうもありがとう。:)