Duplikaterkennung & Datenfusion

Ähnliche Dokumente
Duplikaterkennung. Fabian Panse. Universität Hamburg. Komplexe Informationssysteme

Duplikaterkennung. Fabian Panse. Universität Hamburg. Komplexe Informationssysteme

Duplikaterkennung. Fabian Panse. Universität Hamburg. Komplexe Informationssysteme

Data Lineage / Data Fusion

Duplikaterkennung. Dr. Armin Roth arminroth.de. Dr. Armin Roth (arminroth.de) II Duplikaterkennung / 17

Seminar Duplikaterkennung

Workshop Datenreinigung Duplikaterkennung Felix Naumann

Inhalt. 4.1 Motivation. 4.2 Evaluation. 4.3 Logistische Regression. 4.4 k-nächste Nachbarn. 4.5 Naïve Bayes. 4.6 Entscheidungsbäume

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Clustern: Voraussetzungen

Klassifikation und Ähnlichkeitssuche

Informatik II, SS 2014

Projektgruppe. Clustering und Fingerprinting zur Erkennung von Ähnlichkeiten

Mathematische Grundlagen III

Seminar Duplikaterkennung Organisatorisches und Themen. Sascha Szott, Felix Naumann

... Text Clustern. Clustern. Einführung Clustern. Einführung Clustern

Informationsqualität Antrittsvorlesung am

Vergleich von SVM und Regel- und Entscheidungsbaum-Lernern

Nutzung maschinellen Lernens zur Extraktion von Paragraphen aus PDF-Dokumenten

INTELLIGENTE DATENANALYSE IN MATLAB. Überwachtes Lernen: Entscheidungsbäume

Entscheidungsbäume aus großen Datenbanken: SLIQ

Datenqualität und Datenreinigung

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

Algorithmen und Datenstrukturen 2

2. Klausur Datenstrukturen und Algorithmen SS 2014

Motivation. Klassifikationsverfahren sagen ein abhängiges nominales Merkmal anhand einem oder mehrerer unabhängiger metrischer Merkmale voraus

INTELLIGENTE DATENANALYSE IN MATLAB

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Support Vector Machines (SVM)

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

Maschinelles Lernen: Symbolische Ansätze

Informatik II, SS 2016

Decision Tree Learning

Informatik II, SS 2014

Clustering 2010/06/11 Sebastian Koch 1

Maschinelles Lernen: Symbolische Ansätze

Übung Algorithmen und Datenstrukturen

Data Mining auf Datenströmen Andreas M. Weiner

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

1 Einleitung Definitionen, Begriffe Grundsätzliche Vorgehensweise... 3

A linear-regression analysis resulted in the following coefficients for the available training data

ADS: Algorithmen und Datenstrukturen 2

9 Minimum Spanning Trees

Informationsintegration Große Datenräume in Web-basierten Umgebungen

ADS: Algorithmen und Datenstrukturen 2

Häufige Mengen ohne Kandidatengenerierung. FP-Tree: Transaktionen. Konstruktion eines FP-Trees. FP-Tree: Items

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Häufige Mengen ohne Kandidatengenerierung

Datenstrukturen und Algorithmen. Vorlesung 5

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Maschinelles Lernen: Symbolische Ansätze

Lösungen zu den Aufgaben zur Multivariaten Statistik Teil 4: Aufgaben zur Clusteranalyse

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

II Heterogenität und Architekturen

Lösungsvorschläge zur Hauptklausur Datenstrukturen

INTELLIGENTE DATENANALYSE IN MATLAB. Evaluation & Exploitation von Modellen

Algorithmen und Datenstrukturen II

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Duplikaterkennung und Datenfusion

Vorlesung 2 KÜRZESTE WEGE

Learning to Rank Sven Münnich

Using Sets of Feature Vectors for Similarity Search on Voxelized CAD Data

Support Vector Machines, Kernels

Algorithmische Bioinformatik 1

Data Mining und Maschinelles Lernen Wintersemester 2015/2016 Lösungsvorschlag für das 12. Übungsblatt

Maschinelles Lernen: Symbolische Ansätze

VII Unüberwachte Data-Mining-Verfahren

Übung Algorithmen und Datenstrukturen

Duplikaterkennung - Motivation Masterseminar. Felix Naumann Hasso-Plattner-Institut

Viertes Übungsblatt - Musterlösung

Folien zu Data Mining von I. H. Witten und E. Frank. übersetzt von N. Fuhr

INTELLIGENTE DATENANALYSE IN MATLAB. Evaluation & Exploitation von Modellen

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Einführung in Support Vector Machines (SVMs)

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

Algorithmen und Datenstrukturen 2

Übersicht. Datenstrukturen und Algorithmen. Das Rechenproblem: kürzeste Pfade. Übersicht. Vorlesung 17: Kürzeste Pfade (K24) Bellman-Ford Dijkstra

Modellierung mit künstlicher Intelligenz

Maschinelles Lernen und Data Mining

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Data Mining 2-1. Kapitel 2: Finding Similar Items. Johannes Zschache Wintersemester 2018/19

Inductive Logic Programming Relational Data Mining

Einführung in die STL

Matthias Treydte Fakultät für Informatik TU Chemnitz

6. Algorithmen auf Zeichenketten

Einführung in das Maschinelle Lernen I

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Begriffsklärung: Dominanz

INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt.

Kapitel ML: X (Fortsetzung)

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Semiüberwachte Paarweise Klassifikation

Transkript:

& Datenfusion Fabian Panse 10.09.2014 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 1 / 70

Einleitung Duplikaterkennung - Motivation Daten sind häufig von Qualitätsmängeln betroffen: Unvollständigkeit Fehlerhaft Quelle: Felix Naumann, Melanie Herschel [?] Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 3 / 70

Einleitung Duplikaterkennung - Motivation Reinigung einer Datenbank: Duplikate als Qualiätsproblem Schwerwiegende Folgen möglich tid Name Alter Wohnort t 1 Max Mustermann 27 Hamburg t 2 Maximilian Musterman 28 Hamburg - Eimsbüttel t 3 Max Muster 30 Hamburg t 4 Johannes Frisch 45 Berlin t 5 Anne Gruber 41 Harburg t 6 Kieser Klaus 53 Harburg t 7 Gruber Annemarie 41 Hamburg t 8 Christian Fabian 21 Berlin Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 4 / 70

Einleitung Duplikaterkennung - Motivation Semantisch korrekte Verknüpfung verschieder Quellen: Quelle 1 tid Name Wohnort t 11 Maximilian Musterman Eimsbüttel t 12 Max Muster Hamburg t 13 Johannes Frisch Berlin t 14 Gruber Annemarie Hamburg t 15 Christian Fabian Berlin Quelle 2 tid Name Studiengang t 21 Max Mustermann Mathematik t 22 Max Muster Informatik t 23 Hannes Frisch Biologie t 24 Anne Gruber Biologie t 25 Kieser Klaus Chemie Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 5 / 70

Einleitung Duplikaterkennung - Synonyme Auch bekannt als: Duplicate Elimination Merge-Purge Problem Entity Matching Entity Resolution Record Linkage Data Matching Deduplication Data Linkage Object Matching Object Reconciliation Object Identification Reference Reconciliation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 6 / 70

Einleitung Duplikaterkennung - Definition Basierend auf paarweisen Tupelvergleichen Zwischenergebnisse: Klasse der Matches (M), Klasse der Unmatches (U) Endergebnis: Partitionierung (Clustering) der Tupelmenge Eingabe (Tupelmenge) 1 3 2 4 5 6 7 8 Duplikatenerkennung Ergebnis (Clustering) 1 3 2 4 5 6 7 8 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 7 / 70

Einleitung Duplikaterkennung - Ziele Hohe Effektivität: Möglichst viele echte Duplikate finden Möglichst wenig falsche Duplikate als solche deklarieren Hohe Effizienz: Ressourcenschonende Berechnung (Speicher,CPU) Skalierbarkeit Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 8 / 70

Einleitung Duplikaterkennung - Prozessablauf Datenreinigung (Standardisierung, Entfernung einfacher Fehler) Suchraumreduzierung (Effizienzerhöhung) Attributwertmatching (Messen von Attributwertähnlichkeiten) Entscheidungsmodell (ähnlichkeitsbasierte Entscheidungsfindung) Duplikat Clustering (Clustern der paarweisen Entscheidungen) Verifikation (Abschätzung der Ergebnisqualität) Unbereinigte Tupelmenge Tupel Partitionierung Entscheidungsmodell Datenreinigung Attributwert Matching Suchraumreduzierung Duplikat Clustering Verifikation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 9 / 70

Verifikation Verifikation Input: Gold standard (korrektes Clustering C gold ) Duplikat Clustering C, Suchraum, Paarweise Entscheidungen Output: Qualitätswert q [0, 1] Unterscheidung in: Paarbasierte Verfahren Clusterbasierte Verfahren Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 10 / 70

Verifikation Paarbasierte Verifikation Grundidee: Zerlegung des Clusterings in paarweise Duplikatsentscheidungen Klassifikation in Matches (M) und Unmatches (U) Qualität als die Güte einer binären Klassifikation True Positives (TP): zu Recht deklarierten Matches True Negatives (TN): zu Recht deklarierten Unmatches False Positives (FP): zu Unrecht deklarierten Matches False Negatives (FN): zu Unrecht deklarierten Unmatches Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 11 / 70

Verifikation Paarbasierte Verifikation - Qualitätsmaße Recall: Anteil an gefundenen Duplikaten Recall = TP TP + FN Precision: Anteil an zu Recht deklarierten Matches Precision = TP TP + FP F 1 -score: Harmonisches Mittel von Recall und Precision F 1 -score = 2 Recall Precision Recall + Precision Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 12 / 70

Verifikation Trade-Off: Recall vs. Precision Hoher Schwellwert hohe Precision, kleiner Recall Kleiner Schwellwert kleine Precision, hoher Recall UNMATCHES False Negatives POSSIBLE MATCHES Clerical Reviews MATCHES True Positives True Negatives False Positives θ U/P θ P/M 0 1 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 13 / 70

Verifikation Clusterbasierte Verifikation Grundidee: Gold standard und Duplikaterkennungsergebnis sind Clusterings Qualität als Ähnlichkeit zwischen zwei Clusterings Qualitätsmaße: Closest Cluster Recall: ccrec(c, C gold ) = C q C gold max Cp Csim(C p, C q ) C gold Closest Cluster Precision: C ccprec(c, C gold ) = max p C C q C gold sim(c p, C q ) C Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 14 / 70

Suchraumreduzierung Duplikaterkennung - Prozessablauf Datenreinigung (Standardisierung, Entfernung einfacher Fehler) Suchraumreduzierung (Effizienzerhöhung) Attributwertmatching (Messen von Attributwertähnlichkeiten) Entscheidungsmodell (ähnlichkeitsbasierte Entscheidungsfindung) Duplikat Clustering (Clustern der paarweisen Entscheidungen) Verifikation (Abschätzung der Ergebnisqualität) Unbereinigte Tupelmenge Tupel Partitionierung Entscheidungsmodell Datenreinigung Attributwert Matching Suchraumreduzierung Duplikat Clustering Verifikation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 15 / 70

Suchraumreduzierung Suchraumreduzierung - Motivation Iterative Verfahren haben quadratische Komplexität Gegeben: n Tupel n (n 1) 2 paarweise Vergleiche Paarweiser Vergleich aller Tupel zu ineffizient Herausfiltern klarer Unmatches mit wenig Aufwand Teure Vergleiche nur für potentielle Duplikatpaare False Negatives (geminderte Effektivität) schlimmer als False Positives (geminderte Effizienz) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 16 / 70

Suchraumreduzierung Suchraumreduzierung - Motivation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 17 / 70

Suchraumreduzierung Schlüsselbasierte Suchraumreduzierung Meisten Reduzierungsverfahren basieren auf der Nutzung von Schlüsseln Eine Schlüsseldefinition ist eine Funktion die angibt wie ein Stringwert aus einem Tupel extrahiert wird Beispiel: Konkateniere die ersten drei Buchstaben des Vornamens mit den ersten zwei Buchstaben des Nachnames Mit Hilfe der Schlüsseldefinition wird von jedem Tupel ein Schlüssel extrahiert Die Schlüssel werden dann verwendet um zu bestimmen welche Tupelpaare im Suchraum verbleiben Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 18 / 70

Suchraumreduzierung Standard Blocking Eingabe: Schlüsseldefinition [Optional] Codierungsfunktion Vorgehensweise: Bildung eines Schlüssels für jedes Tupel [Optional] Codierung des Schlüssels (z.b. Soundex Code) Blockbildung: Ein Block pro Schlüssel (Hashing) Zwei Tupel im selben Block bilden ein Kandidatenpaar Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 19 / 70

Suchraumreduzierung Standard Blocking (Beispiel) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 20 / 70

Suchraumreduzierung Standard Blocking Stärken: Einfach zu Implementieren Schnell ( billig ) auszuführen Schwächen: Größte Block bestimmt Größe des Suchraumes Verfahren ineffektiv sobald ein Block groß ist Paarvergleich nur bei Schlüsselgleichheit Langer Schlüssel: Kleine Blöcke aber viele False Negatives Kurzer Schlüssel: Wenige False Negatives aber große Blöcke Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 21 / 70

Suchraumreduzierung Sorted Neighborhood Method Eingabe: Schlüsseldefinition Fenstergröße w Vorgehensweise: Bildung eines Schlüssels für jedes Tupel Sortieren aller Tupel nach Schlüssel Ein Fenster der Größe w läuft über die sortierte Tupel-Liste Zwei Tupel im selben Fenster bilden ein Kandidatenpaar Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 22 / 70

Suchraumreduzierung Sorted Neighborhood Method (Beispiel) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 23 / 70

Suchraumreduzierung Sorted Neighborhood Method Stärken: Überlappende Blöcke (Schlüssel müssen nicht mehr gleich sein) Genaue Vorhersage über resultierende Suchraumgröße möglich Schwächen: Fenstergröße vs. Häufigkeit von Schlüsselwerten Tupel mit sehr ähnlichen Schlüsseln werden evtl. nicht verglichen (Lsg.: variable Fenstergröße) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 24 / 70

Suchraumreduzierung Suffix-Array Based Blocking Eingabe: Schlüsseldefinition Minimale Suffixlänge l s Minimale Blockgröße l b Vorgehensweise: Bildung eines Schlüssels für jedes Tupel Bildung der Suffixe der Länge l l s von allen Schlüsseln Blockbildung: Ein Block pro Suffix ( mehrere Schlüssel pro Tupel) Entfernung aller Blöcke mit mehr als l b Einträgen Zwei Tupel im selben Block bilden ein Kandidatenpaar Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 25 / 70

Suchraumreduzierung Id BKV Suffixe l mbs = 3 gesetzt. R1 Die Catherine Minimumcatherine, Suffix Length atherine, wirdtherine, auf l ms herine, = 4 gesetzt. erine, Folgende rine Tabelle zeigt für jedes R2 Tupel Katherina die resultierenden katherina, Suffixe. atherina, therina, herina, erina, rina R3 Catherina catherina, atherina, therina, herina, erina, rina Id R4 BKV Catrina Suffixe catrina, trina, rina R1 R5 Catherine Katrina catherine, katrina, trina, atherine, rina therine, herine, erine, rine R2 Katherina katherina, atherina, therina, herina, erina, rina Nun werden R3 die Catherina Suffixe mit catherina, den Referenzen atherina, auf therina, ihr Quelltupel herina, erina, den rinasortierten invertierten Index R4 eingefügt. Catrina Das catrina, Suffix trina, rina rina ist zu allgemeingültig und wird, da es die R5 Katrina katrina, trina, rina Maximum Block Size überschreitet, gelöscht. Suffix-Array Based Blocking (Beispiel) Nun werden die Suffix Suffixe mit Identifier ReferenzenSuffix auf ihr Quelltupel Identifierin den sortierten invertierten Index eingefügt. atherina Das R2,R3 Suffix rina ist herine zu allgemeingültig R1 und wird, da es die Maximum Block Size atherine überschreitet, R1 gelöscht. katherina R2 atrina R4,R5 katrina R5 Suffix catherina Identifier R3 Suffix rina Identifier R2,R3,R4,R5 atherina catherine R2,R3 R1 herine R1 atherine catrina R1 R4 katherina R2,R3 atrina erina R4,R5 R2,R3 katrina therine R5 R1 catherina erine R3 R1 trina R2,R3,R4,R5 R4,R5 catherine herina R1 R2,R3 rine R1 catrina R4 therina R2,R3 Die resultierenden erinablöcke sind R2,R3alle Tupelmengen therinemit mehr R1 als einem Eintrag. Damit Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 26 / 70

Suchraumreduzierung Suffix-Array Based Blocking Stärken: Wie Standard Blocking, aber löst das Problem der Schlüssellänge benutzt pro Tupel den kürzesten Schlüssel der nicht zu einem großen Block führt Schwächen: Fehler am Ende der Schlüssel werden nicht kompensiert Verfahren einmal für Suffix und einmal für Präfix (der Präfix eines Strings entspricht dem Suffix des gespiegelten Strings) Mergen von Blöcken ähnlicher Suffixe Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 27 / 70

Suchraumreduzierung Schlüsselbasierte Suchraumreduzierung Stärken: Effiziente Berechnung Leicht an unterschiedliche Domänen anpassbar Schwächen: Große Abhängigkeit von der Wahl des Schlüssels Multi-pass Verfahren Ein Durchlauf pro Schlüsseldefinition Vereinigung der produzierten Suchräume (Bsp. Füge dem Suchraum alle Paare hinzu die in mindestens 2 Durchläufen als Kandidat deklariert wurden) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 28 / 70

Suchraumreduzierung weitere Suchraumreduzierungsverfahren Q-gram Indexing Canopy Clustering K-way Sorting Similarity-Aware Inverted Indexing String-Map basiertes Blocking LSH basiertes Blocking Sorted Blocks Priority Queue TI-similarity basiertes Blocking Spectral Neighborhood Blocking Blocking mit MFIBlocks Iteratives Blocking Fuzzy Blocking Paralleles Blocking mit Map-Reduce Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 29 / 70

Attributwert Matching Attributwert Matching Für jedes Kandidatenpaar wird ein Vergleichsvektor berechnet c = c 1,..., c n, c i [0, 1] Der Vektor enthält normierte Ähnlichkeiten zwischen Attributwerten Ähnlichkeitsberechnung durch String Matching (z.b. Levenshtein, Monge-Elkan, Kosinus, etc.) Üblich: Nur Vergleiche von Werten gleicher Attribute Eine Vektorposition pro Attribut Attributübergreifende Vergleiche können nützlich sein, wenn: Attributwerte vertauscht sein können (z.b. Vor- und Nachname) der erste Wert in dem zweiten codiert sein kann (z.b. Name in E-Mail) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 30 / 70

Entscheidungsmodell Duplikaterkennung - Prozessablauf Datenreinigung (Standardisierung, Entfernung einfacher Fehler) Suchraumreduzierung (Effizienzerhöhung) Attributwertmatching (Messen von Attributwertähnlichkeiten) Entscheidungsmodell (ähnlichkeitsbasierte Entscheidungsfindung) Duplikat Clustering (Clustern der paarweisen Entscheidungen) Verifikation (Abschätzung der Ergebnisqualität) Unbereinigte Tupelmenge Tupel Partitionierung Entscheidungsmodell Datenreinigung Attributwert Matching Suchraumreduzierung Duplikat Clustering Verifikation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 31 / 70

Entscheidungsmodell Entscheidungsmodell Input: Ein Tupelpaar {t i, t j }, Vergleichsvektor c(t i, t j ) Ausgabe: Entscheidung ob t i und t j Duplikate sind (samt Ähnlichkeit) Grundidee: Berechnung einer Ähnlichkeit/Distanz zwischen beiden Tupeln Nutzen eines Thresholds um Tupelpaar als Match oder Unmatch zu klassifizieren Häufig Verwendung einer dritten Klasse: Possible Matches Possible Matches müssen später von einem Domänexperten manuell begutachtet werden Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 32 / 70

Entscheidungsmodell Entscheidungsmodell θ U/P θ P/M candidate pair UNMATCHES POSSIBLE MATCHES MATCHES 0 sim 1 1 dst 0 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 33 / 70

Entscheidungsmodell Distanzbasierte Ansätze Ähnlichkeitsberechnung: Jedes Tupel als langen String betrachten und Stringähnlichkeitsmaß (z.b. Levenshtein, Monge-Elkan, Kosinus, etc.) verwenden (in diesem Fall wird der Vergleichsvektor nicht genutzt) Gewichteter Durchschnitt aller Attributähnlichkeiten Maximales 1:1 Matching zwischen den Attributwerten beider Tupel (wenn Attributübergreifende Ähnlichkeiten existieren) Distanz im Vektorraum Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 34 / 70

Entscheidungsmodell Distanz im Vektorraum Vergleichsvektor c(t i, t j ) = c 1,..., c n wird als Punkt P in einem n dimensionalen Vektorraum betrachtet Der Punkt 0 = (0, 0,..., 0) steht für sichere Nichtduplikate Der Punkt 1 = (1, 1,..., 1) steht für sichere Duplikate Berechnung der Ähnlichkeit zwischen t i und t j mit Hilfe eines Distanzmaßes dst Wahl des Distanzmaß dst: euklidische Distanz Manhattan Distanz etc. sim = 1 dst(0, P) dst(0, 1) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 35 / 70

Entscheidungsmodell Regelbasierte Ansätze Grundidee: Domänenexperte definiert Regeln die bestimmen wann zwei Tupel Duplikate oder Nichtduplikate sind Formale Beschreibung: Prämisse Schlussfolgerung Die Prämisse ist gewöhnlich ein Prädikat in konjunktiver Normalform: Prämisse = (term 1,1 term 1,2...)... (term n,1 term n,2...) Die Schlussfolgerung ist Match oder Unmatch Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 36 / 70

Entscheidungsmodell Regelbasierte Ansätze Einfacher Ansatz: Menge an positiven Regeln (Schlussfolgerung ist Match) Wenn eine Regel feuert wird das Tupelpaar als Match klassifiziert Wenn keine Regel feuert wird das Tupelpaar als Unmatch klassifiziert Reihenfolge in der die Regeln geprüft werden ist irrelevant Profilbasierte Ansatz: Positive Regeln (Schlussfolgerung ist Match) und negative Regeln (Schlussfolgerung ist Unmatch) Regel werden der Reihe nach geprüft bis eine feuert Reihenfolge in der die Regeln geprüft werden ist relevant Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 37 / 70

Entscheidungsmodell Regelbasierte Ansätze (Beispiel) R 1 : ( c(fname, fname) > 0.6) ( c(lname, lname) > 0.8) ( c(dob, DoB) = 1.0) Match R 2 : ( c(fname, lname) > 0.6) ( c(lname, fname) > 0.8) ( c(dob, DoB) = 1.0) Match R 3 : ( c(lname, fname) > 0.6) ( c(fname, lname) > 0.8) ( c(dob, DoB) = 1.0) Match R 4 : ( c(lname, lname) 0.5) ( c(country, country) 1.0) Unmatch R 5 : ( c(lname, email) > 0.5) ( c(fname, email) > 0.5) Match R default : True Unmatch Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 38 / 70

Entscheidungsmodell Clusterbasierte Ansätze Grundidee: Verwendung von hierarchischen Clusteringverfahren (gegeben Threshold θ) Initialisiere alle Tupel als einelementige Cluster Bis die größte gefundene Ähnlichkeit kleiner als θ ist, tue Berechne die Ähnlichkeit zwischen allen Clustern Ist die größte gefundene Ähnlichkeit größer als θ vereine die beiden betreffenden Cluster Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 39 / 70

Entscheidungsmodell Clusterbasierte Ansätze similarity 1 Θ Iteration 3 Iteration 2 Iteration 1 0 t 1 t 2 t 3 t 4 t 5 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 40 / 70

Entscheidungsmodell Clusterbasierte Ansätze Wie definiert man die Ähnlichkeit zwischen zwei Clustern? Average Link: durchschnittliche Ähnlichkeit der Cluster-Tupel Complete Link: maximale Ähnlichkeit der Cluster-Tupel Single Link: minimale Ähnlichkeit der Cluster-Tupel Canonical Entity: bilde ein kanonisches Tupel per Cluster und nehme die Ähnlichkeit der kanonischen Tupel as Clusterähnlichkeit Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 41 / 70

Entscheidungsmodell Statistische Ansätze Grundidee: Berechne die Wahrscheinlichkeiten, dass der Vergleichsvektor typisch für ein Match (kurz M) bzw. Unmatch (kurz U) ist Klassifiziere das Tupelpaar als Match wenn die Wahrscheinlichkeit dafür größer ist als für ein Unmatch { M, if Pr(M c) Pr(U c) classify(t i, t j ) = U, otherwise. Da es unendliche viele Vergleichsvektoren gibt, lassen sich die Wahrscheinlichkeiten nicht statistisch bestimmen Benutzung eines Matching Pattern Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 42 / 70

Entscheidungsmodell Statistische Ansätze Vorgehensweise: Transformiere den Vergleichsvektor in ein Matching Pattern Ein Matching Pattern ist ein n-dimensionaler Vektor p auf einem endlichen Wertebereich p = p 1,..., p n, p i {1, 2,..., k} Berechne die Wahrscheinlichkeiten, dass p typisch für einen Match bzw. Unmatch ist Pr( p M) = p i=1 Pr( p U) = p i=1 Pr( p[i] M) Pr( p[i] U) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 43 / 70

Entscheidungsmodell Statistische Ansätze Vorgehensweise: Klassifiziere {t i, t j } basierend auf diesen Wahrscheinlichkeiten ( ) ( ) Pr( p M) Pr(U) M, if log classify(t i, t j ) = 2 log Pr( p U) 2, Pr(M) U, otherwise. Vorraussetzungen: Schätzungen oder statistische Erhebungen für die einzelnen Wahrscheinlichkeiten Pr( p[i] M) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 44 / 70

Entscheidungsmodell Statistische Ansätze (Beispiel) Binäres Pattern: probability patterns 11 10 01 00 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 45 / 70

Entscheidungsmodell Statistische Ansätze (Beispiel) Binäres Pattern: increasing false positives θ P/M θ U/P increasing false negatives probability MATCH POSSIBLE MATCH UNMATCH patterns 11 10 01 00 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 46 / 70

Entscheidungsmodell Statistische Ansätze (Beispiel) Ternäres Pattern: probability patterns 22 21 20 12 11 10 02 01 00 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 47 / 70

Entscheidungsmodell Statistische Ansätze (Beispiel) Ternäres Pattern: probability increasing false positives θ P/M θ U/P increasing false negatives MATCH POSSIBLE MATCH UNMATCH patterns 22 21 12 11 20 02 01 10 00 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 48 / 70

Entscheidungsmodell Lernbasierte Ansätze Unüberwachte Lernverfahren: keine Trainingsdaten erforderlich Überwachte Lernverfahren: Trainingsdaten erforderlich Trainingsdaten sind Tupelpaare bei denen wir wissen, ob sie Duplikate sind oder nicht labeled training vectors 2. learn classifier learned classifier 1. select & label training vectors 4. classify all unlabeled vectors 3. select all unlabeled vectors comparison vectors matching classes Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 49 / 70

Entscheidungsmodell Unüberwachte Lernverfahren Constrained Clustering: Clustern der Vergleichsvektoren in zwei Cluster (z.b. 2-Means) Markiere das Cluster das sich näher am Punkt 1 = (1, 1,..., 1) befindet als Menge der Matches Vorteil: voll automatisch Nachteil: oft keine klare Grenze zwischen den Clustern Unconstrained Clustering: Verwendung eines Verfahren das keine Clusterzahl vorgibt Domänexperte klassifiziert pro Cluster ein Tupelpaar per Hand und adoptiert das Ergebnis für alle Paare des Clusters Vorteil: klare Clustergrenzen Nachteil: semi-automatisch Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 50 / 70

Entscheidungsmodell Überwachte Lernverfahren Entscheidungsbäume: Startet mit der Menge aller Trainingsvektoren Splittet diese Menge Schritt für Schritt in zwei Untermengen bis alle Vektoren einer Menge gleich gelabelt sind In jeder Runde wird versucht die Vektoreneigenschaft für den besten Split zu finden Als Splitkriterium wird häufig der Information Gain oder der Giny Index verwendet Das Ergebnis kann als eine Menge an Regeln betrachtet werden Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 51 / 70

Entscheidungsmodell Einleitung Distanzbasiert Regelbasiert Maschinelles Lernen (ML) Referenzen Entscheidungsbäume (Beispiel) Überwachtes ML Entscheidungsbäume V Beispiel: IF D Titel >= 0.55 AND D Studio >= 0.5 THEN MATCHED. Neuere Methoden zur Entscheidungsfindung in der Duplikatenerkennung Steffen Friedrich 16.08.2011 24 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 52 / 70

Entscheidungsmodell Überwachte Lernverfahren Support-Vector Machines: Betrachtet Vergleichsvektoren als Punkte in mehrdimensionalen Vektorraum Erzeugt eine Hyperebene welche die Trainingspunkte in zwei Klassen teilt Dabei gilt: Alle gleichgelabelten Vektoren befinden sich in der selben Klasse Die Distanz zwischen dem nächsten Vektor und der Hyperebene ist maximiert Problem: Lineare Separierung der Vektoren oft nicht möglich Kernel trick: Transformation in einen höher dimensionalen Raum und Rücktransformation der Hyperebene in eine nicht lineare Funktion Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 53 / 70

Entscheidungsmodell Einleitung Distanzbasiert Regelbasiert Maschinelles Lernen (ML) Referenzen Support-Vector Machines (Beispiel) Überwachtes ML Support Vector Machines (SVM) II Neuere Methoden zur Entscheidungsfindung in der Duplikatenerkennung Steffen Friedrich 16.08.2011 27 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 54 / 70

Duplikat Clustering Duplikaterkennung - Prozessablauf Datenreinigung (Standardisierung, Entfernung einfacher Fehler) Suchraumreduzierung (Effizienzerhöhung) Attributwertmatching (Messen von Attributwertähnlichkeiten) Entscheidungsmodell (ähnlichkeitsbasierte Entscheidungsfindung) Duplikat Clustering (Clustern der paarweisen Entscheidungen) Verifikation (Abschätzung der Ergebnisqualität) Unbereinigte Tupelmenge Tupel Partitionierung Entscheidungsmodell Datenreinigung Attributwert Matching Suchraumreduzierung Duplikat Clustering Verifikation Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 55 / 70

Duplikat Clustering Duplikat Clustering - Motivation Input: Eine Menge an paarweisen Duplikatsentscheidungen Diese Entscheidungen sind unabhängig voneinander getroffen wurden und können in Konflikt stehen Beispiel: {A, B} und {A, C} sind Matches aber {B, C} ist ein Unmatch. Da Identität aber transitiv ist, kann das nicht sein Ziel: Finden eines Duplikatclusterings das möglichst wenige der paarweise Entscheidungen revidiert Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 56 / 70

Duplikat Clustering Duplicate-Pair Graph Viele Verfahren basieren auf dem Duplicate-Pair Graph Graph besitzt Tuple als Knoten Zwei Knoten sind mit einer Kante verbunden, wenn die zugehörigen Knoten als Match klassifiziert wurden Die Ähnlichkeit beider Tupel wird als Kantengewicht genutzt 0.9 1 0.9 0.6 4 5 7 8 0.9 9 0.7 2 3 0.6 0.9 6 10 0.8 0.8 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 57 / 70

Duplikat Clustering Partitioning based on Connected Components Berechnet die Komponenten des Duplicate-Pair Graphs Entspricht der transitive Hülle aller gefundenen Matches Problem: Produziert große Cluster Produziert häufig eine große Zahl an False Positives 0.9 1 0.9 0.6 4 5 7 8 0.9 0.7 2 3 9 0.6 0.9 6 10 0.8 0.8 1 2 3 4 5 6 7 8 9 10 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 58 / 70

Duplikat Clustering Partitioning based on Centers Grundidee: Wählt einige Knoten des Duplicate-Pair Graphs als Center Weist jeden Knoten seinem nächsten Center zu Problem: Produziert kleine Cluster Produziert häufig eine große Zahl an False Negatives 0.9 1 0.9 0.6 4 5 7 8 0.9 0.7 2 3 9 0.6 0.9 6 10 0.8 0.8 1 2 4 7 8 3 5 6 9 10 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 59 / 70

Duplikat Clustering Partitioning based on Centers Vorgehensweise: Sortiere alle Kanten absteigend nach Gewicht Itertiere über die sortierte Liste und wählt eine Kante 1. Beide Knoten gehören schon einem Cluster an Es passiert nichts 2. Nur ein Knoten gehört einem Cluster an, aber ist kein Center Der clusterlose Knoten wird als neues Center gewählt 3. Nur ein Knoten gehört einem Cluster an und ist ein Center Der clusterlose Knoten wird dem anderen Cluster hinzugefügt 4. Keiner der Knoten gehört bereits zu einem Cluster Einer der beiden Knoten wird als neues Center gewählt und der andere Knoten wird dessem Cluster hinzugefügt Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 60 / 70

Duplikat Clustering Edge Removal Grundidee: Entfernt solange die Kante mit dem kleinsten Gewicht vom Duplicate-Pair Graph bis ein Stopp Kriterium erfüllt ist Verwendet die Komponenten des modifizierten Graphen als Cluster Typisches Stopp Kriterium: Der kürzeste Pfad zwischen jedem Knotenpaar ist kleiner als n Kann für jede Komponente separat ausgeführt werden (entfernt weniger Kanten) Problem: Kann berechnungsintensiv sein Entfernte Kanten können neue längste kürzeste Pfade erzeugen Eine große Zahl von Kanten wird entfernt werden Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 61 / 70

Duplikat Clustering Edge Removal 0.9 1 0.9 0.6 4 5 7 8 0.9 0.7 2 3 9 0.6 0.9 6 10 0.8 0.8 1 2 3 4 5 6 7 8 9 10 Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 62 / 70

Datenfusion Agenda 1 Duplikaterkennung Einleitung Verifikation Suchraumreduzierung Attributwert Matching Entscheidungsmodell Duplikat Clustering 2 Datenfusion Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 63 / 70

Datenfusion Überblick Datenfusion [NL06] Nach Duplikaterkennung: Kombination von Duplikaten, so dass im Ergebnis keine Entität der Realwelt mehr als einmal repräsentiert ist Ergebnisdatensätze angereichert mit Datenwerten aus unterschiedlichen Quellen (intensionale Komplementierung) Datenwerte aus unterschiedlichen Quellen können sich widersprechen (Datenkonflikte) Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 64 / 70

Datenfusion Datenkonflikte amazon.de Konflikt kann auch mit NULL-Wert herrschen 0766607194 H. Melville $3.98 ID 0766607194 Herman Melville Moby Dick $5.99 bol.de Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 65 / 70

Datenfusion Konfliktbeziehungen [NL06] 1 Gleichheit: Die Tupel sind in allen Attributwerten. 2 Subsumption: Ein Tupel subsumiert ein anderes, wenn es weniger Nullwerte hat und in jedem Attribut mit einem Nicht-Nullwert den gleichen Wert wie das andere Tupel besitzt. 3 Komplementierung: ein Tupel komplementiert ein anderes, wenn keines der beiden das andere subsumiert und wenn es für jedes Attribut mit einem Nicht-Nullwert entweder den gleichen Wert wie das andere Tupel hat oder das andere Tupel an dieser Stelle einen Nullwert besitzt. 4 Konflikt: Bei Konflikten gibt es mindestens ein Attribut, in dem beide Tupel unterschiedliche Werte haben, die nicht null sind. Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 66 / 70

Datenfusion Konfliktbeziehungen Beispiele [NL06] Film ID titel regisseur jahr studio t 1 1 Alien Scott 1980 Fox t 2 1 Alien Scott 1980 Fox t 3 1 Alien Scott 1980 null t 4 1 Alien null 1980 null t 5 1 Alien Scott 1982 MGM t 6 1 Alien null 1980 MGM Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 67 / 70

Datenfusion Konfliktlösungsfunktion f (x, y) := null wenn x = null y = null x wenn y = null x null y wenn x = null y null g(x, y) }{{} interne Konfliktlösungsfkt. sonst Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 68 / 70

Datenfusion Interne Konfliktlösungsfunktionen Numerisch: sum, avg, max, min,... Nicht-numerisch: maxlength, concat,... Spezialisiert: random, count, choose, favor, maxiq,... Domänen-spezifisch Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 69 / 70

Datenfusion Literatur [NL06] Felix Naumann and Ulf Leser. Informationsintegration. dpunkt.verlag, 2006. In German. Fabian Panse II Duplikaterkennung & Datenfusion 10.09.2014 70 / 70