न्यूनतम बनाम सिमिंग


12

मान लीजिए मेरे पास पाँच सेट हैं जिन्हें मैं क्लस्टर करना चाहता हूँ। मैं समझता हूँ कि सिम्हाशिंग तकनीक यहाँ वर्णित है:

https://moultano.wordpress.com/2010/01/21/simple-simhashing-3kbzhsxyg4467-6/

तीन समूहों उत्पन्न हो सकते हैं ( {A}, {B,C,D}और {E}), उदाहरण के लिए, अगर इसके परिणाम थे:

A -> h01
B -> h02
C -> h02
D -> h02
E -> h03

इसी तरह, MMH पुस्तक के अध्याय 3 में वर्णित मिनहशिंग तकनीक:

http://infolab.stanford.edu/~ullman/mmds/ch3.pdf

यदि इसके परिणाम निम्न थे तो वही तीन क्लस्टर भी प्राप्त कर सकते हैं:

A -> h01 - h02 - h03

B -> h04 - h05 - h06
      |
C -> h04 - h07 - h08
                  |
D -> h09 - h10 - h08

E -> h11 - h12 - h13

(प्रत्येक सेट एक एमएच सिग्नेचर से संबंधित होता है जो तीन "बैंड" से बना होता है, और दो सेटों को समूहीकृत किया जाता है यदि उनके कम से कम एक बैंड का मिलान होता है।

हालाँकि मेरे पास इनसे जुड़े कई सवाल हैं:

(1) क्या SH को MH के एकल बैंड संस्करण के रूप में समझा जा सकता है ?

(2) क्या MH जरूरी क्लस्टर बनाने के लिए यूनियन-फाइंड जैसी डेटा संरचना का उपयोग करता है?

(३) क्या मैं यह सोचने में सही हूँ कि दोनों तकनीकों में क्लस्टर्स वास्तव में "प्री-क्लस्टर्स" हैं, इस अर्थ में कि वे "उम्मीदवार जोड़े" के सेट हैं?

(४) यदि (३) सत्य है, तो क्या इसका अर्थ यह है कि मुझे अभी भी प्रत्येक "पूर्व-क्लस्टर" के अंदर एक खोज करनी है, ताकि उन्हें "वास्तविक" समूहों में विभाजित किया जा सके? (यदि मैं बहुत छोटे और काफी संतुलित प्री-क्लस्टर्स के लिए उचित हो, तो बहुत अधिक अन्यथा नहीं)हे(n2)

जवाबों:


3

जैसा कि सही ढंग से मिन्हाश और सिम्हाश के ऊपर बताया गया है, दोनों स्थानीयता संवेदनशील हाशिंग से संबंधित हैं। संदर्भ: https://en.wikipedia.org/wiki/Locality-sensitive_hashing

दोनों के बीच मुख्य अंतर टकराव से निपटने का तरीका है,

  1. SimHash, कोसाइन समानता का उपयोग करता है
  2. मिनहाश, जैकार्ड सूचकांक का उपयोग करता है।

आपके सवालों के जवाब:

  1. नहीं। वे समानता को मान्य करने के लिए विभिन्न टकराव से निपटने की तकनीकों का उपयोग करते हैं। इसके अलावा मिन हैश के लिए सिंगल हैश फंक्शन पर एक वेरिएंट है लेकिन यह अलग तरह से काम करता है। अधिक जानकारी के लिए, निम्न संदर्भ देखें , https://en.wikipedia.org/wiki/MinHash (एकल हैश फ़ंक्शन के साथ वेरिएंट)
  2. हां, https://github.com/chrisjmccormick/MinHash/blob/master/runMinHashExample.py
  3. मुझे लगता है कि क्लस्टरिंग करते समय द्विआधारी खोज के संशोधित रूप के साथ जटिलता को तक कम किया जा सकता है।हे(nलॉगn)

SimHash और MinHash इन समानता कार्यों का उपयोग नहीं करते हैं। मुझे लगता है कि यह कहने का एक बेहतर तरीका यह होगा कि वे खुदाई करें जो इन कार्यों को अनुमानित करता है।
एलेक्सी ग्रिगोरोव

@AlexeyGrigorev मैं थोड़ा भ्रमित हूँ। मैंने minHash 'computeSimilarityFromSignatures' @ लिंक के लिए निम्नलिखित कार्यान्वयन को देखा । यह एक का उपयोग करता है। HashedArray (A) और HashedArray (B) | / (प्रविष्टियों की कुल संख्या)
Pramit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.