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