問題タブ [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.
r - 非負行列因数分解 (IntNMF) を使用したクラスタリング: 「次元がゼロです」エラーの対処方法
パッケージを使用してIntNMF
、データセット内のクラスターを見つけたいと考えています。私のデータはスパース マトリックス (80 ~ 90% ゼロ) で、行に被験者、列に特徴があります。何らかの理由でエラーが発生し、その理由や対処法がわかりません。
私が得るエラーは次のとおりです。
スパース性は問題ないと思いましたが、そうかもしれません。私はIntNMF
まだ NMF やパッケージにあまり詳しくないので、ヒントをいただければ幸いです。
machine-learning - Vowpal Wabbit: 低ランクの行列分解?
非常に基本的な質問があります。低ランクの行列因数分解を行いたいのですが、このトピックに関するVowpal Wabbit のドキュメントを見ていました。私の質問は:
これら2つのアプローチに違いはありますか? (実装またはその他)
また
ここで、a
とb
は特徴の名前空間で5
あり、 は潜在因子の次元です。
考えられるフォローアップ:
これらが同等である場合、--rank
高次の相互作用でも機能しますか?
python - tensorflow を使用したバッチ行列分解でのメモリ リーク
レート行列がR
あり、それを行列に因数分解し、テンソルフローを使用するU
とします。V
バッチサイズがないと単純な問題であり、次のコードで解決できます。
私はバッチ更新でこの問題を解決することに決めました。私の解決策はインデックスを送信しU
、V
レートマトリックスの予測に使用し、R
ここで選択したものだけを更新するのが私のコードです(時間がかかる場合はコメントを読んでください):
しかし、すぐにメモリリークがu = tf.assign(u, tmp_u)
あり、これu = tf.assign(u, tmp_u)
を適用しましたが、何も得られませんでした。
のサブセットだけに更新を適用する別の解決策がありましたU
がV
、他にも多くのエラーが発生したため、メモリリークの問題を解決する方法を続けてください。
長い質問で申し訳ありません。読んでくれてありがとう。
c# - レコメンデーション システムに行列分解を使用する
C# 6.0 でアイテム ベースの共同フィルターを使用して、レストランのレコメンダー システムに取り組んでいます。アルゴリズムを可能な限りうまく機能させるように設定したいので、ユーザーがまだレビューしていないレストランの評価を予測するさまざまな方法について調査しました。
私が行った調査から始めます
最初に、ユーザー間のピアソン相関を使用してユーザーベースの共同フィルターをセットアップし、どのユーザーがうまく適合しているかを確認できるようにしたいと考えました。
これに関する主な問題は、この相関関係を計算できるようにするために必要なデータの量でした。まず、同じレストランのユーザー 2 人あたり 4 件のレビューが必要でした。しかし、私のデータは非常にまばらになります。2 人のユーザーがまったく同じ 4 つのレストランをレビューしたとは考えにくいです。一致条件を広げることでこれを修正したかったのですが (つまり、同じレストランのユーザーを一致させるのではなく、同じ種類のレストランのユーザーを一致させる)、相関関係でどのレビューを使用するかを判断するのが難しいという問題が発生しました。ユーザーは、タイプが「ファスト フード」のレストランに 3 件のレビューを残した可能性があります。ファースト フード レストランに関する他のユーザーのレビューに最もよく当てはまるのはどれですか?
さらに調査を重ねた結果、アイテム ベースの共同フィルターは、ユーザー ベースの共同フィルターよりも優れていると結論付けました。しかし、ここでもデータの希薄性の問題が発生しました。私のテストでは、ユーザーがまだレビューしていないレストランの評価の予測を計算することに成功しましたが、まばらなデータセットでアルゴリズムを使用すると、結果は十分ではありませんでした。(ほとんどの場合、2 人のユーザーが同じレストランを評価していないため、2 つのレストラン間で類似性を示すことはできませんでした)。
さらに調査を重ねた結果、行列分解法を使用するとスパース データでうまく機能することがわかりました。
今私の問題
私はこの方法を使用するためのチュートリアルをインターネットで探していましたが、レコメンダー システムの経験がなく、代数に関する知識も限られています。メソッドの正当性を理解しています。一方にユーザー、もう一方にレストランがあるマトリックスがあります。各セルは、ユーザーがレストランに付けた評価です。
行列因数分解法では、この 2 つの行列が作成されます。1 つはユーザーとレストランの種類の間の重みを持つ行列で、もう 1 つはレストランとこれらの種類の間の重みを持つ行列です。
私が理解できないのは、レストランのタイプとレストラン/ユーザーの間の重みを計算する方法です(行列分解を正しく理解している場合)。これらの数値を計算する数十の数式を見つけましたが、それらを分解してアプリケーションに適用する方法がわかりません。
私のアプリケーションでデータがどのように表示されるかの例を示します。
この表では、U1 はユーザーを表し、R1 はレストランを表します。各レストランには独自のタグ (レストランの種類) があります。つまり、R1 には「イタリアン」というタグがあり、R2 には「ファーストフード」というタグがあります。
私を正しい方向に向けたり、データに対してこの方法を使用する方法を説明したりできる人はいますか? どんな助けでも大歓迎です!