1

Luceneによって索引付けされ、ユーザーのタグとmahoutによって分類される記事のデータベースがあります。記事にはタグ付けする特定のスコアがあります(ユーザーはタグに同意または反対できます。mahoutによって検出されたタグはユーザーのものと同じように扱われます)。

プロファイルとインタラクション履歴からユーザーの興味(おそらく特定のタグへの興味)を知りたいです。

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

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

4

2 に答える 2

2

これは主に検索の問題のように聞こえますが、推奨の問題ではありません。主に、タグに基づいて検索結果を並べ替えてフィルタリングします。そのため、Luceneは一般的に、Mahoutではなく、デプロイするためのツールだと思います。(Mahout分類子を使用してタグを学習することは非常に正しいですが。)

これをレコメンダーの問題として本当に想像したいのなら、あなたのアイテムはタグだと言うかもしれません。X、Y、Zのタグが付いたページを表示するなど、タグを操作するときはいつでも、「アイテム」X、Y、Zにもう少し興味があることを示します。ここでの推奨事項は、次の新しいタグを提案することです。興味。

タグとの相互作用の単純なカウントを数値の「評価」として使用してみることができますが、それはレコメンダーのコンテキストでは素晴らしい結果をもたらさないと思います。カウントのログを使用する方が良いですが、それでも間違っていると感じます。インタラクションカウントを無視して、ユーザーとタグがインタラクションしたことがあるかどうかを使用することができます-「ブール設定」。

私が知っているこの入力に最もよく一致する推奨アルゴリズムモデルは、ParallelALSFactorizationJobに表示される交互最小二乗モデルです。それがあなたに使えるかどうかはわかりませんが、それはあなたが時間と傾向を持っているかどうかを調査するアルゴリズムです。その入力は、評価ではなく「相互作用の強さ」のようなものであり、そのように扱われます。これが、ここにあるものです。

于 2012-03-12T16:19:03.243 に答える
1

多くの場合、ユーザーに興味のあるタグを明示的に言わせる方が簡単です。たとえば、これはスタックオーバーフローが行うことです。タグが興味のあるものであれば、スコアをいくらか上げることができます。

もっと暗黙のことをしたい場合は、Mahoutに推奨に関するFAQがあります。

于 2012-03-12T15:48:29.407 に答える