1. Soalan dan konteks
Soalan ini menguji resolusi entiti (entity resolution) atau pautan rekod (record linkage) untuk kejuruteraan data. Satu soalan temu duga terbuka meminta calon menyelaraskan rekod individu yang hingar daripada beberapa sumber dan menyelami normalisasi, penyelesaian percanggahan, kualiti data, kepersisan (precision), dan kepekaan (recall). Ia sesuai untuk peranan platform data, data induk (master data), dan integrasi data pelanggan.
2. Perkara yang dinilai oleh penemu duga
- Sama ada anda mentakrifkan "individu yang sama" dan kos ralat perniagaan sebelum memilih isyarat.
- Sama ada anda mengurangkan beban kerja semua pasangan (all-pairs) dengan penjanaan calon dan menerangkan risiko kepekaan penyekatan (blocking recall risk).
- Sama ada anda menggunakan jalur penggabungan automatik, semakan manusia, dan tiada padanan untuk mengawal penggabungan palsu (false merges).
- Sama ada setiap pilihan medan induk mengekalkan sumber, bukti, dan sejarah versi.
- Sama ada anda menilai kepersisan dan kepekaan pada pasangan berlabel dan bukannya sekadar melaporkan ketepatan (accuracy) semata-mata.
3. Soalan untuk dijelaskan terlebih dahulu
- Medan manakah merupakan pengecam yang stabil? Adakah e-mel dan telefon telah disahkan, dan bolehkah nama ditransliterasikan atau mempunyai alias?
- Yang manakah lebih mahal: penggabungan palsu atau penggabungan yang terlepas? Adakah hasilnya digunakan untuk pemasaran, pembayaran, pematuhan (compliance), atau sokongan?
- Adakah ini backfill sejarah atau strim berperingkat (incremental) harian? Adakah sumber mengeluarkan peristiwa kemas kini dan pemadaman?
- Apabila medan bercanggah, sumber mana yang dipercayai? Adakah penyemak perlu melihat setiap nilai asal dan provenansnya?
4. Jawapan 30 saat
Saya akan mentakrifkan unit pemadanan, kos ralat, dan output yang boleh diaudit terlebih dahulu. Saya akan menormalkan medan secara deterministik, menggunakan e-mel, telefon, atau kunci komposit untuk menjana blok calon, dan mengelakkan perbandingan semua pasangan. Bagi setiap calon, saya akan menilai bukti positif dan negatif, dengan ambang berasingan untuk gabung automatik, semakan manusia, dan tiada padanan. Saya akan membina rekod induk menggunakan kepercayaan sumber, pengesahan, dan kesegaran sambil mengekalkan setiap nilai sumber. Akhir sekali, saya akan menentukur pada pasangan berlabel, melaporkan kepersisan, kepekaan, dan volum semakan, serta memantau hanyutan (drift) berperingkat dan penggabungan palsu.
5. Penyelesaian langkah demi langkah
Langkah 1: Takrifkan dan normalkan rekod
Kekalkan source, source_id, masa ketibaan, dan medan mentah untuk setiap input. Normalkan nama mengikut peraturan Unicode, huruf besar/kecil, ruang putih, dan tanda baca; pangkas ruang pada alamat e-mel dan gunakan dasar huruf besar/kecil yang jelas; tukar nombor telefon kepada bentuk kod negara kanonikal. Nilai yang dinormalkan mestilah boleh dihasilkan semula tanpa menulis ganti nilai mentah. Nilai yang tiada harus bermaksud tidak diketahui, bukannya bukti bahawa dua rentetan kosong adalah sepadan.
Langkah 2: Jana calon dan skor padanan
Indekskan kunci e-mel, telefon, atau nama-tambah-poskod yang dinormalkan, dan jalankan beberapa pas penyekatan untuk corak data hilang yang berbeza. Kemudian bandingkan jarak edit (edit distance), medan yang dikongsi, status pengesahan, dan bukti negatif; dua nombor telefon berbeza yang disahkan sepatutnya mengurangkan keyakinan. Pemarkahan dalam blok menjadikan beban kerja hampir kepada bilangan calon dan bukannya O(n²), tetapi padanan yang terlepas akibat penyekatan mesti disampel dan diukur.
Langkah 3: Tetapkan ambang dan gabung dengan selamat
Bahagikan skor kepada jalur gabung automatik, semakan manusia, dan tiada padanan. Tentukur ambang daripada pasangan positif dan negatif berlabel berserta kos ralat perniagaan. Log peraturan dan skor bagi setiap penggabungan automatik; tunjukkan medan yang bercanggah dan bukti kepada penyemak; kekalkan sebab penolakan. Jika menggunakan union-find atau komponen bersambung (connected components), elakkan rangkaian tepi (edges) yang lemah daripada menggabungkan individu yang berbeza.
Langkah 4: Bina rekod induk dan pantau secara berperingkat
Pilih setiap medan induk berdasarkan sumber yang disahkan, keutamaan perniagaan, dan kesegaran, sambil menyimpan provenans, nilai terdahulu, dan masa berkuat kuasa. Bandingkan rekod baharu hanya dengan blok yang berkaitan dan sokong main semula (replay) selepas perubahan sumber atau peraturan. Sampel semakan secara berkala dan pantau kepersisan, kepekaan, kadar semakan, saiz komponen, dan hanyutan mengikut sumber, bahasa, wilayah, dan tetingkap masa. Jeda penerbitan automatik dan jejak kunci yang terjejas apabila penggabungan palsu meningkat.
6. Contoh jawapan yang kukuh
Saya akan memodelkan setiap input sebagai nilai mentah ditambah nilai yang dinormalkan, dengan sumber, kunci sumber, status pengesahan, dan masa peristiwa. Saya akan menormalkan nama, e-mel, dan telefon menggunakan peraturan yang boleh diterangkan, kemudian menjana calon melalui beberapa blok seperti e-mel, telefon, dan nama tambah wilayah. Skor calon akan menggabungkan medan yang dikongsi, jarak edit, pengesahan, dan penalti percanggahan, menghasilkan jalur gabung automatik, semakan manusia, dan tiada padanan yang ditentukur dengan pasangan berlabel dan kos perniagaan.
Saya tidak akan mengurangkan penggabungan kepada satu baris tunggal yang terselamat. Setiap medan induk akan mengekalkan sumber yang dipilih, versi peraturan, masa berkuat kuasa, dan nilai yang dibuang; hanya bukti yang kukuh akan mencipta komponen bersambung, manakala tepi yang lemah akan diserahkan kepada semakan. Penilaian luar talian akan melaporkan kepersisan, kepekaan, F1, kadar semakan, dan contoh penggabungan palsu. Larian berperingkat akan memantau hanyutan sumber dan tetingkap masa, supaya sumber baharu boleh ditambah dengan selamat dan peraturan yang tidak elok boleh dijejak, diasingkan, dan dimainkan semula.
7. Kesilapan lazim
- Menganggap persamaan nama yang tepat sebagai identiti yang sama walaupun terdapat alias, transliterasi, kenalan yang dikongsi, dan homonim.
- Membandingkan setiap pasangan tanpa menerangkan penjanaan calon atau mengukur kepekaan penyekatan.
- Menganggap skor kabur (fuzzy score) sebagai kebenaran mutlak tanpa jalur semakan atau penalti percanggahan.
- Hanya mengekalkan satu baris induk dan membuang nilai sumber, versi peraturan, dan bukti.
- Melaporkan ketepatan semata-mata dan bukannya kepersisan, kepekaan, dan ralat berwajaran perniagaan.
- Membiarkan satu tepi lemah membentuk komponen bersambung yang terlalu besar dan mengakibatkan penggabungan berlebihan (over-merge) yang tidak boleh diubah kembali.
8. Soalan susulan
Soalan susulan 1: Mengapa tidak melatih pengelas (classifier) secara terus?
Dengan label yang mencukupi, model boleh mempelajari skor padanan, tetapi ia masih memerlukan ciri yang boleh diterangkan, penentukuran ambang, semakan manusia, dan main semula berversi. Peraturan, model, dan penyemak semuanya harus mengeluarkan bukti untuk sumber baharu dan soalan pematuhan.
Soalan susulan 2: Bagaimanakah anda mengimbangi kepersisan berbanding kepekaan?
Terjemahkan kos penggabungan palsu dan penggabungan yang terlepas ke dalam objektif yang boleh dibandingkan, kemudian periksa lengkung ambang pada set pengesahan. Pembayaran atau pematuhan biasanya mengutamakan kepersisan terlebih dahulu; penyahduplikasian (deduplication) mungkin menerima kepekaan yang lebih tinggi, sementara kedua-duanya mengekalkan semakan dan pensampelan.
Soalan susulan 3: Bagaimanakah anda mengesan penggabungan berlebihan (over-merging)?
Pantau saiz komponen, perkongsian tepi berskor rendah, percanggahan merentas sumber, dan kadar pemisahan manual; kembangkan graf bukti untuk komponen yang luar biasa besar. Jeda gabung automatik, asingkan entiti yang terjejas mengikut versi peraturan, dan mainkan semula hasil berperingkat.