1. Pertanyaan dan konteks
Pertanyaan ini menguji resolusi entitas (entity resolution) atau penautan rekaman data (record linkage) untuk data engineering. Sebuah perintah wawancara terbuka meminta kandidat untuk merekonsiliasi rekaman data individu yang noisy dari beberapa sumber dan mendalami normalisasi, resolusi konflik, kualitas data, presisi (precision), dan recall. Topik ini cocok untuk peran platform data, data master, dan integrasi data pelanggan.
2. Apa yang sedang diuji oleh pewawancara
- Apakah Anda mendefinisikan "orang yang sama" dan biaya kesalahan bisnis sebelum memilih sinyal.
- Apakah Anda mengurangi beban kerja perbandingan semua pasangan (all-pairs) dengan pembuatan kandidat dan menjelaskan risiko recall pada blocking.
- Apakah Anda menggunakan pita (bands) penggabungan otomatis, peninjauan manual, dan tanpa kecocokan untuk mengendalikan penggabungan yang salah (false merges).
- Apakah setiap pemilihan kolom master mempertahankan sumber, bukti, dan riwayat versi.
- Apakah Anda mengevaluasi presisi dan recall pada pasangan berlabel, alih-alih hanya melaporkan akurasi.
3. Pertanyaan untuk diklarifikasi terlebih dahulu
- Kolom mana yang merupakan pengidentifikasi stabil? Apakah email dan telepon telah diverifikasi, dan apakah nama dapat berupa transliterasi atau alias?
- Mana yang lebih merugikan: penggabungan yang salah (false merge) atau penggabungan yang terlewat (missed merge)? Apakah hasilnya digunakan untuk pemasaran, pembayaran, kepatuhan (compliance), atau dukungan?
- Apakah ini backfill historis atau aliran inkremental harian? Apakah sumber memancarkan peristiwa pembaruan dan penghapusan?
- Ketika kolom mengalami konflik, sumber mana yang dipercaya? Haruskah peninjau melihat setiap nilai asli dan provenansinya?
4. Jawaban 30 detik
Pertama, saya akan mendefinisikan unit pencocokan, biaya kesalahan, dan output yang dapat diaudit. Saya akan menormalisasi kolom secara deterministik, menggunakan email, telepon, atau kunci komposit untuk menghasilkan blok kandidat, serta menghindari perbandingan all-pairs. Untuk setiap kandidat, saya akan memberi skor pada bukti positif dan negatif, dengan ambang batas terpisah untuk penggabungan otomatis, peninjauan manual, dan tanpa kecocokan. Saya akan membangun rekaman master menggunakan kepercayaan sumber, verifikasi, dan kebaruan data sambil mempertahankan setiap nilai sumber. Terakhir, saya akan melakukan kalibrasi pada pasangan berlabel, melaporkan presisi, recall, dan volume peninjauan, serta memantau drift inkremental dan false merges.
5. Solusi langkah demi langkah
Langkah 1: Definisikan dan normalisasi rekaman data
Pertahankan source, source_id, waktu kedatangan, dan kolom mentah untuk setiap input. Normalisasi nama dengan aturan Unicode, huruf besar/kecil, spasi, dan tanda baca; rapikan spasi pada alamat email dan terapkan kebijakan huruf besar/kecil yang eksplisit; konversikan nomor telepon ke bentuk kode negara kanonikal. Nilai yang dinormalisasi harus dapat direproduksi tanpa menimpa nilai mentah. Data yang hilang harus diartikan sebagai tidak diketahui, bukan bukti bahwa dua string kosong cocok.
Langkah 2: Hasilkan kandidat dan beri skor kecocokan
Indeks kunci email, telepon, atau nama-plus-kode-pos yang dinormalisasi, lalu jalankan beberapa tahap blocking untuk berbagai pola data yang hilang. Kemudian bandingkan jarak edit (edit distance), kolom yang sama, status verifikasi, dan bukti negatif; dua nomor telepon yang terverifikasi namun berbeda harus mengurangi tingkat keyakinan. Penilaian skor di dalam blok membuat beban kerja mendekati jumlah kandidat alih-alih O(n²), tetapi potensi kecocokan yang terlewat akibat blocking harus disampling dan diukur.
Langkah 3: Tetapkan ambang batas dan gabungkan secara aman
Bagi skor ke dalam pita penggabungan otomatis, peninjauan manual, dan tanpa kecocokan. Kalibrasi ambang batas dari pasangan positif dan negatif yang berlabel beserta biaya kesalahan bisnis. Catat aturan dan skor untuk setiap penggabungan otomatis; tampilkan kolom yang berkonflik dan buktinya kepada peninjau; simpan alasan penolakan. Jika menggunakan union-find atau komponen terhubung (connected components), cegah rangkaian edge yang lemah menggabungkan individu yang berbeda.
Langkah 4: Bangun master dan pantau secara inkremental
Pilih setiap kolom master berdasarkan sumber yang terverifikasi, prioritas bisnis, dan kebaruan, sembari menyimpan provenansi, nilai sebelumnya, dan waktu efektif. Bandingkan rekaman baru hanya dengan blok yang relevan dan dukung pemutaran ulang (replay) setelah terjadi perubahan sumber atau aturan. Ambil sampel tinjauan secara berkala dan pantau presisi, recall, tingkat peninjauan, ukuran komponen, serta drift berdasarkan sumber, bahasa, wilayah, dan rentang waktu. Jeda publikasi otomatis dan lacak kunci yang terdampak saat false merges meningkat.
6. Contoh jawaban yang kuat
Saya akan memodelkan setiap input sebagai nilai mentah ditambah nilai yang dinormalisasi, dilengkapi sumber, kunci sumber, status verifikasi, dan waktu peristiwa. Saya akan menormalisasi nama, email, dan telepon menggunakan aturan yang dapat dijelaskan, lalu menghasilkan kandidat melalui beberapa blok seperti email, telepon, dan nama plus wilayah. Skor kandidat akan menggabungkan kolom yang sama, jarak edit, verifikasi, dan penalti konflik, yang menghasilkan pita penggabungan otomatis, peninjauan manual, dan tanpa kecocokan yang dikalibrasi dengan pasangan berlabel dan biaya bisnis.
Saya tidak akan mereduksi penggabungan menjadi satu baris tunggal yang tersisa. Setiap kolom master akan mempertahankan sumber yang dipilih, versi aturan, waktu efektif, dan nilai-nilai yang dibuang; hanya bukti kuat yang akan membuat komponen terhubung, sedangkan edge yang lemah akan dikirim untuk ditinjau. Evaluasi offline akan melaporkan presisi, recall, F1, tingkat peninjauan, dan contoh false-merge. Eksekusi inkremental akan memantau drift sumber dan rentang waktu, sehingga sumber baru dapat ditambahkan dengan aman dan aturan yang bermasalah dapat dilacak, dipisahkan, dan diputar ulang.
7. Kesalahan umum
- Menganggap kesamaan nama yang persis sebagai identitas yang sama terlepas dari adanya alias, transliterasi, kontak bersama, dan homonim.
- Membandingkan setiap pasangan tanpa menjelaskan pembuatan kandidat atau mengukur recall pada blocking.
- Memperlakukan skor fuzzy sebagai kebenaran mutlak tanpa pita peninjauan atau penalti konflik.
- Hanya menyimpan satu baris master dan membuang nilai sumber, versi aturan, serta bukti.
- Hanya melaporkan akurasi alih-alih presisi, recall, dan kesalahan berbobot bisnis.
- Membiarkan satu edge lemah menciptakan komponen terhubung yang sangat besar dan penggabungan berlebih (over-merge) yang tidak dapat dibatalkan.
8. Pertanyaan lanjutan
Pertanyaan lanjutan 1: Mengapa tidak melatih pengklasifikasi (classifier) secara langsung?
Dengan label yang cukup, sebuah model dapat mempelajari skor kecocokan, tetapi model tersebut tetap membutuhkan fitur yang dapat dijelaskan, kalibrasi ambang batas, peninjauan manual, dan replay berversi. Aturan, model, dan peninjau semuanya harus menghasilkan bukti untuk sumber baru dan pertanyaan kepatuhan.
Pertanyaan lanjutan 2: Bagaimana Anda menyeimbangkan presisi terhadap recall?
Konversikan biaya false-merge dan missed-merge menjadi sasaran yang dapat diperbandingkan, lalu periksa kurva ambang batas pada set validasi. Pembayaran atau kepatuhan biasanya memprioritaskan presisi terlebih dahulu; deduplikasi mungkin dapat menerima recall yang lebih tinggi, sementara keduanya tetap mempertahankan peninjauan dan sampling.
Pertanyaan lanjutan 3: Bagaimana cara Anda mendeteksi over-merging?
Pantau ukuran komponen, proporsi edge dengan skor rendah, konflik lintas sumber, dan tingkat pemisahan manual; perluas graf bukti untuk komponen yang berukuran tidak wajar. Jeda penggabungan otomatis, pisahkan entitas yang terdampak berdasarkan versi aturan, dan putar ulang hasil inkremental.