मिनहैश

कंप्यूटर विज्ञान और डेटा खनन में, मिनहैश (या न्यूनतम-वार स्वतंत्र क्रमपरिवर्तन स्थानीयता संवेदनशील हैशिंग स्कीम) दो सेटों की समानता को मापने के तरीके का शीघ्रता से अनुमान लगाने की एक तकनीक है। योजना का आविष्कार किसके द्वारा किया गया था, और प्रारंभ में डुप्लिकेट वेब पेजों का पता लगाने और उन्हें खोज परिणामों से हटाने के लिए AltaVista सर्च इंजन में उपयोग किया गया। यह बड़े पैमाने पर क्लस्टर विश्लेषण समस्याओं में भी लागू किया गया है, जैसे उनके शब्दों के सेट की समानता से दस्तावेज़ क्लस्टरिंग।

जैककार्ड समानता और न्यूनतम हैश मान
जैकार्ड इंडेक्स दो सेटों के बीच समानता का आमतौर पर इस्तेमाल किया जाने वाला संकेतक है। होने देना $U$ एक सेट हो और $A$ और $B$ के उपसमुच्चय हों $U$, तो जैकार्ड इंडेक्स को उनके प्रतिच्छेदन (सेट सिद्धांत) के तत्वों की संख्या और उनके संघ (सेट सिद्धांत) के तत्वों की संख्या के अनुपात के रूप में परिभाषित किया गया है:
 * $$ J(A,B) = {{|A \cap B|}\over{|A \cup B|}}.$$

यह मान 0 है जब दो सेट अलग सेट होते हैं, 1 जब वे बराबर होते हैं, और सख्ती से 0 और 1 के बीच अन्यथा। दो सेट अधिक समान होते हैं (अर्थात अपेक्षाकृत अधिक सदस्य होते हैं) जब उनका जैकार्ड इंडेक्स 1 के करीब होता है। मिनहैश का लक्ष्य अनुमान लगाना है $J(A,B)$ शीघ्रता से, प्रतिच्छेदन और संघ की स्पष्ट रूप से गणना किए बिना।

होने देना $h$ एक हैश फंकशन हो जो सदस्यों को मैप करता हो $U$ भिन्न पूर्णांकों के लिए, मान लीजिए $perm$ सेट के तत्वों का एक यादृच्छिक क्रमपरिवर्तन हो $U$, और किसी भी सबसेट के लिए $S$ का $U$ परिभाषित करना $h_{min}(S)$ का न्यूनतम सदस्य होना $S$ इसके संबंध में $h ∘ perm$—अर्थात् सदस्य $x$ का $S$ के न्यूनतम मूल्य के साथ $h(perm(x))$. (ऐसे मामलों में जहां उपयोग किए गए हैश फ़ंक्शन को छद्म-यादृच्छिक गुण माना जाता है, यादृच्छिक क्रमचय का उपयोग नहीं किया जाएगा।)

अब, आवेदन कर रहा हूँ $h_{min}$ दोनों के लिए $A$ और $B$, और कोई हैश टकराव नहीं मानते हुए, हम देखते हैं कि मान समान हैं ($h_{min}(A) = h_{min}(B)$) अगर और केवल अगर के सभी तत्वों के बीच $$A\cup B$$, न्यूनतम हैश मान वाला तत्व चौराहे पर स्थित है $$A\cap B$$. यह सच होने की संभावना वास्तव में जैकार्ड इंडेक्स है, इसलिए:

यानी संभावना है $Pr[ h_{min}(A) = h_{min}(B) ] = J(A,B),$ सच है समानता के बराबर है $h_{min}(A) = h_{min}(B)$, ड्राइंग मानते हुए $J(A,B)$ एक समान वितरण से। दूसरे शब्दों में, अगर $perm$ यादृच्छिक चर है जो एक है जब $r$ और शून्य अन्यथा, फिर $h_{min}(A) = h_{min}(B)$ के अनुमानक का पूर्वाग्रह है $r$. $J(A,B)$ का प्रसरण अपने आप में जैककार्ड समानता के लिए एक उपयोगी अनुमानक होने के लिए बहुत अधिक है, क्योंकि $$r$$ हमेशा शून्य या एक होता है। मिनहाश योजना का विचार एक ही तरह से निर्मित कई चरों को एक साथ जोड़कर इस भिन्नता को कम करना है।

कई हैश कार्यों के साथ संस्करण
मिनहाश योजना का सबसे सरल संस्करण उपयोग करता है $r$ विभिन्न हैश फ़ंक्शंस, जहाँ $k$ एक निश्चित पूर्णांक पैरामीटर है, और प्रत्येक सेट का प्रतिनिधित्व करता है $k$ से $S$ का मान $k$ इन के लिए $h_{min}(S)$ कार्य करता है।

अंदाज़ा लगाने के लिए $k$ योजना के इस संस्करण का उपयोग करते हुए, आइए $J(A,B)$ हैश फ़ंक्शंस की संख्या हो जिसके लिए $y$, और उपयोग करें $h_{min}(A) = h_{min}(B)$ अनुमान के रूप में। यह अनुमान का औसत है $y/k$ विभिन्न 0-1 यादृच्छिक चर, जिनमें से प्रत्येक एक कब है $k$ और शून्य अन्यथा, और जिनमें से प्रत्येक का एक निष्पक्ष अनुमानक है $h_{min}(A) = h_{min}(B)$. इसलिए, उनका औसत भी एक निष्पक्ष अनुमानक है, और 0-1 यादृच्छिक चर के योग के लिए मानक विचलन द्वारा, इसकी अपेक्षित त्रुटि है $J(A,B)$. इसलिए, किसी भी स्थिरांक के लिए $O(1/√k)$ एक नियतांक है $&epsilon; > 0$ जैसे अनुमान की अपेक्षित त्रुटि अधिक से अधिक हो$k = O(1/&epsilon;^{2})$. उदाहरण के लिए, अनुमान लगाने के लिए 400 हैश की आवश्यकता होगी $&epsilon;$ .05 से कम या उसके बराबर अपेक्षित त्रुटि के साथ।

एकल हैश फ़ंक्शन के साथ संस्करण
यह कई हैश कार्यों की गणना करने के लिए कम्प्यूटेशनल रूप से महंगा हो सकता है, लेकिन मिनहाश योजना का एक संबंधित संस्करण केवल एक हैश फ़ंक्शन का उपयोग करके इस दंड से बचा जाता है और इसका उपयोग प्रत्येक हैश फ़ंक्शन के लिए केवल एक न्यूनतम मान का चयन करने के बजाय प्रत्येक सेट से कई मानों का चयन करने के लिए करता है। होने देना $J(A,B)$ हैश फ़ंक्शन बनें, और दें $h$ एक निश्चित पूर्णांक हो। अगर $k$ का कोई सेट है $S$ या अधिक मान के डोमेन में $k$, परिभाषित करना $h$ का सबसेट होना $h_{(k)}(S)$ के सदस्यों $k$ जिसके सबसे छोटे मान हैं $S$. यह उपसमुच्चय $h$ सेट के लिए हस्ताक्षर के रूप में प्रयोग किया जाता है $h_{(k)}(S)$, और किन्हीं दो सेटों की समानता का अनुमान उनके हस्ताक्षरों की तुलना करके लगाया जाता है।

विशेष रूप से, A और B को कोई भी दो सेट होने दें। तब $S$ k तत्वों का एक सेट है $X = h_{(k)}(h_{(k)}(A) &cup; h_{(k)}(B)) = h_{(k)}(A &cup; B)$, और यदि h एक यादृच्छिक फलन है तो k तत्वों के किसी उपसमुच्चय के चुने जाने की समान संभावना है; वह है, $A &cup; B$ का एक साधारण यादृच्छिक नमूना है $X$. उपसमुच्चय $A &cup; B$ के सदस्यों का समुच्चय है $Y = X &cap; h_{(k)}(A) &cap; h_{(k)}(B)$ जो चौराहे के हैं $X$. इसलिए, |$A &cap; B$|/$Y$ का एक निष्पक्ष अनुमानक है $k$. इस अनुमानक और एकाधिक हैश फ़ंक्शंस द्वारा उत्पादित अनुमानक के बीच का अंतर यह है $J(A,B)$ हमेशा सटीक होता है $X$ सदस्य, जबकि कई हैश फ़ंक्शंस से नमूना तत्वों की एक छोटी संख्या हो सकती है, इस संभावना के कारण कि दो अलग-अलग हैश फ़ंक्शंस में एक ही मिनिमा हो सकती है। हालाँकि, कब $k$ सेट के आकार के सापेक्ष छोटा है, यह अंतर नगण्य है।

प्रतिस्थापन के बिना नमूने के लिए मानक चेरनॉफ़ सीमा से, इस अनुमानक ने त्रुटि की उम्मीद की है $k$, बहु-हैश-फ़ंक्शन योजना के प्रदर्शन का मिलान करना।

समय विश्लेषण
अनुमानक $O(1/√k)$ की गणना समय पर की जा सकती है $&#124;Y&#124;/k$ दिए गए सेट के दो हस्ताक्षरों से, योजना के किसी भी प्रकार में। इसलिए, कब $O(k)$ और $&epsilon;$ स्थिरांक हैं, हस्ताक्षरों से अनुमानित समानता की गणना करने का समय भी स्थिर है। प्रत्येक सेट के हस्ताक्षर की गणना सेट के आकार पर रैखिक समय में की जा सकती है, इसलिए जब कई जोड़ीदार समानताओं का अनुमान लगाने की आवश्यकता होती है, तो इस विधि से प्रत्येक सेट के सदस्यों की पूर्ण तुलना करने की तुलना में चलने के समय में पर्याप्त बचत हो सकती है।. विशेष रूप से, सेट आकार के लिए $k$ अनेक हैश वैरिएंट लेता है $n$ समय। सिंगल हैश वैरिएंट आमतौर पर तेज़ होता है, जिसकी आवश्यकता होती है $O(n k)$ समय मानते हुए न्यूनतम हैश मान की कतार बनाए रखने के लिए $O(n)$.

वजन शामिल करना
MinHashes की गणना में वज़न पेश करने के लिए कई तरह की तकनीकों का विकास किया गया है। सरलतम इसे पूर्णांक भार तक बढ़ाता है। हमारे हैश फ़ंक्शन का विस्तार करें $h$ एक सेट सदस्य और एक पूर्णांक दोनों को स्वीकार करने के लिए, फिर प्रत्येक आइटम के लिए उसके वजन के अनुसार कई हैश उत्पन्न करें। अगर आइटम $i$ घटित होना $n$ बार, हैश उत्पन्न करें $$h(i,1), h(i,2), \ldots, h(i,n)$$. हैश के इस विस्तारित सेट पर मूल एल्गोरिथम चलाएं। ऐसा करने से टक्कर की संभावना के रूप में जैकार्ड इंडेक्स#भारित जैककार्ड समानता और दूरी प्राप्त होती है।


 * $$J_\mathcal{W}(x,y) = \frac{\sum_i \min(x_i,y_i)}{\sum_i \max(x_i,y_i)}$$

बेहतर रनटाइम के साथ वास्तविक भार पर इस टकराव की संभावना को प्राप्त करने वाले और विस्तार विकसित किए गए हैं, एक सघन डेटा के लिए, और दूसरा विरल डेटा के लिए। एक्सटेंशन का एक और परिवार तेजी से वितरित हैश का उपयोग करता है। 0 और 1 के बीच एक समान रूप से यादृच्छिक हैश को व्युत्क्रम परिवर्तन नमूने द्वारा एक घातीय वितरण का पालन करने के लिए परिवर्तित किया जा सकता है। यह विधि एक्सपोनेंशियल डिस्ट्रीब्यूशन के कई खूबसूरत गुणों का फायदा उठाती है#न्यूनतम एक्सपोनेंशियल रैंडम वेरिएबल्स का वितरण।


 * $$H(x) = \underset{i}{\operatorname{arg\,min}} \frac{-\log(h(i))}{x_i}$$

इससे टक्कर की संभावना के रूप में जैककार्ड इंडेक्स#प्रायिकता जैकार्ड समानता और दूरी प्राप्त होती है
 * $$J_\mathcal{P}(x,y) = \sum_{x_i\neq 0 \atop y_i \neq 0} \frac{1}{\sum_{j} \max\left(\frac{x_j}{x_i}, \frac{y_j}{y_i}\right)}$$

न्यूनतम-वार स्वतंत्र क्रमपरिवर्तन
जैसा कि ऊपर बताया गया है, मिनहैश योजना को लागू करने के लिए हैश फ़ंक्शन की आवश्यकता होती है $n >> k$ एक यादृच्छिक क्रमचय को परिभाषित करने के लिए $h$ तत्व, जहां $n$ तुलना किए जाने वाले सभी सेटों के संघ में अलग-अलग तत्वों की कुल संख्या है। लेकिन क्योंकि हैं $n$ विभिन्न क्रमपरिवर्तन, इसकी आवश्यकता होगी $n!$ बिट्स वास्तव में यादृच्छिक क्रमचय निर्दिष्ट करने के लिए, यहां तक ​​​​कि मध्यम मूल्यों के लिए एक अविश्वसनीय रूप से बड़ी संख्या $&Omega;(n log n)$. इस तथ्य के कारण, सार्वभौमिक हैशिंग के सिद्धांत के अनुरूप, क्रमचय के एक परिवार को खोजने पर महत्वपूर्ण काम किया गया है जो कि न्यूनतम-वार स्वतंत्र है, जिसका अर्थ है कि डोमेन के किसी भी उपसमुच्चय के लिए, कोई भी तत्व समान रूप से न्यूनतम होने की संभावना है. यह स्थापित किया गया है कि क्रमपरिवर्तन के एक न्यूनतम-वार स्वतंत्र परिवार में कम से कम शामिल होना चाहिए
 * $$\operatorname{lcm}(1, 2, \cdots, n) \ge e^{n-o(n)}$$

विभिन्न क्रमपरिवर्तन, और इसलिए इसकी आवश्यकता है $n$ बिट्स एकल क्रमचय निर्दिष्ट करने के लिए, अभी भी अव्यवहारिक रूप से बड़ा है।

व्यावहारिक न्यूनतम-वार स्वतंत्र हैश फ़ंक्शन
उपरोक्त अव्यावहारिकता के कारण, न्यूनतम-वार स्वतंत्रता के दो भिन्न विचारों को पेश किया गया है: प्रतिबंधित न्यूनतम-वार स्वतंत्र क्रमपरिवर्तन परिवार, और अनुमानित न्यूनतम-वार स्वतंत्र परिवार। प्रतिबंधित न्यूनतम-वार स्वतंत्रता न्यूनतम-वार स्वतंत्रता संपत्ति है जो कार्डिनैलिटी के कुछ सेटों तक सीमित है $&Omega;(n)$. अनुमानित न्यूनतम-वार स्वतंत्रता की अधिक से अधिक एक निश्चित संभावना होती है $k$ पूर्ण स्वतंत्रता से भिन्न। 1999 में पीटर इंडिक साबित हुए कि कोई भी के-इंडिपेंडेंट_हैशिंग|के-वार हैश फ़ंक्शंस का स्वतंत्र परिवार भी लगभग न्यूनतम-वार स्वतंत्र है $$k$$ बहुत पर्याप्त। विशेष रूप से, स्थिरांक होते हैं $$c,c'>0$$ ऐसा कि अगर $$k\ge c \log\tfrac{1}{\epsilon}$$, तब
 * $$\Pr_{h\in \mathcal H}[h(x)<\min h(X)]=\frac{1}{|X|+1}(1\pm\epsilon),$$

सभी सेटों के लिए $$|X|\le \epsilon n c'$$ और $$x\in X$$. (ध्यान दें, यहाँ $$(1\pm\epsilon)$$ इसका मतलब है कि संभावना अधिक से अधिक एक कारक है $$1+\epsilon$$ बहुत बड़ा, और अधिक से अधिक $$1-\epsilon$$ बहुत छोटा।)

यह गारंटी, अन्य बातों के अलावा, मिनहैश एल्गोरिथम द्वारा आवश्यक जैककार्ड बाउंड देने के लिए पर्याप्त है। यानी अगर $$A$$ और $$B$$ सेट हैं, फिर
 * $$\Pr_{h\in\mathcal H}[\min h(A) = \min h(B)] = \frac{|A\cap B|}{|A\cup B|}\pm\epsilon.$$

चूंकि के-इंडिपेंडेंट_हाशिंग | के-वार स्वतंत्र हैश फ़ंक्शंस को बस का उपयोग करके निर्दिष्ट किया जा सकता है $$k\log n$$ बिट्स, यह दृष्टिकोण पूरी तरह न्यूनतम-वार स्वतंत्र क्रमपरिवर्तन का उपयोग करने से कहीं अधिक व्यावहारिक है।

हैश फ़ंक्शंस का एक अन्य व्यावहारिक परिवार जो लगभग न्यूनतम-वार स्वतंत्रता देता है, सारणीयन हैशिंग है।

अनुप्रयोग
मिनहाश के लिए मूल अनुप्रयोगों में वेब दस्तावेज़ों के बीच क्लस्टरिंग और निकट-डुप्लिकेट को समाप्त करना शामिल था, जो उन दस्तावेज़ों में आने वाले शब्दों के सेट के रूप में दर्शाए गए थे। अन्य प्रकार के डेटा के लिए क्लस्टरिंग और निकट-डुप्लिकेट उन्मूलन के लिए भी इसी तरह की तकनीकों का उपयोग किया गया है, जैसे कि छवियां: छवि डेटा के मामले में, एक छवि को छोटे सबइमेज के सेट के रूप में या उससे अधिक के सेट के रूप में दर्शाया जा सकता है। जटिल छवि सुविधा विवरण। डाटा माइनिंग में, एसोसिएशन नियम सीखना के लिए एक टूल के रूप में मिनहैश का उपयोग करें। एक डेटाबेस को देखते हुए जिसमें प्रत्येक प्रविष्टि में कई विशेषताएँ होती हैं (एक तार्किक मैट्रिक्स के रूप में देखा जाता है। 0-1 मैट्रिक्स एक पंक्ति प्रति डेटाबेस प्रविष्टि और एक स्तंभ प्रति विशेषता के साथ) वे उम्मीदवारों के जोड़े की पहचान करने के लिए जैकार्ड इंडेक्स के लिए मिनहैश-आधारित सन्निकटन का उपयोग करते हैं। अक्सर सह-होता है, और उसके बाद केवल उन जोड़े के लिए सूचकांक के सटीक मूल्य की गणना करें जिनकी सह-घटना की आवृत्ति एक निश्चित सीमा से नीचे है। मिनहैश एल्गोरिदम को जैव सूचना विज्ञान के लिए अनुकूलित किया गया है, जहां जीनोम अनुक्रमों की तुलना करने की समस्या वेब पर दस्तावेजों की तुलना करने के समान सैद्धांतिक आधार है। मिनहैश-आधारित उपकरण संदर्भ जीनोम के साथ पूरे जीनोम अनुक्रमण डेटा की तेजी से तुलना की अनुमति दें (RefSeq में 90000 संदर्भ जीनोम के साथ एक जीनोम की तुलना करने के लिए लगभग 3 मिनट), और अटकलों के लिए उपयुक्त हैं और शायद माइक्रोबियल उप-टाइपिंग की एक सीमित डिग्री। मेटाजेनोमिक्स के लिए भी आवेदन हैं और जीनोम संरेखण और जीनोम असेंबली के लिए मिनहैश व्युत्पन्न एल्गोरिदम का उपयोग। सटीक औसत न्यूक्लियोटाइड पहचान (एएनआई) मूल्यों को मिनहाश-आधारित एल्गोरिदम के साथ बहुत कुशलतापूर्वक उत्पन्न किया जा सकता है।

अन्य उपयोग
मिनहैश योजना को स्थानीयता-संवेदनशील हैशिंग के एक उदाहरण के रूप में देखा जा सकता है, हैश फ़ंक्शंस का उपयोग करने के लिए तकनीकों का एक संग्रह वस्तुओं के बड़े सेट को छोटे हैश मानों में मैप करने के लिए इस तरह से है कि, जब दो वस्तुओं की एक दूसरे से थोड़ी दूरी हो, उनके हैश मान समान होने की संभावना है। इस उदाहरण में, सेट के हस्ताक्षर को उसके हैश मान के रूप में देखा जा सकता है। यूक्लिडियन वेक्टर के बीच सेट और कोसाइन दूरी के बीच हैमिंग दूरी के लिए अन्य इलाके संवेदनशील हैशिंग तकनीकें मौजूद हैं; लोकैलिटी सेंसिटिव हैशिंग के पास निकटतम पड़ोसी खोज एल्गोरिदम में महत्वपूर्ण अनुप्रयोग हैं। बड़े वितरित सिस्टम के लिए, और विशेष रूप से MapReduce में, बिंदु आयाम पर निर्भरता के बिना समानताओं की गणना करने में सहायता के लिए MinHash के संशोधित संस्करण मौजूद हैं।

मूल्यांकन और बेंचमार्क
2006 में Google द्वारा बड़े पैमाने पर मूल्यांकन किया गया था Minhash और SimHash के प्रदर्शन की तुलना करने के लिए एल्गोरिदम। 2007 में Google ने वेब क्रॉलिंग के लिए डुप्लीकेट डिटेक्शन के लिए सिम्हाश का उपयोग करने की सूचना दी और Google समाचार वैयक्तिकरण के लिए मिन्हाश और लोकैलिटी-सेंसिटिव हैशिंग का उपयोग करना।

यह भी देखें

 * ब्लूम फिल्टर
 * काउंट-मिन स्केच
 * w-शिंगलिंग