Cosine distance और cosine similarity को समझें। गणनाएँ, अनुप्रयोग, और अन्य मेट्रिक्स से तुलना जानें। numpy का उपयोग करके R और Python में लागू करना सीखें।
डेटा बिंदुओं के बीच समानता या असमानता मापना कई अनुप्रयोगों के लिए उपयोगी है, जैसे पाठ विश्लेषण से लेकर अनुशंसा प्रणालियाँ। Cosine distance एक ऐसा दूरी मेट्रिक है जो विशेष रूप से उच्च-आयामी या विरल डेटासेट्स के लिए कारगर है, क्योंकि यह परिमाण की बजाय वेक्टर के उन्मुखीकरण पर ध्यान देता है।
यदि आप मशीन लर्निंग की सामान्य और महत्वपूर्ण अवधारणाओं का पुनरावलोकन करना चाहते हैं, तो हमारा विस्तृत ट्यूटोरियल Demystifying Mathematical Concepts for Deep Learning से शुरुआत करें। दूरी-आधारित लर्निंग पर हमारा एक अन्य लेख What is Manhattan Distance? भी पढ़ें ताकि आप दूरी मेट्रिक्स की समझ विकसित कर सकें और cosine distance तथा Manhattan distance के बीच के अंतर देख सकें।
Cosine Distance की परिभाषा
अब हम cosine distance को उसके सूत्र के अनुसार परिभाषित करते हैं। ऐसा करते समय, हम इसका cosine similarity से संबंध भी देखते हैं।
Cosine distance सूत्र
Cosine distance दो वेक्टरों के बीच कोण के कोसाइन की गणना करके उनकी असमानता मापता है। इसे cosine similarity से एक घटाकर परिभाषित किया जा सकता है, जैसा कि नीचे दिए सूत्र में है:
थोड़ा अधिक विस्तृत और औपचारिक गणितीय अभिव्यक्ति में, cosine distance नीचे दिए गए सूत्र से गणना की जाती है।
यहाँ A⋅B वेक्टर A और B का डॉट प्रोडक्ट (बिंदु गुणन) दर्शाता है, और ||A|| ||B|| वेक्टरों के परिमाण या Euclidean norm हैं।
इस सूत्र से हम cosine distance को 0 से 2 के दायरे में मापते हैं। 0 का cosine distance दर्शाता है कि वेक्टर पूरी तरह संरेखित हैं (उनके बीच कोई कोण नहीं) यानी अधिकतम समानता, जबकि 2 के निकट मान दर्शाता है कि वेक्टर एक-दूसरे के ठीक विपरीत हैं, यानी अधिकतम असमानता।
Cosine similarity बनाम cosine distance
जैसा कि हमने देखा, जहाँ cosine distance वेक्टरों के बीच कोण के कोसाइन के आधार पर असमानता मापता है, वहीं cosine similarity उसी कोण के कोसाइन के आधार पर समानता मापता है।
Cosine similarity का मान -1 से 1 के बीच होता है। 1 का मान दर्शाता है कि वेक्टर पूरी तरह संरेखित हैं (कोई कोण नहीं), यानी अधिकतम समानता; जबकि -1 का मान दर्शाता है कि वेक्टर एक-दूसरे के ठीक विपरीत हैं, यानी अधिकतम असमानता। शून्य के पास के मान लंबवतता (orthogonality) को दर्शाते हैं।
Cosine Distance की गणना और विज़ुअलाइज़ेशन
चलिये दो वेक्टरों का उदाहरण लेते हैं: वेक्टर A (2,4) और वेक्टर B (4,2), और निम्न चरणों का पालन करके उनका cosine distance निकालते हैं:
A और B का डॉट प्रोडक्ट निकालें:
A · B = (2 × 4) + (4 × 2) = 8 + 8 = 16
A और B के परिमाण निकालें:
||A|| = √(2² + 4²) = √20
||B|| = √(4² + 2²) = √20
डॉट प्रोडक्ट को परिमाणों के गुणनफल से भाग दें:
(A · B) / (||A|| × ||B||) = 16 / (√20 × √20) = 16 / 20 = 0.8
Cosine distance निकालें:
Cosine Distance = 1 - 0.8 = 0.2
0.2 का cosine distance, 0 से 2 के पैमाने पर काफ़ी कम है। यह बताता है कि वेक्टर A और B दिशा के लिहाज से काफ़ी समान हैं।
Cosine distance और cosine similarity। चित्र: लेखक।
इस निरूपण में:
वेक्टर A: (2, 4)
वेक्टर B: (4, 2)
θ A और B के बीच का कोण है
Cosine similarity (0.8) कोण θ के कोसाइन का मान दर्शाता है। चूँकि वेक्टर दिशात्मक रूप से पास हैं, कोण छोटा है, जिससे cosine similarity बड़ा और cosine distance (0.2) छोटा आता है।
क्योंकि cosine distance को 1 - cos(θ) के रूप में भी परिभाषित किया जा सकता है, जहाँ cos(θ) cosine similarity है, इसका आशय यह है:
जब वेक्टर दिशा में समान हों (θ = 0°), cos(θ) = 1, अतः cosine distance = 0
Cosine distance विभिन्न प्राकृतिक भाषा संसाधन कार्यों में अहम भूमिका निभाता है, क्योंकि यह word2vec जैसी अभिव्यक्तियों के बीच अर्थ-संबंधों को प्रभावी ढंग से मापता है। इन अवधारणाओं का संक्षिप्त परिचय पाने के लिए हमारा ट्यूटोरियल Understanding Text Classification in Python सहायक होगा।
दस्तावेज़ वर्गीकरण और समानता
दस्तावेज़ वर्गीकरण में, cosine distance दस्तावेज़ वेक्टरों के बीच कोणों की तुलना करके सामग्री की समानता मापता है। प्रत्येक दस्तावेज़ को एक वेक्टर में बदला जाता है, जिसकी आयाम-मान (dimensions) शब्दों के TF-IDF स्कोर दर्शाते हैं। समान दस्तावेज़ समान दिशाओं में इंगित करते हैं, जिससे cosine distance छोटा आता है।
क्लस्टरिंग और सैमांटिक समूह बनाना
Cosine distance K-means क्लस्टरिंग जैसे क्लस्टरिंग कार्यों में उत्कृष्ट है, क्योंकि यह ऐसे दस्तावेज़ों को समूहित करता है जो अर्थ की दृष्टि से संबंधित हों, भले ही वे वही शब्द न इस्तेमाल करें। यह पाठ-संसाधन में सामान्य उच्च-आयामी, विरल डेटा के लिए उपयुक्त है। वेक्टर उन्मुखीकरण को पकड़कर, यह थीमैटिक क्लस्टरिंग को अधिक सटीक बनाता है। यह तकनीक प्रायः unsupervised learning में प्रयोग होती है ताकि दस्तावेज़ समुच्चयों में प्राकृतिक समूह खोजे जा सकें, जैसे समाचार लेखों को विषयों के आधार पर समूहित करना।
सूचना पुनर्प्राप्ति और सर्च इंजन
सूचना पुनर्प्राप्ति में, cosine distance क्वेरी और दस्तावेज़ों के वेक्टरों की तुलना करके मिलान करता है। सर्च इंजन cosine distance के लिहाज से क्वेरी वेक्टर के सबसे नज़दीकी दस्तावेज़ ढूँढ़ते हैं और सबसे कम दूरी वाले दस्तावेज़ों को प्रासंगिकता में ऊपर रैंक करते हैं।
वर्ड एम्बेडिंग्स और शब्द-समानता
दस्तावेज़-स्तरीय विश्लेषण से आगे, cosine distance Word2Vec या GloVe जैसी वर्ड एम्बेडिंग्स में भी महत्वपूर्ण है, जहाँ शब्दों को उच्च-आयामी वेक्टरों के रूप में दर्शाया जाता है। ये एम्बेडिंग्स अर्थ-समान शब्दों को वेक्टर स्पेस में पास-पास रखती हैं। Cosine distance का उपयोग किसी दिए गए शब्द के सबसे समान शब्द ढूँढ़ने, पर्यायवाची पहचानने, या sentiment analysis या मशीन अनुवाद जैसे जटिल मॉडलों की विशेषताओं को समर्थित करने में किया जा सकता है।
इमेज रिकग्निशन
इमेज रिकग्निशन में, cosine distance छवियों से निकाले गए फ़ीचर वेक्टरों की तुलना करता है। भीड़ में चेहरों को अलग करना हो या प्रकृति की तस्वीरों का वर्गीकरण, यह वेक्टरों के उन्मुखीकरण की समानता देखता है, केवल आकार नहीं। यह ध्यान छवियों के लिए सही वर्ग तय करने में मदद करता है, जिससे इमेज-आधारित प्रणालियों की सटीकता और प्रभावशीलता बढ़ती है।
रिकमेंडर सिस्टम्स
डिजिटल दुनिया में cosine distance को एक मैचमेकर की तरह समझिए, जो उपयोगकर्ताओं को ऐसी फ़िल्मों या उत्पादों से जोड़ता है जो उनकी पिछली पसंद से मेल खाते हैं। उपयोगकर्ता और आइटम प्रोफ़ाइलों के वेक्टर स्पेस में संरेखण को देखकर, recommendation systems अगली पसंद का सटीक अनुमान लगाती हैं।
Cosine Distance के गणितीय गुण
Cosine distance के कुछ विशिष्ट गणितीय गुण हैं जो उसे अन्य दूरी मापों से अलग बनाते हैं। इन गुणों को समझना विभिन्न सन्दर्भों में cosine distance की सही व्याख्या और उपयोग के लिए महत्वपूर्ण है।
मेट्रिक स्पेस के गुण
गणित में, एक मेट्रिक या दूरी फलन वह है जो किसी समुच्चय के हर युग्म के बीच दूरी परिभाषित करता है। किसी फलन को सच्चा मेट्रिक माने जाने के लिए उसे चार शर्तें पूरी करनी होती हैं:
अऋणात्मकता (Non-negativity): d(x, y) ≥ 0
अविभेद्यताओं की पहचान (Identity of indiscernibles): d(x, y) = 0 तब और केवल तब जब x = y
Cosine distance पहली तीन शर्तें पूरी करता है, परंतु हमेशा त्रिभुज असमात्रा का पालन नहीं करता। इसका अर्थ है कि कुछ मामलों में, A और B के बीच तथा B और C के बीच की cosine distances का योग, A और C के बीच की cosine distance से भी कम हो सकता है।
स्केल इनवेरिएंस
Cosine distance का एक उल्लेखनीय गुण है स्केल इनवेरिएंस। इसका अर्थ यह है कि यदि आप किसी एक या दोनों वेक्टरों को किसी स्केलर (शून्य-न हो) से गुणा करें, तब भी उनके बीच का cosine distance वही रहता है। गणितीय रूप से, किसी भी गैर-शून्य स्केलर a और b, तथा वेक्टर x और y के लिए:
Cosine Distance(ax, by) = Cosine Distance(x, y)
स्केल इनवेरिएंस का यह गुण cosine distance को कई अन्य दूरी मापों से अलग करता है।
Python और R में Cosine Distance
यहाँ, हम Python और R का उपयोग करके cosine distance की गणना करना देखेंगे।
Python उदाहरण
Python में, हम NumPy का उपयोग करके cosine distance और cosine similarity की गणना कर सकते हैं। इसके लिए हम अपने वेक्टरों का डॉट प्रोडक्ट और नॉर्म निकालते हैं।
import numpy as np
# Define the vectors
A = np.array([2,4])
B = np.array([4,2])# Calculate cosine similarity
cos_similarity = np.dot(A, B)/(np.linalg.norm(A)* np.linalg.norm(B))# Calculate cosine distance
cos_distance =1- cos_similarity
print("Cosine Similarity: {:.2f}".format(cos_similarity))print("Cosine Distance: {:.2f}".format(cos_distance))संचालित द्वारा
आउटपुट:
Cosine Similarity:0.80
Cosine Distance:0.20संचालित द्वारा
वैकल्पिक रूप से, हम SciPy पैकेज और cosine() फ़ंक्शन का उपयोग करके भी cosine distance निकाल सकते हैं।
import numpy as np
from scipy.spatial.distance import cosine
# Define the vectors
A = np.array([2,4])
B = np.array([4,2])# Calculate cosine distance
cos_distance = cosine(A, B)# Uses scipy's cosine for cosine distanceprint("Cosine Distance: {:.2f}".format(cos_distance))संचालित द्वारा
R में, आप बेसिक वेक्टर ऑपरेशन्स का उपयोग करके cosine similarity और cosine distance की गणना कर सकते हैं। इस प्रकार:
# Define the vectors
A <- c(2,4)
B <- c(4,2)# Calculate cosine similarity
cos_similarity <- sum(A * B)/(sqrt(sum(A^2))* sqrt(sum(B^2)))# Note: We can also use %*% operator for matrix multiplication. # %*%, when applied to two vectors, calculates the dot product. # For example: cos_similarity <- A %*% B / (sqrt(sum(A^2)) * sqrt(sum(B^2)))# Calculate cosine distance
cos_distance <-1- cos_similarity
# Print the result
print(paste("Cosine Similarity:", cos_similarity))
print(paste("Cosine Distance:", cos_distance))संचालित द्वारा
आउटपुट:
“Cosine Similarity:0.80”
“Cosine Distance:0.20”संचालित द्वारा
R के उदाहरण में, cosine similarity डॉट प्रोडक्ट और नॉर्म की मैनुअल गणनाओं से निकाली गई है, जो Python उदाहरण के समान है, पर पूरी तरह R के बेस फ़ंक्शनैलिटी में। ध्यान दें कि cosine distance, cosine similarity को 1 से घटाकर प्राप्त की जाती है।
Cosine Similarity बनाम Euclidean Distance और अन्य दूरी मेट्रिक्स
नीचे दिया गया दृश्य हमारे मूल उदाहरण का विस्तार है, पर इस बार, वही वेक्टर इस्तेमाल करते हुए तीन प्रकार के दूरी मापों को अलग-अलग रंगों में दर्शाया गया है:
Manhattan Distance निर्देशांकों के परास (absolute) अंतरों के योग को मापता है।
Euclidean Distance दो बिंदुओं के बीच सीधी रेखा की दूरी निकालता है।
Cosine Distance दो वेक्टरों के बीच कोण के कोसाइन से व्युत्पन्न होता है।
इनमें से प्रत्येक दूरी डेटा में विशिष्ट अंतर्दृष्टि देता है। Euclidean और Manhattan दूरी ज्यामितीय दूरी हैं जो वेक्टर घटकों के परिमाण को ध्यान में रखती हैं, इसलिए वे स्थानिक भौतिक मापों के लिए उपयुक्त हैं। इसके विपरीत, cosine distance वेक्टरों के बीच कोण पर केंद्रित होता है, जिससे यह उन्मुखीकरण और दिशात्मकता को समझने के लिए आदर्श बनता है—विशेषकर उच्च-आयामी स्पेस में, जैसे पाठ विश्लेषण और डेटा साइंस के अन्य रूपों में।
निष्कर्ष
Cosine distance और उसका परिपूरक cosine similarity, डेटा साइंस और मशीन लर्निंग में शक्तिशाली उपकरण हैं। ये मेट्रिक्स वेक्टरों के बीच संबंधों पर अनूठी अंतर्दृष्टि देते हैं, विशेष रूप से उच्च-आयामी स्पेस में जहाँ पारंपरिक दूरी माप कमज़ोर पड़ सकते हैं।
जैसे-जैसे डेटा जटिलता और आयाम में बढ़ता है, cosine distance जैसे मेट्रिक्स छिपे पैटर्न और संबंधों को उजागर करने में और अधिक महत्वपूर्ण भूमिका निभाएँगे। चाहे आप प्राकृतिक भाषा संसाधन, रिकमेंडेशन सिस्टम, या किसी भी उच्च-आयामी वेक्टर स्पेस से जुड़े क्षेत्र में काम कर रहे हों, cosine distance को समझना और लागू करना मूल्यवान अंतर्दृष्टि दे सकता है और आपके मॉडलों के प्रदर्शन में सुधार कर सकता है। अगले कदम के रूप में, हमारा व्यापक इंटरैक्टिव कोर्स Designing Machine Learning Workflows in Python करें, जिसमें दूरी-आधारित लर्निंग और unsupervised वर्कफ़्लो पर एक पूरा अध्याय है।
विनोद चुगानी ने टोक्यो में जेपीमॉर्गन के सबसे कम उम्र के हेज फंड सेल्स डेस्क हेड के रूप में अपना करियर शुरू किया और बाद में लेहमन ब्रदर्स में व्यक्तिगत बिक्री का रिकॉर्ड बनाया, फिर 30 देशों में फैला एक इलेक्ट्रॉनिक्स डिस्ट्रीब्यूशन व्यवसाय बनाया, जिसकी आय SG$100 मिलियन से आगे बढ़ी, इसके बाद उन्होंने डेटा की ओर रुख किया। ड्यूक में अर्थशास्त्र के स्नातक और NYC डेटा साइंस अकादमी के पूर्व छात्र, वे मेवन पर ह्यूगो बोव्न-एंडरसन के Building AI Applications कोर्स के लिए 100+ आवेदनों में से तीन छात्रवृत्ति प्राप्तकर्ताओं में से एक थे। आज, वे DataCamp, KDnuggets, Machine Learning Mastery, और Statology के लिए सांख्यिकी से लेकर एजेंटिक एआई तक के विषयों पर लिखते हैं, और NYC डेटा साइंस अकादमी में डेटा प्रोफेशनलों को मेंटर करते हैं, उनके नाम पर 1,000 से अधिक एक-से-एक सत्र हैं।
Frequently Asked Questions
Cosine similarity क्या है?⌄
Cosine similarity एक मेट्रिक है जो दो वेक्टरों के उन्मुखीकरण की समानता मापता है, उनके परिमाण को नज़रअंदाज़ करते हुए।
Cosine similarity की range क्या है? ⌄
Cosine similarity का दायरा -1 से 1 तक है
Cosine similarity का formula क्या है?⌄
Cosine similarity का सूत्र दो वेक्टरों के बीच कोण के कोसाइन की गणना करता है, जिसे वेक्टरों के डॉट प्रोडक्ट को उनके परिमाणों के गुणनफल से भाग देकर परिभाषित किया जाता है।
Dot product और cosine similarity में क्या अंतर है?⌄
डॉट प्रोडक्ट दो वेक्टरों के अनुरूप घटकों के गुणनों के योग को कहते हैं, जो उनके परिमाण और उन्मुखीकरण दोनों को परिलक्षित करता है। दूसरी ओर, cosine similarity डॉट प्रोडक्ट को वेक्टरों के परिमाणों के गुणनफल से सामान्यीकृत करती है, जिससे यह केवल दिशात्मक संरेखण पर केंद्रित रहती है।
Cosine distance, cosine similarity से कैसे भिन्न है?⌄
Cosine distance और cosine similarity परस्पर पूरक माप हैं। Cosine similarity मापता है कि दो वेक्टर कितने समान हैं, जिसका दायरा -1 (पूरी तरह विपरीत) से 1 (पूरी तरह समान) तक होता है। दूसरी ओर, cosine distance मापता है कि वेक्टर कितने भिन्न हैं और इसे 1 माइनस cosine similarity के रूप में गणना किया जाता है। इसका दायरा 0 (समान वेक्टर) से 2 (विपरीत वेक्टर) तक होता है।
Cosine distance का formula क्या है?⌄
Cosine distance का सूत्र बहु-आयामी स्पेस में दो वेक्टरों के बीच कोण को मापता है, जिसे वेक्टरों के बीच कोण के कोसाइन से 1 घटाकर (1 - cosine) गणना किया जाता है।
1 का cosine distance क्या दर्शाता है?⌄
1 का cosine distance दर्शाता है कि तुलना किए जा रहे दोनों वेक्टर एक-दूसरे के लंबवत (orthogonal) हैं, यानी उनके बीच 90 डिग्री का कोण है। इसका मतलब है कि वेक्टरों में दिशात्मक समानता नहीं है—व्यावहारिक रूप से, यह पाठ विश्लेषण में पूरी तरह अलग थीम, रिकमेंडेशन सिस्टम में असंबंधित आइटम, या मशीन लर्निंग फ़ीचर वेक्टरों में भिन्न गुणों का संकेत देता है।
Cosine distance और angular distance में क्या अंतर है?⌄
Cosine distance और angular distance आपस में काफ़ी संबंधित हैं पर समान नहीं। Cosine distance को 1 माइनस cosine similarity के रूप में परिभाषित किया जाता है, जबकि angular distance दो वेक्टरों के बीच का कोण (radians में) है, जिसे cosine similarity के arccosine से निकाला जाता है। Angular distance, cosine distance के अनुपाती है, पर अधिक सहज ज्यामितीय व्याख्या देता है।
Cosine distance और Euclidean distance में क्या अंतर है?⌄
दोनों असमानता मापते हैं, पर cosine distance वेक्टरों के बीच कोण पर केंद्रित रहता है और परिमाण को अनदेखा करता है। Euclidean distance परिमाण पर केंद्रित होता है और स्पेस में दो बिंदुओं के बीच सीधी दूरी मापता है।
पाठ विश्लेषण में cosine distance उपयोगी क्यों है?⌄
Cosine distance पाठ विश्लेषण में विशेष रूप से उपयोगी है क्योंकि यह शब्दों के अनुपात (वेक्टर आयामों द्वारा दर्शाए गए) पर ध्यान देता है, न कि उनके निरपेक्ष आवृत्तियों पर। इससे अलग-अलग लंबाई के दस्तावेज़ों की तुलना करना और आकार से इतर थीमैटिक समानताएँ पहचानना प्रभावी हो जाता है।
"Cosine distance." चित्र: Dall-E.
डेटा बिंदुओं के बीच समानता या असमानता मापना कई अनुप्रयोगों के लिए उपयोगी है, जैसे पाठ विश्लेषण से लेकर अनुशंसा प्रणालियाँ। Cosine distance एक ऐसा दूरी मेट्रिक है जो विशेष रूप से उच्च-आयामी या विरल डेटासेट्स के लिए कारगर है, क्योंकि यह परिमाण की बजाय वेक्टर के उन्मुखीकरण पर ध्यान देता है।
यदि आप मशीन लर्निंग की सामान्य और महत्वपूर्ण अवधारणाओं का पुनरावलोकन करना चाहते हैं, तो हमारा विस्तृत ट्यूटोरियल Demystifying Mathematical Concepts for Deep Learning से शुरुआत करें। दूरी-आधारित लर्निंग पर हमारा एक अन्य लेख What is Manhattan Distance? भी पढ़ें ताकि आप दूरी मेट्रिक्स की समझ विकसित कर सकें और cosine distance तथा Manhattan distance के बीच के अंतर देख सकें।
Cosine Distance की परिभाषा
अब हम cosine distance को उसके सूत्र के अनुसार परिभाषित करते हैं। ऐसा करते समय, हम इसका cosine similarity से संबंध भी देखते हैं।
Cosine distance सूत्र
Cosine distance दो वेक्टरों के बीच कोण के कोसाइन की गणना करके उनकी असमानता मापता है। इसे cosine similarity से एक घटाकर परिभाषित किया जा सकता है, जैसा कि नीचे दिए सूत्र में है:
थोड़ा अधिक विस्तृत और औपचारिक गणितीय अभिव्यक्ति में, cosine distance नीचे दिए गए सूत्र से गणना की जाती है।
यहाँ A⋅B वेक्टर A और B का डॉट प्रोडक्ट (बिंदु गुणन) दर्शाता है, और ||A|| ||B|| वेक्टरों के परिमाण या Euclidean norm हैं।
इस सूत्र से हम cosine distance को 0 से 2 के दायरे में मापते हैं। 0 का cosine distance दर्शाता है कि वेक्टर पूरी तरह संरेखित हैं (उनके बीच कोई कोण नहीं) यानी अधिकतम समानता, जबकि 2 के निकट मान दर्शाता है कि वेक्टर एक-दूसरे के ठीक विपरीत हैं, यानी अधिकतम असमानता।
Cosine similarity बनाम cosine distance
जैसा कि हमने देखा, जहाँ cosine distance वेक्टरों के बीच कोण के कोसाइन के आधार पर असमानता मापता है, वहीं cosine similarity उसी कोण के कोसाइन के आधार पर समानता मापता है।
Cosine similarity का मान -1 से 1 के बीच होता है। 1 का मान दर्शाता है कि वेक्टर पूरी तरह संरेखित हैं (कोई कोण नहीं), यानी अधिकतम समानता; जबकि -1 का मान दर्शाता है कि वेक्टर एक-दूसरे के ठीक विपरीत हैं, यानी अधिकतम असमानता। शून्य के पास के मान लंबवतता (orthogonality) को दर्शाते हैं।
Cosine Distance की गणना और विज़ुअलाइज़ेशन
चलिये दो वेक्टरों का उदाहरण लेते हैं: वेक्टर A (2,4) और वेक्टर B (4,2), और निम्न चरणों का पालन करके उनका cosine distance निकालते हैं:
A · B = (2 × 4) + (4 × 2) = 8 + 8 = 16
||A|| = √(2² + 4²) = √20
||B|| = √(4² + 2²) = √20
(A · B) / (||A|| × ||B||) = 16 / (√20 × √20) = 16 / 20 = 0.8
Cosine Distance = 1 - 0.8 = 0.2
0.2 का cosine distance, 0 से 2 के पैमाने पर काफ़ी कम है। यह बताता है कि वेक्टर A और B दिशा के लिहाज से काफ़ी समान हैं।
इस निरूपण में:
Cosine similarity (0.8) कोण θ के कोसाइन का मान दर्शाता है। चूँकि वेक्टर दिशात्मक रूप से पास हैं, कोण छोटा है, जिससे cosine similarity बड़ा और cosine distance (0.2) छोटा आता है।
क्योंकि cosine distance को 1 - cos(θ) के रूप में भी परिभाषित किया जा सकता है, जहाँ cos(θ) cosine similarity है, इसका आशय यह है:
Cosine Distance के अनुप्रयोग
आइए कुछ प्रमुख अनुप्रयोगों पर नज़र डालें।
प्राकृतिक भाषा संसाधन (NLP)
Cosine distance विभिन्न प्राकृतिक भाषा संसाधन कार्यों में अहम भूमिका निभाता है, क्योंकि यह word2vec जैसी अभिव्यक्तियों के बीच अर्थ-संबंधों को प्रभावी ढंग से मापता है। इन अवधारणाओं का संक्षिप्त परिचय पाने के लिए हमारा ट्यूटोरियल Understanding Text Classification in Python सहायक होगा।
दस्तावेज़ वर्गीकरण और समानता
दस्तावेज़ वर्गीकरण में, cosine distance दस्तावेज़ वेक्टरों के बीच कोणों की तुलना करके सामग्री की समानता मापता है। प्रत्येक दस्तावेज़ को एक वेक्टर में बदला जाता है, जिसकी आयाम-मान (dimensions) शब्दों के TF-IDF स्कोर दर्शाते हैं। समान दस्तावेज़ समान दिशाओं में इंगित करते हैं, जिससे cosine distance छोटा आता है।
क्लस्टरिंग और सैमांटिक समूह बनाना
Cosine distance K-means क्लस्टरिंग जैसे क्लस्टरिंग कार्यों में उत्कृष्ट है, क्योंकि यह ऐसे दस्तावेज़ों को समूहित करता है जो अर्थ की दृष्टि से संबंधित हों, भले ही वे वही शब्द न इस्तेमाल करें। यह पाठ-संसाधन में सामान्य उच्च-आयामी, विरल डेटा के लिए उपयुक्त है। वेक्टर उन्मुखीकरण को पकड़कर, यह थीमैटिक क्लस्टरिंग को अधिक सटीक बनाता है। यह तकनीक प्रायः unsupervised learning में प्रयोग होती है ताकि दस्तावेज़ समुच्चयों में प्राकृतिक समूह खोजे जा सकें, जैसे समाचार लेखों को विषयों के आधार पर समूहित करना।
सूचना पुनर्प्राप्ति और सर्च इंजन
सूचना पुनर्प्राप्ति में, cosine distance क्वेरी और दस्तावेज़ों के वेक्टरों की तुलना करके मिलान करता है। सर्च इंजन cosine distance के लिहाज से क्वेरी वेक्टर के सबसे नज़दीकी दस्तावेज़ ढूँढ़ते हैं और सबसे कम दूरी वाले दस्तावेज़ों को प्रासंगिकता में ऊपर रैंक करते हैं।
वर्ड एम्बेडिंग्स और शब्द-समानता
दस्तावेज़-स्तरीय विश्लेषण से आगे, cosine distance Word2Vec या GloVe जैसी वर्ड एम्बेडिंग्स में भी महत्वपूर्ण है, जहाँ शब्दों को उच्च-आयामी वेक्टरों के रूप में दर्शाया जाता है। ये एम्बेडिंग्स अर्थ-समान शब्दों को वेक्टर स्पेस में पास-पास रखती हैं। Cosine distance का उपयोग किसी दिए गए शब्द के सबसे समान शब्द ढूँढ़ने, पर्यायवाची पहचानने, या sentiment analysis या मशीन अनुवाद जैसे जटिल मॉडलों की विशेषताओं को समर्थित करने में किया जा सकता है।
इमेज रिकग्निशन
इमेज रिकग्निशन में, cosine distance छवियों से निकाले गए फ़ीचर वेक्टरों की तुलना करता है। भीड़ में चेहरों को अलग करना हो या प्रकृति की तस्वीरों का वर्गीकरण, यह वेक्टरों के उन्मुखीकरण की समानता देखता है, केवल आकार नहीं। यह ध्यान छवियों के लिए सही वर्ग तय करने में मदद करता है, जिससे इमेज-आधारित प्रणालियों की सटीकता और प्रभावशीलता बढ़ती है।
रिकमेंडर सिस्टम्स
डिजिटल दुनिया में cosine distance को एक मैचमेकर की तरह समझिए, जो उपयोगकर्ताओं को ऐसी फ़िल्मों या उत्पादों से जोड़ता है जो उनकी पिछली पसंद से मेल खाते हैं। उपयोगकर्ता और आइटम प्रोफ़ाइलों के वेक्टर स्पेस में संरेखण को देखकर, recommendation systems अगली पसंद का सटीक अनुमान लगाती हैं।
Cosine Distance के गणितीय गुण
Cosine distance के कुछ विशिष्ट गणितीय गुण हैं जो उसे अन्य दूरी मापों से अलग बनाते हैं। इन गुणों को समझना विभिन्न सन्दर्भों में cosine distance की सही व्याख्या और उपयोग के लिए महत्वपूर्ण है।
मेट्रिक स्पेस के गुण
गणित में, एक मेट्रिक या दूरी फलन वह है जो किसी समुच्चय के हर युग्म के बीच दूरी परिभाषित करता है। किसी फलन को सच्चा मेट्रिक माने जाने के लिए उसे चार शर्तें पूरी करनी होती हैं:
अऋणात्मकता (Non-negativity): d(x, y) ≥ 0
अविभेद्यताओं की पहचान (Identity of indiscernibles): d(x, y) = 0 तब और केवल तब जब x = y
साम्य (Symmetry): d(x, y) = d(y, x)
त्रिभुज असमात्रा (Triangle inequality): d(x, z) ≤ d(x, y) + d(y, z)
Cosine distance पहली तीन शर्तें पूरी करता है, परंतु हमेशा त्रिभुज असमात्रा का पालन नहीं करता। इसका अर्थ है कि कुछ मामलों में, A और B के बीच तथा B और C के बीच की cosine distances का योग, A और C के बीच की cosine distance से भी कम हो सकता है।
स्केल इनवेरिएंस
Cosine distance का एक उल्लेखनीय गुण है स्केल इनवेरिएंस। इसका अर्थ यह है कि यदि आप किसी एक या दोनों वेक्टरों को किसी स्केलर (शून्य-न हो) से गुणा करें, तब भी उनके बीच का cosine distance वही रहता है। गणितीय रूप से, किसी भी गैर-शून्य स्केलर a और b, तथा वेक्टर x और y के लिए:
Cosine Distance(ax, by) = Cosine Distance(x, y)
स्केल इनवेरिएंस का यह गुण cosine distance को कई अन्य दूरी मापों से अलग करता है।
Python और R में Cosine Distance
यहाँ, हम Python और R का उपयोग करके cosine distance की गणना करना देखेंगे।
Python उदाहरण
Python में, हम
NumPyका उपयोग करके cosine distance और cosine similarity की गणना कर सकते हैं। इसके लिए हम अपने वेक्टरों का डॉट प्रोडक्ट और नॉर्म निकालते हैं।आउटपुट:
वैकल्पिक रूप से, हम SciPy पैकेज और
cosine()फ़ंक्शन का उपयोग करके भी cosine distance निकाल सकते हैं।आउटपुट:
R उदाहरण
R में, आप बेसिक वेक्टर ऑपरेशन्स का उपयोग करके cosine similarity और cosine distance की गणना कर सकते हैं। इस प्रकार:
आउटपुट:
R के उदाहरण में, cosine similarity डॉट प्रोडक्ट और नॉर्म की मैनुअल गणनाओं से निकाली गई है, जो Python उदाहरण के समान है, पर पूरी तरह R के बेस फ़ंक्शनैलिटी में। ध्यान दें कि cosine distance, cosine similarity को 1 से घटाकर प्राप्त की जाती है।
Cosine Similarity बनाम Euclidean Distance और अन्य दूरी मेट्रिक्स
नीचे दिया गया दृश्य हमारे मूल उदाहरण का विस्तार है, पर इस बार, वही वेक्टर इस्तेमाल करते हुए तीन प्रकार के दूरी मापों को अलग-अलग रंगों में दर्शाया गया है:
Cosine distance बनाम Euclidean distance बनाम Manhattan distance। चित्र: लेखक।
इनमें से प्रत्येक दूरी डेटा में विशिष्ट अंतर्दृष्टि देता है। Euclidean और Manhattan दूरी ज्यामितीय दूरी हैं जो वेक्टर घटकों के परिमाण को ध्यान में रखती हैं, इसलिए वे स्थानिक भौतिक मापों के लिए उपयुक्त हैं। इसके विपरीत, cosine distance वेक्टरों के बीच कोण पर केंद्रित होता है, जिससे यह उन्मुखीकरण और दिशात्मकता को समझने के लिए आदर्श बनता है—विशेषकर उच्च-आयामी स्पेस में, जैसे पाठ विश्लेषण और डेटा साइंस के अन्य रूपों में।
निष्कर्ष
Cosine distance और उसका परिपूरक cosine similarity, डेटा साइंस और मशीन लर्निंग में शक्तिशाली उपकरण हैं। ये मेट्रिक्स वेक्टरों के बीच संबंधों पर अनूठी अंतर्दृष्टि देते हैं, विशेष रूप से उच्च-आयामी स्पेस में जहाँ पारंपरिक दूरी माप कमज़ोर पड़ सकते हैं।
जैसे-जैसे डेटा जटिलता और आयाम में बढ़ता है, cosine distance जैसे मेट्रिक्स छिपे पैटर्न और संबंधों को उजागर करने में और अधिक महत्वपूर्ण भूमिका निभाएँगे। चाहे आप प्राकृतिक भाषा संसाधन, रिकमेंडेशन सिस्टम, या किसी भी उच्च-आयामी वेक्टर स्पेस से जुड़े क्षेत्र में काम कर रहे हों, cosine distance को समझना और लागू करना मूल्यवान अंतर्दृष्टि दे सकता है और आपके मॉडलों के प्रदर्शन में सुधार कर सकता है। अगले कदम के रूप में, हमारा व्यापक इंटरैक्टिव कोर्स Designing Machine Learning Workflows in Python करें, जिसमें दूरी-आधारित लर्निंग और unsupervised वर्कफ़्लो पर एक पूरा अध्याय है।