DE112021001743T5 - Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten - Google Patents

Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten Download PDF

Info

Publication number
DE112021001743T5
DE112021001743T5 DE112021001743.8T DE112021001743T DE112021001743T5 DE 112021001743 T5 DE112021001743 T5 DE 112021001743T5 DE 112021001743 T DE112021001743 T DE 112021001743T DE 112021001743 T5 DE112021001743 T5 DE 112021001743T5
Authority
DE
Germany
Prior art keywords
database
value
token
null
records
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021001743.8T
Other languages
English (en)
Inventor
Rajesh Bordawekar
Tin Kam Ho
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021001743T5 publication Critical patent/DE112021001743T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

Strukturierte und semistrukturierte Datenbanken und Dateien werden mithilfe von Techniken zur Verarbeitung von natürlicher Sprache verarbeitet, um Daten für Nullwert-Token in Datenbanksätzen von sonstigen Datensätzen zu imputieren, die Werte ungleich null für dieselben Attribute aufweisen. Es werden Vektoreinbettungstechniken verwendet, darunter in einigen Fällen ein geeignetes Kennzeichnen von Nullwert-Token, um ihre übermäßige Auswirkung auf ein Erzeugen von semantischen Vektoren mithilfe eines neuronalen Netzes zu verringern oder zu beseitigen.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf Datenbanken und im Besonderen auf auf Semantik beruhenden Abfragen mithilfe einer Einbettungsvektordarstellung.
  • Bei einer Computerdatenbank handelt es sich um eine Gruppe von Daten, die auf einem Computer in einem strukturierten oder semistrukturierten Format gespeichert ist. Das Datenbankmodell einer Datenspeicherung organisiert große Datenmengen so, dass auf die Daten effizient zugegriffen werden kann, sie effizient verwaltet und aktualisiert werden können.
  • Ein Typ einer Computerdatenbank ist eine relationale Datenbank, die bestimmte Beziehungen zwischen Daten bereitstellt, um die Geschwindigkeit und Effizienz gegenüber einer normalen Datenbank zu erhöhen. Eine relationale Datenbank ist typischerweise als eine oder mehrere Tabellen aus Zeilen und Spalten strukturiert. Die Zeilen sind als Tupel definiert und verfolgen relevante Entitäten, und die Spalten sind als Attribute dieser relevanten Entitäten definiert. Eine Zeile oder ein Tupel kann zum Beispiel einem Mitarbeiter, einem Patienten, einer Sachanlage, einem Standort oder sonstigen Entitäten entsprechen. Jede(s) Spalte oder Attribut definiert einen Aspekt der in der relationalen Datenbank dargestellten Entität.
  • Eine Abfragesprache kann dazu verwendet werden, Daten in einer relationalen Datenbank zu verwalten. Das Verwalten von Daten kann ein Speichern von Informationen in oder ein Abrufen aus oder ein anderweitiges Bearbeiten (z.B. durch Sortieren, Aktualisieren, Vergleichen und sonstige Operationen) der relationalen Datenbank enthalten. Ein Beispiel für eine Abfragesprache ist die Structured Query Language (SQL).
  • KURZDARSTELLUNG
  • Ausführungsformen der Erfindung stellen Verfahren, Computerprogrammprodukte und Systeme zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank bereit.
  • Gemäß einer Ausführungsform der Erfindung imputiert das Verfahren für einen Nullwert eines ersten Tokens eines ersten Datenbanksatzes einen Wert ungleich null eines zweiten Tokens in einem zweiten Datenbanksatz.
  • Gemäß einer verwandten Ausführungsform ersetzt das Verfahren den Nullwert des ersten Tokens durch einen Wert ungleich null des zweiten Tokens.
  • Gemäß einer verwandten Ausführungsform wird das Imputieren als Reaktion auf ein Ermitteln durchgeführt, dass der zweite Datensatz dem ersten Datensatz ähnlich ist.
  • Gemäß einer verwandten Ausführungsform ermittelt das Verfahren, dass der zweite Datensatz dem ersten Datensatz ähnlich ist, auf Grundlage eines Vergleichens von semantischen Vektoren von Token des ersten Datenbanksatzes mit semantischen Vektoren von Token des zweiten Datenbanksatzes.
  • Gemäß einer verwandten Ausführungsform werden semantische Vektoren des ersten und des zweiten Datenbanksatzes mithilfe eines Vektoreinbettungsmodells erzeugt.
  • Gemäß einer verwandten Ausführungsform weist das Vektoreinbettungsmodell ein neuronales Netz auf, das mithilfe von Trainings-Daten trainiert wird.
  • Gemäß einer verwandten Ausführungsform weisen die Trainings-Daten Datenbanksätze auf, die so erweitert sind, dass sie Zeilenkennungs-Tags oder Nullwert-Tags oder beides enthalten.
  • Gemäß einer verwandten Ausführungsform weist ein Nullwert eines Tokens auf:
    • einen leeren Wert;
    • einen fehlenden Wert;
    • einen Platzhalterwert;
    • einen vordefinierten Wert; oder
    • einen Standardwert,
    • wobei der Nullwert das Fehlen von spezifischen Attributinformationen für ein bestimmtes Token bedeutet.
  • Gemäß einer verwandten Ausführungsform erzeugt das Verfahren einen semantischen Vektor für das erste Token auf Grundlage eines Ermittelns, dass das erste Token einen Nullwert aufweist, und fragt eine Einbettungsdatenbank ab, um einen oder mehrere Datensätze zu finden, die dem ersten Datensatz ähnlich sind. Das zweite Token in einem zweiten Datenbanksatz wird aus dem einem oder den mehreren ähnlichen Datensätzen ausgewählt.
  • Gemäß einer Ausführungsform der Erfindung weist ein Computersystem zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank einen oder mehrere Prozessoren; ein oder mehrere physische Speichermedien auf, die eine oder mehrere Programmieranweisungen zur Ausführung durch den einen oder die mehreren Prozessoren speichern, um ein Verfahren durchzuführen, wobei die Programmieranweisungen Anweisungen zum Durchführen von Schritten der oben beschriebenen Verfahren aufweisen.
  • Gemäß einer Ausführungsform der Erfindung weist ein Computerprogrammprodukt zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank ein oder mehrere physische Speichermedien auf, die Programmieranweisungen zur Ausführung durch einen oder mehrere Prozessoren speichern, um ein Verfahren durchzuführen. Die Programmieranweisungen weisen Anweisungen zum Durchführen der oben beschriebenen Verfahren auf.
  • Gemäß einer Ausführungsform der Erfindung kennzeichnet ein Verfahren zum Verringern oder Beseitigen einer Auswirkung von Nullwert-Token in Datensätzen einer strukturierten oder semistrukturierten Datenbank ein oder mehrere Nullwert-Token in Datensätzen einer strukturierten oder semistrukturierten Datenbank mit einem Tag, das einen Nullwert bedeutet; und erzeugt semantische Vektoren für Token von Werten ungleich null nur mithilfe von Nachbar-Token von Werten ungleich null.
  • Gemäß einer verwandten Ausführungsform findet das Verfahren für einen bestimmten Datensatz ähnliche Datensätze auf Grundlage eines Abfragens der erzeugten semantischen Vektoren.
  • Gemäß einer verwandten Ausführungsform weist ein Nullwert eines Tokens auf:
    • einen leeren Wert;
    • einen fehlenden Wert;
    • einen Platzhalterwert;
    • einen vordefinierten Wert; oder
    • einen Standardwert,
    • wobei der Nullwert das Fehlen von spezifischen Attributinformationen für ein bestimmtes Token bedeutet.
  • Gemäß einer noch weiteren Ausführungsform der Erfindung werden ein Computersystem und ein Computerprogrammprodukt zum Ausführen von Programmieranweisungen bereitgestellt, um Schritte der obigen Verfahren durchzuführen.
  • Figurenliste
  • Ausführungsformen der Erfindung werden im Folgenden lediglich als Beispiel unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen:
    • 1 ein funktionales Blockschaubild einer veranschaulichenden Datenverarbeitungsumgebung 100 zum Erzeugen von Vektoreinbettungen gemäß einer Ausführungsform der Erfindung ist.
    • 2 ein veranschaulichendes Beispiel für Einträge einer Datenbank 108 von 1 gemäß einer Ausführungsform der Erfindung ist.
    • 3 ein veranschaulichendes Beispiel für eine Trainings-Datenbank 110 von 1 gemäß einer Ausführungsform der Erfindung ist.
    • 4 ein veranschaulichendes Beispiel für eine Einbettungsdatenbank 112 von 1 gemäß einer Ausführungsform der Erfindung ist.
    • 5 ein veranschaulichendes Beispiel für eine Abfrage 502 mithilfe der Einbettungsdatenbank 112 von 1 gemäß einer Ausführungsform der Erfindung ist.
    • 6 ein veranschaulichendes Verfahren 600 zum Erzeugen von Datensätzen der Trainings-Datenbank 110 von 1 mithilfe von Datensätzen der Datenbank 108 gemäß einer Ausführungsform der Erfindung ist.
    • 7 ein veranschaulichender Ablaufplan eines Verfahrens 700 zum Erzeugen von Datensätzen der Einbettungsdatenbank 112 von 1 mithilfe von Datensätzen der Trainings-Datenbank 110 gemäß einer Ausführungsform der Erfindung ist.
    • 8 ein veranschaulichender Ablaufplan eines Verfahrens 800 zum Abfragen von Datensätzen der Datenbank 108 von 1 mithilfe von Datensätzen der Einbettungsdatenbank 112 gemäß einer Ausführungsform der Erfindung ist.
    • 9 ein veranschaulichender Ablaufplan eines Verfahrens 900 zum Imputieren von Daten für Nullwert-Token der Datenbank 108 gemäß einer Ausführungsform der Erfindung ist.
    • 10 ein veranschaulichender Ablaufplan eines Verfahrens 1000 zum Verringern oder Beseitigen des übermäßigen Einflusses von Nullwerten auf semantische Vektoren gemäß einer Ausführungsform der Erfindung ist.
    • 11 ein Blockschaubild eines veranschaulichenden Cloud-Computing-Knotens gemäß einer Ausführungsform der Erfindung ist.
    • 12 ein Blockschaubild einer Cloud-Computing-Umgebung, die den Cloud-Computing-Knoten von 11 enthält, gemäß einer Ausführungsform der Erfindung ist.
    • 13 ein Blockschaubild von Funktionsschichten der Cloud-Computing-Umgebung von 12 gemäß einer Ausführungsform der Erfindung ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es ist zu beachten, dass, wenngleich einige Ausführungsformen der Erfindung in Verbindung mit einer relationalen Datenbank beschrieben werden, die hierin offenbarten Erfindungsgedanken auf sonstige Datenbanken und sonstige Informationstypen anwendbar sind, zum Beispiel Multidimensional Online Analytical Processing (MOLAP), JavaScript Object Notation (JSON), eXtensible Markup Language (XML), Dateien mit durch Kommas getrennten Werten (comma-separated value, CSV), Tabellenkalkulationen, Resource-Description-Framework(RDF)-Dokumente und multimodale Datenbanken (z.B. Bild und Text), um nur einige zu nennen.
  • Ein Beispiel für eine relationale Datenbank ist eine Tabelle, die Informationen über Personen speichert. Jede(s) Tabellen-Tupel oder -zeile kann einer Person entsprechen, und jede Tabellenspalte kann einem Attribut (wie zum Beispiel dem Namen, den Kontaktinformationen, demographischen Informationen und sonstigen Informationen) der Person entsprechen.
  • Eine relevante Aufgabe beim Verwalten einer relationalen Datenbank besteht gemäß einer Ausführungsform der Erfindung darin, eine Datenimputation durchzuführen, um in einer Datenbank gespeicherte Datensätze zu erstellen, zu vervollständigen oder zu korrigieren, darunter Datensätze, die Nullwerte aufweisen. Eine Datenimputation kann durchgeführt werden, indem in Bezug auf einen bestimmten betrachteten Datensatz (der einen oder mehrere Nullwerte aufweist) ein oder mehrere ähnliche Datensätze (zum Beispiel in derselben Datenbank) erkannt werden, deren Attribute für die Nullwerte des bestimmten Datensatzes imputiert werden können; d.h., ein Prozess, durch den Nullwerte abgeleitet und auf Grundlage von Attributen von sonstigen Datensätzen eingetragen werden, die als dem bestimmten Datensatz ähnlich angesehen werden. Die Aufgabe des Imputierens von Daten ist ein technisches und nichttriviales Datenverarbeitungsproblem.
  • Eine weitere relevante Aufgabe beim Verwalten einer relationalen Datenbank besteht gemäß einer Ausführungsform der Erfindung darin, eine Ähnlichkeit zwischen verschiedenen Datensätzen (Zeilen oder Tupeln) der relationalen Datenbank oder zwischen verschiedenen Datensätzen von zwei relationalen Datenbanken zu ermitteln. Ähnliche Datensätze korrekt zu finden, ermöglicht eine angemessene Datenimputation. Im obigen Beispiel könnte eine relevante Aufgabe darin bestehen, für einen bestimmten Datensatz (z.B. einen Datensatz einer Person), der in der relationalen Datenbank aufgeführt ist, sonstige Datensätze zu finden, die die größte Ähnlichkeit mit ihm aufweisen. Die Aufgabe des Ermittelns von Datensätzen mit der größten Ähnlichkeit ist ein technisches und nichttriviales Datenverarbeitungsproblem.
  • Eine weitere relevante Aufgabe beim Verwalten einer relationalen Datenbank besteht gemäß einer Ausführungsform der Erfindung darin, doppelte Datensätze zu erkennen und zu entfernen oder zu konsolidieren. Beispielsweise sind in der relationalen Datenbank möglicherweise zwei Datensätze für dieselbe Person vorhanden (die Datensätze können zum Beispiel durch Kombinieren von zwei verschiedenen Datenbanken erstellt worden sein), die Datensätze weisen jedoch möglicherweise keine übereinstimmenden Informationen auf. Die Aufgabe des Ermittelns von doppelten Datensätzen ist ein technisches und nichttriviales Datenverarbeitungsproblem.
  • Die folgende Erörterung veranschaulicht diese technischen und nichttrivialen Probleme, erläutert, warum der Stand der Technik bei ihrer Lösung eingeschränkt ist, und hebt Vorteile des Umsetzens von Ausführungsformen der Erfindung bei der Lösung dieser Probleme hervor.
  • Strukturierte und semistrukturierte Datenbanken können gemäß Ausführungsformen der Erfindung auf verschiedene Weisen verarbeitet werden.
  • In einem Beispiel enthält die Verarbeitung ein Erzeugen einer Gruppe von Token-Sequenzen für zumindest einen Abschnitt einer Datenbank, wobei jedes Token in einer Sequenz eine jeweilige Datenbankentität der Datenbank darstellt; ein Zuweisen zumindest eines entsprechenden Vektors aus einer Gruppe von Vektoren einer selben Dimension zu jedem Token in der Gruppe von Token-Sequenzen, wobei der zumindest eine entsprechende Vektor Beziehungen zwischen der Datenbankentität eines Tokens und sonstigen Datenbankentitäten von sonstigen Token der Gruppe von Token-Sequenzen codiert; und ein Extrahieren von Informationen aus der Datenbank mithilfe einer Abfragesprache zumindest zum Teil auf Grundlage der durch die zugewiesenen Vektoren codierten Beziehungen.
  • In einem weiteren Beispiel passt die Verarbeitung eine relationale Datenbank an, die mehrere Datentypen enthält. Nicht-Text-Token in der relationalen Datenbank werden in eine Textform umgewandelt. Text wird auf Grundlage von Relationen von Token in der relationalen Datenbank erzeugt. Eine Gruppe von vortrainierten Wortvektoren für den Text wird aus einer externen Datenbank abgerufen. Die Gruppe von vortrainierten Wortvektoren wird für Token initialisiert, die der relationalen Datenbank und einer externen Datenbank gemeinsam sind. Die Gruppe von vortrainierten Vektoren wird dazu verwendet, eine Abfrage kognitiver Intelligenz zu erstellen, die als Structured-Query-Language(SQL)-Abfrage ausgedrückt wird. Inhalte der relationalen Datenbank werden zum Trainieren verwendet, während die Gruppe von vortrainierten Wortvektoren für Token, die der relationalen Datenbank und der externen Datenbank gemeinsam sind, initialisiert wird. Die erste Gruppe von Wortvektoren kann unveränderbar oder mit durch Parameter gesteuerte Aktualisierungen veränderbar sein.
  • In einem noch weiteren Beispiel passt die Verarbeitung eine relationale Datenbank an, die Bilddatentypen enthält. Zumindest eine Bildkennung in der relationalen Datenbank wird in eine Token-Form umgewandelt. Text wird auf Grundlage von Relationen von Token in der relationalen Datenbank erzeugt. Eine Gruppe von Wortvektoren wird auf Grundlage des Textes erzeugt. Eine Abfrage kognitiver Intelligenz, die als Structured-Query-Language(SQL)-Abfrage ausgedrückt wird, kann mithilfe der Gruppe von Wortvektoren auf die relationale Datenbank angewendet werden. Eine Bildkennung kann durch Umwandeln des Bildes in ein Tag unter Verwendung eines Klassifizierungsmodells für neuronale Netze und Ersetzen der Bildkennung durch eine entsprechende Cluster-Kennung durch binären Vergleich oder durch eine durch einen Benutzer spezifizierte Ähnlichkeitsfunktion in eine Token-Form umgewandelt werden. Eine Bildkennung kann mithilfe mehr als eines Umwandlungsverfahrens in eine Mehrzahl von Textformen umgewandelt werden.
  • In einem noch weiteren Beispiel passt die Verarbeitung eine relationale Datenbank an, die numerische Datentypen enthält. Zumindest ein numerisches Token in der relationalen Datenbank wird in eine Textform umgewandelt. Text wird auf Grundlage von Relationen von Token in der relationalen Datenbank erzeugt. Eine Gruppe von Wortvektoren wird auf Grundlage des Textes erzeugt. Eine Abfrage kognitiver Intelligenz, die als Structured-Query-Language(SQL)-Abfrage ausgedrückt wird, kann mithilfe der Gruppe von Wortvektoren auf die relationale Datenbank angewendet werden. Zumindest ein numerisches Token in der relationalen Datenbank kann in eine typisierte Zeichenfolge umgewandelt werden, die eine Überschrift für eine Spalte in der relationalen Datenbank, für die das Token auftritt, und den Zahlenwert aufweist. Ein Umwandeln zumindest eines numerischen Tokens in der relationalen Datenbank kann ein Clustern von Token in einer Spalte der relationalen Datenbank mithilfe eines Clustering-Algorithmus und Ersetzen jedes Tokens in der Spalte durch eine Cluster-Kennung aufweisen.
  • In einem noch weiteren Beispiel enthält die Verarbeitung ein Empfangen einer Sammlung von Informationen durch ein Prozessorsystem. Die Sammlung von Informationen enthält private Informationen und nichtprivate Informationen. Die Verarbeitung enthält darüber hinaus ein Erzeugen einer Mehrzahl von Vektoren, um die privaten Informationen und die nichtprivaten Informationen darzustellen. Die Mehrzahl von Vektoren entspricht codierten Darstellungen der privaten Informationen und der nichtprivaten Informationen. Die Verarbeitung enthält darüber hinaus ein Veröffentlichen zumindest eines Abschnitts der Sammlung von Informationen und der entsprechenden Vektoren.
  • Wie in den obigen Beispielen veranschaulicht, geht ein Durchführen zahlreicher relevanter Aufgaben oder, allgemeiner, ein Verwalten oder Verarbeiten von relationalen Datenbanken (neben sonstigen Datenstrukturen) mit einer Vektoreinbettung einher.
  • Gemäß einer Definition handelt es sich bei Vektoreinbettung um eine Technik, die Wörter oder Ausdrücke in einem Vokabular einem Vektor von reellen Zahlen zuordnet. Ein Vorteil einer Verwendung der Vektoreinbettung besteht darin, dass die semantische und/oder syntaktische Bedeutung eines Tokens (eines Wortes oder eines Ausdrucks) in einer Weise definiert wird, die durch Systeme zur Verarbeitung von natürlicher Sprache systematisch verarbeitet werden kann. Bei dieser Technik wird die Vektordarstellung des Wortes oder des Ausdrucks durch den Kontext des Tokens, d.h., seine benachbarten Wörter oder Ausdrücke, beeinflusst. Die Spanne der benachbarten Wörter ist ein konfigurierbarer Parameter. Ein neuronales Netz (das auch als Trainings-Modell bezeichnet werden kann) kann mithilfe von Trainings-Daten dazu trainiert werden, semantische Vektoren zu erzeugen, indem eine Zeichenfolge als seine Eingabe verwendet wird, um eine Vektordarstellung für jedes Token in dieser Zeichenfolge zu erzeugen. Bei der Zeichenfolge kann es sich zum Beispiel um einen Satz handeln. Eine Gruppe von Modellen, die zum Erzeugen einer Vektoreinbettung mithilfe dieser Technik verwendet werden, ist word2Vec.
  • Gemäß einer weiteren Definition bezieht sich eine verteilte Spracheinbettung auf ein Zuweisen eines Vektors zu jedem Wort, Begriff, Konzept oder, allgemeiner, Element von Daten, wobei die Vektoren verschiedene Aspekte der zugehörigen Wörter, einschließlich einer semantischen „Nähe“, angeben. Hierin beschriebene Ausführungsformen können verschiedene Operationen an Textentitäten in strukturierten oder semistrukturierten Datenbanken durchführen. Der Begriff „Textentität“ bezieht sich auf ein erkennbares Element (Daten), das in einer Datenbank (oder in einer externen Quelle) auftritt, zum Beispiel ein Wort, eine Zahl, eine bedeutungstragende kurze Sequenz wie zum Beispiel „Relativitätstheorie“. Bei einem „Wortvektor“ handelt es sich um eine Vektordarstellung von Wörtern in einer Sprache. Die Verfahren zum Gewinnen dieser Vektordarstellungen reichen von „Brute-Force“-Lernen durch verschiedene Typen von neuronalen Netzen bis zu loglinearen Klassifikatoren und zu verschiedenen Matrixformulierungen wie zum Beispiel Matrixfaktorisierungstechniken. Word2vec erzeugt zum Beispiel Vektoren, die syntaktische wie auch semantische Eigenschaften von Wörtern erfassen. Word2vec durchsucht einen Korpus (Text), um Vektordarstellungen für jedes Wort in dem Dokument zu erzeugen. Ein Wortvektor weist üblicherweise eine niedrige Dimension (etwa 100 bis 300) auf und stellt das Wort dar. Die Vektoren können dazu verwendet werden, die semantische und/oder grammatikalische Nähe von Wörtern zu berechnen sowie auf Analogien, z.B. „König verhält sich zu Mann wie Königin wozu?“ (Antwort: Frau), mithilfe von Vektoralgebraberechnungen zu testen.
  • Gemäß einer noch weiteren Definition sind Datenbankentitäten wie zum Beispiel ein Wort, eine Zahl, ein Feld (eine Spalte) einer Zeile, eine ganze Tabellenzeile (d.h., ein Tupel) oder sogar eine gesamte Relation, jeweils einem Vektor zugehörig, der die Beziehungen der Datenbankentität mit allen sonstigen solchen Entitäten erfasst. Die Nähe solcher Entitäten kann durch einfache Vektoroperationen ermittelt werden. Das Lernen (oder Trainieren) der Vektoren kann des Weiteren durch Techniken des maschinellen Lernens (ML) erreicht werden und kann an Entitätssequenzen ausgeführt werden, die von der Datenbank selbst abgeleitet werden. Dies stellt zwei Auffassungen einer Datenbank bereit: die typische relationale und die textliche. Die textliche Auffassung der Datenbank kann analysiert werden, und jedem Token kann eine niedrigdimensionale, z.B. 200, Vektordarstellung zugewiesen werden. Gemäß einigen Techniken werden Token, die häufig gemeinsam auftreten, Vektoren zugewiesen, deren Kosinusabstand relativ groß ist. Die Vektoren können darüber hinaus beim Überprüfen von Analogien mithilfe von einfachen Vektoroperationen verwendet werden. Ein Token kann als Sequenz von „Zeichen“ ohne dazwischenliegende Leerzeichen definiert sein. Jedes Token stellt eine Textentität dar, und die Entitäten beziehen sich aufeinander. Diese Beziehung kann numerisch ausgedrückt werden, z.B. cos(e1,e2) > 0,5. Hier ist cos der Kosinusabstand zwischen zwei Vektoren. Die Beziehung kann auch verbal auf einer Skala ausgedrückt werden, zum Beispiel sehr_stark, stark, mittelmäßig, schwach, sehr_schwach, z.B. stark(el,e2), was ermöglicht, die Zahlenwerte getrennt zu definieren, z.B. sehr_stark=0,95. Die Beziehung zwischen den beiden Textentitäten ,John' und ,New York' zu verstehen, enthält zum Beispiel, die Token für die Textentitäten wie zum Beispiel V_John und V_New_York abzuleiten und eine Algebraoperation an den beiden Vektoren durchzuführen, zum Beispiel einen Kosinusabstand. Wenn der Kosinusabstand zwischen V_John und V_New_York groß ist (d.h., näher an 1), sind die beiden Textentitäten eng verwandt; wenn der Kosinusabstand gering ist (d.h., näher an -1), sind die beiden Textentitäten nicht eng verwandt.
  • Gemäß einer noch weiteren Definition wird bei der Vektoreinbettung ein d-dimensionaler Vektorraum festgelegt. Jedes Wort in einem Textkorpus (z.B. einer Sammlung von Dokumenten) ist einem d-dimensionalen Vektor von reellen Zahlen zugehörig. Die Zuweisung von Wörtern zu Vektoren sollte so erfolgen, dass die Vektoren die Bedeutung der Wörter codieren. Wenn zwei Wörter eng verwandt sind (d.h., eine ähnliche Bedeutung haben), sollten ihre Vektoren idealerweise in ähnliche Richtungen zeigen. Mit anderen Worten, der Kosinusabstand zwischen ihren Vektoren sollte relativ groß sein. Mit eng verwandten Wörtern sind Wörter gemeint, die in dem Textkorpus häufig zusammen auftreten. Mit zusammen auftreten ist in unmittelbarer Nähe gemeint. Wenn Wörter unverwandt sind, sollte der Kosinusabstand zwischen ihren Vektoren umgekehrt relativ klein sein. Einige Verfeinerungen der Berechnung der Nähe gewichten die Nähe und/oder berücksichtigen Grammatikregeln.
  • Vektoren können entweder durch Lernen in der Datenbank selbst oder unter Verwendung von externen Text- oder Vektorquellen erzeugt werden. Im Zusammenhang mit relationalen Datenbanken besteht eine Möglichkeit, Vektoren zu erzeugen, darin, dass Vektoreinbettungsverfahren auf eine Token-Sequenz anzuwenden, die aus der Datenbank erzeugt wird: Jede Zeile würde einem Satz entsprechen, und eine Relation würde einem Dokument entsprechen. Auf diese Weise ermöglichen Vektoren eine zweifache Ansicht der Daten: relational und (bedeutungstragender) Text. Eine Vektoreinbettung kann dann latente semantische Informationen in Bezug auf Wortassoziationen und gemeinsames Auftreten extrahieren und sie in Wortvektoren codieren. Folglich erfassen die Vektoren zuerst Beziehungen zwischen und innerhalb von Attributen innerhalb einer Zeile (eines Satzes) und fassen diese Beziehungen anschließend über das Dokument hinweg zusammen, um die gemeinsamen semantischen Beziehungen zu berechnen. Die codierten semantischen Informationen können anschließend zum Abfragen der Datenbank verwendet werden.
  • Ein verbreitetes Problem bei den oben beschriebenen Funktionen und Prozessen besteht darin, dass Datenbanksätze häufig Nullwerte enthalten. Für die Zwecke von Ausführungsformen der beanspruchten Erfindung ist einem Fachmann ersichtlich, dass die Begriffe leer, null, fehlend, Platzhalter oder sonstige vordefinierte oder Standardwerte, die das Fehlen von spezifischen Attributinformationen für eine(n) bestimmte(n) Entität oder Datensatz bezeichnen, in Betracht gezogen werden, ohne vom Wesensgehalt und Umfang der beanspruchten Erfindung abzuweichen. Eine verbreitete funktionale Definition dieser Begriffe im Rahmen von Ausführungsformen der vorliegenden Erfindung ist, dass diese Werte für einen bestimmten Datensatz in einer Datenbank keine tatsächlichen Attribute der diesem Datensatz entsprechenden Entität bezeichnen. Stattdessen bezeichnen die Werte die unmittelbare Nichtverfügbarkeit von Attributinformationen.
  • Die oben beschriebenen Funktionen können besser durchgeführt werden, wenn die Nullwerte durch tatsächliche Werte mithilfe von Datenimputation ersetzt werden. Darüber hinaus kann es wünschenswert sein, den übermäßigen Einfluss von Nullwerten beim Durchführen einer Datenimputation oder von sonstigen Datenverarbeitungsaufgaben zu minimieren.
  • Genauer gesagt, im Zusammenhang mit strukturierten und semistrukturierten Datenbanken ist ein semantischer Vektor nützlicher, wenn er mithilfe von tatsächlichen Attributen eines Datensatzes statt mit Nullwerten erzeugt wird. Wenn tatsächliche Attribute in einem bestimmten Datensatz nicht verfügbar sind (d.h., der Wert null ist), können sie aus sonstigen ähnlichen Datensätzen durch Umsetzen von Ausführungsformen der beanspruchten Erfindung imputiert werden. Darüber hinaus können semantische Vektoren noch nützlicher gemacht werden, indem der übermäßige Einfluss von Nullwerten minimiert wird, wenn diese Werte nicht aus sonstigen Datensätzen imputiert werden können.
  • Kurz zusammenfassend, die Probleme, die Nullwerte darstellen, entstehen, weil in einem Vektoreinbettungsprozess, der auf eine relationale Datenbank angewendet wird, jede Zeile als ein Satz behandelt werden kann und als Eingabe in den Prozess bereitgestellt werden kann (z.B. als Eingabe in ein neuronales Netz). Ein Vektor kann für die Wörter oder Ausdrücke in der Zeile erzeugt werden. Die Zeile kann jedoch zahlreiche Nullwerte aufweisen. Der Vektor eines Wortes wird durch die Nullwerte in seiner Nachbarschaft beeinflusst und scheint fälschlicherweise sonstigen Token mit Nullwerten in ihrer Nachbarschaft ähnlich zu sein.
  • Es bestehen daher zumindest zwei Probleme beim Durchführen der oben erörterten relevanten Aufgaben: Datenimputation für einen bestimmten Nullwert in einem bestimmten Datensatz (d.h., wenn ein Attributwert null ist, weisen welche Datensätze die größte Ähnlichkeit mit dem Datensatz dieses Attributs auf, aus dem das Attribut kopiert werden kann); und Erzeugen von semantischen Vektoren auf Grundlage von Datensätzen, die einen oder mehrere Nullwerte aufweisen. Ein Ziel zumindest einer Ausführungsform der Erfindung besteht darin, eines dieser Probleme oder beide zu lösen.
  • Was das erste Problem betrifft; so ist bei einem bestimmten Nullwert in einem bestimmten Datensatz nicht ohne weiteres ersichtlich, welcher sonstige Datensatz dem bestimmten Datensatz ähnlich genug ist und daher als Quelle für eine Datenimputation für den bestimmten Nullwert geeignet ist. Dies ist darauf zurückzuführen, dass nach dem Stand der Technik für Nullwerte keine entsprechenden semantischen Vektoren erstellt werden und dass sonstige Nullwerte die semantischen Vektoren sowohl für den bestimmten Nullwert als auch für Nullwerte von sonstigen Datensätzen unangemessen beeinflussen. Je mehr Nullwerte in einem Datensatz vorhanden sind, desto ähnlicher scheint er sonstigen Datensätzen mit Nullwerten zu sein. Diese Ähnlichkeit ist jedoch nicht aussagekräftig, da die beiden Datensätze nur insofern ähnlich sind, als beide Nullwerte aufweisen, und nicht, weil sie ansonsten Informationen (z.B. Attribute) für dieselbe Entität übermitteln.
  • Was das zweite Problem betrifft, so tritt der unangemessene Einfluss von Nullwerten in einer relationalen Datenbank auf die Vektorausgabe eines Trainingsmodells für ein neuronales Netz aufgrund einer diesem Prozess zugrundeliegenden Annahme auf, nämlich dass Wörter, die in derselben Weise und/oder in ähnlichen Kontexten verwendet werden, wahrscheinlich ähnliche Bedeutungen haben. Es wird davon ausgegangen, dass diese Annahme in vielen Anwendungsfällen zuverlässige Bewertungen der semantischen Ähnlichkeit hervorbringt; dies jedoch in relationalen Datenbanken mit Nullwerten in vielen Fällen nicht der Fall ist, da viele Attribute als ähnlich identifiziert werden, nur weil sie alle durch denselben Nullwert umgeben sind.
  • Es besteht daher ein Bedarf an erfinderischen Verfahren, Systemen und Computerprogrammprodukten, die zuverlässig Daten für Nullwerte in Datenbankdatensätzen imputieren und Vektoreinbettungen erzeugen, die frei von einem unangemessenen oder übermäßigen Einfluss von Nullwerten sind. Ein Ziel zumindest einiger Ausführungsformen der offenbarten Erfindung besteht daher darin, eine oder mehrere dieser Funktionen bereitzustellen.
  • Einem Fachmann ist ersichtlich, dass die offenbarte Erfindung auf mehr als nur relationale Datenbanken anwendbar ist und sich auf Prozesse der Datenimputation und der Vektoreinbettung für Daten erstreckt, die in einer beliebigen Struktur gespeichert sind, wobei einige der Daten null enthalten, die aus sonstigen Datensätzen imputiert werden kann.
  • Ausführungsformen der Erfindung werden im Folgenden unter Bezugnahme auf die verschiedenen Figuren ausführlicher beschrieben.
  • 1 ist ein funktionales Blockschaubild einer veranschaulichenden Datenverarbeitungsumgebung 100 zum Erzeugen von Vektoreinbettungen gemäß einer Ausführungsform der Erfindung. Unter Bezugnahme auf 1 enthält die Datenverarbeitungsumgebung 100 einen Computer 102, dessen allgemeine Struktur und Komponenten diejenigen sein können, die im Folgenden in Verbindung mit 9 beschrieben werden.
  • Der Computer 102 enthält einen Prozessor 104, ein Programm 106, eine Datenbank 108, eine Trainings-Datenbank 110 und eine Einbettungsdatenbank 112.
  • Der Prozessor 104 verarbeitet im Allgemeinen Programmieranweisungen des Programms 106, um ein oder mehrere Verfahren durchzuführen. Das Programm 106 arbeitet an Daten, die in der Datenbank 108, der Trainings-Datenbank 110 und der Einbettungsdatenbank 112 gespeichert (oder zu speichern) sind; jede Datenbank speichert einen oder mehrere Datensätze, und jeder Datensatz entspricht einer Entität, und jeder Datensatz weist ein oder mehrere Attribute auf. Das Programm 106 und die Datenbanken sind in einem physischen Speichermedium des Computers 102 gespeichert. Fachleuten ist ersichtlich, dass, wenngleich in 1 ein Computer, ein Prozessor, ein Programm (und einige Datenbanken) dargestellt sind, diese Komponenten auf mehr als eine Datenverarbeitungseinheit verteilt sein können und über Cloud Computing oder sonstige verteilte Datenverarbeitungsmodelle bereitgestellt werden können, ohne vom Wesensgehalt oder Umfang der beanspruchten Erfindung abzuweichen.
  • Genauer gesagt, das Programm 106 führt unter anderem Vektoreinbettungsfunktionen (wie in Verbindung mit den 2 bis 4 beschrieben) und Abfragefunktionen (wie in Verbindung mit 5 beschrieben) durch.
  • Die Datenbank 108 enthält im Allgemeinen Daten, an denen verschiedene relevante Aufgaben, wie oben beschrieben, durchzuführen sind. Beispielsweise handelt es sich bei der Datenbank 108 um eine Tabelle, deren Zeilen Personen darstellen und deren Spalten Attribute dieser Personen darstellen. Einige dieser Attribute können in einigen der Zeilen fehlen (oder können als NULL, EMPTY oder sonstige Werte gekennzeichnet sein). Ein Beispiel für Einträge der Datenbank 108 wird im Folgenden in 2 bereitgestellt.
  • Die Trainings-Datenbank 110 enthält im Allgemeinen Daten, die durch das Programm 106 erzeugt werden, um Vektoreinbettungen gemäß Ausführungsformen der Erfindung zu erzeugen, zum Beispiel diejenigen in der Einbettungsdatenbank 112.
  • In der Einbettungsdatenbank 112 gespeicherte Datensätze sind im Allgemeinen Daten, die das Programm 106 durch Verarbeiten von Datensätzen der Trainings-Datenbank 110 erzeugt (mit anderen Worten, das Programm 106 verarbeitet Trainings-Daten, um semantische Vektoren zu erzeugen).
  • 2 ist ein veranschaulichendes Beispiel für Einträge 200 einer Datenbank 108 von 1 gemäß einer Ausführungsform der Erfindung. In dem dargestellten Beispiel ist die Datenbank 108 eine relationale Datenbank mit durch Kommas getrennten Werten (CSV), deren Einträge 200 eine (in 2 nicht dargestellte) Kopfzeile, die Attributen von Personen entspricht, und eine oder mehrere (in 2 dargestellte) zusätzliche Zeilen enthalten, die Datensätzen entsprechen, in denen tatsächliche Attribute von Personen gespeichert sind. Datensätze in der Datenbank 108 können unvollständige, falsche oder widersprüchliche Attributinformationen enthalten, die ein Abfragen und sonstige Operationen in der Datenbank, einschließlich des in der Datenbank 108 durchzuführenden Vektoreinbettungsprozesses, übermäßig beeinflussen. Das ist ein Problem.
  • Tatsächlich sind die Einträge 200 in dem dargestellten Beispiel für dieselbe fiktive Person, „JOSEPH ROBERTS“, bestimmt. Die Datensätze sind jedoch nicht identisch, da einige unvollständige, falsche oder widersprüchliche Informationen aufweisen können.
  • Bei den Attributen für den ersten Datensatz in diesem Beispiel handelt es sich um: eindeutige ID-Informationen (z.B. „2e92d2e-761e-44ab-a3c3-4ef86a04300f,MDMPER,60017,99310“), das Geschlecht (z.B. „M“ für männlich), den Geburtstag (z.B. „28/8/1992“), die Sozialversicherungsnummer (z.B. „054-91-6381“), eine Telefonnummer (z.B. „929-914-1128“), eine Anschrift (z.B. „15 Charles ST, Port Washington, NY, 11050“), geographische Koordinaten (z.B. „11050,40.754757 -73.601772“) und sonstige Informationen. Einige diese Informationen fehlen jedoch in sonstigen Datensätzen.
  • Es ist zum Beispiel zu beachten, dass der erste Eintrag (mit der Datensatz-ID 99310) die Werte „M“ und „JOSEPH“ für die Attribute SEX und FNAME aufweist. Der zweite, dritte und vierte Eintrag (Datensatz-IDs 99311 99312 bzw. 99313) weisen für diese beiden Attribute jedoch leere Werte auf.
  • Im Einklang mit den oben beschriebenen relevanten Aufgaben ist es wünschenswert, eine Datenimputation durchzuführen, um geeignete Werte zu finden, um diese leeren Werte zu ersetzen, indem die Datensätze mit der größten Ähnlichkeit gefunden werden, die möglicherweise tatsächliche Werte für eines oder mehrere dieser Attribute aufweisen.
  • Wie oben allgemeiner beschrieben, ist das Erzeugen von Vektoreinbettungen von Daten in der Datenbank 108 ohne Verarbeitung gemäß Ausführungsformen der beanspruchten Erfindung nur von begrenztem Nutzen, da sie keine Datenlücken füllen und da semantische Vektoren für Daten ungleich null durch Nullwerte übermäßig beeinflusst werden können.
  • Es ist daher wünschenswert, Daten der Datenbank 108 zu verarbeiten, um Datenlücken zu füllen (Datenimputation) und den unangemessenen Einfluss von Nullwerten auf semantische Vektoren für die Daten in der Datenbank 108 zu verringern oder zu beseitigen. Zumindest einige Verfahren werden in den 6 bis 9 bereitgestellt, die veranschaulichen, wie diese Funktionen durchzuführen sind. Ein Beispiel für Trainings-Daten, die durch diese Verfahren erzeugt und/oder verwendet werden, wird in 3 beschrieben.
  • 3 ist ein veranschaulichendes Beispiel für eine Trainings-Datenbank 110 von 1 gemäß einer Ausführungsform der Erfindung. Einträge 300 der Trainings-Datenbank 110 werden durch Anwenden eines Verfahrens 600 von 6 (als Beispiel) auf die Einträge 200 (2) der Datenbank 108 erzeugt. Einzelheiten dieses Prozesses werden in Verbindung mit 6 beschrieben. Es lässt sich hier feststellen, dass Werte der Einträge 300 mit ihren Attributen gekennzeichnet sind: RECORDID (d.h., „Datensatz-ID“), SEX (oder Geschlecht), FNAME (Vorname), LNAME (Nachname), DATE, SSN (Sozialversicherungsnummer), HPHONE (private Telefonnummer), HSTREET (Privatanschrift), HCITY (Wohnort), HSTATE (Heimatstaat), HZIP (Postleitzahl des Wohnortes), DLSTATE (Führerscheinstaat).
  • Es ist festzustellen, dass bei dem zweiten Eintrag in der Gruppe von Einträgen 300 das Feld FNAME leer ist (bei den Einträgen 200 von 2 tritt dieser Eintrag als „...M‟ROBERTS...‟ auf, wobei kein Wert zwischen „M“ und „ROBERTS“ vorhanden ist).
  • Darüber hinaus ist festzustellen, dass das „EMPTY“-Tag überall in den verschiedenen Einträgen 300 auftritt, in denen Informationen fehlen. Dies ist ein Beispiel für Nulllücken in Daten, die mithilfe von Datenimputation gefüllt werden können, und ein Beispiel für Nullwerte, die, wenn sie nicht gefüllt werden, semantische Vektoren übermäßig beeinflussen können. Wenn ein mehrdimensionaler Vektor auf Grundlage von gemeinsam genutzten benachbarten Token erzeugt wird, ergeben die Einträge 300 eine große Menge an falsch Positiven (oder positiver Ähnlichkeit) aufgrund der EMPTY-Tags. Das ist ein Problem.
  • 4 ist ein veranschaulichendes Beispiel für eine Einbettungsdatenbank 112 von 1 gemäß einer Ausführungsform der Erfindung. 4 stellt beispielhafte Vektoren 400 dar, die mithilfe der Einträge 300 von 3 erzeugt werden. Semantische Vektoren 400 werden mithilfe von Ausführungsformen der Erfindung erzeugt, um Datenlücken zu füllen und den übermäßigen Einfluss von Nullwerten zu verringern oder zu beseitigen.
  • 5 ist ein veranschaulichendes Beispiel für eine Abfrage 502 mithilfe der Einbettungsdatenbank 112 von 1 gemäß einer Ausführungsform der Erfindung. In dem dargestellten Beispiel sucht eine Abfrage 502 nach Vektoren in der Einbettungsdatenbank 112, die die größte Ähnlichkeit mit dem Vektor mit der Datensatz-ID 99728 aufweisen. In dem dargestellten Beispiel zeigen Ergebnisse 504, dass der Datensatz mit der Datensatz-ID 99797 die größte Ähnlichkeit mit der Datensatz-ID 99728 aufweist.
  • Durch Umsetzen von Ausführungsformen der Erfindung werden die Datensätze mit der größten Ähnlichkeit korrekt erkannt und dienen als Quellen zur Datenimputation. Darüber hinaus wird der Einfluss von Nullwerten verringert oder beseitigt.
  • 6 ist ein veranschaulichendes Verfahren 600 zum Erzeugen der Trainings-Datenbank 110 mithilfe von Einträgen der Datenbank 108 der 1 und 2 gemäß einer Ausführungsform der Erfindung. Unter Bezugnahme auf die 1, 2 und 6 werden Programmieranweisungen des Programms 106 durch den Prozessor 104 ausgeführt, um Schritte des Verfahrens 600 durchzuführen. Das Verfahren 600 kann im Allgemeinen so arbeiten, dass es Trainings-Datensätze (die in der Trainings-Datenbank 110 gespeichert sind) mithilfe der Datenbank 108 erstellt, die Nullwerte aufweist.
  • Das Programm 106 erkennt (Schritt 602) Spaltenattribute der Datenbank 108.
  • Das Programm 106 fügt zu Null- (fehlenden, leeren, Standard-, Platzhalter- usw.) Werten in der Datenbank 108 ein besonderes Tag hinzu/kennzeichnet (Schritt 604) diese damit; zum Beispiel „_EMPTY“.
  • Das Programm 106 fügt (Schritt 604a) optional oder alternativ eine Zeilenkennung an die Attributzeichenfolgen an. Dies ermöglicht Ausführungsformen der Erfindung, durch Hinzufügen oder Zuweisen einer Zeilenkennung zu dem Nullwert einen bestimmten Eintrag oder Zellenwert in einer Tabelle von sonstigen Nullwertzellen in einer Spalte zu unterscheiden; anderenfalls können beim Durchführen bestimmter Verarbeitungsschritte alle Nullwerte in einer bestimmten Spalte als nicht zu unterscheiden erscheinen. Beispielsweise kann/können für einen bestimmten Datensatz, der analysiert wird (dessen Nullwerte mithilfe von Datenimputation zu ersetzen sind), nachdem ähnliche Zeilen erkannt worden sind, entweder eine wertbezogene Wahl (es wird einfach der häufigste Wert aus dem Kandidatensatz verwendet) oder sonstige Methoden wie zum Beispiel Mittelwert oder Median von Kandidatenwerten verwendet werden.
  • Das Programm 106 speichert (Schritt 606) die modifizierten Daten in der Trainings-Datenbank 110. Diese Trainings-Daten können anschließend dazu verwendet werden, eine Datenimputation durchzuführen.
  • 7 ist ein veranschaulichendes Verfahren 700 zum Erzeugen von Datensätzen der Einbettungsdatenbank 112 von 1 mithilfe von Datensätzen der Trainings-Datenbank 110 auf Grundlage von Ausgaben des Verfahrens 600 von 6 gemäß einer Ausführungsform der Erfindung.
  • Unter Bezugnahme auf die 1, 2, 3 und 6 und 7 werden Programmieranweisungen des Programms 106 durch den Prozessor 104 ausgeführt, um Schritte des Verfahrens 700 durchzuführen. Das Verfahren 700 kann im Allgemeinen so arbeiten, dass semantische Vektoren für Trainings-Daten mit „_EMPTY“ (oder äquivalenten Tags) in der Trainings-Datenbank 110 erstellt werden; d.h., Datenimputation.
  • Das Programm 106 ermittelt (Schritt 702), dass ein Token, für das ein semantischer Vektor erzeugt wird, einen Nullwert enthält. Das Token ist Teil eines „Satzes“ (zum Beispiel eines Datensatzes oder einer Zeile der Trainings-Datenbank 110). Es ist erwünscht, dass das Verfahren 700 als Ausgabe einen semantischen Vektor für das Token erzeugt.
  • Beispielsweise ermittelt (Schritt 702) das Programm 106, dass die Token SEX_EMPTY und FNAME_EMPTY in einigen Einträgen 300 der Trainings-Datenbank 110 ein „_EMPTY“-Tag enthalten (und zwar der zweite, dritte und vierte Eintrag). Die Ermittlung (Schritt 702) kann je Token durchgeführt werden; d.h., solange Token zu verarbeiten sind (um einen semantischen Vektor zu erzeugen), und für jedes solche Token ermittelt (Schritt 702) das Programm 106, ob das Token das „_EMPTY“-Tag aufweist.
  • Das Programm 106 erzeugt (Schritt 704) einen semantischen Vektor für jedes Token, das ein „_EMPTY“-Tag aufweist, wie oben ermittelt (Schritt 702). Das Erzeugen des semantischen Vektors kann mithilfe eines neuronalen Netzes durchgeführt werden.
  • Das Programm 106 speichert (Schritt 706) den erzeugten (Schritt 704) semantischen Vektor in der Einbettungsdatenbank 112.
  • 8 ist ein veranschaulichender Ablaufplan eines Verfahrens 800 zum Abfragen von Datensätzen der Datenbank 108 von 1 mithilfe von Datensätzen der Einbettungsdatenbank 112 gemäß einer Ausführungsform der Erfindung.
  • Unter Bezugnahme auf die 1, 2, 3, 5 und 8 werden Programmieranweisungen des Programms 106 durch den Prozessor 104 ausgeführt, um Schritte des Verfahrens 800 durchzuführen. Das Verfahren 800 kann im Allgemeinen so arbeiten, dass es für einen bestimmten Datensatz in der Datenbank 108 die sonstigen Datensätze mit der größten Ähnlichkeit in der Datenbank 108 (oder in einer weiteren Datenbank) abfragt. Ein Zweck zum Ausführen des Verfahrens 800 besteht darin, oben beschriebene relevante Aufgaben durchzuführen. Beispielsweise kann das Verfahren 800 ausgeführt werden, um für einen bestimmten Datensatz in der Datenbank 108, der einen Nullwert aufweist, einen sonstigen Datensatz mit der größten Ähnlichkeit zu finden, dessen Daten ungleich null für die Nulldaten des bestimmten Datensatzes imputiert werden können.
  • Dementsprechend erkennt (Schritt 802) das Programm 106 einen Datensatz (oder ein Token innerhalb eines Datensatzes) in einer Datenbank 108, der einen Nullwert aufweist. Beispielsweise erkennt das Programm 106, dass der zweite Eintrag aus den Einträgen 200 (2) Nullwerte für die Attribute SEX und FNAME aufweist. Alternativ kann das Programm 106 die Erkennung (Schritt 802) mithilfe der Einträge 300 (3) der Trainings-Datenbank 110 durchführen.
  • Auf Grundlage des erkannten Datensatzes fragt (Schritt 804) das Programm 106 die Einbettungsdatenbank 112 mithilfe von Datensatzinformationen des oben erkannten (Schritt 802) Datensatzes ab. Das Programm 106 fragt (Schritt 804) zum Beispiel die Einbettungsdatenbank 112 mithilfe einer SQL-Abfrage 502 ab (5).
  • Auf Grundlage der Abfrage (Schritt 804) empfängt (Schritt 806) das Programm 106 eine Liste von Datensätzen, die entsprechend ihrer Ähnlichkeit mit dem oben erkannten (Schritt 802) Datensatz sortiert sein kann. Bei der sortierten Liste kann es sich zum Beispiel um die Ergebnisse 504 (5) handeln.
  • 9 ist ein veranschaulichender Ablaufplan eines Verfahrens 900 zum Imputieren von Daten für Nullwert-Token der Datenbank 108 gemäß einer Ausführungsform der Erfindung.
  • Unter Bezugnahme auf die 1, 8 und 9 werden Programmieranweisungen des Programms 106 durch den Prozessor 104 ausgeführt, um Schritte des Verfahrens 900 durchzuführen. Das Verfahren 900 kann im Allgemeinen so arbeiten, dass es Daten für Nullwerte in einem Datensatz der Datenbank 108 durch Abfragen (Verfahren 800) von semantischen Vektoren der Einbettungsdatenbank 112 imputiert.
  • Dementsprechend kann das Programm 106 ein Attribut in einem Datensatz der Datenbank 108 erkennen (Schritt 902), das einen Nullwert aufweist. Die Erkennung (Schritt 902) kann durch Suchen nach Nullwerten in Datensätzen der Datenbank 108 oder nach „_EMPTY“-Tags in der Trainings-Datenbank 110 durchgeführt werden.
  • Für ein bestimmtes Token, das als einen Nullwert aufweisend erkannt wurde (Schritt 902), erkennt (Schritt 904) das Programm 106 Datensätze mit der größten Ähnlichkeit (z.B. Top-K-Datensätze, deren Punktzahlen dem erkannten Datensatz am nächsten sind) in der Datenbank 108, die wahrscheinlich (einen) Attributwert(e) ungleich null für das erkannte (Schritt 902) Token enthält. Beispielsweise kann das Programm 106 die Erkennung (Schritt 904) von Datensätzen mit der größten Ähnlichkeit durch Ausführen des Verfahrens 800 durchführen.
  • Auf Grundlage des Erkennens (Schritt 904) eines Tokens mit einem Wert ungleich null imputiert (Schritt 906) das Programm 106 den Wert ungleich Null des oben erkannten (Schritt 904) Tokens für das Token mit einem Nullwert, das als eine Datenimputation benötigend erkannt (Schritt 906) worden ist.
  • 10 ist ein veranschaulichender Ablaufplan eines Verfahrens 1000 zum Verringern oder Beseitigen des übermäßigen Einflusses von Nullwerten auf semantische Vektoren gemäß einer Ausführungsform der Erfindung.
  • Unter Bezugnahme auf die 1, 3 und 10 werden Programmieranweisungen des Programms 106 durch den Prozessor 104 ausgeführt, um Schritte des Verfahrens 1000 durchzuführen. Das Verfahren 1000 kann im Allgemeinen so arbeiten, dass es den übermäßigen Einfluss von Nullwert-Token beim Erzeugen von semantischen Vektoren verringert oder beseitigt.
  • Dementsprechend empfängt (Schritt 1002) das Programm 106 einen Datensatz oder ein Token zur Verarbeitung (um einen semantischen Vektor zu erzeugen). Das Programm ermittelt (Schritt 1004), dass der Datensatz oder das Token einen Nullwert enthält (er/es zum Beispiel ein „_EMPTY“-Tag aufweist).
  • Auf Grundlage dieser Feststellung verhindert (Schritt 1006) das Programm 106, dass das „_EMPTY“-Tag beim Erstellen eines semantischen Vektors für Entitäten oder Token in der Nachbarschaft des „_EMPTY“-Tokens verwendet wird. In Bezug auf die Zeilen zwei, drei und vier der Einträge 300 (3) würden bei einem Erzeugen von Vektordarstellungen von „LNAME_ROBERTS“ die Werte „SEX_EMPTY“ oder „FNAME_EMPTY“ nicht verwendet, obwohl diese Werte im Kontext oder in der Nachbarschaft von „LNAME_ROBERTS“ auftreten. Den übermäßigen Einfluss von leeren Tags zu verhindern, kann auf vielfältige Weisen erreicht werden, darunter zum Beispiel durch Ausfiltern der Nullwert-Token oder Anpassen der Spanne des Kontextes, um die Nullwert-Token auszuschließen. Anders beschrieben (und unter Angabe von auszuführenden positiven Schritten), stellt das Programm 106 als Eingabe (Schritt 1006) in ein neuronales Netz für ein bestimmtes Token nur benachbarte Token bereit, die nicht mit einem Nullwert gekennzeichnet sind.
  • Das Programm 106 erzeugt (Schritt 1008) einen semantischen Vektor für das Token mithilfe des neuronalen Netzes. Der erzeugte (Schritt 1008) semantische Vektor ist zum Durchführen von sonstigen relevanten Aufgaben nützlicher, weil er nicht übermäßig durch Nullwerte beeinflusst ist (oder weniger übermäßig beeinflusst ist).
  • 11 ist ein Blockschaubild eines veranschaulichenden Cloud-Computing-Knotens gemäß einer Ausführungsform der Erfindung. Der Cloud-Computing-Knoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll den Umfang der Nutzung oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung in keiner Weise einschränken. Dennoch ist der Cloud-Computing-Knoten 10 in der Lage, implementiert zu werden und/oder jegliche der hierin oben dargelegten Funktionalitäten durchzuführen.
  • In dem Cloud-Computing-Knoten 10 befindet sich ein Computersystem/Server 12, das/der mit zahlreichen sonstigen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen oder -Konfigurationen betrieben werden kann. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -Umgebungen und/oder -Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der obigen Systeme oder Einheiten enthalten, und dergleichen, ohne auf diese beschränkt zu sein.
  • Das Computersystem/der Server 12 kann im allgemeinen Zusammenhang von Anweisungen beschrieben werden, die durch ein Computersystem ausgeführt werden können, wie zum Beispiel Programmmodule, die durch ein Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen angewendet werden, in denen Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. Bei einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter in Speichereinheiten.
  • Wie in 11 gezeigt, wird das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit dargestellt. Zu den Komponenten des Computersystems/Servers 12 können ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 zählen, der verschiedene Systemkomponenten wie etwa den Systemspeicher 28 mit dem Prozessor 16 verbindet, ohne auf diese beschränkt zu sein.
  • Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen Accelerated Graphics Port und einen Prozessor- oder einen lokalen Bus unter Verwendung einer beliebigen von einer Vielfalt von Busarchitekturen. Beispielsweise, und ohne einschränkend zu wirken, enthalten solche Architekturen einen Industry-Standard-Architecture(ISA)-Bus, einen Micro-Channel-Architecture(MCA)-Bus, einen Enhanced-ISA(EISA)-Bus, einen lokalen Video-Electronics-Standards-Association(VESA)-Bus und einen Peripheral-Component-Interconnects(PCI)-Bus.
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei solchen Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch das Computersystem/den Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nichtflüchtige Medien sowie austauschbare und nichtaustauschbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel eines Direktzugriffsspeichers (random access memory, RAM) 30 und/oder eines Cache-Speichers 32 enthalten. Das Computersystem/der Server 12 kann des Weiteren sonstige austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich als Beispiel kann ein Speichersystem 34 zum Lesen von einem nicht austauschbaren, nichtflüchtigen (nicht dargestellten und üblicherweise als „Festplatte“ bezeichneten) Magnetmedium und zum Schreiben darauf bereitgestellt werden. Wenngleich es nicht dargestellt wird, kann ein Magnetplattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen Magnetplatte (z.B. einer „Diskette“) und zum Schreiben darauf und ein optisches Plattenlaufwerk zum Lesen von einer austauschbaren, nichtflüchtigen optischen Platte wie zum Beispiel einer CD-ROM, DVD-ROM oder sonstigen optischen Medien und zum Schreiben darauf bereitgestellt werden. In solchen Fällen kann jedes durch eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 18 verbunden sein. Wie im Folgenden näher dargestellt und beschrieben wird, kann der Speicher 28 zumindest ein Programmprodukt enthalten, das einer Gruppe (z.B. zumindest eins) von Programmmodulen aufweist, die dazu konfiguriert sind, die Funktionen von Ausführungsformen der Erfindung auszuführen.
  • Ein Programm/Dienstprogramm 40, das einer Gruppe (zumindest eins) von Programmmodulen 42 aufweist, kann als Beispiel und ohne Einschränkung in dem Speicher 28 gespeichert werden, wie auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme, sonstige Programmmodule und Programmdaten. Von dem Betriebssystem, dem einen oder den mehreren Anwendungsprogrammen, den sonstigen Programmmodulen und Programmdaten und einigen Kombinationen von diesen kann jedes eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der Erfindung aus, wie sie hierin beschrieben wird.
  • Das Computersystem/der Server 12 kann außerdem mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die einem Benutzer ermöglichen, mit dem Computersystem/dem Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. einer Netzwerkkarte, einem Modem usw.) Daten austauschen, die dem Computersystem/Server 12 ermöglichen, Daten mit einer oder mehreren sonstigen Datenverarbeitungseinheiten auszutauschen. Eine solche Datenübertragung kann über Eingabe-/Ausgabe(E/A)-Schnittstellen 22 durchgeführt werden. Weiterhin kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (local area network, LAN), einem allgemeinen Weitverkehrsnetzwerk (wide area network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 Daten mit den sonstigen Komponenten des Computersystems/Servers 12 über den Bus 18 aus. Es versteht sich, wenngleich dies nicht dargestellt wird, dass sonstige Hardware- und/oder Software-Komponenten zusammen mit dem Computersystem/Server 12 verwendet werden könnten. Zu Beispielen zählen, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.
  • 12 ist ein Blockschaubild einer Cloud-Computing-Umgebung, die den Cloud-Computing-Knoten von 11 enthält, gemäß einer Ausführungsform der Erfindung. Unter Bezugnahme auf 4 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie dargestellt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten, die durch Cloud-Kunden verwendet werden, wie zum Beispiel ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Kraftfahrzeug-Computersystem 54N, Daten miteinander austauschen können. Die Knoten 10 können Daten miteinander austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken zusammengefasst werden (nicht dargestellt), zum Beispiel in Private, Community, Public oder Hybrid Clouds, wie hierin oben beschrieben, oder in einer Kombination von diesen. Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienstleistungen anzubieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 4 dargestellten Typen von Datenverarbeitungseinheiten 54A bis N lediglich der Veranschaulichung dienen sollen und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit einem beliebigen Typ einer computerisierten Einheit über einen beliebigen Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. mithilfe eines Web-Browsers) Daten austauschen können.
  • 13 ist ein Blockschaubild von Funktionsschichten der Cloud-Computing-Umgebung von 12 gemäß einer Ausführungsform der Erfindung. Unter Bezugnahme auf 13 wird eine Gruppe von funktionalen Abstraktionsschichten dargestellt, die durch die Cloud-Computing-Umgebung 50 bereitgestellt werden. Es versteht sich von vornherein, dass die in 14 dargestellten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen: Großrechner 61; Server 62 auf Grundlage einer RISC-Architektur (Reduced Instruction Set Computer, Computer mit reduziertem Anweisungssatz); Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. Bei einigen Ausführungsformen zählen zu Software-Komponenten eine Netzwerkanwendungs-Server-Software 67 und eine Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server 71; ein virtueller Speicher 72; virtuelle Netzwerke 73, darunter virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die im Folgenden beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 bietet eine dynamische Beschaffung von Datenverarbeitungs-Ressourcen und sonstigen Ressourcen, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Messung und Preisbildung 82 stellen eine Kostenüberwachung während der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie Abrechnung oder Rechnungsstellung für die Nutzung dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und sonstige Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass erforderliche Dienstgütegrade erreicht werden. Eine Planung und Erfüllung von Dienstgütevereinbarungen (Service Level Agreement, SLA) 85 stellen eine Vorbereitung für und eine Bereitstellung von Cloud-Computing-Ressourcen bereit, für die eine künftige Erfordernis gemäß einer SLA erwartet wird.
  • Eine Verarbeitungsprozessschicht 90 stellt Beispiele für eine Funktionalität bereit, für die die Cloud-Computing-Umgebung eingesetzt werden kann. Zu Beispielen für Verarbeitungsprozesse und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von virtuellen Schulungen 93; Datenanalyseverarbeitung 94, Transaktionsverarbeitung 95; und Datenbankverwaltung 96 einschließlich der in Verbindung mit den 1 bis 10 oben beschriebenen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatten-Festwertspeicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination von diesen. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsdaten der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen implementiert werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen Mittel zum Implementieren der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts implementieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubildes festgelegten Funktionen/Schritte umsetzen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Implementieren der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Implementierungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander dargestellte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder des Ablaufplans sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle auf Hardware beruhende Systeme implementiert werden können, die die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (25)

  1. Verfahren zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank, das aufweist: Imputieren eines Wertes ungleich Null eines zweiten Tokens in einem zweiten Datenbanksatz für einen Nullwert eines ersten Tokens eines ersten Datenbanksatzes.
  2. Verfahren nach Anspruch 1, wobei das Imputieren aufweist: Ersetzen des Nullwertes des ersten Tokens durch einen Wert ungleich Null des zweiten Tokens.
  3. Verfahren nach Anspruch 1, wobei das Imputieren als Reaktion auf ein Ermitteln durchgeführt wird, dass der zweite Datensatz dem ersten Datensatz ähnlich ist.
  4. Verfahren nach Anspruch 3, wobei das Ermitteln, dass der zweite Datensatz dem ersten Datensatz ähnlich ist, auf einem Vergleichen von semantischen Vektoren von Token des ersten Datenbanksatzes mit semantischen Vektoren von Token des zweiten Datenbanksatzes beruht.
  5. Verfahren nach Anspruch 4, wobei semantische Vektoren des ersten und des zweiten Datenbanksatzes mithilfe eines Vektoreinbettungsmodells erzeugt werden.
  6. Verfahren nach Anspruch 5, wobei das Vektoreinbettungsmodell ein neuronales Netz aufweist, das mithilfe von Trainingsdaten trainiert wird.
  7. Verfahren nach Anspruch 6, wobei die Trainingsdaten Datenbanksätze aufweisen, die so erweitert sind, dass sie Zeilenkennungs-Tags oder Nullwert-Tags oder beides aufweisen.
  8. Verfahren nach Anspruch 1, wobei ein Nullwert eines Tokens aufweist: einen leeren Wert; einen fehlenden Wert; einen Platzhalterwert; einen vordefinierten Wert; oder einen Standardwert, wobei der Nullwert das Fehlen von spezifischen Attributinformationen für ein bestimmtes Token bedeutet.
  9. Verfahren nach Anspruch 1, das des Weiteren aufweist: Erzeugen eines semantischen Vektors für das erste Token auf Grundlage eines Ermittelns, dass das erste Token einen Nullwert aufweist; und Abfragen einer Einbettungsdatenbank, um einen oder mehrere Datensätze zu finden, die dem ersten Datensatz ähnlich sind, wobei das zweite Token in einem zweiten Datenbanksatz aus dem einem oder den mehreren ähnlichen Datensätzen ausgewählt wird.
  10. Computersystem zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank, das aufweist: einen oder mehrere Prozessoren; ein oder mehrere physische Speichermedien, die eine oder mehrere Programmieranweisungen zur Ausführung durch den einen oder die mehreren Prozessoren speichern, um ein Verfahren durchzuführen, wobei die Programmieranweisungen Anweisungen aufweisen zu einem: Imputieren eines Wertes ungleich Null eines zweiten Tokens in einem zweiten Datenbanksatz für einen Nullwert eines ersten Tokens eines ersten Datenbanksatzes.
  11. Computersystem nach Anspruch 10, wobei das Imputieren aufweist: Ersetzen des Nullwerts des ersten Tokens durch einen Wert ungleich Null des zweiten Tokens.
  12. Computersystem nach Anspruch 10, wobei das Imputieren als Reaktion auf ein Ermitteln durchgeführt wird, dass der zweite Datensatz dem ersten Datensatz ähnlich ist.
  13. Computersystem nach Anspruch 12, wobei das Ermitteln, dass der zweite Datensatz dem ersten Datensatz ähnlich ist, auf einem Vergleichen von semantischen Vektoren von Token des ersten Datenbanksatzes mit semantischen Vektoren von Token des zweiten Datenbanksatzes beruht.
  14. Computersystem nach Anspruch 13, wobei semantische Vektoren des ersten und des zweiten Datenbanksatzes mithilfe eines Vektoreinbettungsmodells erzeugt werden.
  15. Computersystem nach Anspruch 14, wobei das Vektoreinbettungsmodell ein neuronales Netz aufweist, das mithilfe von Trainingsdaten trainiert wird.
  16. Computersystem nach Anspruch 15, wobei die Trainingsdaten Datenbanksätze aufweisen, die so erweitert sind, dass sie Zeilenkennungs-Tags oder Nullwert-Tags oder beides aufweisen.
  17. Computersystem nach Anspruch 10, wobei ein Nullwert eines Tokens aufweist: einen leeren Wert; einen fehlenden Wert; einen Platzhalterwert; einen vordefinierten Wert; oder einen Standardwert, wobei der Nullwert das Fehlen von spezifischen Attributinformationen für ein bestimmtes Token bedeutet.
  18. Computersystem nach Anspruch 10, das des Weiteren aufweist: Erzeugen eines semantischen Vektors für das erste Token auf Grundlage eines Ermittelns, dass das erste Token einen Nullwert aufweist; und Abfragen einer Einbettungsdatenbank, um einen oder mehrere Datensätze zu finden, die dem ersten Datensatz ähnlich sind, wobei das zweite Token in einem zweiten Datenbanksatz aus dem einem oder den mehreren ähnlichen Datensätzen ausgewählt wird.
  19. Computerprogrammprodukt zur Verarbeitung von Datensätzen einer strukturierten oder semistrukturierten Datenbank, das aufweist: ein oder mehrere physische Speichermedien, die Programmieranweisungen zur Ausführung durch einen oder mehrere Prozessoren speichern, um ein Verfahren durchzuführen, wobei die Programmieranweisungen Anweisungen aufweisen zu einem: Imputieren eines Wertes ungleich Null eines zweiten Tokens in einem zweiten Datenbanksatz durch den einen oder die mehreren Prozessoren für einen Nullwert eines ersten Tokens eines ersten Datenbanksatzes.
  20. Computerprogrammprodukt nach Anspruch 19, wobei das Imputieren aufweist: Ersetzen des Nullwerts des ersten Tokens durch einen Wert ungleich Null des zweiten Tokens.
  21. Computerprogrammprodukt nach Anspruch 19, wobei das Imputieren als Reaktion auf ein Ermitteln durchgeführt wird, dass der zweite Datensatz dem ersten Datensatz ähnlich ist.
  22. Computerprogrammprodukt nach Anspruch 21, wobei das Ermitteln, dass der zweite Datensatz dem ersten Datensatz ähnlich ist, auf einem Vergleichen von semantischen Vektoren von Token des ersten Datenbanksatzes mit semantischen Vektoren von Token des zweiten Datenbanksatzes beruht.
  23. Verfahren zum Verringern oder Beseitigen einer Auswirkung von Nullwert-Token in Datensätzen einer strukturierten oder semistrukturierten Datenbank, das aufweist: Kennzeichnen eines oder mehrerer Nullwert-Token in Datensätzen einer strukturierten oder semistrukturierten Datenbank mit einem Tag, das einen Nullwert bedeutet; und Erzeugen von semantischen Vektoren für Token von Werten ungleich Null nur mithilfe von Nachbar-Token von Werten ungleich Null.
  24. Verfahren nach Anspruch 23, das des Weiteren aufweist: Finden von ähnlichen Datensätzen für einen bestimmten Datensatz auf Grundlage eines Abfragens der erzeugten semantischen Vektoren.
  25. Verfahren nach Anspruch 23, wobei ein Nullwert eines Tokens aufweist: einen leeren Wert; einen fehlenden Wert; einen Platzhalterwert; einen vordefinierten Wert; oder einen Standardwert, wobei der Nullwert das Fehlen von spezifischen Attributinformationen für ein bestimmtes Token bedeutet.
DE112021001743.8T 2020-03-20 2021-03-08 Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten Pending DE112021001743T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/825,509 US11163761B2 (en) 2020-03-20 2020-03-20 Vector embedding models for relational tables with null or equivalent values
US16/825,509 2020-03-20
PCT/IB2021/051904 WO2021186287A1 (en) 2020-03-20 2021-03-08 Vector embedding models for relational tables with null or equivalent values

Publications (1)

Publication Number Publication Date
DE112021001743T5 true DE112021001743T5 (de) 2023-01-05

Family

ID=77747953

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021001743.8T Pending DE112021001743T5 (de) 2020-03-20 2021-03-08 Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten

Country Status (6)

Country Link
US (1) US11163761B2 (de)
JP (1) JP2023517518A (de)
CN (1) CN115210705A (de)
DE (1) DE112021001743T5 (de)
GB (1) GB2609784A (de)
WO (1) WO2021186287A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11928107B2 (en) * 2020-05-22 2024-03-12 International Business Machines Corporation Similarity-based value-to-column classification
CN116401336B (zh) * 2023-03-31 2024-03-29 华院计算技术(上海)股份有限公司 认知智能查询方法及装置、计算机可读存储介质、终端

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099880B2 (en) 2002-01-31 2006-08-29 International Business Machines Corporation System and method of using data mining prediction methodology
US7302383B2 (en) * 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
CN1954560B (zh) 2004-03-31 2011-06-15 Ipt株式会社 固定长数据的检索装置及检索管理方法
US8290935B1 (en) 2004-05-27 2012-10-16 Teradata Us, Inc. Method and system for optimizing database system queries
US7349910B2 (en) 2004-08-20 2008-03-25 International Business Machines Corporation Method for inserting records into a database
US20060224584A1 (en) * 2005-03-31 2006-10-05 Content Analyst Company, Llc Automatic linear text segmentation
US7752230B2 (en) 2005-10-06 2010-07-06 Avaya Inc. Data extensibility using external database tables
US8443013B1 (en) 2011-07-29 2013-05-14 Google Inc. Predictive analytical modeling for databases
US8843423B2 (en) 2012-02-23 2014-09-23 International Business Machines Corporation Missing value imputation for predictive models
US10685062B2 (en) 2012-12-31 2020-06-16 Microsoft Technology Licensing, Llc Relational database management
US9390428B2 (en) 2013-03-13 2016-07-12 Salesforce.Com, Inc. Systems, methods, and apparatuses for rendering scored opportunities using a predictive query interface
CN104516879B (zh) 2013-09-26 2019-09-13 Sap欧洲公司 用于管理含有具有缺失值的记录的数据库的方法和系统
US9349105B2 (en) 2013-12-18 2016-05-24 International Business Machines Corporation Machine learning with incomplete data sets
US9563771B2 (en) * 2014-01-22 2017-02-07 Object Security LTD Automated and adaptive model-driven security system and method for operating the same
US10019438B2 (en) 2016-03-18 2018-07-10 International Business Machines Corporation External word embedding neural network language models
US10409820B2 (en) * 2017-09-19 2019-09-10 Adobe Inc. Semantic mapping of form fields
CN108710663B (zh) 2018-05-14 2020-05-01 北京大学 一种基于本体模型的数据匹配方法及系统
US11669767B2 (en) * 2019-08-15 2023-06-06 Salesforce, Inc. Automatic generation of an explanation, based on data lineage and user feedback, of a prediction produced by a machine learning system
US10747956B2 (en) * 2018-08-30 2020-08-18 Dynamic Ai Inc. Artificial intelligence process automation for enterprise business communication
US11023503B2 (en) * 2018-12-13 2021-06-01 Textio, Inc. Suggesting text in an electronic document

Also Published As

Publication number Publication date
US20210294794A1 (en) 2021-09-23
GB2609784A (en) 2023-02-15
JP2023517518A (ja) 2023-04-26
US11163761B2 (en) 2021-11-02
WO2021186287A1 (en) 2021-09-23
GB202215284D0 (en) 2022-11-30
CN115210705A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
Cerda et al. Similarity encoding for learning with dirty categorical variables
DE112018005459T5 (de) Datenanonymisierung
DE112020002600T5 (de) Entdecken einer semantischen bedeutung von datenfeldern anhand von profildaten der datenfelder
DE202016005239U1 (de) Graph-basierte Abfragen
DE112018004376T5 (de) Schützen kognitiver systeme vor auf gradienten beruhenden angriffen durch die verwendung irreführender gradienten
DE112019001533T5 (de) Erweiterung von trainingsdaten für die klassifikation von natürlicher sprache
DE102015009910A1 (de) Automatische Aggregation von Online-Benutzerprofilen
DE112018005616T5 (de) Blockweise extraktion von dokumentmetadaten
CN110750649A (zh) 知识图谱构建及智能应答方法、装置、设备及存储介质
DE112016003626T5 (de) Natürlichsprachliche Schnittstelle zu Datenbanken
CN111488465A (zh) 一种知识图谱构建方法及相关装置
DE112018005418T5 (de) Kognitive dokumentbild-digitalisierung
DE112018005894T5 (de) Maschinenlernen zum integrieren von wissens- und natürlicher sprachverarbeitung
US20030065635A1 (en) Method and apparatus for scalable probabilistic clustering using decision trees
DE102014204827A1 (de) Auflösen ähnlicher Entitäten aus einer Transaktionsdatenbank
DE112012005177T5 (de) Erzeugens eines Verarbeitungsmodells für natürliche Sprache für einen Informationsbereich
DE102013205737A1 (de) System und Verfahren zum automatischen Erkennen und interaktiven Anzeigen von Informationen über Entitäten, Aktivitäten und Ereignisse aus multimodalen natürlichen Sprachquellen
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
DE112019002235T5 (de) Einbinden eines wörterbuch-bearbeitungssystems in ein text mining
DE112021001986T5 (de) Verfahren und System zum Verarbeiten von Datenaufzeichnungen
DE102012221251A1 (de) Semantisches und kontextbezogenes Durchsuchen von Wissensspeichern
DE112018005272T5 (de) Suchen von mehrsprachigen dokumenten auf grundlage einer extraktion der dokumentenstruktur
DE102021004157A1 (de) Maschinell lernendes Modellieren zum Schutz gegen die Online-Offenlegung empfindlicher Daten
DE112020005268T5 (de) Automatisches erzeugen von schema-annotationsdateien zum umwandeln von abfragen in natürlicher sprache in eine strukturierte abfragesprache
DE112021001743T5 (de) Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence