推奨システムの行列因数分解モデルは、潜在的な特徴の数をどのように決定するのですか?


8

私は、単純なユーザーアイテム、評価推奨システムのための行列因数分解手法を設計しようとしています。これについて2つの質問があります。

最初に、映画の推奨のための行列因数分解手法について見た単純な実装で、作成者は潜在特徴の次元を初期化し、2つの潜在特徴のユーザーマトリックスとアイテムマトリックスのKと呼びましょう。定数Kを2としましょう。彼の潜在的な特徴行列PとQのNXKとMXKでした。Rは、NXM次元(NユーザーとMアイテム)で近似しようとしている元のユーザーアイテム評価マトリックスです。だから私の質問は、この場合に定数に設定するのではなく、どのようにして最適な「K」(潜在的な特徴の数)を決定するのですか?

また、特定のユーザーの平均評価、ユーザーの性別、user_locationなど、私のデータセットに既にあるユーザーまたはアイテムの情報を、最終的な推奨を行いながら、行列分解のこの結果に組み込む方法もあります(私は推測)多分、他のコンテンツベースのフィルタリングモデルで表されるユーザーとアイテムの情報との混合モデルと、行列因数分解モデルが機能するでしょうか?)

1>最初の質問は、潜在的な特徴の最適な数をどのように決定するかですK 2>行列因数分解とコンテンツベースのフィルタリングの混合モデルを実装する最近の文献を知っている人はいます(人口統計情報を表す唯一の方法だと思うので)共通機能スペース内のユーザーとアイテムの数。)

回答:


3

最初の質問への回答として、相互検証は広く使用されているアプローチです。1つの可能なスキームは次のとおりです。

事前に選択された範囲内の各K値について、交差検証を使用してモデルのパフォーマンス(予測精度など)を推定します。これにより、k値ごとに1つの推定モデルパフォーマンスメトリックが提供されます。次に、最高のパフォーマンスに対応するkを選択します。

2番目の質問への回答として、「ハイブリッドアプローチ」の例を見てみましょう例:http://www.stanford.edu/~abhijeet/papers/cs345areport.pdf


0

あなたの最初の質問に答えるために、私は交差検証を行います、そして、2番目の質問のために、あなたはテンソル因数分解を調べるべきだと言います。多次元のデータ表現がある場合は、テンソル因数分解を検討してください。これにより、追加のデータを別の次元として使用できます。

以下のリンクで確認できます。

https://github.com/kuleshov/tensor-factorization
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.