Wie der Einsatz von LLMs und GenAI-Techniken die Deduplizierung verbessern kann

2D UMAP Musicbrainz 200K-Diagramm des nächsten Nachbarn

Kundendaten werden häufig als Datensätze in Buyer-Relations-Administration-Systemen (CRMs) gespeichert. Daten, die im Laufe der Zeit von einem oder mehreren Benutzern manuell in solche Systeme eingegeben werden, führen zu Datenreplikation, teilweiser Duplizierung oder Fuzzy-Duplizierung. Dies wiederum bedeutet, dass es keine einzige Quelle der Wahrheit für Kunden, Kontakte, Konten usw. mehr gibt. Nachgelagerte Geschäftsprozesse werden ohne eine eindeutige Zuordnung zwischen einem Datensatz in einem CRM und dem Zielkunden zunehmend komplexer und komplizierter. Aktuelle Methoden zum Erkennen und Deduplizieren von Datensätzen verwenden traditionelle Techniken der natürlichen Sprachverarbeitung, die als Entity Matching bekannt sind. Es ist jedoch möglich, die neuesten Fortschritte bei großen Sprachmodellen und generativer KI zu nutzen, um die Identifizierung und Reparatur doppelter Datensätze erheblich zu verbessern. Bei gängigen Benchmark-Datensätzen habe ich eine Verbesserung der Genauigkeit der Datendeduplizierungsraten von 30 Prozent unter Verwendung von NLP-Techniken auf quick 60 Prozent unter Verwendung meiner vorgeschlagenen Methode festgestellt.

Ich möchte die Technik hier erklären, in der Hoffnung, dass andere sie hilfreich finden und sie für ihre eigenen Deduplizierungsanforderungen verwenden. Sie ist für andere Szenarien nützlich, in denen Sie doppelte Datensätze identifizieren möchten, nicht nur für Kundendaten. Ich habe auch eine Forschungsarbeit darüber geschrieben und veröffentlicht, die Sie auf Arxiv einsehen können, wenn Sie tiefergehende Informationen wünschen:

Die Identifizierung doppelter Datensätze erfolgt häufig durch paarweise Datensatzvergleiche und wird als „Entity Matching“ (EM) bezeichnet. Typische Schritte dieses Prozesses sind:

  • Datenaufbereitung
  • Kandidatengenerierung
  • Blockierung
  • Dazu passend
  • Clustern

Datenaufbereitung

Bei der Datenaufbereitung handelt es sich um die Bereinigung der Daten. Dazu gehören beispielsweise das Entfernen von Nicht-ASCII-Zeichen, die Großschreibung und die Tokenisierung des Textes. Dies ist ein wichtiger und notwendiger Schritt für die NLP-Matching-Algorithmen später im Prozess, die mit unterschiedlichen Groß- und Kleinschreibungen oder Nicht-ASCII-Zeichen nicht intestine funktionieren.

Kandidatengenerierung

Bei der üblichen EM-Methode würden wir Kandidatendatensätze erstellen, indem wir alle Datensätze in der Tabelle mit sich selbst kombinieren, um ein kartesisches Produkt zu erstellen. Sie würden alle Kombinationen entfernen, die aus einer Zeile mit sich selbst bestehen. Bei vielen NLP-Matching-Algorithmen ist der Vergleich von Zeile A mit Zeile B gleichbedeutend mit dem Vergleich von Zeile B mit Zeile A. In diesen Fällen können Sie damit auskommen, nur eines dieser Paare beizubehalten. Aber selbst danach bleiben noch viele Kandidatendatensätze übrig. Um diese Zahl zu reduzieren, wird häufig eine Technik namens „Blockierung“ verwendet.

Blockierung

Die Idee des Blockierens besteht darin, diejenigen Datensätze zu eliminieren, von denen wir wissen, dass sie keine Duplikate voneinander sein können, weil sie unterschiedliche Werte für die Spalte „blockiert“ haben. Wenn wir beispielsweise Kundendatensätze betrachten, könnte eine mögliche Spalte zum Blockieren etwa „Stadt“ sein. Dies liegt daran, dass wir wissen, dass es sich nicht um denselben Kunden handeln kann, selbst wenn alle anderen Particulars des Datensatzes ähnlich genug sind, wenn sie sich in verschiedenen Städten befinden. Nachdem wir unsere Kandidatendatensätze generiert haben, verwenden wir das Blockieren, um diejenigen Datensätze zu eliminieren, die unterschiedliche Werte für die Spalte „blockiert“ haben.

Dazu passend

Im Anschluss an die Blockierung untersuchen wir nun alle Kandidatendatensätze und berechnen traditionelle, auf NLP-Ähnlichkeit basierende Attributwertmetriken mit den Feldern aus den beiden Zeilen. Mithilfe dieser Metriken können wir feststellen, ob wir eine potenzielle Übereinstimmung oder Nichtübereinstimmung haben.

Clustern

Da wir nun eine Liste mit übereinstimmenden Kandidatendatensätzen haben, können wir sie in Clustern gruppieren.

Die vorgeschlagene Methode besteht aus mehreren Schritten. Das Wichtigste ist jedoch, dass wir den Schritt „Datenvorbereitung“ oder „Kandidatengenerierung“ der herkömmlichen Methoden nicht mehr durchführen müssen. Die neuen Schritte lauten:

  • Übereinstimmungssätze erstellen
  • Erstellen Sie Einbettungsvektoren dieser Übereinstimmungssätze
  • Clustern

Übereinstimmungssätze erstellen

Zuerst wird ein „Match-Satz“ erstellt, indem die Attribute, die uns interessieren, aneinandergereiht und durch Leerzeichen getrennt werden. Nehmen wir als Beispiel an, wir haben einen Kundendatensatz, der so aussieht:

Wir würden einen „Übereinstimmungssatz“ erstellen, indem wir die Attribute name1, name2, name3, tackle und metropolis mit Leerzeichen verknüpfen, was uns Folgendes geben würde:

„John Hartley Smith 20 Major Road London“

Einbettungsvektoren erstellen

Sobald unser „Match Sentence“ erstellt wurde, wird er mit unserem gewählten Einbettungsmodell in den Vektorraum kodiert. Dies wird erreicht durch die Verwendung von „Satztransformatoren”. Die Ausgabe dieser Kodierung ist ein Gleitkommavektor mit vordefinierten Dimensionen. Diese Dimensionen beziehen sich auf das verwendete Einbettungsmodell. Ich habe das all-mpnet-base-v2 Einbettungsmodell mit einem Vektorraum von 768 Dimensionen. Dieser Einbettungsvektor wird dann an den Datensatz angehängt. Dies wird für alle Datensätze durchgeführt.

Clustern

Nachdem die Einbettungsvektoren für alle Datensätze berechnet wurden, besteht der nächste Schritt darin, Cluster ähnlicher Datensätze zu erstellen. Dazu verwende ich die DBSCAN-Technik. DBSCAN funktioniert, indem zunächst ein zufälliger Datensatz ausgewählt und mithilfe einer Distanzmetrik Datensätze gesucht werden, die diesem Datensatz nahe kommen. Es gibt zwei verschiedene Arten von Distanzmetriken, die sich bei mir bewährt haben:

  • L2 Normabstand
  • Kosinus-Ähnlichkeit

Für jede dieser Metriken wählen Sie einen Epsilon-Wert als Schwellenwert. Alle Datensätze, die innerhalb der Epsilon-Distanz liegen und denselben Wert für die Spalte „blockiert“ aufweisen, werden dann zu diesem Cluster hinzugefügt. Sobald dieser Cluster vollständig ist, wird ein weiterer zufälliger Datensatz aus den nicht besuchten Datensätzen ausgewählt und ein Cluster um ihn herum erstellt. Dies wird dann fortgesetzt, bis alle Datensätze besucht wurden.

Ich habe diesen Ansatz bei meiner Arbeit verwendet, um doppelte Datensätze mit Kundendaten zu identifizieren. Dabei wurden einige sehr gute Übereinstimmungen erzielt. Um objektiver zu sein, habe ich auch einige Experimente mit einem Benchmark-Datensatz namens „Musicbrainz 200K“ durchgeführt. Dabei wurden einige quantifizierbare Ergebnisse erzielt, die eine Verbesserung gegenüber Customary-NLP-Techniken darstellten.

Clustering visualisieren

Ich habe eine Clusterkarte der nächsten Nachbarn für den Musicbrainz-200K-Datensatz erstellt, die ich dann mit dem UMAP-Reduktionsalgorithmus in 2D gerendert habe:

2D UMAP Musicbrainz 200K-Diagramm des nächsten Nachbarn

Ressourcen

Ich habe verschiedene Notizbücher erstellt, die Ihnen dabei helfen werden, die Methode selbst auszuprobieren:

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert