सिमैंटिक ID - Entity Enricher दस्तावेज़

सिमैंटिक ID

एक ही तरह की एंटिटी को बार-बार संवर्धित करें और आप बार-बार वही वास्तविक-दुनिया की चीज़ें फिर से खोजते रहते हैं — वही कंपनी, वही दवा का साइड-इफ़ेक्ट, वही व्यक्ति — हर बार थोड़े अलग शब्दों में वर्णित। एक सिमेंटिक ID एक स्थिर, संगठन-स्कोप्ड पहचानकर्ता है जिसे Entity Enricher किसी ऑब्जेक्ट को उसके प्रमुख फ़ील्ड्स से असाइन करता है, ताकि वे निकट-डुप्लिकेट्स एक पहचान में सिमट जाएँ जिस पर आप समूह बना सकते हैं, डिडुप्लिकेट कर सकते हैं, और जॉइन कर सकते हैं।

समस्या: एक ही चीज़, अलग शब्द

किसी object की पहचान उसके key फ़ील्ड से बनती है — और ये एक या कई हो सकते हैं। दो उदाहरण:

एक key

name द्वारा कीड किया गया एक साइड-इफ़ेक्ट

यह विभिन्न runs और भाषाओं में Headache, Céphalée, और Cephalalgia के रूप में दिखता है। एक key फ़ील्ड, तीन वर्तनियाँ, एक वास्तविक concept।

दो keys

name + country द्वारा keyed एक कंपनी

Acme Inc. · United States और Acme Incorporated · United States एक ही कंपनी हैं — जबकि Acme Inc. · Germany एक अलग कंपनी है। दूसरी की अस्पष्टता दूर करती है; इसीलिए एक ऑब्जेक्ट एक से अधिक की रख सकता है।

साधारण स्ट्रिंग मिलान इन सभी पर विफल हो जाता है; एक इंसान जानता है कि कौन-से समान हैं। Semantic ID उस निर्णय को स्वतः एनकोड कर देते हैं।

सिमेंटिक ID क्या है

यह कैसे काम करता है

मॉडल द्वारा अपना परिणाम लौटाने के बाद, Entity Enricher प्रत्येक सिमेंटिक ID को चार चरणों में हल करता है — सबसे सस्ता पहले:

1
पहचान टेक्स्ट लिखें
ऑब्जेक्ट के सभी key फ़ील्ड — साथ ही इसमें मौजूद किसी भी 1-1 नेस्टेड ऑब्जेक्ट की keys — को अपनी प्राथमिक भाषा में एक ही string में जोड़ें। arrays के अंदर के items नहीं खींचे जाते: प्रत्येक array item की अपनी identity होती है। तुच्छ अंतरों को कम करने के लिए टेक्स्ट को normalize किया जाता है (लोअरकेस, कोष्ठक हटाए गए, whitespace संकुचित)।
2
एक सटीक मिलान खोजें
यदि वह ठीक वही सामान्यीकृत टेक्स्ट आपके संगठन में पहले देखा जा चुका है, तो उसका मौजूदा ID तुरंत पुनः उपयोग किया जाता है — कोई मॉडल कॉल नहीं, कोई लागत नहीं।
3
एम्बेड करें और तुलना करें
अन्यथा टेक्स्ट को एम्बेड किया जाता है और वेक्टर समानता का उपयोग करके अर्थ के आधार पर समान प्रकार की मौजूदा अवधारणाओं से तुलना की जाती है — इसलिए “Acme Inc.” और “Acme Incorporated” एक-दूसरे के पास आ जाते हैं।
4
पुनः उपयोग करें या नया बनाएँ
यदि सबसे निकटतम मेल similarity threshold (डिफ़ॉल्ट 0.92, प्रति property ट्यून करने योग्य) से ऊपर स्कोर करता है, तो उस concept का ID पुनः उपयोग किया जाता है। अन्यथा एक बिल्कुल नया ID तैयार किया जाता है और अगली बार के लिए संग्रहीत कर लिया जाता है।

थ्रेशोल्ड ट्रेड-ऑफ: उच्च थ्रेशोल्ड अधिक सख्त होता है (कम आकस्मिक मर्ज); निम्न थ्रेशोल्ड अधिक ढीला होता है (अधिक आक्रामक डीडुप्लीकेशन)। जब डिफ़ॉल्ट 0.92 अधिक या कम मर्ज करे तो इसे प्रति प्रॉपर्टी ट्यून करें।

इनपुट ID बनाम जनरेट किए गए ID

कोई ID जनरेट होगी या नहीं, यह इस पर निर्भर करता है कि उस ऑब्जेक्ट के लिए इनपुट में पहले से कोई मौजूद है या नहीं। यही आपको राउंड-ट्रिप की सुविधा देता है: IDs पाने के लिए एक बार संवर्धन करें, फिर बाद के रन में किसी ज्ञात ID को वापस पास करके उसी पहचान से नए तथ्य जोड़ें — सस्ता और स्पष्ट।

ID पहले से इनपुट में मौजूद → रखा गया (lookup)

यदि आपके द्वारा भेजा गया ऑब्जेक्ट पहले से एक सिमेंटिक ID रखता है, तो उसे एक lookup के रूप में माना जाता है: ID अक्षरशः रखा जाता है, रिकॉर्ड को उस मौजूदा concept से जोड़ा जाता है, और कोई embedding नहीं — कोई लागत नहीं, कोई match-or-mint नहीं। आप प्लेटफ़ॉर्म को बता रहे हैं “यह ऑब्जेक्ट हमारे डेटाबेस में पहले से पहचाना हुआ है।”

इनपुट में कोई ID नहीं → जनरेट किया गया

यदि ऑब्जेक्ट के पास कोई सिमेंटिक ID नहीं है, तो प्लेटफ़ॉर्म ऊपर दिए गए चार चरणों से एक बनाता है। वह ID उसके बाद से आपके संगठन के डेटाबेस में ऑब्जेक्ट का स्थिर पहचानकर्ता बन जाता है।

मौजूद लेकिन अपहचान योग्य मान (असली concept ID नहीं) को अनदेखा कर दिया जाता है, और इसके बजाय एक ID जनरेट किया जाता है।

इसे कैसे सक्षम करें

1
एक एम्बेडिंग model चुनें (प्रति organization एक बार)
एक स्वामी Model Management में एक embedding-सक्षम मॉडल को organization के डिफ़ॉल्ट embedding मॉडल के रूप में चुनता है। यह लगभग-अपरिवर्तनीय है: एक बार concept मौजूद हो जाने पर इसे केवल साफ़ किया जा सकता है, बदला नहीं जा सकता (संग्रहीत vector मॉडलों के बीच तुलनीय नहीं होते)। इसके बिना, semantic ID को बस छोड़ दिया जाता है।
2
स्कीमा में सिमेंटिक ID जोड़ें
दो तरीके, दोनों Schema Editor में:
  • जनरेशन के समय स्वचालित रूप से“Generate semantic IDs for types” पर टिक करें; की वाला हर ऑब्जेक्ट (अपनी, या किसी 1-1 नेस्टेड ऑब्जेक्ट की) एक पाता है, जिसमें रूट एंटिटी भी शामिल है।
  • मैन्युअल रूप से — किसी भी ऑब्जेक्ट या एंटिटी फ़ुटर पर “+ सिमेंटिक ID जोड़ें” नियंत्रण का उपयोग करें।

रिज़ॉल्यूशन में प्रति एनरिचमेंट थोड़ी एम्बेडिंग उपयोग लागत लगती है (किसी भी मॉडल कॉल की तरह मीटर की जाती है)। एग्ज़ैक्ट-मैच कैश दोहरावों को मुफ़्त बना देता है, और इनपुट में दिए गए ID की कोई लागत नहीं होती।

ID कहां दिखते हैं और उनके साथ क्या करना है

रिज़ॉल्व किए गए ID एनरिचमेंट आउटपुट JSON में (प्रत्येक ऑब्जेक्ट पर id फ़ील्ड) और रिकॉर्ड विवरण के सिमेंटिक कॉन्सेप्ट्स में दिखते हैं। इन्हें इसके लिए उपयोग करें:

multi-model fusion को पूरक बनाता है

फ्यूज़न एक ही रन के भीतर मॉडल के बीच असहमतियों का मेल कराता है; सिमेंटिक ID एक ही एंटिटी का रन और समय के आर-पार मेल कराते हैं। दोनों साथ मिलकर काम करते हैं।