2

私は、同様の好みを持つユーザーに基づいてアイテムを提案する機能に大きく依存する Web アプリケーションを開発しています。私の友人は、私が探しているのは - 数学的に - クラスター分析アルゴリズムであると教えてくれました。一方、ここSOでは、Neo4j(または他のグラフDB)が、このタスク(好みのもの)のためにアプローチすべき種類のDBであると言われました。

私はこの両方のツールの研究を始めましたが、いくつか疑問があります。クラスター分析の目的では、標準の SQL DB が依然として完璧な選択であると思われますが、Neo4j はニューラル ネットワークのようなアプローチに適しています (ただし、タスクには完全に適合します)。

何か不足していますか?間違ったツールの組み合わせを使用しようとしていますか?

この件に関するいくつかのアイデアを聞きたいです。

共有してくれてありがとう

4

3 に答える 3

6

これはデータによって異なります。neo4j は、1 つの特定のノードに対して複雑な推奨事項をリアルタイムで提供することもできます。たとえば、ユーザーに製品を推奨したいとします。これはグラフ データベース内でリアルタイムに処理できます。

一方、クラスタリング システムを使用することは、すべてのユーザーに対して一度にレコメンデーションを行うための最良の方法です (また、再度計算する必要がないように、どこかに保存することもできます)。

計算上の違い:

  • neo4j には初期化コストがなく、許容時間内に 1 つの推奨事項を提供できます
  • クラスタリングは初期化により多くの時間を必要とし (たとえば、秒単位ではなく、おそらく分/時間単位)、データセット全体の推奨事項を計算する方が適切です。実際、特定のユーザーの 1 つの計算に厳密に時間をかけて、このクラスタリングは neo4j よりも高速に実行できますが、大きな制限は初期初期化であるため、リアルタイム アプリケーションには適していません。

実際の違い:

  • ほとんどの静的データがあり、SQL でクラスタリングを行うよりも、一度に 1 回推奨を実行しても問題ない場合

  • データが相互作用ごとに更新され、常に最新の推奨事項を提供する必要がある動的データを取得した場合は、neo4j を使用するよりも

于 2013-03-14T09:04:01.520 に答える
2

私は現在、neo4j を使用したレコメンデーションとクラスタリングに関連するさまざまなトピックに取り組んでいます。何を探しているのか正確にはわかりませんが、グラフにデータを実装する方法に応じて、さまざまなタイプのノードへのリンクをカウントすることに基づいてクラスタリング アルゴリズムを簡単に作成できます。

ノードと関係を正しく計画すると、一連のカテゴリへの最も一般的なリンクを共有するノードのグループを特定できます。

于 2013-03-14T11:38:24.860 に答える
2

紹介させてください Reco4J ( http://www.reco4j.org ) は、グラフ データベース ソースに基づいてレコメンデーションを提供するオープン ソース フレームワークです。グラフ データベース管理システムとして neo4j を使用します。それを見て、サポートに興味がある場合はお問い合わせください。これは非常に初期のリリースですが、拡張されたドキュメントと新しい興味深い機能を提供するために懸命に取り組んでいます。

乾杯、 アレッサンドロ

于 2013-03-14T12:23:27.497 に答える