2012-03-12 14 views
1

私はLuceneによって索引付けされる記事のデータベースを持っていますが、ユーザーのタグとmahoutで分類されます。記事には一定のスコアが付けられます(ユーザーはタグに同意または同意できません。マハウトで発見されたタグはユーザーのものと同じ扱いになります)。Mahoutでフルテキストのパーソナライズ検索

プロフィールやインタラクション履歴からユーザーの関心(特定のタグに興味があるかもしれません)を調べたいと思います。

ユーザーの興味をどのように保存できますか?
ユーザーの興味を使って検索結果を並べ替えたりフィルタリングしたりするにはどうすればよいですか?

私のアプローチは可能ですか?実現可能か?スケーラブル?
どのような技術とアルゴリズムを使用できますか?提案してください!

答えて

2

これは検索の問題のように聞こえるもので、推奨の問題ではありません。主に、タグに基づいて検索結果をソートしてフィルタリングしています。私はLuceneが一般的にMahoutではなく、展開するツールだと思います。 (タグを学ぶためにMahoutの分類器を使用してますがかなり右である。)

あなたが本当に推薦の問題としてこれを想像したい場合は、私はあなたのアイテムがタグと言うかもしれません。 X、Y、Zのタグが付いたページを表示するようなタグを操作すると、X、Y、Zの「アイテム」に少し興味があることを示します。興味

あなたは、私はそれが推薦コンテキストで素晴らしい結果が得られないだろうと思いますけれども、数値の「格付け」とタグとの相互作用の簡単な数を使用して試みることができます。カウントのログを使用する方が良いですが、それでも間違っていると感じます。インタラクション数を無視して、ユーザーとタグが相互作用したかどうか、つまり「ブール値の設定」を使用することができます。

ベストマッチこの入力は、私が知っていることを、あなたはParallelALSFactorizationJobで見る交互最小二乗モデルである推薦アルゴリズムモデル。それがあなたにとって有用かどうかは分かりませんが、時間と傾きがあればそれを調べるアルゴリズムです。その入力は格付けではなく「相互作用の強さ」に似ており、それはそのように扱われ、それがあなたがここに持つものです。

+0

あなたの答えをありがとう。私は興味のある新しいタグを示唆することにあなたのポイントを持っています。しかし、検索結果の並べ替えやフィルタリングのための意味のある情報を出力するための入力として、記事の分類とユーザーの関心を受け付けるアルゴリズムはありますか? –

+0

記事に関連するタグと、ユーザーに関連するタグを知っている場合、これは簡単な検索問題です。指定されたユーザーと最も重複する項目を返します。対数尤度類似度メトリックを使用することもできますが、それはMahoutにあります。 –

1

多くの場合、ユーザーが関心のあるタグを明示的に言うようにするのは簡単です。これは、たとえばスタックオーバーフローなどです。タグが関心のあるタグであれば、いくらかの金額でスコアを下げることができます。

もっと暗黙のうちに何かしたいのであれば、Mahoutは推奨でFAQです。

関連する問題