1. प्रश्न और संदर्भ
यह प्रश्न डेटा इंजीनियरिंग के लिए एंटिटी रेज़ोल्यूशन (entity resolution) या रिकॉर्ड लिंकेज (record linkage) का परीक्षण करता है। एक सार्वजनिक साक्षात्कार प्रश्न उम्मीदवारों से कई स्रोतों से प्राप्त नॉइज़ी व्यक्ति रिकॉर्ड्स का मिलान करने के लिए कहता है और नॉर्मलाइज़ेशन, टकराव समाधान (conflict resolution), डेटा गुणवत्ता, प्रिसिजन (precision) और रिकॉल (recall) की जांच करता है। यह डेटा प्लेटफ़ॉर्म, मास्टर-डेटा और कस्टमर-डेटा इंटीग्रेशन भूमिकाओं के लिए उपयुक्त है।
2. इंटरव्यूअर क्या परख रहा है
- क्या आप सिग्नलों को चुनने से पहले "एक ही व्यक्ति" और व्यावसायिक त्रुटि लागतों (business error costs) को परिभाषित करते हैं।
- क्या आप कैंडिडेट जनरेशन के साथ ऑल-पेयर्स (all-pairs) कार्य को कम करते हैं और ब्लॉकिंग रिकॉल जोखिम की व्याख्या करते हैं।
- क्या आप गलत मर्ज (false merges) को नियंत्रित करने के लिए ऑटोमैटिक मर्ज, ह्यूमन रिव्यू और नो-मैच बैंड्स का उपयोग करते हैं।
- क्या प्रत्येक मास्टर-फ़ील्ड चयन स्रोत, साक्ष्य (evidence) और वर्ज़न इतिहास को बनाए रखता है।
- क्या आप केवल एक्यूरेसी रिपोर्ट करने के बजाय लेबल्ड पेयर्स पर प्रिसिजन और रिकॉल का मूल्यांकन करते हैं।
3. पहले स्पष्ट करने योग्य प्रश्न
- कौन से फ़ील्ड्स स्थिर पहचानकर्ता (stable identifiers) हैं? क्या ईमेल और फ़ोन सत्यापित हैं, और क्या नामों का लिप्यंतरण (transliteration) या उपनाम (alias) हो सकता है?
- अधिक महंगा क्या है: एक गलत मर्ज या छूटा हुआ मर्ज? क्या परिणाम का उपयोग मार्केटिंग, भुगतान, अनुपालन (compliance) या सपोर्ट के लिए किया जाता है?
- क्या यह एक ऐतिहासिक बैकफ़िल है या दैनिक इंक्रीमेंटल स्ट्रीम? क्या स्रोत अपडेट और विलोपन (deletion) इवेंट्स उत्सर्जित करते हैं?
- जब फ़ील्ड्स में टकराव होता है, तो किस स्रोत पर भरोसा किया जाता है? क्या समीक्षकों (reviewers) को प्रत्येक मूल मान और उसकी उत्पत्ति (provenance) देखनी चाहिए?
4. 30-सेकंड का उत्तर
मैं सबसे पहले मैचिंग यूनिट, त्रुटि लागत और ऑडिट योग्य आउटपुट को परिभाषित करूँगा। मैं फ़ील्ड्स को डिटर्मिनिस्टिक रूप से नॉर्मलाइज़ करूँगा, कैंडिडेट ब्लॉक्स उत्पन्न करने के लिए ईमेल, फ़ोन या कंपोजिट कीज़ का उपयोग करूँगा, और ऑल-पेयर्स तुलना से बचूँगा। प्रत्येक कैंडिडेट के लिए, मैं सकारात्मक और नकारात्मक साक्ष्यों का स्कोर बनाऊँगा, जिसमें ऑटो-मर्ज, ह्यूमन-रिव्यू और नो-मैच के लिए अलग-अलग थ्रेशोल्ड होंगे। मैं प्रत्येक स्रोत मान को बनाए रखते हुए स्रोत विश्वास, सत्यापन और नवीनता (freshness) का उपयोग करके मास्टर रिकॉर्ड का निर्माण करूँगा। अंत में, मैं लेबल्ड पेयर्स पर कैलिब्रेट करूँगा, प्रिसिजन, रिकॉल और रिव्यू वॉल्यूम की रिपोर्ट करूँगा, और इंक्रीमेंटल ड्रिफ्ट तथा गलत मर्जेस की निगरानी करूँगा।
5. चरण-दर-चरण समाधान
चरण 1: रिकॉर्ड्स को परिभाषित और नॉर्मलाइज़ करें
प्रत्येक इनपुट के लिए source, source_id, आगमन समय और रॉ फ़ील्ड्स को सुरक्षित रखें। यूनिकोड, केस, व्हाइटस्पेस और विराम चिह्नों के नियमों के साथ नामों को नॉर्मलाइज़ करें; ईमेल पतों को ट्रिम करें और एक स्पष्ट केस नीति लागू करें; फ़ोन नंबरों को एक मानक देश-कोड प्रारूप में बदलें। नॉर्मलाइज़ किए गए मान रॉ मानों को अधिलेखित (overwrite) किए बिना पुनरुत्पादित करने योग्य होने चाहिए। अनुपलब्ध (missing) का अर्थ अज्ञात होना चाहिए, न कि यह साक्ष्य कि दो खाली स्ट्रिंग्स मेल खाती हैं।
चरण 2: कैंडिडेट्स उत्पन्न करें और मैचों को स्कोर करें
नॉर्मलाइज़्ड ईमेल, फ़ोन या नाम-प्लस-पोस्टल-कोड कीज़ को इंडेक्स करें, और विभिन्न मिसिंग-डेटा पैटर्न के लिए कई ब्लॉकिंग पास चलाएं। फिर एडिट डिस्टेंस, साझा फ़ील्ड्स, सत्यापन स्थिति और नकारात्मक साक्ष्यों की तुलना करें; दो सत्यापित, अलग-अलग फ़ोन नंबरों से कॉन्फिडेंस कम होना चाहिए। ब्लॉक्स के भीतर स्कोरिंग करने से कार्य O(n²) के बजाय कैंडिडेट काउंट के करीब हो जाता है, लेकिन ब्लॉकिंग मिस को सैंपल और मापा जाना चाहिए।
चरण 3: थ्रेशोल्ड सेट करें और सुरक्षित रूप से मर्ज करें
स्कोर को ऑटो-मर्ज, ह्यूमन रिव्यू और नो-मैच बैंड्स में विभाजित करें। लेबल्ड पॉज़िटिव और नेगेटिव पेयर्स के साथ-साथ व्यावसायिक त्रुटि लागतों से थ्रेशोल्ड को कैलिब्रेट करें। प्रत्येक ऑटोमैटिक मर्ज के लिए नियम और स्कोर को लॉग करें; समीक्षकों को परस्पर विरोधी फ़ील्ड और साक्ष्य दिखाएं; अस्वीकृति के कारणों को बनाए रखें। यदि यूनियन-फ़ाइंड या कनेक्टेड कंपोनेंट्स का उपयोग कर रहे हैं, तो कमज़ोर किनारों (weak edges) की श्रृंखला को अलग-अलग व्यक्तियों को मर्ज करने से रोकें।
चरण 4: मास्टर का निर्माण करें और इंक्रीमेंट्स की निगरानी करें
प्रोवेनेंस, पूर्व मान और प्रभावी समय को संग्रहीत करते हुए, सत्यापित स्रोत, व्यावसायिक प्राथमिकता और नवीनता के आधार पर प्रत्येक मास्टर फ़ील्ड को चुनें। नए रिकॉर्ड्स की तुलना केवल प्रासंगिक ब्लॉक्स से करें और स्रोत या नियम परिवर्तनों के बाद रीप्ले का समर्थन करें। नियमित रूप से समीक्षाओं का नमूना (sample) लें और स्रोत, भाषा, क्षेत्र और समय विंडो के अनुसार प्रिसिजन, रिकॉल, रिव्यू दर, कंपोनेंट आकार और ड्रिफ्ट की निगरानी करें। गलत मर्ज बढ़ने पर ऑटोमैटिक प्रकाशन को रोकें और प्रभावित कीज़ को ट्रैक करें।
6. एक मजबूत नमूना उत्तर
मैं प्रत्येक इनपुट को रॉ प्लस नॉर्मलाइज़्ड मानों के रूप में मॉडल करूँगा, जिसमें स्रोत, स्रोत कुंजी, सत्यापन स्थिति और इवेंट का समय शामिल होगा। मैं व्याख्या योग्य नियमों का उपयोग करके नाम, ईमेल और फ़ोन को नॉर्मलाइज़ करूँगा, फिर ईमेल, फ़ोन और नाम-प्लस-क्षेत्र जैसे कई ब्लॉक्स के माध्यम से कैंडिडेट्स उत्पन्न करूँगा। कैंडिडेट स्कोर्स में साझा फ़ील्ड, एडिट डिस्टेंस, सत्यापन और टकराव दंड (conflict penalties) शामिल होंगे, जो लेबल्ड पेयर्स और व्यावसायिक लागतों के साथ कैलिब्रेट किए गए ऑटो-मर्ज, ह्यूमन-रिव्यू और नो-मैच बैंड्स तैयार करेंगे।
मैं किसी मर्ज को केवल एक बची हुई पंक्ति (single surviving row) तक सीमित नहीं करूँगा। प्रत्येक मास्टर फ़ील्ड अपने चुने हुए स्रोत, नियम वर्ज़न, प्रभावी समय और त्यागे गए मानों को बनाए रखेगा; केवल पुख्ता सबूत ही एक कनेक्टेड कंपोनेंट बनाएंगे, जबकि कमज़ोर किनारे रिव्यू के लिए जाएंगे। ऑफ़लाइन मूल्यांकन प्रिसिजन, रिकॉल, F1, रिव्यू दर और गलत-मर्ज उदाहरणों की रिपोर्ट करेगा। इंक्रीमेंटल रन स्रोत और समय-विंडो ड्रिफ्ट की निगरानी करेंगे, ताकि एक नया स्रोत सुरक्षित रूप से जोड़ा जा सके और एक खराब नियम को ट्रैक, विभाजित और रीप्ले किया जा सके।
7. सामान्य गलतियाँ
- उपनाम, लिप्यंतरण, साझा संपर्कों और हमनाम (homonyms) के बावजूद सटीक नाम समानता को पहचान के रूप में मानना।
- कैंडिडेट जनरेशन का वर्णन किए बिना या ब्लॉकिंग रिकॉल को मापे बिना प्रत्येक जोड़ी की तुलना करना।
- बिना किसी रिव्यू बैंड या टकराव दंड के फ़ज़ी स्कोर को सत्य मानना।
- केवल एक मास्टर पंक्ति रखना और स्रोत मानों, नियम वर्ज़नों और साक्ष्यों को त्याग देना।
- प्रिसिजन, रिकॉल और व्यावसायिक-भारित त्रुटियों के बजाय केवल एक्यूरेसी रिपोर्ट करना।
- एक कमज़ोर किनारे को एक विशाल कनेक्टेड कंपोनेंट और एक अपरिवर्तनीय ओवर-मर्ज बनाने की अनुमति देना।
8. फॉलो-अप प्रश्न
फॉलो-अप 1: सीधे क्लासिफायर को प्रशिक्षित क्यों न करें?
पर्याप्त लेबल्स के साथ, एक मॉडल मैच स्कोर सीख सकता है, लेकिन फिर भी इसे व्याख्या योग्य फ़ीचर्स, थ्रेशोल्ड कैलिब्रेशन, ह्यूमन रिव्यू और वर्ज़न किए गए रीप्ले की आवश्यकता होती है। नए स्रोतों और अनुपालन प्रश्नों के लिए नियमों, मॉडलों और समीक्षकों सभी को साक्ष्य उत्सर्जित करने चाहिए।
फॉलो-अप 2: आप प्रिसिजन और रिकॉल के बीच संतुलन (trade-off) कैसे बनाते हैं?
गलत-मर्ज और छूटे हुए मर्ज की लागतों को एक तुलनीय उद्देश्य में अनुवाद करें, फिर एक वैलिडेशन सेट पर थ्रेशोल्ड कर्व्स का निरीक्षण करें। भुगतान या अनुपालन आमतौर पर पहले प्रिसिजन की रक्षा करता है; डिडुप्लीकेशन उच्च रिकॉल स्वीकार कर सकता है, जबकि दोनों रिव्यू और सैंपलिंग को बनाए रखते हैं।
फॉलो-अप 3: आप ओवर-मर्जिंग का पता कैसे लगाते हैं?
कंपोनेंट आकार, कम-स्कोर किनारे के हिस्से, क्रॉस-सोर्स टकराव और मैन्युअल विभाजन दर की निगरानी करें; असामान्य रूप से बड़े कंपोनेंट्स के लिए साक्ष्य ग्राफ़ का विस्तार करें। ऑटो-मर्ज को रोकें, नियम वर्ज़न द्वारा प्रभावित एंटिटीज़ को विभाजित करें, और इंक्रीमेंटल परिणामों को रीप्ले करें।