Lo stato dell'arte nella deduplicazione


13

Quali sono i metodi all'avanguardia nella deduplicazione record? La deduplicazione viene talvolta chiamata: collegamento dei record, risoluzione dell'entità, risoluzione dell'identità, unione / eliminazione. Conosco ad esempio CBLOCK [1].

Gradirei se le risposte includessero anche riferimenti a software esistenti che implementano i metodi. So per esempio che Mahout implementa il raggruppamento dei baldacchini . C'è anche Duke che usa Lucene.

Esistono molti sistemi commerciali per la deduplicazione. Sarebbe utile sapere come funzionano e quanto sono efficienti.

Sono interessato sia alla deduplicazione all'interno di un singolo set di dati sia al collegamento tra più set di dati provenienti da fonti diverse. Anche l'efficienza e la capacità di elaborare grandi quantità di dati sono importanti.

[1] CBLOCK: un meccanismo di blocco automatico per attività di deduplicazione su larga scala


O(n)

Risposte:


5

Tamr (precedentemente Data Tamer) esegue la deduplicazione del database su larga scala. Naive Bayes e clustering di grafici sono coinvolti.

Credo che gli algoritmi siano ampiamente implementati in SQL, che è un po 'strano, ma l'autore principale del loro white paper è Michael Stonebraker, che ha contribuito a guidare la creazione di PostgreSQL.

Dai un'occhiata al white paper qui .

Modifica: ho riassunto i passaggi che il loro documento prende di seguito. Alcune delle mie parole sono quasi le stesse del loro articolo.

Il sistema di deduplicazione di Tamr prevede due passaggi principali per gestire una nuova fonte di dati: (1) identificazione degli attributi e (2) consolidamento delle entità. Questi sono approssimativamente equivalenti alla deduplicazione di colonna e alla deduplicazione di riga.

1) Confrontando una nuova origine dati con una esistente, il primo passo è l'identificazione dell'attributo.

Gli attributi (colonne) della nuova fonte sono associati agli attributi della fonte esistente con quattro algoritmi:

  • Confronta i nomi degli attributi con il confronto delle stringhe fuzzy (somiglianza del coseno trigramma)
  • Considera un'intera colonna come documento, tokenizza, misura la somiglianza del coseno tra frequenza totale / frequenza del documento inversa (TF-IDF) tra quella e le altre colonne.
  • Lunghezza minima descrittiva: confronta due colonne in base alle dimensioni della loro intersezione e unione con la corrispondenza esatta.
  • Per le colonne numeriche, eseguire un test t tra la nuova colonna e le colonne numeriche esistenti per determinare se provengono dalla stessa distribuzione.

2) Consolidamento entità (deduplicazione riga)

Una volta eseguita l'identificazione dell'attributo, vogliamo deduplicare le righe (record).

Classificazione con clustering

I record vengono prima raggruppati in categorie base alla somiglianza, quindi le regole di deduplicazione vengono apprese a livello di categoria. L'esempio che danno della categorizzazione è per un database di stazioni sciistiche, dove le stazioni sciistiche occidentali dovrebbero essere di una categoria diversa dalle stazioni sciistiche orientali, poiché caratteristiche come l'altezza di base sono fortemente separate dal fatto che la stazione sia est o ovest. La categorizzazione viene eseguita con un algoritmo di clustering, con k-medie fornito come esempio.

Deduplicando con Naive Bayes

Dopo che gli attributi sono stati identificati e i record sono stati raggruppati in categorie, apprendiamo le regole di deduplicazione per ogni categoria in base a un set di formazione di duplicati e non duplicati.

Esistono due tipi di regole di deduplicazione:

  1. Soglie per le somiglianze degli attributi rispetto a una funzione di distanza che ha senso per l'attributo. (Il documento non è chiaro su come apprendere queste soglie.)
  2. Distribuzioni di probabilità per duplicati e non duplicati in ciascun attributo. eg P("Title" values similar | duplicate) ~ 1e Pr("State" values are different | duplicate) ~ 0

Per ogni coppia di record, calcoliamo la somiglianza di ciascuno dei loro attributi con una metrica della distanza appropriata. Se un attributo ha una somiglianza al di sopra della sua soglia, la coppia di record viene alimentata attraverso un classificatore Naive Bayes per essere classificata come duplicata o non duplicata.

La mia ipotesi è che per i record X1 = (a1,b1,c1,d1), X2 = (a2,b2,c2,d2)calcolano un vettore di somiglianza in S = (s_a, s_b, s_c, s_d)cui vi s_iè somiglianza per quell'attributo rispetto alla metrica della distanza corretta.

Presumo che il loro classificatore Naive Bayes abbia questa struttura:

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

Risoluzione delle entità con clustering grafico

Dopo la fase di classificazione, abbiamo un sottoinsieme di record di una determinata categoria che si ritiene siano duplicati a coppie. Questi ora devono essere risolti in entità distinte . Questo risolve un problema di transitività: se il record t1 è un duplicato di t2 e t2 è un duplicato di t3, allora anche t1 deve essere un duplicato di t3. Questo per dire che t1, t2 e t3 rappresentano la stessa entità .

Per questo passaggio viene utilizzata una struttura grafica . All'interno della categoria, ogni record che può essere un duplicato è un nodo. I nodi sospettati di essere duplicati l'uno dall'altro hanno dei bordi tra di loro. I cluster vengono quindi scoperti nel grafico e quindi uniti in base alle soglie relative alla forza con cui un cluster è collegato a un altro. Ecco tre esempi di coppie di cluster che potrebbero essere unite o meno in base alla loro connessione:

  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

Al termine dell'algoritmo, ciascun cluster dovrebbe rappresentare un'entità distinta all'interno della categoria . Per completare il processo, gli attributi di questa entità devono essere determinati dagli attributi dei record al suo interno . I null vengono prima scartati, quindi vengono utilizzati metodi tra cui frequenza, media, mediana e più lunga.

Il documento sviluppa anche alcuni metodi per l'utilizzo di esperti di dominio per aiutare quando gli algoritmi non sono sicuri e come utilizzare più esperti con diversi livelli di competenza.


Link funzionante per il white paper: cs.uwaterloo.ca/~ilyas/papers/StonebrakerCIDR2013.pdf
fjsj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.