私はsimhashと一緒に働いていますが、minhashがより効果的であることも見ています。
しかし、私は理解していません。
私のために説明してください:simhashよりもさらに有利なミニハッシュはありますか?simhashよりもさらに有利なミニハッシュはありますか?
答えて
simhashでは、超平面を保存する必要はありません。エラー範囲が少し悪化しています。 Simhash lecture
Simhashは高速であり、通常はminhashよりもメモリ要件が小さいですが、非常に近い類似点しか検出できないという事実によって制限されています。 2つの項目が少々異なる場合、それらの類似性は検出されません。一方、Minhashは、5%の類似度しか持たない項目など、非常に遠い類似点を検出するためにも使用できます。 Simhashはまた、理解するのが少し複雑です。
Minhashはアイテムごとに複数のハッシュを生成することに依存しています。通常は20〜400の64ビットハッシュの間にあります。これらのハッシュはすべて、ハッシュで索引付けされたアイテムのIDとともに格納する必要があります。たとえば、すべての商品を見つけるには特定のアイテムとの推定類似度が50%であれば、そのアイテムのハッシュの少なくとも50%を共有する他のすべてのアイテムを見つける必要があります。これには、かなり多数のハッシュ-IDIDペアを列挙することが含まれます。一方、Simhashはアイテムごとに1つのハッシュしか使用しません。 64ビットのハッシュ。このハッシュは、非常に類似したアイテムが非常に類似したビットパターンを有するハッシュを有するように生成される。このハッシュは、複数のテーブル(例えば8つの異なるテーブル)に格納され、各テーブルは異なる方法でハッシュのビットを置換し、各テーブルは置換されたハッシュを数値順にソートする必要があります。複数のテーブルを使用すると、指定されたハッシュから最大でnビットだけ異なるすべてのハッシュをすばやく見つけることができます。問題は、nは大きくできません。格納するアイテムの数、ハッシュ全体のビット数、メモリに保持できるテーブルの数によっては、nは3または可能であれば6または7になります。
Minhashとsimhashは、メモリの制約を克服する必要がある場合、両方のマシンで分割することができますが、どちらもテーブルをメインメモリに保持することによって速度が異なります。 simhashを作成する方法は、Googleが保有する特許によって保護されていますが、アルゴリズムの非商用利用を許可するようです。
- 1. 読者に有利なReaderWriterLockSlimはありますか?
- 2. Redmine:カスタムフィールドよりもカテゴリに対する利点はありますか?
- 3. 共有メモリを使用している場合、スレッディングよりもプロセスに利点はありますか?
- 4. ソフトウェアをパッケージマネージャからインストールするよりもソースからビルドすることの利点はありますか?
- 5. Spring AMQPはRabbitMQ Javaクライアントよりも利点がありますか?
- 6. jQuery要素を操作しながら、 `array.join`の文字列連結よりも利点はありますか?
- 7. phpassのカスタムベース64エンコーダ:Base64よりも名前/利点がありますか?
- 8. Google Mapsよりも安価なAPIサービスはありますか?
- 9. CSSより重要なものはありますか?
- 10. テーブルよりも少ないテーブルはありますか?
- 11. TerminateProcessよりも親切な方法はありますか?
- 12. コンストラクタインジェクションよりプロパティインジェクションの利点はありますか?
- 13. std :: forward_listよりGnomeのgslistに利点がありますか?
- 14. setup.pyよりもMakefile.amを使用する上で不利な点はありますか?
- 15. NSIndexPathオブジェクトを作成するより便利な方法はありますか?
- 16. 利用可能な流星のwhatsapp共有パッケージはありますか?
- 17. EMRはまだEC2よりもSparkにとって利点がありますか?
- 18. ライオンに便利なマックポートや自家製のものはありませんか?
- 19. JavaにはCHESSのようなものがありますか?
- 20. アンドロイドにNSDictionaryのようなものはありますか?
- 21. Luaにポインタのようなものはありますか?
- 22. AndroidにはlocalStorageのようなものがありますか?
- 23. プリズムインフラストラクチャプロジェクトにはどのようなものがありますか?
- 24. JavaにRhinoMocksのようなものはありますか?
- 25. redisにget_nextのようなものはありますか?
- 26. Isabelleにsubst_tacルールのようなものはありますか?
- 27. VB.NETには "global ::"のようなものがありますか?
- 28. Windows Azureにアセンブリバインディングログビューアのようなものはありますか?
- 29. iOS用にNSPredicateEditorのようなものはありますか?
- 30. AWS内にプライベートリソースのようなものはありますか?
[生産システムでのSimHashとMinHashの選択]の可能な複製(http://stackoverflow.com/questions/27712472/choosing-between-simhash-and-minhash-for-a-production-system) – KornMuffin