私は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. 共有メモリを使用している場合、スレッディングよりもプロセスに利点はありますか?
- 3. ソフトウェアをパッケージマネージャからインストールするよりもソースからビルドすることの利点はありますか?
- 4. phpassのカスタムベース64エンコーダ:Base64よりも名前/利点がありますか?
- 5. テーブルよりも少ないテーブルはありますか?
- 6. TerminateProcessよりも親切な方法はありますか?
- 7. CSSより重要なものはありますか?
- 8. Google Mapsよりも安価なAPIサービスはありますか?
- 9. コンストラクタインジェクションよりプロパティインジェクションの利点はありますか?
- 10. NSIndexPathオブジェクトを作成するより便利な方法はありますか?
- 11. ライオンに便利なマックポートや自家製のものはありませんか?
- 12. VB.NETには "global ::"のようなものがありますか?
- 13. JavaにRhinoMocksのようなものはありますか?
- 14. プリズムインフラストラクチャプロジェクトにはどのようなものがありますか?
- 15. JavaにはCHESSのようなものがありますか?
- 16. アンドロイドにNSDictionaryのようなものはありますか?
- 17. redisにget_nextのようなものはありますか?
- 18. iOS用にNSPredicateEditorのようなものはありますか?
- 19. Windows Azureにアセンブリバインディングログビューアのようなものはありますか?
- 20. Luaにポインタのようなものはありますか?
- 21. gcc/g ++にはどのような便利なオプションがありますか?
- 22. VS2010 SP1にはどのような大きな利点がありますか?
- 23. コーディング担当者以外のセマンティックHTMLにも利点はありますか(つまり、ユーザー、SEOなど)?
- 24. ActionFormよりもDyaActionFormの利点は?
- 25. 「あまりにも抽象的」なものがありますか?
- 26. サービスブローカがRESTORE DATABASEよりも無効になる理由はありますか
- 27. ASP.NET MVCに便利なアクションサマリー拡張メソッドはありますか?
- 28. Androidサポートライブラリの使用に不利な点はありますか?
- 29. Visual Studioで「マルチプロセッサコンパイル」に不利な点はありますか?
- 30. サーブレットコンテキストよりも上位に何かがありますか
[生産システムでのSimHashとMinHashの選択]の可能な複製(http://stackoverflow.com/questions/27712472/choosing-between-simhash-and-minhash-for-a-production-system) – KornMuffin