Duplikaterkennung
Transcription
Duplikaterkennung
Informationsintegration Duplikaterkennung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung • • • • • Data Cleansing Duplikaterkennung Ähnlichkeitsmaße Sorted-Neighborhood Algorithmus Duplikaterkennung auf Bäumen und Graphen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 2 Anfragebearbeitung in MBIS Globales Schema Korrespondenzen Exportschema • Aufgabe der Anfragebearbeitung • Gegeben eine Anfrage q gegen das globale Schema • Gegeben eine Menge von Korrespondenzen zwischen globalem und lokalen Schemata • Finde alle Antworten auf q Ulf Leser: Informationsintegration, Wintersemester 2006/2007 3 Ergebnisintegration • • • • • Schritt Schritt Schritt Schritt Schritt Ergebnisintegration 1: 2: 3: 4: 5: Anfrageplanung Anfrageübersetzung Anfrageoptimierung Anfrageausführung Ergebnisintegration Eingabe: Pro Ausführungsplan eine Menge von Ergebnistupeln Aufgabe: Die Ergebnisse der einzelnen Ausführungspläne sind oftmals redundant oder uneinheitlich. Während der Ergebnisintegration werden die einzelnen Ergebnisse zu einem Gesamtergebnis integriert, was insbesondere Duplikaterkennung und Auflösen von Widersprüchen in den Daten erfordert. Ergebnis: Das Ergebnis der Benutzeranfrage Ulf Leser: Informationsintegration, Wintersemester 2006/2007 4 Datenreinigung • Jeder Plan erzeugt Ergebnistupel • Ziel: Einheitliche, nicht redundante Darstellung der integrierten Informationen • Probleme allgemein • • • • Datenfehler Duplikate Unvollständige Daten Allgemein: Geringe Qualität der Daten • Data Cleansing (Datenreinigung) • Deduplizierung, Duplikaterkennung • Datenfusion • [Datenauswahl] Ulf Leser: Informationsintegration, Wintersemester 2006/2007 5 Data Cleansing in integrierten Systemen • Wo und wann? • Föderierte Systeme • • • • Online Cleansing (schwierig da teuer) Im Mediator Auf den Ergebnissen einer Anfrage Zugriff meist nur auf die aktuellen Ergebnisse • Data Warehouses • • • • Offline (Loading) Eventuell auch bei den Quellen selbst (z.B. Dateneingabe) Immer bei Datenaktualisierungen Zugriff auf gesamten Datenbestand möglich Ulf Leser: Informationsintegration, Wintersemester 2006/2007 6 Data Cleansing bei virtueller Integration Web Service A Web Service B <pub> <Title> MAC: Merging Autonomous Content </Titel> <First> Felix </First> <Last> Naumann </Last> <Year> 2002 </Year> </pub> <pub> <Title> Merging Autonomus Content </Titel> <First> Dr. Felix</First> <Last> Naumann </Last> <Year> 2001 </Year> </pub> Title First Last Year MAC: Merging Autonomous Content Felix Naumann 2002 Merging Autonomus Content Dr. Felix Naumann 2001 Ulf Leser: Informationsintegration, Wintersemester 2006/2007 7 Nachvollziehbarkeit • Daten müssen erklärbar sein • • • • • • Anwender eines DWH: „Da fehlt ein Produkt im Report“ Analysewerkzeug fehlerhaft? Report falsch? Data Mart Definition falsch? Basisdatenbank unvollständig? ETL Prozeduren fehlerhaft? • DC Aktionen müssen nachvollziehbar sein • Protokollieren der Aktionen durch alle Prozessschritte • Wiederholbarkeit aller Aktionen bei neuen Daten / Anfragen • Schwierig: Unsystematische ad-hoc Aktionen • DC programmieren, keine manuellen Änderungen • Mühsam, aber notwendig zur Unterstützung kontinuierlicher Prozesse Ulf Leser: Informationsintegration, Wintersemester 2006/2007 8 Duplikate und Fusion • Viele Fehler findet man erst durch Vergleich • • Quelle 1: Hans Meyer, Frankfurter Allee 200 Quelle 2: Hans Meier, Frankfurter Alee 202 • Vergleich erfordert Identifikation verschiedener Repräsentationen desselben Objekts • • Was soll man sonst vergleichen? Man vergleicht also Duplikate miteinander • Fusion verschmilzt Duplikate zu einem Objekt • • • Nicht-redundante Darstellung: Jedes Objekt ist nur einmal im Ergebnis repräsentiert Homogene Darstellung: Jedes (einwertige) Attribut dieses Objekts hat nur einen Wert Datenfusion: Bestimmte diese Werte aus den Attributwerten der Duplikate Ulf Leser: Informationsintegration, Wintersemester 2006/2007 9 Inhalt dieser Vorlesung • • • • • Data Cleansing Duplikaterkennung Ähnlichkeitsmaße Sorted-Neighborhood Algorithmus Duplikaterkennung auf Bäumen und Graphen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 10 Fehlerquote auf No-Fly Listen • • • Nach dem 11.9. 2001 hat die Transportation Security Administration (TSA), die nach der Gründung des Heimatschutzministeriums ein Teil dessen wurde, begonnen, eine No-Fly-Liste und eine "Selectee"-Liste über Menschen anzulegen, die eine Bedrohung darstellen können. Im Oktober 2002 wurde nach einem Antrag nach Einsicht gemäß dem Informationsfreiheitsgesetz erstmals belegt, dass solche, bislang heimlich geführten Listen existieren, nach denen Personen am Fliegen gehindert oder einer strengeren Kontrolle unterzogen werden. Zehntausende von Namen, vermutlich über 40.000, soll die No-Fly-Liste mittlerweile enthalten, in der Terrorist Identities Datamart Environment-Datenbank (TIDE), der Stammliste, aus der die andere Listen abgeleitet werden, sind über 300.000 Personen gespeichert ( Die Mutter aller TerrorDatenbanken quillt über). Das Problem der nach geheim gehaltenen Kriterien gesammelten Einträge auf den Listen ist neben einer gewissen Willkürlichkeit vor allem die hohe Fehlerquote. Sie soll bis zu 50 Prozent betragen, wie aus einem Bericht des Government Accountability Office hervorging. Fehler treten vorwiegend beim Vergleich der Namen auf. Ähnlichkeiten der Namen von Reisenden mit denen auf den Terrorlisten führen zu Verwechslungen, die unangenehme Folgen haben können, zumal es äußerst schwierig ist, einen Namen wieder von der Liste streichen zu lassen, und es undurchsichtig ist, warum ein Name oder eine Person auf diese geraten ist. Man darf gespannt sein, welche Folgen etwa die Antiterrorliste in Deutschland haben wird. Ein entscheidendes Problem in den USA stellt das Programm zum Abgleich der Namen dar. Mit dem Soundex-Programm werden die Namen von Reisenden mit denen der No-Fly-Liste verglichen. Die auf der englischen Sprache basierende Suche stößt natürlich in den Reservierungsdatenbanken auf Probleme, wenn dort etwa arabische Namen in das römische Alphabet übersetzt werden, was bekanntlich in zahlreichen Versionen gemacht werden kann. • • • • • • Soundex ist überdies ein altes, eigentlich bereits 1880 eingeführtes Programm, das – vorsichtig gesagt - einige grundsätzliche Schwächen hat, die dazu führen, dass auch bei englischen Namen zu viele Ähnlichkeiten ausgegeben werden. Dabei werden die Vokale entfernt und die Konsonanten durch drei Zahlen zwischen 1 und 6 ergänzt, um darzustellen, wie der Name ausgesprochen wird. H, W und Y werden nicht beachtet, was auch bei allen Konsonanten nach der dritten Stelle der Fall ist, weil nach dem ersten Buchstaben nur drei Zahlen kommen dürfen. Beispielsweise werden Black and Block jeweils als B-422 dargestellt. So können zahlreiche, unterschiedlich geschriebene Namen auf dieselbe Weise dargestellt werden und zu entsprechend vielen Warnhinweisen führen. Wie ungenau das Programm ist, haben Mitarbeiter der Firma S3 nicht uneigennützig demonstriert, weil sie behaupten, eine bessere Lösung zu haben. S3 bietet ein Tool an, mit dem sich sehen lässt, ob man auch einen "Treffer" landet. Angeblich hat die Firma Zugang zu den Listen gehabt. An sich hatte sich bereits ein anderes Programm in den Startlöchern befunden, um Verdächtige auszusortieren, nämlich CAPPS II (Computer Assisted Passenger Prescreening System II). Hier wären neben den Namen noch weitere persönliche Daten wie Adresse, Telefonnummer und Geburtstag zur Identifizierung eingeflossen. Die Informationen wären dann mit weiteren persönlichen Daten wie Kreditkarteninformationen, Finanztransaktionen und vielen anderen, von privaten Datenunternehmen gesammelten Daten abgeglichen und ergänzt worden, um eine Risikobewertung durchzuführen. Obgleich vom Kongress die Gelder für CAPPS II 2004 aus Datenschutzgründen gesperrt wurde, ist Ende des letzten Jahres bekannt geworden, dass die TSA weiterhin mit dem Automated Targeting System (ATS) eine Risikobewertung von international Reisenden durchführt, wobei die Flugpassagierdaten mit weiteren Daten aus unterschiedlichen Quellen verbunden werden ( US-Regierung bewertet das Risikopotenzial aller Ein- und Ausreisenden). Ob ATS Vorläufer oder Teil des Secure FlightProgramms ist, ist angesichts der verwirrenden Vielzahl von Projekten und Plänen zur Überwachung nicht eindeutig. Wie beim Secure Flight-Programm sollen jedoch bei ATS auch keine Daten von privaten Datenhändlern wie ChoicePoint verwendet werden. Das soll allerdings beim Registered Flight-Programm gemacht werden, an dem sich Reisende freiwillig beteiligen können, um nach einem Hintergrundcheck, der von beauftragten Firmen durchgeführt wird, schneller durch die Kontrollen zu kommen. Nachdem Zehntausende von Beschwerden aufgrund von Verwechslungen aufgekommen sind und die Listen unter schwere Kritik geraten sind, hat nun das Heimatschutzministerium eine Website zur Abhilfe eingerichtet. Auf DHS TRIP (Traveler Redress Inquiry Program) können Reisende, die meinen, fälschlicherweise auf der Liste zu stehen, ihre Beschwerde einreichen. Sie müssen dazu zusätzliche Informationen eingeben, die überprüft und auch an andere Behörden weiter gegeben werden können. Mit TRIP lasse sich, so Minister Chertoff, die Liste säubern, die angeblich aber schon gründlich überprüft worden sei, um endlich das lange angekündigte Programm Secure Flight nächstes Jahr einführen zu können. Beim Secure Flight-Programm werden PNR-Daten von Reisenden vor allem mit den Informationen aus der Terrorist Screening Database (TSDB) abgeglichen, um "verdächtige und bekannte Terroristen" zu erkennen und am Besteigen von Flugzeugen zu verhindern. Dazu will man offenbar die Terror-Liste bereinigen, auch wenn man mit den PNR-Daten mehr Informationen zur Überprüfung besitzt als nur die Namen. Das Problem mit Soundex ist damit allerdings noch nicht ganz gelöst. Angeblich hofft man im Heimatschutzministerium mit biometrischen Datenbanken die bislang dank Soundex hohen falschen Trefferquoten reduzieren zu können. Der Plan, nicht mehr nur zwei Fingerabdrücke, sondern die digitalen Fingerabdrücke aller 10 Finger zu erhalten, könnte damit zusammenhängen. Ulfhttp://www.heise.de/tp/r4/artikel/25/25058/1.html Leser: Informationsintegration, Wintersemester 2006/2007 11 Quelle: Ein Siebtel der Einträge in der britischen Gendatenbank ist falsch • Die britische Polizei hat die weltweit größte Gendatenbank und wahrscheinlich die fehlerhafteste, was die Glaubwürdigkeit der Genprofile untergräbt • • • • • • • • Die britische Polizei hat die größte Gendatenbank der Welt, die in den letzten Jahren massiv ausgebaut wurde. Mittlerweile enthält sie die Genprofile von 4 Millionen Menschen, mehr als 5 Prozent der Gesamtbevölkerung. In jedem Jahr wächst die Datenbank um eine halbe Million weiterer Genprofile. Dabei handelt es sich nicht nur um die Gendaten von verurteilten Straftätern, sondern auch von denen, die einer Tat verdächtigt und festgenommen wurden, gegen die aber dann keine Anklage erhoben wurde. Auch bei teils trivialen Verstößen, beispielsweise im Sinne der ständig erweiterten Liste des "antisozialen Verhaltens", können Genprofile gemacht und gespeichert werden. Auch die Gendaten von 150.000 Kindern unter 16 Jahren finden sich in der Datenbank, auch hier handelt es sich keineswegs immer um Straftäter. Die Begehrlichkeiten der Strafverfolger sind hoch. Das Innenministerium beabsichtigt, die Abnahme des genetischen Fingerabdrucks noch einmal massiv zu erweitern. So würde man auch gerne durchsetzen, dass DNA-Proben von Verdächtigen, die nur kleiner Vergehen beschuldigt werden, neben Fotografien und Finger- und Fußabdrücken schon auf der Straße genommen werden können. Wer nicht angeschnallt mit dem Auto fährt oder Abfall auf die Straße wirft, könnte dann schon für immer in die Datenbank geraten. Der Zweck sei, so heißt es in einem Papier des Innenministeriums, damit besser Straftäter identifizieren und Datenbanken durchsuchen zu können. Allerdings könnten die Sammelwut und das Vertrauen in die Korrektheit der Genprofile und der darüber bewerkstelligten Nachweise mit den neuesten Informationen einen Dämpfer erleiden. Um die 550.000 Namen in der Datenbank, so stellte sich nun heraus, sind falsch, falsch geschrieben oder fehlerhaft. Das macht immerhin Siebtel der gesamten Genprofile aus. Dabei handelt es sich nur um Kopien von DNA-Proben. Der Grund ist offensichtlich auch die große Sammelwut, die die Polizisten, getrieben vom Innenministerium, betreiben. So werden DNA-Proben bei Festnahmen genommen, während die Namen der Festgenommen nicht überprüft oder in falscher Schreibweise eingegeben werden. Manchmal stimmen Namen und Genprofile nicht überein oder sind Genprofile unter dem Namen von Menschen registriert, die es gar nicht gibt. Die Regierung musste nun sogar einräumen, nicht genau zu wissen, wie viele Einträge wirklich falsch sind, da von der Zählung nur die vorhandenen Kopien erfasst wurden. Es könnten also weitaus mehr sein. So sagte Meg Hillier, Staatssekretärin des Innenministeriums, dass die Zahl der Personen, deren Genprofil in der Datenbank ist, etwa um 13,7 Prozent niedriger sei als die Zahl gesamten Einträge. Man kann offensichtlich ohne Schuld mit seinem Genprofil auf Dauer in die Datenbanken gelangen, aber auch womöglich unschuldig darüber einer Straftat bezichtigt werden, weil Namen vertauscht oder Genprofile falsch zugeordnet wurden. Das Innenministerium versichert, dass man nun hart daran arbeite, die Ungenauigkeiten zu beseitigen und die Genprofile mit den Fingerabdrücken abzugleichen, um die Identität der Personen zu überprüfen. Quelle: http://www.heise.de/tp/r4/artikel/26/26061/1.html Ulf Leser: Informationsintegration, Wintersemester 2006/2007 12 Duplikate • Relationale Welt: Duplikat = Zwei Tupel einer Relation die identische Werte in allen Attributen besitzen • Allgemein: Duplikat = Paar von Tupeln, die demselben Realweltobjekt entsprechen • Also „synonyme“ Objekte • Typische Beispiele: Personen, Rechnungen, Lieferungen, Bestellungen, … • Viele kommerzielle Tools • Vor allem im Bereich Customer Relationship Management (CRM) • Record Linkage, Object Identification, Deduplication, Entity Resolution, … Ulf Leser: Informationsintegration, Wintersemester 2006/2007 13 Auswirkungen • Überflüssiger Verbrauch von Plattenplatz und Rechenleistung • Einfachste Auswertungen sind falsch • Anzahl Kunden <> SELECT COUNT(*) FROM customer • Umsatz <> SELECT SUM(revenue) FROM order • Man sieht nur noch Teile und nicht das Ganze • • • • • • Überschreiten des Kreditlimits wird nicht erkannt Zu niedriger Lagerbestand wird ausgewiesen Kein Ausnutzen von Mengenrabatten Fehleinschätzung von Kunden Mehrfachzusendung von Katalogen … Ulf Leser: Informationsintegration, Wintersemester 2006/2007 14 Das formale Problem • Gegeben: Tupel T={t1,..,tm} mit Attributen A1,…,Ak • • Kein „semantischer“ Schlüssel Komplexere Modelle (Bäume, Graphen) später • Tupel entsprechen Objekten O={o1,…,on} • • Über die wissen wir meistens nichts, man kennt nur die Tupel Manche der Tupel sind Duplikate • Gesucht: eine Funktion dup: TxT→bool • dup gibt true zurück, wenn Tupel t1 und t2 demselben Objekt o entsprechen • Als Datenbankproblem: dedup: T → N • • • Jedem Tupel wird eine natürliche Zahl zugeordnet Zwei Tupel bekommen dann und nur dann dieselbe Zahl zugeordnet, wenn sie Duplikate sind Berechnung eines identifizierenden Schlüssels Ulf Leser: Informationsintegration, Wintersemester 2006/2007 15 Transitivität • Im strengen Sinne ist die Duplikateigenschaft transitiv • (dup(t1,t2)=true ∧ dup(t2,t3)=true) → dup(t1,t3)=true • Im realen Leben muss man damit vorsichtig sein • • • • Man nimmt an, dass Duplikate irgendwie ähnlich sind Ähnlichkeit misst man durch eine Funktion sim: TxT → [0,1] Verwend. eines Schwellwerts: dupsim(t1,t2)=true gdw. sim(t1,t2)>t Aber: Ähnlichkeit ist mitnichten transitiv • Meier, Meyer, Mayer, Bayer, Bayes, Bades, … • Meier, Meir, Mer, Er, R, … • Gut überlegen, bevor man in Algorithmen Transitivität ausnutzt • • Hängt ab vom Vertrauen in sim und in t Kann Fehlerraten drastisch erhöhen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 16 Äquivalenzrelation und Clustering • Annahme: Transitivität • Dann ist dup eine Äquivalenzrelation • Also partitioniert dup die Menge T in Cluster • • Jeder Cluster entspricht einem Realweltobjekt (das man nicht kennen muss) Jedes Tupel in einem Cluster repräsentiert das Realweltobjekt, das dem Cluster entspricht • Duplikaterkennung ist im Grunde ein Clusterproblem • • Alle Clusterverfahren kann man verwenden Geschieht meistens nicht, weil die Attribute der Tupel eine „starke eigene Bedeutung“ haben • Und Clustering teuer ist • Daher ist Domänenwissen wichtiger als Clustertechniken Ulf Leser: Informationsintegration, Wintersemester 2006/2007 17 Genauigkeit der Duplikaterkennung • Annahme: Verwendung von sim und Threshold t • Weitere Annahme: sim(t1,t2) korreliert mit der Wahrscheinlichkeit, dass t1 und t2 Duplikate sind • sim irrt sich also meistens nicht oder nur ein wenig • Dann hängt die Genauigkeit von dupsim von t ab • Hohes t • Nahezu alle Duplikate, die man findet, sind auch welche • Aber man findet viele Duplikate nicht, weil sim nicht groß genug ist • Niedriges t • Man findet praktisch alle Duplikate • Aber man findet auch viele falsche Duplikate Ulf Leser: Informationsintegration, Wintersemester 2006/2007 18 Precision und Recall Realität Duplikat Methode Duplikat Kein Duplikat Kein Duplikat true-positive false-positive false-negative true-negative • Precision = TP/(TP+FP) • Wie viele der vorhergesagten Duplikate sind wirklich welche? • Auch: Spezifität • Recall = TP/(TP+FN) • Wie viele der echten Duplikate haben wir gefunden? • Auch: Sensitivität Ulf Leser: Informationsintegration, Wintersemester 2006/2007 19 Beispiel • Gegeben • Datenbank mit 10.000 Kunden • Algorithmus findet 50 Duplikate • In Wahrheit • Im Datensatz gibt es 55 Duplikate • Davon hat der Algorithmus 42 gefunden • Die restlichen 8 sind keine Duplikate Real: Positive Real: Negative Alg: Positive TP = 42 FP = 13 Alg: Negative FN = 8 TN= ? • Precision • Recall = TP/(TP+FP) = 42/55 ~ 76% = TP/(TP+FN) = 42/50 ~ 84% Ulf Leser: Informationsintegration, Wintersemester 2006/2007 20 Als Kurven Precision / Recall t Precision Recall Ulf Leser: Informationsintegration, Wintersemester 2006/2007 21 Prinzipielles Vorgehen • Annahme: Verwendung einer „guten“ sim • Um alle Duplikate zu finden, muss man alle Paare miteinander vergleichen • Beim Vergleich geht man attributweise vor • Schema Matching muss also schon vorher erfolgt sein • Ähnlichkeit zweier Tupel setzt sich aus der Ähnlichkeit ihrer Attribute zusammen • Ggf mit Gewichtung der Attribute Ulf Leser: Informationsintegration, Wintersemester 2006/2007 22 Probleme • Geeignete Ähnlichkeitsmaße? • Beitrag von Attributen zur Tupelähnlichkeit? • Skalierbarkeit? • Der Vergleich zweier Tupel ist nicht billig – oftmals komplexe Vergleichsfunktionen (siehe gleich) • Bei 100.000 Kunden müsste man 1E10/2 Paare vergleichen • Ähnlichkeitsfunktion sollte symmetrisch sein • Im Unterschied zu einem Join kann man hier nicht sortieren • Nach was denn? • Wir müssen weg von der quadratischen Komplexität Ulf Leser: Informationsintegration, Wintersemester 2006/2007 23 Weitere Dimension: Effizienz • Statt alle Paare zu vergleichen, nimmt man eine VorPartitionierung der Daten vor • Kleine Partitionen • Weniger Vergleiche, aber auch schlechterer Recall, wenn Duplikate in verschiedenen Partitionen liegen • Große Partitionen Viele Vergleiche (schlechtere Effizienz), aber besserer Recall Precision Recall Schwellwert m rti its tio ke ns ich gr nl öß e Äh aß Pa • Effizienz Ulf Leser: Informationsintegration, Wintersemester 2006/2007 24 Inhalt dieser Vorlesung • Data Cleansing • Duplikaterkennung • Ähnlichkeitsmaße • LIKE und SOUNDEX • Editabstände • Weitere Maße • Sorted-Neighborhood Algorithmus • Duplikaterkennung auf Bäumen und Graphen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 25 Attributähnlichkeit • Ähnlichkeitsmaße sind domänenabhängig • • • Preise, Messungen Namen Beschreibungen • Das Problem wird anders, wenn man alle möglichen Ausprägungen der Werte in der realen Welt kennt (und das nicht so viele und möglichst verschiedene sind) • • • • Z.B.: Titel, Strassen einer Stadt Nicht gut: Namen (trotz Telefonbuch) Für sim(t1.a1,t2.a1) vergleicht dann sima(a1,a2), sondern sucht die realen Werte oi, oj, denen a1 und a2 entsprechen, Damit definiert man: sim(a1,a2)=1 gdw. o(a1)=o(a2) • Wir diskutieren im Folgenden maße für Zeichenketten • Manche domänenabhängig, manche nicht Ulf Leser: Informationsintegration, Wintersemester 2006/2007 26 Like und Soundex • LIKE-Suche: WHERE NAME like „Mei%“ • • Sofort in allen DBMS verfügbar Aber: Zu eingeschränktes Maß für Ähnlichkeit • Soundex-Funktion • • Entwickelt 1918 zur Volkszählung in den USA Idee: Gleichklingende Wörter werden in identische Zeichenfolge übersetzt • Soundex („Naumann“) = Soundex („Neuman“) = N550 • Soundex-Code: Erster Buchstaben gefolgt von Codes für die nächsten drei Konsonanten • Ähnliche Konsonanten besitzen den gleichen Code (B und P erhalten „1“, V und B erhalten „0“) • • • Gut: Beachtet Lautähnlichkeiten, oft implementiert Schlecht: Sehr heuristisch (fehlende Konsonanten? Warum nur 3? Warum keine Vokale?) Nur für Namen geeignet, Fehlermodell ist „Verhören“ (und nicht vertippen) Ulf Leser: Informationsintegration, Wintersemester 2006/2007 27 Editskripte • Definition Ein Editskript e für zwei Strings A, B aus Σ*=Σ ∪ “_“ ist eine Sequenz von Editieroperationen • I (Einfügen eines Zeichen c∈Σ in A) • Dargestellt als Lücke in A; das neue Zeichen erscheint in B • D (Löschen eines Zeichen c in A) • Dargestellt als Lücke in B; das alte Zeichen erscheint in A • R (Ersetzen eines Zeichen in A mit einem anderen Zeichen in B) • M (Match, d.h., gleiche Zeichen in A und B an dieser Stelle) so, dass e(A)=B • Beispiel: A=„MEYER“, B=„MAYR“ • MRMIM MEYER MAY_R Ulf Leser: Informationsintegration, Wintersemester 2006/2007 28 Editabstand • Id.R. gibt es für gegebene A,B viele Editskripte • Definition • Die Länge eines Editskript ist die Anzahl von Operationen o im Skript mit o∈{I, R, D} • Der Editabstand zweier Strings A, B ist die Länge des kürzesten Editskript für A, B • Bemerkung • Matchen zählt nicht – interessant sind nur die Änderungen • Anderer Name: Levenshtein-Abstand • Es gibt oft verschiedene kürzeste Editskripte • MMMIMM MMIMMM MÜLLER MÜLLER MÜL_ER MÜ_LER Ulf Leser: Informationsintegration, Wintersemester 2006/2007 29 Editabstände • Definition Gegeben zwei Strings A, B mit |A|=n, |B|=m • Funktion dist(A,B) berechne den Editabstand von A, B • Funktion d(i,j), 0≤i≤n und 0≤j≤m, berechne den Editabstand zwischen A[1..i] und B[1..j] • Bemerkungen • Jedes R kann durch {I,D} ersetzt werden; also werden R bevorzugt • Offensichtlich gilt: d(n,m)=dist(A,B) • d(i,j) dient zur rekursiven Berechnung von dist(A,B) Ulf Leser: Informationsintegration, Wintersemester 2006/2007 30 Rekursionsgleichung • Wir leiten das nächste Symbol im Editskript aus schon bekannten Editabständen ab • Wir suchen das kürzeste Skript, also d (i, j − 1) + 1 ⎫ ⎧ ⎪ ⎪ d (i, j ) = min ⎨ d (i − 1, j ) + 1 ⎬ ⎪d (i − 1, j − 1) + t (i, j )⎪ ⎩ ⎭ ⎧1 : wenn A[i ] ≠ B[ j ] t (i, j ) = ⎨ ⎩0 : sonst Ulf Leser: Informationsintegration, Wintersemester 2006/2007 31 Randbedingungen • Randbedingungen nicht vergessen • d(i,0) = i • Um A[1..i] zu „“ zu transformieren braucht man i Deletions • d(0,j) = j • Um A[1..0] zu B[1..j] zu transformieren braucht man j Insertions Ulf Leser: Informationsintegration, Wintersemester 2006/2007 32 Tabellarische Berechnung • Grundidee • Speichern der Teillösungen in Tabelle • Bei Berechnung Wiederverwendung wo immer möglich • Aufbau der Tabelle: Bottom-Up (statt rekursiv Top-Down) • • • • Initialisierung mit festen Werten d(i,0) und d(0,j) Sukzessive Berechnung von d(i,j) mit steigendem i,j Für d(i,j) brauchen wir d(i,j-1), d(i-1,j) und d(i-1,j-1) Verschiedene Reihenfolgen möglich A T G C G G T G C A A A T A A T T G G G G T T G G C C A A Ulf Leser: Informationsintegration, Wintersemester 2006/2007 T G C G G T G C A A T 33 Edit Distance – Berechnung d (i, j − 1) + 1 ⎫ ⎧ ⎪ ⎪ d (i, j ) = min ⎨ d (i − 1, j ) + 1 ⎬ ⎪d (i − 1, j − 1) + t (i, j )⎪ ⎩ ⎭ • Edit-Distance-Matrix R A S E N 0 1 2 3 4 5 H 1 1 2 3 4 5 A 2 2 1 2 3 4 Ulf Leser: Informationsintegration, Wintersemester 2006/2007 S 3 3 2 1 2 3 E 4 4 3 2 1 2 34 Edit Distance – Berechnung • Editabstand von RASEN und HASE ist 2 • Die tatsächlichen Operationen erhält man durch „Traceback“ • Bei Berechnung von d(i,j) behalte Pointer auf die Vorgängerzelle(n), die das Minimum in der Formel erreichen H A S E • Jeder Pfad von rechts unten nach links oben entlang dieser 0 1 2 3 4 Pfeile ist ein optimales Alignment R A S E N Ulf Leser: Informationsintegration, Wintersemester 2006/2007 1 2 3 4 5 1 2 3 4 5 2 1 2 3 4 3 2 1 2 3 4 3 2 1 2 35 Komplexität • Aufbau der Tabelle • • • • Zur Berechnung einer Zelle muss man genau drei andere Zellen betrachten Konstante Zeit pro Betrachtung m*n Zellen Insgesamt: O(m*n) • Traceback (für ein Alignment) • Man kann einen beliebigen Pfad wählen • Es muss einen Pfad von (n,m) nach (1,1) geben • Jede Zelle hat mindestens einen Pointer • Keine Zelle zeigt aus der Tabelle hinaus • Worst-Case Pfadlänge ist O(m+n) • Zusammen • O(m*n) (für m*n > m+n) Ulf Leser: Informationsintegration, Wintersemester 2006/2007 36 Weitere Ähnlichkeitsmaße für Wörter • Für Ähnlichkeit normieren wie den Editabstand auf die Länge der Strings dist (a, b) simedit (a, b) = 1 − max(| a |, | b |) • Beachtung von Buchstabendrehern: Damerau-Levensthein ⎧ ⎫ Abstand ⎪ ⎪ d (i, j − 1) + 1 ⎪ ⎪ d (i, j ) = min ⎨ d (i − 1, j ) + 1 ⎬ ⎪d (i − 1, j − 1) + t (i, j ) ⎪ ⎪ ⎪ − − + − + − ( 2 , 2 ) ( 1 , ) ( , 1 ) d i j t i j t i j ⎩ ⎭ • Einbeziehung der Ähnlichkeit von Buchstaben • • • Einfache Modifikation: t(i,j) ergibt nicht mehr 0/1, sondern einen Wert, der mit der Ähnlichkeit von Zeichen steigt Für Hörfehler: t(y,i)~0, t(b,p)~0.2, t(i,t)~1, t(e,i)~0.3, … Für Tippfehler: t(X,Y) hängt von der Entfernung von X und Y auf der Tastatur ab Ulf Leser: Informationsintegration, Wintersemester 2006/2007 37 Token-basierte Maße: Jackard-Koeffizent • Editabstand nicht geeignet für Texte • • • Wortstellung in Texten ist sehr variabel Reihenfolgefehler werden beim Editabstand aber schlimm bestraft „Kunde war ungehalten; später Reklamation“ und „Der Reklamation ging ungehaltenes Verhalten vom Kunden voraus“ • Jackard-Koeffizent • • Zerlege jeden Text S in Menge von Token T (Wörter) Ähnlichkeit zweiter Texte S1, S2 • • Ignoriert die Reihenfolge der Wörter vollkommen (Abhilfe: n-Gramme) Verfeinerungen | T1 ∩ T2 | simJackard ( S1 , S 2 ) = 1 − | T1 ∪ T2 | • Stemming von Wörtern: „ungehalten“ = „ ungehaltenes“ • Bedeutung von Wörtern: Häufigkeit im Korpus, TF/IDF Ulf Leser: Informationsintegration, Wintersemester 2006/2007 38 Vom Attribut zum Tupel • Theoretisch könnte man die Ähnlichkeit zweier Tupel als (gewichtetes) Mittel der Ähnlichkeiten ihrer Attributwerte definieren • Oder Verwendung von Fuzzy-Logik oder probablistischen Modellen • In der Praxis verwendet man eher Domänenwissen, das man in Regeln kodiert Ulf Leser: Informationsintegration, Wintersemester 2006/2007 39 Inhalt dieser Vorlesung • • • • Data Cleansing Duplikaterkennung Ähnlichkeitsmaße Sorted-Neighborhood Algorithmus • Einfacher Merge-Purge Algorithmus • Multipass • Duplikaterkennung auf Bäumen und Graphen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 40 Die Sorted Neighborhood Methode • Input • Tabelle mit N Tupeln • Ähnlichkeitsmaß • Output • Cluster äquivalenter Tupel (= Duplikate) • Problem: Viele Tupel • Es gibt O(n2) viele Tupelpaare • Das dauert zu lange • Außerdem: Nur sehr wenige sind tatsächlich Duplikate • Idee • Partitioniere Tabelle geschickt • Tupelpaare werden nur noch innerhalb einer Partition gebildet Ulf Leser: Informationsintegration, Wintersemester 2006/2007 41 Sorted Neighborhood [HS98] • Sorted Neighborhood Algorithmus • Sortiere Tupel so, dass Duplikate (hoffentlich) nahe beieinander liegen • Dazu: Erzeuge einen Sortierschlüssel aus relevanten Attributen • • Merge-Phase: Fenster der Größe w über sortierte Liste schieben Nur Tupel innerhalb eines Fensters vergleichen • Man hat also überlappende Partitionen • Purge-Phase: Duplikate werden verschmolzen, gelöscht, getagged, … • Komplexität • • • • n Tupel Schlüsselerzeugung sei linear Sortieren ist O(n*log(n)) Anzahl Vergleiche ist O(n*w) • N „neue“ Tupel werden mit (w-1) Tupeln im Fenster verglichen • Zum Vergleich: Naiver Ansatz war O(n2) Ulf Leser: Informationsintegration, Wintersemester 2006/2007 42 1. Schlüsselerzeugung • Schlüsselerzeugung ist zentral für die Effektivität des Verfahrens • • Ordnung der Schlüssel bestimmt die Partitionen Schlechte Reihenfolge – schlechter Recall • Leider ist überhaupt nicht klar, was ein guter Schlüssel zur Duplikaterkennung ist • • Implizit erfolgt eine Priorisierung der Attribute durch den Aufbau des Schlüssels Wieder: Domänenwissen Vorname Nachname Adresse ID Schlüssel Sal Stolpho 123 First St. 456780 STOSAL123FRST456 Mauricio Hernandez 321 Second Ave 123456 HERMAU321SCND123 Felix Naumann Hauptstr. 11 987654 NAUFEL11HPTSTR987 Sal Stolfo 123 First Street 456789 STOSAL123FRST456 Ulf Leser: Informationsintegration, Wintersemester 2006/2007 43 Merge Vorname Nachname Adresse ID Schlüssel Mauricio Hernandez 321 Second Ave 123456 HERMAU321SCND123 Felix Naumann Hauptstr. 11 987654 NAUFEL11HPTSTR987 Sal Stolpho 123 First St. 456780 STOSAL123FRST456 Sal Stolfo 123 First Street 456789 STOSAL123FRST456 • Regelbasierte Entscheidung auf Duplikat, z.B. • • IF last_name(r1) = last_name(r2) AND edit_distance(first_name(r1), firstname(r2)) < 5, AND address(r1) = address(r2) THEN dup(r1,r2)=true IF (ID(r1) = ID(r2) OR last_name(r1) = last_name(r2)) AND address(r1) = address(r2) AND city(r1) = city(r2) AND (state(r1) = state(r2) OR zip(r1) = zip(r2)) THEN dup(r1,r2)=true Ulf Leser: Informationsintegration, Wintersemester 2006/2007 44 Praktischer Aufwand • Komplexität: O(n*log(n)+n*w) • Praktisch – IO. Mindestens drei Läufe notwendig • • • Schlüssel erzeugen und speichern Sortieren Fenster schieben • Man hält immer w Tupel im Speicher • Beim Verschieben fällt ein Tupel raus und eines kommt hinzu • Das neue Tupel wird mit w-1 Tupeln im Fenster vergleichen • Praktisch sollte sich w also an der Blockgröße und der Größe des Hauptspeichers orientieren • Nicht nur IO: Teure Operationen • • • Schlüssel erzeugen – große Schlüssel müssen viele Werte anfassen Vergleichen – komplexe Regeln erfordern viele Einzelvergleiche Die Merge-Phase dominiert typischerweise die Gesamtkosten Ulf Leser: Informationsintegration, Wintersemester 2006/2007 45 Ausnutzung von Transitivität • Kann zur Reduktion von Arbeit benutzt werden • • Im aktuellen Fenster hält man k Äquivalenzklassen statt w Tupel (k<w) Pro Äquivalenzklasse ausgezeichneter Vertreter • Virtuelles „mittleres“ Element – schwierig und teuer • Echtes mittleres Element – teuer • Zufälliges Element – Verzerrung bei ungeeigneter Wahl • Bei vielen Duplikaten: k << w • Bei wenigen Duplikaten lohnt sich der Aufwand kaum • Preis: Erhöhung der Fehlerrate Ulf Leser: Informationsintegration, Wintersemester 2006/2007 46 Vertreterwahl bei Merge/Purge • Jeder Cluster wird als Priority Queue organisiert • Sortiert nach Reihenfolge des Einfügens von Tupeln • Neues Tupel t • Vergleich von t mit allen Clustern im aktuellen Fenster • Benutze das höchste Element t‘ pro Cluster zu Vergleich • Eventuell: Top-k Tupel • Begründung: t‘ liegt bzgl. Sortierung am nächsten zu t • Höchste Chance auf Duplikateigenschaft • Danach Stopp: keine weiterer Vergleich • Heuristische Beschleunigung Ulf Leser: Informationsintegration, Wintersemester 2006/2007 47 Inhalt dieser Vorlesung • • • • Data Cleansing Duplikaterkennung Ähnlichkeitsmaße Sorted-Neighborhood Algorithmus • Einfacher Merge-Purge Algorithmus • Multipass • Duplikaterkennung auf Bäumen und Graphen Ulf Leser: Informationsintegration, Wintersemester 2006/2007 48 Multipass Verfahren • Problematische Schlüsselwahl • Beispiel: Schlüssel beginnt mit ID • r1: 193456782 und r2: 913456782 • Lösung 1: Vergrößerung des Fensters • • Effizienz leidet, Effektivität steigt idR nur wenig Die „Präfix-Verzerrung“ der Sortierung kriegt man nicht weg • Lösung 2: Multipass • • • • Merge-Purge mehrmals mit verschiedenen Schlüsseln laufen lassen Pro Lauf können kleine w und einfache Schlüssel verwendet werden Duplikatbeziehungen aller Läufe sind gleichwertig Für k Läufe benötigt man ~(1+2*k) Scans der Tabelle • Alle Schlüssel in einem Lauf berechnen • Weniger effizientes, aber deutliches effektiveres Verfahren als Single-Pass Ulf Leser: Informationsintegration, Wintersemester 2006/2007 49