Terdepan dalam deduplikasi

13

Apa metode mutakhir dalam deduplikasi rekor? Deduplikasi juga kadang-kadang disebut: record linkage, resolusi entitas, resolusi identitas, gabungan / pembersihan. Saya tahu misalnya tentang CBLOCK [1].

Saya akan sangat menghargai jika jawaban juga termasuk referensi ke perangkat lunak yang ada yang menerapkan metode ini. Saya tahu misalnya bahwa Mahout mengimplementasikan kanopi-clustering . Ada juga Duke yang menggunakan Lucene.

Ada banyak sistem komersial untuk deduplikasi. Akan sangat berharga untuk mengetahui cara kerjanya dan seberapa efisiennya mereka.

Saya tertarik pada deduplikasi dalam satu set data dan menghubungkan antara beberapa set data yang berasal dari sumber yang berbeda. Efisiensi dan kemampuan untuk memproses data dalam jumlah besar juga penting.

[1] CBLOCK: Mekanisme Pemblokiran Otomatis untuk Tugas De-duplikasi Skala Besar

Jakub Kotowski
sumber
Solusi komersial yang mungkin menarik. Satu nilai jual adalah bahwa sudah saatnya untuk mencapai hasil yang lebih unggul dari pesaing komersial lainnya. novetta.com/products/entity-analyticsHAI(n)
Sycorax mengatakan

Jawaban:

5

Tamr (sebelumnya Data Tamer) melakukan deduplikasi basis data dalam skala besar. Bayes naif dan pengelompokan grafik terlibat.

Saya percaya algoritma sebagian besar diimplementasikan dalam SQL, yang agak aneh, tetapi penulis utama dari whitepaper mereka adalah Michael Stonebraker, yang membantu memimpin penciptaan PostgreSQL.

Lihatlah whitepaper di sini .

Sunting: Saya telah merangkum langkah-langkah yang diambil makalah mereka di bawah ini. Beberapa kata-kata saya hampir sama dengan di makalah mereka.

Sistem deduplikasi Tamr memiliki dua langkah utama untuk menangani sumber data baru: (1) Identifikasi Atribut dan (2) Konsolidasi Entitas. Ini kira-kira setara dengan deduplikasi kolom dan deduplikasi baris.

1) Membandingkan sumber data baru dengan yang sudah ada, langkah pertama adalah Atribut Identifcation.

Atribut (kolom) dari sumber baru dipetakan ke atribut dari sumber yang ada dengan empat algoritma:

  • Bandingkan nama atribut dengan perbandingan string fuzzy (trigram cosine similarity)
  • Pertimbangkan seluruh kolom sebagai dokumen, tokenize, ukur frekuensi total / frekuensi dokumen terbalik (TF-IDF) cosine similarity antara itu dan kolom lainnya.
  • Panjang deskriptif minimum: bandingkan dua kolom berdasarkan ukuran persimpangan dan gabungannya dengan pencocokan tepat.
  • Untuk kolom numerik, lakukan uji-t antara kolom baru dan kolom numerik yang ada untuk menentukan apakah kolom tersebut berasal dari distribusi yang sama.

2) Konsolidasi Entitas (Deduplikasi Baris)

Setelah Identifikasi Atribut telah dilakukan, kami ingin mendeduplikasi baris (catatan).

Kategorisasi dengan pengelompokan

Catatan pertama kali dikelompokkan ke dalam kategori berdasarkan kesamaan, dan kemudian aturan deduplikasi dipelajari di tingkat kategori. Contoh yang mereka berikan dari kategorisasi adalah untuk database resor ski, di mana resor ski barat harus kategori yang berbeda dari resor ski timur, karena fitur-fitur seperti elevasi pangkalan sangat dipisahkan oleh apakah resor itu timur atau barat. Kategorisasi dilakukan dengan algoritma clustering, dengan k-means diberikan sebagai contoh.

Deduplicating dengan Naif Bayes

Setelah atribut diidentifikasi dan catatan telah dikelompokkan ke dalam kategori, kami mempelajari aturan deduplikasi untuk setiap kategori berdasarkan pada set pelatihan dupes dan non-dupes.

Ada dua jenis aturan deduplikasi:

  1. Ambang batas untuk persamaan atribut sehubungan dengan fungsi jarak yang masuk akal untuk atribut. (Makalah ini tidak jelas tentang bagaimana ambang ini dipelajari.)
  2. Distribusi probabilitas untuk dupe dan non-dupes di setiap atribut. misalnya P("Title" values similar | duplicate) ~ 1dan Pr("State" values are different | duplicate) ~ 0

Untuk setiap pasangan rekaman, kami menghitung kesamaan setiap atributnya dengan metrik jarak yang sesuai. Jika ada atribut yang memiliki kesamaan di atas ambangnya, pasangan catatan diumpankan melalui pengklasifikasi Naif Bayes untuk diklasifikasikan sebagai dupe atau non-dupe.

Asumsi saya adalah bahwa untuk catatan X1 = (a1,b1,c1,d1),, X2 = (a2,b2,c2,d2)mereka menghitung vektor kesamaan di S = (s_a, s_b, s_c, s_d)mana s_ikesamaan untuk atribut wrt ke metrik jarak yang benar.

Saya menganggap classifier Naif Bayes mereka memiliki struktur ini:

P(dupe|S) = P(dupe)P(s_a|dupe)(s_b|dupe)(s_c|dupe)P(s_d|dupe) / P(S)

Resolusi entitas dengan pengelompokan grafik

Setelah langkah klasifikasi, kami memiliki subset rekaman dari kategori tertentu yang diyakini merupakan duplikat berpasangan. Ini sekarang perlu diselesaikan menjadi entitas yang berbeda . Ini memecahkan masalah transitivitas: jika record t1 adalah dupe dari t2 dan t2 adalah dupe dari t3, maka t1 juga harus merupakan dupe dari t3. Ini untuk mengatakan t1, t2, dan t3 mewakili entitas yang sama .

Sebuah struktur grafik digunakan untuk langkah ini. Dalam kategori tersebut, setiap rekaman yang mungkin merupakan dupe adalah sebuah simpul. Node yang diduga saling menipu memiliki tepi di antara mereka. Cluster kemudian ditemukan dalam grafik dan kemudian digabung bersama berdasarkan ambang batas tentang seberapa kuat satu cluster terhubung ke yang lain. Berikut adalah tiga contoh pasangan kluster yang mungkin atau mungkin tidak digabungkan berdasarkan keterhubungannya:

  c1        c2    

x-x-x-----y-y-y
|\|/|     |\|/|
x-x-x-----y-y-y  Meets similiarity threshold
|/|\|     |/|\|
x-x-x-----y-y-y    

x-x-x     y-y-y
|\|/|     |\|/|
x-x-x-----y-y-y  Does not meet similarity threshold
|/|\|     |/|\|
x-x-x     y-y-y    

    x     y
    |     |
    x-----y      Meets similarity threshold
    |     |
    x     y

Ketika algoritma berakhir, masing-masing cluster harus mewakili entitas yang berbeda dalam kategori . Untuk menyelesaikan proses, atribut entitas ini harus ditentukan dari atribut catatan di dalamnya . Null dibuang terlebih dahulu, kemudian metode termasuk frekuensi, rata-rata, median, dan terpanjang digunakan.

Makalah ini juga mengembangkan beberapa metode untuk menggunakan pakar domain untuk membantu ketika algoritma tidak yakin, dan bagaimana menggunakan beberapa pakar dengan tingkat keahlian yang berbeda.

thomaskeefe
sumber
Tautan yang berfungsi
papers