1

私は、頻繁に変化する確率的潜在因子モデルに基づいて、カスタムレコメンダーシステムを繰り返し構築しています。モデルを実装するJavaコードをすでに作成しました。ユーザーアイテムの評価マトリックスを2つのマトリックスUxK(ユーザー特徴ベクトル)とIxK(アイテム特徴ベクトル)に分解して、欠落している評価を推定します。

コードをフレームワークにプラグインして(おそらく書き直して)、レコメンダーシステム、ベースラインを構築し、標準的な方法でこれらを相互に比較できるようにする最も簡単な方法を探しています-たとえば、適合率を計算するための相互検証、再現率、RMSE ...私のシステムにはまだこれがないため、フレームワークは、推定されたユーザーアイテム評価マトリックスに基づいて計算および推奨を行うためのメソッドを提供する必要があります。

Mahoutがその仕事をするべきだと思われます。ただし、そのドキュメントには「現在、モデルベースのレコメンダーはサポートされていません」と記載されています。私が達成しようとしていることがMahoutで可能かどうか、そしてそれを使用する方法を学ぶために時間を費やす価値があるかどうかを誰かに教えてもらえますか?Mahoutが適切でない場合、代替案を提案できますか?

どうもありがとう!

4

2 に答える 2

3

Mahoutメーリングリストの素敵な仲間に聞いたほうがいいと思います

とはいえ、Mahoutは、行列の計算にさまざまな因数分解を使用するSVDベースの推奨を提供します。たとえば、2つのモードをサポートするALSWRFactorizerがあります。

  1. 明示的なフィードバック評価マトリックスの因数分解。論文を見る
  2. 暗黙のフィードバックバリアントの因数分解。論文を見る

独自のレコメンダーを実装する(AbstractRecommenderを拡張する)か、独自のfactorizerを実装する(AbstractFactorizerを拡張する)ことで、機能を簡単に拡張できるはずです。それにもかかわらず、あなたのアプローチや実装についてもっと知ることなしに、私は本当にこれ以上言うことはできません。

于 2013-02-08T15:20:23.433 に答える
0

レコメンダーには2つのクラスがあります。データに基づく(SVDなどの特定のユーザー向けのレコメンデーションを生成する)モデルに基づく(RBMなどのユーザーデータによってレコメンデーションを構築するためのモデルを生成する)

Mahoutはモデルベースのレコメンダーをサポートしていません(そうするための適切なインターフェースがありません)いくつかのアルゴリズムを実装できますが、すぐに使用できるモデルベースのアプローチの一部の機能は使用できません。

ちなみに、私はMyMediaLiteを好みます(データセットがHadoopを回避するのに十分小さい場合)。MMLはアンサンブルをサポートし、より多くのアルゴリズムがあります。

于 2014-07-09T14:40:34.627 に答える