-
HINTERGRUND
-
Diese Offenbarung betrifft im Allgemeinen Datenanonymisierung und insbesondere ein Anonymisieren von Daten auf Grundlage einer Rauschausbreitung.
-
Datenanonymisierung bezieht sich auf Datenverarbeitungsmechanismen, die verwendet werden, um ein oder mehrere Attributwerte aus einem oder mehreren Datenspeichern so zu entfernen und/oder zu verschleiern, dass die sich daraus ergebenen Ansichten des Datenspeichers nicht mehr zum Identifizieren eines Namens einer Person oder zum Zuordnen einer Person zu vertraulichen Informationen verwendet werden können. Das Ziel besteht darin, die Notwendigkeit eines Veröffentlichens von zuverlässigen Daten zu Personen ohne ein Verknüpfen von vertraulichen Informationen über sie mit ihren Identitäten so abzuwägen, dass andere daraus nicht ableiten können, dass eine bestimmte Person einem bestimmten Set von Daten zugehörig ist (z.B. einem Erkrankungstyp, einer Gehaltsangabe usw.).
-
Behörden und andere Organisationen müssen oft Mikrodaten (z.B. medizinische Daten oder Erhebungsdaten) für Forschungs- oder andere Zwecke veröffentlichen. Typischerweise werden derartige Daten in einem Datenobjekt wie beispielsweise eine Tabelle in einer relationalen Datenbank gespeichert. Jeder Datensatz (z.B. Zeile) des Objekts entspricht oft einer Person. Jeder Datensatz (und jede Tabelle) hat eine Anzahl von Attributen (z.B. Spalten oder Felder), die in drei Kategorien eingeteilt werden können. Die erste Kategorie enthält die als „explizite Kennungen“ bekannten Attribute, die Personen deutlich und direkt identifizieren. Explizite Kennungen enthalten Namen, Sozialversicherungsnummern, Adressen usw. Die zweite Kategorie enthält Attribute, wie zum Beispiel Postleitzahlen, Geburtsdatum, Geschlecht usw., die in ihrer Gesamtheit eine Person möglicherweise indirekt identifizieren können Diese sind als „Quasi-Kennungen“ bekannt. Die dritte Kategorie enthält Attribute, die als persönlich, vertraulich oder privat betrachtet werden und als „vertrauliche Kennungen“ bekannt sind (z.B. Krankheit und Gehalt). Oft versuchen Organisationen, sich zu Forschungszwecken Zugriff auf die vertraulichen Informationen zu verschaffen. Daher kann eine Anonymisierung erforderlich sein, um die Werte der expliziten und/oder der Quasi-Kennungen zu unterdrücken und/oder zu verschleiern.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Eine oder mehrere Ausführungsformen betreffen ein System, ein Computerprogrammprodukt und ein durch einen Computer umgesetztes Verfahren. In einigen Ausführungsformen enthält das durch einen Computer umgesetzte Verfahren die folgenden Elemente. Ein erstes Set von Daten wird empfangen, die einem oder mehreren Datenspeichern zugehörig sind. Eine oder mehrere Zeichenfolgen des ersten Sets von Daten durchlaufen mindestens ein Worteinbettungs-Vektormodell. Das Durchlaufen enthält ein Veranlassen, dass mindestens eine Darstellung der einen oder der mehreren Zeichenfolgen im Vektorraum zugeordnet wird. Das erste Set von Daten wird auf Grundlage des Durchlaufens der einen oder der mehreren Zeichenfolgen durch das mindestens eine Worteinbettungs-Vektormodell anonymisiert. Die Anonymisierung enthält ein Unterdrücken von einem oder mehreren Werten eines ersten Attributs und kein Unterdrücken von einem oder mehreren bestimmten Werten eines zweiten Attributs.
-
In einigen Ausführungsformen enthält das System mindestens eine Datenverarbeitungseinheit mit mindestens einem Prozessor und mindestens ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen. Die Programmanweisungen sind durch den mindestens einen Prozessor lesbar oder ausführbar, um zu veranlassen, dass das System die folgenden Elemente gemäß einigen Ausführungsformen ausführt. Ein erstes Set von Daten wird empfangen, die einem oder mehreren Datenspeichern zugehörig sind. Das erste Set von Daten wird durch ein Rauschausbreitungsmodul ausgeführt. Das Durchlaufen enthält ein Hinzufügen von Rauschen zu dem ersten Set von Daten. Das Hinzufügen des Rauschens enthält ein Veranlassen, dass mindestens ein untergeordnetes Set des ersten Sets von Daten in einer Gruppe zusammengefasst und als ein einzelner Wert für ein bestimmtes Attribut dargestellt wird. Das erste Set von Daten wird auf Grundlage des Durchlaufens des ersten Sets von Daten durch das Rauschausbreitungsmodul anonymisiert. Die Anonymisierung enthält ein Unterdrücken von einem oder mehreren Werten eines ersten Attributs und kein Unterdrücken jedes bestimmten Werts eines zweiten Attributs.
-
In einigen Ausführungsformen enthält das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf verkörperten Programmanweisungen. Die Programmanweisungen sind durch eine Datenverarbeitungseinheit lesbar oder ausführbar, um zu veranlassen, dass die Datenverarbeitungseinheit die folgenden Elemente gemäß einigen Ausführungsformen ausführt. Ein erstes Set von Daten wird empfangen, die einem oder mehreren Datenspeichern zugehörig sind. Ein Abstand von einer Darstellung eines untergeordneten Sets des ersten Sets von Daten zu mindestens einer zweiten Darstellung eines anderen Sets von Daten im Vektorraum wird identifiziert. In Reaktion auf das Identifizieren des Abstands wird das erste Set von Daten anonymisiert. Das Anonymisieren enthält ein Hinzufügen von Rauschen zu mindestens einigen des ersten Sets von Daten.
-
Figurenliste
-
Im Folgenden werden Ausführungsformen der vorliegenden Erfindung allein zu Beispielzwecken unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
- 1 ein Blockschaubild ist, das eine abstrakte Ansicht der Generierung von anonymisierten Daten gemäß Ausführungsformen veranschaulicht.
- 2 ein Blockschaubild ist, das veranschaulicht, wie ein Datensatz oder mehrere Datensätze gemäß Ausführungsformen in Daten-Tensoren umgewandelt wird oder werden.
- 3 eine schematische Darstellung ist, die veranschaulicht, wie Datensatz-Zeichenfolgen ein Worteinbettungs-Vektormodell gemäß Ausführungsformen durchlaufen.
- 4 eine schematische Darstellung ist, die ein Rauschausbreitungsmodul gemäß Ausführungsformen veranschaulicht.
- 5 ein Ablaufplan eines beispielhaften Prozesses zum Anonymisieren von Daten gemäß Ausführungsformen ist.
- 6 ein Ablaufplan eines beispielhaften Prozesses für ein Durchlaufen von Daten durch ein oder mehrere Worteinbettungs-Vektormodelle gemäß Ausführungsformen ist.
- 7 ein Ablaufplan eines beispielhaften Prozesses für ein Durchlaufen von Daten durch ein Rauschausbreitungsmodul gemäß Ausführungsformen ist.
- 8 eine schematische Darstellung ist, die veranschaulicht, wie eine anonymisierte Datenbank zur Anzeigezeit gemäß Ausführungsformen aussehen kann.
- 9 ein Blockschaubild einer Datenverarbeitungsumgebung gemäß Ausführungsformen ist.
- 10 ein Blockschaubild einer Datenverarbeitungsumgebung gemäß Ausführungsformen ist.
- 11 eine Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Offenbarung ist.
- 12 Abstraktionsmodellschichten gemäß Ausführungsformen der vorliegenden Offenbarung darstellt.
- 13 ein Blockschaubild einer Datenverarbeitungseinheit gemäß Ausführungsformen ist.
-
Obwohl die Erfindung für verschiedene Modifizierungen und alternative Formen offen ist, sind Besonderheiten davon als Beispiel in den Zeichnungen ausgewiesen und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass die Erfindung keinesfalls auf die beschriebenen speziellen Ausführungsformen eingeschränkt werden soll. Die Erfindung soll im Gegenteil alle Modifizierungen, Entsprechungen und Alternativen abdecken, die unter den Schutzumfang der Erfindung fallen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Aspekte der vorliegenden Offenbarung betreffen eine Datenanonymisierung auf Grundlage von Rauschausbreitung. Obwohl die vorliegende Offenbarung nicht notwendigerweise auf derartige Anwendungen beschränkt ist, können verschiedene Aspekte der Offenbarung durch eine Erläuterung von verschiedenen Beispielen unter Verwendung dieses Kontexts gewürdigt werden.
-
Anonymisierungsmechanismen konzentrieren sich weniger darauf, ob ein Benutzer authentifiziert ist oder Zugriff auf vertrauliche Informationen hat als vielmehr darauf, welche Werte die Informationen bilden, die der Benutzer anzeigen kann. Zum Beispiel führen typische technische Lösungen Einschränkungstechniken aus, wie zum Beispiel eine Abfrageeinschränkung. Eine Abfrageeinschränkung verbietet Abfragen, die vertrauliche Informationen preisgeben können. Dies wird dadurch umgesetzt, dass alle Rückschlüsse auf vertrauliche Daten unterdrückt werden (z.B. mittels Verschlüsselung, Zugangsverweigerung usw.). Im Gegensatz dazu stellt die Datenanonymisierung eine Lösung bereit, um zuerst Daten ausreichend zu anonymisieren, aber anzeigbar zu machen, und anschließend die sich daraus ergebenden Daten als Grundlage zu verwenden, auf der Abfragen verarbeitet werden.
-
Ein allgemeines Problem hinsichtlich der Freigabe von veröffentlichten Daten selbst mit einiger Anonymisierung besteht darin, dass Daten (z.B. Quasi-Kennungswerte) verwendet werden können, um Personen durch ein Verknüpfen oder Abgleichen der Daten mit anderen Daten oder durch ein Untersuchen von eindeutigen in den Daten gefundenen Merkmalen wiederzuerkennen. Dies geschieht ungeachtet der Tatsache, dass irgendein expliziter Kennungswert (z.B. der Name einer Person) unterdrückt oder aus einer Datenbanktabelle gelöscht wurde. In einer beispielhaften Veranschaulichung kann eine sehr in der Öffentlichkeit stehende männliche Person in einem Datenbank-Datensatz enthalten sein, der Attribute wie „Name“, „Geburtsdatum“, „Geschlecht“ „Postleitzahl“ und „Krankheit“ enthält. Der explizite Kennungswert „Name“ kann unterdrückt sein. Die Datenbanktabelle mit dem Datenbank-Datensatz enthält möglicherweise jedoch nur 6 Personen mit demselben Geburtsdatum wie die in der Öffentlichkeit stehende Person, und möglicherweise sind nur 3 der Personen Männer. Ferner kann diese in der Öffentlichkeit stehende Person die einzige in der Tabelle mit einer bestimmten Postleitzahl sein. Dementsprechend kann eine Person mit dem Wissen, dass die in der Öffentlichkeit stehende Person in der Tabelle steht, und mit der Kenntnis des Geburtsdatums der in der Öffentlichkeit stehenden Person und/oder der Postleitzahl problemlos in der Lage sein, diese Attributwerte auf die Person zurück zu verknüpfen oder abzugleichen und beliebige vertrauliche Daten über die Person zu bestimmen, wie zum Beispiel eine bestimmte Krankheit, die die in der Öffentlichkeit stehende Person hatte.
-
Um diesem Problem entgegenzuwirken, verwenden einige technische Lösungen Algorithmen, die Datenwerte unterdrücken und/oder bestimmte Datenwerte in Clustern gruppieren, die semantisch konsistent sind, wie zum Beispiel, dass mehrere Datensätze zur Anzeigezeit identische Quasi-Kennungen aufweisen. Dies erschwert eine Zurückverknüpfung von Daten auf eine bestimmte Person. Zum Beispiel wurden Algorithmen wie k-Anonymität, /-Diversität und t-Ähnlichkeit vorgeschlagen. Eine Tabelle erfüllt k-Anonymität, wenn jeder Datensatz in der Tabelle von mindestens k - 1 anderen Datensätzen hinsichtlich jedes Sets von Quasi-Kennungsattributen nicht unterscheidbar ist. Für /-Diversität weist eine Äquivalenzklasse /-Diversität auf, wenn mindestens / „gut vertretene“ Werte für das vertrauliche Attribut bzw. die vertraulichen Attribute vorhanden sind. Eine Tabelle hat dann /-Diversität, wenn jede Äquivalenzklasse der Tabelle /-Diversität hat. Für t-Ähnlichkeit hat eine Äquivalenzklasse t-Ähnlichkeit, wenn der Abstand zwischen der Verteilung eines vertraulichen Attributs in der Klasse und der Verteilung des Attributs in der ganzen Tabelle nicht mehr als einen Schwellenwert t beträgt. Eine Tabelle hat dann t-Ähnlichkeit, wenn alle Äquivalenzklassen t-Ähnlichkeit haben.
-
Ein Problem bei diesen Lösungen, wie zum Beispiel t-Ähnlichkeit, besteht darin, dass der Abstand zwischen kategorischen (oder nicht numerischen) Attributen, wie beispielsweise Zeichenfolgen, von einem Benutzer manuell angegeben werden muss. Dies wird auch als die Generalisierungshierarchie für jedes Attribut bezeichnet. Dementsprechend müssen kategorische Äquivalenzklassendefinitionen, Attributgrenzen, Attributbereiche oder Teilungspunkte durch den Benutzer manuell bestimmt werden. Eine „Äquivalenzklasse“, wie hierin beschrieben, ist ein Set von Datensätzen, das dieselben Werte für alle oder einige der Quasi-Kennungsattribute hat. Zum Beispiel kann eine Äquivalenzklasse eine Reihe von Datensätzen enthalten, die in einem Attribut „Alter“ angeben, dass jede Person 40 Jahre oder jünger ist. Typischerweise müssen Benutzer den Attributbereich „40 oder jünger“ definieren und bestimmen, dass der Datensatzbereich proportional zu anderen Äquivalenzklassen ist, und dass es keine anderen verwechselbaren Variablen gibt. Diese manuelle Spezifizierung kann eine ungleichförmige oder einseitige Darstellung von Äquivalenzklassen veranlassen, sodass die Nützlichkeit und Zuverlässigkeit der Daten darunter leidet. Des Weiteren kann es zeitaufwendig sein, derartige Abstände manuell zu definieren.
-
Ein weiteres Problem ist, dass einige Lösungen Analysen an Datensätzen in der Reihenfolge oder in dem Vektorraum ausführen, in der bzw. in dem die Daten dargestellt sind. Ein Datensatz ist ein n-dimensionaler Vektor, wobei jede Dimension einem Attribut des Datensatzes entspricht. Dementsprechend ist es möglich, dass eine Darstellung eines Datensatzes vorhanden ist (der sich von demjenigen unterscheidet, in dem die Daten erfasst wurden), der sich einerseits für eine Anonymisierung eignet und andererseits die Nützlichkeit der Daten besser schützt. Daher befassen sich Ausführungsformen der vorliegenden Offenbarung mit einigen oder jedem dieser Probleme und verbessern Anonymisierungs- und Datenbankanzeige-Technologien, wie im Folgenden ausführlicher beschrieben wird.
-
1 ist ein Blockschaubild, das eine abstrakte Ansicht der Generierung von anonymisierten Daten gemäß Ausführungsformen veranschaulicht. Mindestens einige der Rohdaten 101 (z.B. kategorische Attributwerte) werden durch das bzw. die Worteinbettungs-Vektormodelle 103 zugeführt. In einigen Ausführungsformen umgeht ein Set der Rohdaten 110 (z.B. reelle Zahlen von Datenbank-Datensätzen) das bzw. die Worteinbettungs-Vektormodelle 103 und wird in ein untergeordnetes Set der Daten-Tensoren 105 übersetzt. Ein Worteinbettungs-Vektormodell ordnet die Rohdaten 110 einem oder mehreren Punkten im Vektorraum (z.B. reelle Zahlen in einem grafischen 2D- oder 3D-Modell) gemäß einer Kontextähnlichkeit (z.B. einer semantischen Bedeutung) zu anderen Datenpunkten (z.B. anderen Zeichenfolgedarstellungen) im Vektorraum zu. Das Worteinbettungs-Vektormodell 103 ist oder enthält verschiedene Verfahren zum Generieren der Zuordnung wie zum Beispiel neuronale Netzwerke, Dimensionalitätsreduzierung, eine Co-Occurrence-Matrix, Wahrscheinlichkeitsmodelle und/oder jedes andere geeignete Modell. Zum Beispiel enthält das bzw. enthalten die Worteinbettungs-Vektormodelle 103 ein Word2Vec-Modell. Word2Vec-Modelle und das bzw. die Worteinbettungs-Vektormodelle 103 werden im Folgenden ausführlicher beschrieben.
-
Nachdem die Rohdaten 101 durch das bzw. die Worteinbettungs-Vektormodelle 103 zugeführt worden sind, werden sie durch ein Rauschausbreitungsmodul 121 (z.B. einen modifizierten Autoencoder) geführt, in dem die Daten zuerst als Daten-Tensoren 105 dargestellt werden. Das Rauschausbreitungsmodul 121 ist ein Modul, das den Daten Rauschen hinzufügt. Wie in 1 gezeigt, wird die Rauschgenerierung unter Verwendung eines Anonymisierers 109 ausgeführt. Der Anonymisierer 109 befindet sich zwischen einem Codierer 107 und einem Decodierer 111 des Rauschausbreitungsmoduls 121. Vom Codierer 107 werden ein oder mehrere „Codes“ ausgegeben. Der eine oder die mehreren Codes, die durch den Codierer 107 generiert wurden, werden in den Anonymisierer 109 eingegeben. In den Ausführungsformen stellt der Anonymisierer 109 sicher, dass den Codes entsprechendes Rauschen hinzugefügt wird, sodass sie in Clustern zusammengefasst oder gruppiert werden und jedes Cluster mindestens k-Elemente hat. Der Anonymisierer 109 generiert somit verrauschten Code. Die verrauschten Codes werden dann dem Decodierer 111 zugeführt, der die Daten anschließend rekonstruiert. Die rekonstruierten Daten werden dann gemäß einer Richtlinie (z.B. durch einen nächstgelegenen Decodierer) übergeben, um anonymisierte Daten zu generieren. Obwohl das Rauschausbreitungsmodul 121 so veranschaulicht wird, dass es die Daten-Tensoren 105, den Codierer 107, den Anonymisierer 109 und den Decodierer 111 enthält, sollte klar sein, das dies nur zu Veranschaulichungszwecken dient, und dass mehr oder weniger Komponenten in jedem geeigneten Rauschausbreitungsmodul vorhanden sein können.
-
In den Ausführungsformen enthält ein Hinzufügen von Rauschen ein Hinzufügen von Daten oder ein Ändern von ursprünglichen Datenpunkten oder eines Sets von Datenpunkten mit einer beliebigen Variablen oder einem Set von Variablen, um eine neue Variable oder ein neues Set von Variablen vorzulegen. Zum Beispiel enthält hinzugefügtes Rauschen in einigen Ausführungsformen im Allgemeinen eine Darstellung von Z = X + ε, wobei Z der umgewandelte Datenpunkt ist, X ein ursprünglicher Datenpunkt ist, und ε eine beliebige Variable (Rauschen) mit einer Verteilung e ~N(0, σ2) ist. In einer beispielhaften Veranschaulichung von Rauschen kann einer der Daten-Tensoren 105 eine Ganzzahl darstellen, die einem Alter entspricht, in diesem Fall 27. Wenn diese Ganzzahl jedoch durch das Rauschausbreitungsmodul 121 geführt wird, kann ihre Version von anonymisierten Daten 113 ≤ 30 sein, da eine gesamte Äquivalenzklasse oder eine andere Richtlinie unter Verwendung dieser Kennung definiert werden kann.
-
Die Daten-Tensoren 105, wie hierin beschrieben, sind Darstellungen von Daten in einer anderen Form als die Daten selbst, wie zum Beispiel ein Token, das die Daten darstellt. Wenn zum Beispiel Zeichenfolgen (z.B. von einem Menschen lesbare Wörter) durch das Worteinbettungs-Vektormodell 103 geführt werden, entspricht die Ausgabe in den Ausführungsformen den Daten-Tensoren 105, die alle als Ganzzahlen oder andere reelle Zahlen dargestellt werden können.
-
Der Codierer 107 erkennt die Gewichtungen und extrahiert grundlegende Merkmale der Daten-Tensoren 105 und/oder andere reelle Zahlen, die den relevantesten Informationen entsprechen, und ordnet jeden der Daten-Tensoren 105 einer anderen Dimension (z.B. Codes) zu oder projiziert sie auf diese. Zum Beispiel werden die Daten-Tensoren 105 in einigen Ausführungsformen von ihrem Raum mit hoher Dimensionalität zu einem Raum mit niedrigerer Dimensionalität zugeordnet (z.B. werden die Daten komprimiert). Der Anonymisierer 109 nimmt die zugeordneten Daten und identifiziert die Abstände, die in dem bzw. den Worteinbettungs-Vektormodellen 103 definiert sind, um die Daten zu anonymisieren, wie im Folgenden ausführlicher beschrieben wird. Die Daten werden anschließend über den Decodierer 111 decodiert, um die Daten wieder in einer ursprünglichen Dimensionalität darzustellen (z.B. in einer nicht komprimierten Form), mit Ausnahme dessen, dass die Daten als die nächsten Nachbarn der Daten-Tensoren 105 (oder als ein anderes kontextbezogen ähnliches Wort) statt der Daten-Tensoren 105 selbst dargestellt werden, wie im Folgenden ausführlicher beschrieben wird. Die nächsten Nachbarn (oder andere Darstellungen) sind die anonymisierten Daten 113. Nachdem der Decodierer 111 die Daten in die anonymisierten Daten 113 umgewandelt hat, werden in einigen Ausführungsformen das bzw. die Worteinbettungs-Vektormodelle 103 erneut trainiert, wie im Folgenden ausführlicher beschrieben wird. Dies wird durch den Pfeil ab dem Decodierer 111 zu dem bzw. den Worteinbettungs-Vektormodellen 103 angegeben.
-
2 ist ein Blockschaubild, das veranschaulicht, wie ein oder mehrere Datensätze gemäß den Ausführungsformen in Daten-Tensoren umgewandelt werden. Der Datensatz bzw. die Datensätze 201 (z.B. ein Datenbank-Datensatz) enthält bzw. enthalten verschiedene Felder oder Attribute sowohl mit reellen Zahlen als auch Zeichenfolgen. Jedes Attribut für reelle Zahlen entspricht einem oder mehreren reellen Zahlwerten (z.B. Ganzzahlen, Gleitkommazahlen), die einer Person zugehörig sein können. Zum Beispiel kann eine reelle Zahl Quasi-Kennungszahlen wie beispielsweise einen Alterswert (z.B. 30) oder einen Postleitzahlenwert oder einen vertraulichen Attributwert wie eine Gehaltsangabe enthalten. Jede Zeichenfolge entspricht einem oder mehreren Zeichen für nicht reelle Zahlen oder Zeichenkombinationen, wie zum Beispiel Wörter in natürlicher Sprache (z.B. englische Wörter). Zum Beispiel kann eine Zeichenfolge ein vertrauliches Attribut wie zum Beispiel ein Krankheitstypwert (z.B. „Lungenkrebs“) oder andere Quasi-Attribute sein, wie zum Beispiel ein Wert für Ort, Bildungsniveau oder Geschlecht.
-
Wie in 2 veranschaulicht, wird jedes der Attribute für reelle Zahlen des Datensatzes bzw. der Datensätze 201 als die Tensoren 205 ohne jede Zwischenschritte dargestellt (z.B. indem sie durch ein Worteinbettungs-Vektormodell geführt werden). Um jede der reellen Zahlen als einen Tensor-Wert der Tensoren 205 darzustellen, wird das gesamte Set von reellen Zahlen in einem Datenset (z.B. einem Set von Datensätzen in einer Tabelle, wie zum Beispiel die Rohdaten 101 von 1) normalisiert. Das Normalisieren von Daten enthält ein Formen oder erneutes Darstellen von einer oder mehreren der reellen Zahlen in einem oder mehreren bestimmten Bereichen, wie zum Beispiel zwischen 0 und 1 oder -1 und +1. In einigen Ausführungsformen verwendet die Normalisierung lineare Algebra zum Umwandeln eines Datenvektors (z.B. die reellen Zahlen in dem Datenbank-Datensatz bzw. den Datenbank-Datensätzen 201) in einen neuen Vektor (z.B. reelle Zahlen in dem Datensatz-Token 205-1), dessen Norm (d.h. Länge) gleich eins ist. In den Ausführungsformen enthält die Normalisierung ein Eliminieren einer Maßeinheit durch ein Umwandeln der Daten in neue Scores mit einem Mittelwert von 0 und einer Standardabweichung von 1. In einer beispielhaften Veranschaulichung kann das erste Attribut das Altersattribut enthalten, das einen Wert von 27 besitzt. Es können mehrere andere Datensätze mit entsprechenden Alterswerten von 22, 26 und 25 vorhanden sein. Wenn jedes dieser Altersattribute normalisiert ist, werden sie in den Ausführungsformen derselben Kategorie ≤ 30 zugewiesen, sodass eine Datenbankansicht aufzeigt, dass jedes der Altersattribute mit ≤ 30 anstatt ihrer einzelnen Werte angegeben wird. Dementsprechend nehmen die bestimmten Werte eine breiter gefasste Wertdarstellung an.
-
Jeder der Zeichenfolge-Attributwerte des Datensatzes bzw. der Datensätze 201 durchläuft das Word2vec 203. Obwohl 2 ein Word2vec-Modell veranschaulicht, sollte klar sein, dass jedes geeignete Worteinbettungs-Vektormodell wie in 1 beschrieben verwendet werden kann. Ein Word2vec-Modell ist ein zweischichtiges Netzwerkmodell, das ein oder mehrere Eingabevektoren (Wortdarstellungen) durch eine ausgeblendete Schicht (d.h. eine Spalte-Zeile-Matrix) und eine Projektionsschicht (z.B. einen Softmax-Klassifizierer) durchlaufen. Word2vec-Modelle sagen Zielzeichenfolgen aus Quellen-Kontextwörtern (d.h. über den Continuous-Bag-of-Words- (CBOW) Algorithmus) voraus, oder sagen umgekehrt Quellen-Kontextwörter aus Zielwörtern voraus (d.h. über den Skip-Gram-Algorithmus). Wenn in den Ausführungsformen jede der Zeichenfolgen ein entsprechendes Word2vec oder ein anderes Worteinbettungsmodell durchlaufen hat, werden die Zeichenfolgen in einer Worteinbettung numerisch dargestellt, die zugehörige Vektoren (z.B. andere Gruppen von Zeichenfolgekennungen) und die Abstände von den Zeichenfolgedarstellungen zu jedem dieser Vektoren zeigt, wie im Folgenden ausführlicher beschrieben wird. Zum Beispiel kann die Zeichenfolge „männlich“ im Vektorraum als eine „1“ dargestellt werden, und die Zeichenfolge „weiblich“ kann im Vektorraum als eine „0“ dargestellt werden.
-
Nach dem Normalisieren der reellen Zahlen und den Worteinbettungsanalysen der Zeichenfolgen des Datensatzes bzw. der Datensätze 201 werden die Daten in einem oder mehreren Datensatz-Token 205 dargestellt (d.h. einem anderen Vektor mit n Dimensionen). Zum Beispiel kann der Datensatz bzw. können die Datensätze 201 ein erster Datenbank-Datensatz sein. Wenn die reellen Zahlen aus dem Datenbank-Datensatz extrahiert/kopiert und normalisiert werden, und die Zeichenfolgen extrahiert wurden und das word2vec-Modell durchlaufen haben, können die Daten in Form des Datensatz-Tokens 205-1 (oder 205-2) wieder zusammengesetzt werden. In den Ausführungsformen ist das Datensatz-Token 205-1 ein Vektor von reellen Zahlen, die den ursprünglichen Datensatz 201 darstellen. Jedes der Datensatz-Token 205-1 und 205-2 (und jede Menge von Datensätzen in einer Tabelle) bilden zusammen die Tensoren 205. In den Ausführungsformen enthalten die Tensoren 205 nur ein einziges Datensatz-Token im Gegensatz zu den beiden 205-1 und 205-2, wie in 2 veranschaulicht.
-
3 ist eine schematische Darstellung, die veranschaulicht, wie Datensatz-Zeichenfolgen durch ein Worteinbettungs-Vektormodell gemäß Ausführungsformen ausgeführt werden. In Ausführungsformen stellt 3 Aspekte des Worteinbettungs-Vektormodells 103 von 1 dar. 3 enthält die Trainingsdaten 301, den Datensatz 307 und den Vektorraum 309. Der Vektorraum 309 enthält mehrere Vektoren (z.B. Mann, König). Obwohl der Vektorraum 309 eine Darstellung mit begrenzten Vektoren und Dimensionen ist, sollte klar sein, dass mehr oder weniger Vektoren und Dimensionen mit verschiedenen, mehr oder weniger Zeichenfolgedarstellungen vorhanden sein können. Obwohl der Vektorraum 309 Datenpunkte in Zeichenfolgeform (z.B. Mann) enthält, sollte ebenfalls klar sein, dass in einigen Ausführungsformen wie zum Beispiel in Word2vec-Modellen die Datenpunkte Zeichenfolgedarstellungen sind (z.B. ein oder mehrere Vektoren von reellen Zahlen). In einigen Ausführungsformen ist eine „Zeichenfolgedarstellung“ oder jede andere Darstellung ein erstes Set von Daten, die dieselbe Bedeutung haben, für ein zweites Set von Daten stehen und/oder für dieses ersetzt werden, aber nicht den exakt selben Wert oder das exakt selbe Format wie das zweite Set von Daten haben. Zum Beispiel kann „Frau“ eine Zeichenfolge sein und „0“ könnte deren Zeichenfolgedarstellung sein. In anderen Ausführungsformen ist eine Zeichenfolgedarstellung oder jede andere Darstellung der ursprüngliche Datenpunkt selbst. Zum Beispiel kann „Frau“ der ursprüngliche Datenpunkt sein, und „Frau“ kann auch die „Zeichenfolgedarstellung“ sein.
-
Um Datenpunkte oder Zeichenfolgedarstellungen in dem Vektorraum 309 zu plotten, wird das Modell unter Verwendung der Trainingsdaten 301 trainiert. In verschiedenen Ausführungsformen enthalten die Trainingsdaten 301 einen großen Korpus von unstrukturierten Daten (z.B. Dokumente, Nachrichtenartikel, Posts in den sozialen Medien, Nachrichten-Feeds, Blogs) und/oder strukturierte Daten (z.B. Datenbankwerte). Die Trainingsdaten 301 sind auch die Eingabe des Worteinbettungs-Vektormodells. Die Trainingsdaten 302 enthalten jedes der Wörter, die im Vektorraum 309 gefunden wurden - Mann, König, Vater, Sohn, Frau, Königin, Mutter, Tochter, Katze, Hund, Doktorgrad, Ph.D., J.D., Magister, Bachelor und Highschool - die als das „Vokabular“ oder „Vocab“ bekannt sind.
-
In einigen Ausführungsformen stellt der Vektorraum 309 eine „vortrainierte“ Einbettung dar. Eine vortrainierte Einbettung ist ein statisches Modell, das ohne Rückmeldung, erneutes Training oder Verweis auf die Datensets generiert wird, die durch es hindurchgeführt werden. Zum Beispiel kann ein Benutzer ein statisches Worteinbettungs-Vektormodell aus einer Online-Quelle herunterladen, das bereits trainiert ist und die Vektoren oder Datenpunkte enthält, die gemäß einer semantischen Ähnlichkeit zwischen Wörtern im Vektorraum bereits zugeordnet wurden. In anderen Ausführungsformen stellt der Vektorraum 309 eine „erneut trainierte“ Einbettung dar. Ein erneut trainiertes Worteinbettungsmodell ist eine Einbettung, die eine Trainingsrückmeldung empfängt, nachdem sie eine oder mehrere erste Trainingssitzungen erhalten hat und für ein bestimmtes Datenset (z.B. Mikrodaten, anonymisierte Datenbanken usw.) optimiert oder generiert worden ist. Nachdem der Decodierer 111 die Daten decodiert hat, nimmt das System, wie zum Beispiel in 1 veranschaulicht, ein zweites „erneutes Training“ des bzw. der Worteinbettungs-Vektormodelle 103 vor, sodass alle Vektoren oder Wörter (z.B. M.D.) in einem zukünftigen Datenset dessen nächstem Nachbarn (z.B. Hochschulbildung) oder einem anderen Wort in Einklang mit der umgesetzten Richtlinie zugeordnet werden. In einigen Ausführungsformen enthält das erneute Training ein Ausgeben einer Rückmeldung, um sicherzustellen, dass die korrekte paarweise Zuordnung von Datenpunkten (z.B. M.D. und Hochschulbildung) verwendet wird.
-
Um jedes der Wörter ihren kontextbezogen entsprechenden Punkten in dem Vektorraum
309 zuzuordnen, werden Trainingsalgorithmen verwendet. In einigen Ausführungsformen wird das Worteinbettungs-Vektormodell zum Beispiel unter Verwendung des Prinzips der maximalen Wahrscheinlichkeit (ML) trainiert, um die Wahrscheinlichkeit des nächsten Worts w
t (d.h. „Ziel“) aufgrund der vorherigen Wörter h (d.h. „Historie“) in Ausdrücken einer Softmax-Funktion zu maximieren.
-
Dabei berechnet Score (w
t, h) die Kompatibilität von Wort w
t mit dem Kontext h. Das Modell wird durch ein Maximieren seiner logarithmischen Wahrscheinlichkeit auf dem Trainingsset trainiert, das ein Maximieren ausführt für
-
Dies ergibt ein entsprechend normalisiertes Wahrscheinlichkeitsmodell für eine Sprachmodellierung. Jede Wahrscheinlichkeit wird bei jedem Trainingsschritt unter Verwendung des Scores für alle anderen Wörter w' in dem aktuellen Kontext h berechnet und normalisiert. In einigen Ausführungsformen werden einige Modelle, wie zum Beispiel Word2vec, unter Verwendung eines binären Klassifizierungsziels trainiert, wie beispielsweise logistische Regression, um die reellen Zielwörter wt von K Rauschwörtern w" in demselben Kontext zu unterscheiden. Dementsprechend wird statt eines Softmax-Klassifizierers ein Rauschklassifizierer verwendet.
-
Die Ausgabe der Trainingsalgorithmen ist jedes der positionsgebundenen Wörter in dem Vektorraum 309, der Gruppierungen von Wörtern zeigt, die semantisch ähnlich sind. „Semantische Ähnlichkeit“ ist der semantische Abstand zwischen zwei oder mehreren Konzepten (z.B. Wörtern) gemäß einer vorgegebenen Ontologie. Eine „Ontologie“ ist eine Klasse oder ein Datenset, das ein Set von Attributen (z.B. Wörtern) enthält. Zum Beispiel gehören die Wörter „Doktorgrad“, „Ph.D.“ (Doktor der Philosophie), „M.D.“ (Doktor der Medizin), „J.D.“ (Doktor der Rechtswissenschaft) und „Magister“ jeweils zu der Ontologie „Hochschulbildung“ 305, während die Wörter „Bachelor“ und Highschool zu der Ontologie „Grundstudium“ gehören. Der „Abstand“ zwischen beliebigen zwei oder mehreren Wörtern in einigen Ausführungsformen beruht auf der Ähnlichkeit ihrer Bedeutung und/oder ihres semantischen Inhalts im Gegensatz zu irgendeiner Syntaxähnlichkeit wie zum Beispiel ein Zeichenfolgeformat. Zum Beispiel sind „car“ und „far“ syntaktisch ähnlich, haben aber zwei verschiedene Definitionen, sodass sie nicht semantisch ähnlich sind.
-
Der Abstand zwischen beliebigen zwei Vektoren oder Wörtern wird gemäß jedem geeigneten Verfahren gemessen. Zum Beispiel wird in einigen Ausführungsformen eine automatisierte Cosinus-Ähnlichkeit zur Abstandsberechnung verwendet. Eine Cosinus-Ähnlichkeit ist eine Messung einer Ähnlichkeit zwischen zwei Nicht-Null-Vektoren eines inneren Produktraums, die den Cosinus des Winkels zwischen den beiden Nicht-Null-Vektoren misst. Keine Ähnlichkeit wird als ein 90-Grad-Winkel ausgedrückt, während eine völlige Ähnlichkeit (d.h. dasselbe Wort) von 1 ein 0-Grad-Winkel ist. Zum Beispiel entspricht ein Abstand von 0,98 zwischen zwei Wörtern einer sehr hohen semantischen Ähnlichkeit, während ein Abstand von 0,003 einer geringen semantischen Ähnlichkeit entspricht. Wie in dem Vektorraum 309 veranschaulicht, ist die Cosinus-Ähnlichkeit zwischen „Mann“ und „König“ und „Frau“ und „Königin“ derselbe Cosinus-Abstand, somit ist König in bestimmten Situationen semantisch ähnlich zu Königin angesichts der Eingaben Mann und Frau.
-
Nachdem die Trainingsdaten 301 den Trainingsalgorithmus durchlaufen haben und als der Vektorraum 309 dargestellt wurden, durchlaufen die Zeichenfolgeattribute des Datensatzes 309 das Worteinbettungs-Vektormodell und werden im Vektorraum 309 geplottet. Wie zum Beispiel in 3 veranschaulicht, ist „M.D.“ der einzige Zeichenfolgewert in dem Datensatz 307, der dem Attribut „Bildungsniveau“ entspricht. „M.D.“ wird aus dem Datensatz 307 extrahiert oder kopiert und gemäß der Ontologie, zu dem es gehört und/oder seiner semantischen Ähnlichkeit mit anderen Wörtern oder Datenpunkten in den Vektorraum 309 gestellt. Nach dem Plotten kann der Abstand von „M.D.“ zu anderen Wörtern oder Vektoren auf automatisierte Weise in Worteinbettungsmodellen berechnet werden, was im Gegensatz zu einem manuellen Definieren von Wortabständen dabei hilft, Attributwerte und/oder Äquivalenzklassen in anonymisierten Daten neu zu definieren (z.B. zu verallgemeinern). Wie in dem Vektorraum 309 veranschaulicht, ist der nächste Nachbar von M.D. in Bezug auf Abstand „Hochschulbildung“. Wenn dementsprechend Datensätze Werte wie „M.D.“, „Doktorgrad“, „Ph.D.“, „J.D.“ oder „Magister“ enthalten, können eine Äquivalenzklasse oder Attributwerte unter Verwendung der Zeichenfolge „Hochschulbildung“ generiert werden, um jedes dieser einzelnen Attribute zur Anzeigezeit zu ersetzen, um die Anonymisierung der Daten zu unterstützen. Dementsprechend ist „Hochschulbildung“ eine breiter gefasste Darstellung als jeder der einzelnen Werte, definiert aber immer noch eine relevante Klasse der einzelnen Werte, sodass ein ausgewogenes Verhältnis zwischen einem Nicht-Verknüpfen von spezifischen Informationen mit einer Person und einem gleichzeitigen Verfügbarmachen für Forschungs- und andere Zwecke hergestellt wird.
-
4 ist eine schematische Darstellung, die ein Rauschausbreitungsmodul 400 (z.B. das Rauschausbreitungsmodul 121 von 1) gemäß Ausführungsformen veranschaulicht. Das Rauschausbreitungsmodul 400 enthält eine Eingabeschicht 403, eine ausgeblendete Schicht 403, eine Anonymisiererschicht 405 und eine Ausgabeschicht 407 als ein neuronales Netzwerk. In einigen Ausführungsformen enthält das Rauschausbreitungsmodul 400 einen Autoencoder mit einer Anonymisiererschicht 405, die zwischen der ausgeblendeten Schicht 403 und der Ausgabeschicht 407 hinzugefügt ist.
-
Die Eingabeschicht 403 enthält eine Mehrzahl von Datenpunkten - d1, d2, d3, d4 (z.B. Datensätze, die als Tensoren dargestellt sind). Unter erneuter Bezugnahme auf 3 kann zum Beispiel einer der Datenpunkte d1 der Datensatz 307 sein, der als ein Token-Datensatz dargestellt ist, und der Rest der zusätzlichen Datensätze kann zusammen einen 300-dimensionalen Vektor enthalten. Der Codierer 409 ordnet jeden Datenpunkt einem Darstellungspunkt h (e.g., h1, h2, oder h3) (h = f(d)) zu. Die Zuordnung des gesamten Datensets enthält ein Extrahieren von relevanten Merkmalen oder Gewichtungen, die den Datenpunkten zugehörig sind, und ein Projizieren der Merkmale von einer ersten Dimension (z.B. einer höheren Dimension) auf eine andere Dimension (z.B. eine niedrigere Dimension). Zum Beispiel kann ein 300-dimensionaler Vektor, der als eine Tabelle von Token-Datensätzen (d1, bis d4) einem 100-dimensionalen Vektor (h1, bis h3) zugeordnet werden. Dies kann für Funktionsprinzipien wie zum Beispiel Datenkomprimierung nützlich sein, die Dimensionalität durch ein Entfernen von statischen oder nicht wichtigen Merkmalen von Daten reduziert. Damit wird die Inanspruchnahme von Arbeitsspeicher und/oder die Verarbeitungszeit reduziert.
-
Jeder Datenpunkt mit der ausgeblendeten Schicht 403 wird anschließend einer anderen Darstellung derselben oder einer analogen Dimension mit der Anonymisiererschicht 405 zugeordnet. In einigen Ausführungsformen enthält die Verarbeitung für die Zuordnung zunächst ein Verwenden eines Mondrian-Algorithmus. Der Mondrian-Algorithmus ist ein Generalisierungsalgorithmus, der eine gierige rekursive Partitionierung des Bereichsraums der Quasi-Kennungen verwendet, um eine k-Anonymität zu erfüllen. Eine „Generalisierung“ ersetzt oder ändert Quasi-Kennungswerte durch oder in Werte, die weniger spezifisch, aber semantisch konsistent sind (z.B. Werte, die zu derselben ontologischen Klasse gehören). Als Ergebnis dessen haben mehrere Datensätze dasselbe Set von Quasi-Kennungswerten. Der Mondrian-Algorithmus wählt rekursiv das geteilte Attribut mit dem größten normalisierten Bereich von Werten und (für fortlaufende oder Ordinalattribute) partitionierten die Daten um den Mittelwert des geteilten Attributs, was wiederholt wird, bis keine zulässige Teilung mehr vorhanden ist.
-
Die Ausgabe des Mondrian-Algorithmus ist ein Set von Äquivalenzklassen, wobei jede Äquivalenzklasse eine Größe von mindestens k hat, um eine k-Anonymität zu erfüllen. Die Äquivalenzklassenelemente an diesem Punkt können Codes sein (die von den Datenvektoren unter Verwendung des Codierers 409 abgeleitet werden). Ein Zentroid (z.B. eine durchschnittliche oder mittlere Position/ein durchschnittlicher oder mittlerer Wert der Äquivalenzklasse kann als die Generalisierung aller Codes in der Klasse verwendet werden. Wenn zum Beispiel c1, c2, c3 und c4 die Codes in der Äquivalenzklasse E1 sind, und C das Zentroid ist, das unter Verwendung der Codes berechnet wird, wird C als repräsentativ für E1 behandelt. Von den Codes wird c1 C zugeordnet, c2 wird C zugeordnet, c3 wird C zugeordnet, c4 wird C zugeordnet. Dementsprechend sind an der Ausgabe der Anonymisiererschicht 405 (z.B. des Anonymisierers 109 von 1) c1, c2, c3 und c4 nicht mehr voneinander zu unterscheiden. Sie werden alle durch einen verrauschten Code C dargestellt. In einigen Ausführungsformen haben verschiedene Äquivalenzklassen verschiedene Zentroide und somit verschiedene Ausgaben. Diese Zentroide können durch den Decodierer 411 decodiert werden.
-
In einer Veranschaulichung der konkreten Zuordnung von der ausgeblendeten Schicht 403 zu der Anonymisiererschicht 405 können d1, d2 und d3 zusammen komprimiert und damit als h1 in der ausgeblendeten Schicht 403 dargestellt werden. Anschließend kann die h1-Darstellung einem anderen oder verschiedenen Wert a1 zugeordnet werden, der dieselbe Dimension wie h1 enthält. Jeder der Datenpunkte in der Anonymisiererschicht 405 wird dann über den Decodierer 411 auf einen Datenpunkt in der Ausgabeschicht 404 projiziert, der durch (T = g(a)) dargestellt wird, wobei g eine beliebige Rauschvariable ist.
-
In einigen Ausführungsformen wird jeder Datenpunkt in der ausgeblendeten Schicht 403 einer komprimierten Version des nächsten Nachbarn der Datenpunkte, deren ontologischer Klasse und/oder einem anderen semantisch ähnlichen Wort zugeordnet. Da unter erneuter Bezugnahme auf 3 die Zeichenfolge „M.D.“ zum Beispiel in dem Vektorraum 306 eines Modells bereits zugeordnet worden ist, wurde ihr Abstand zu ihren Nachbarn bereits berechnet, und jedes Wort, dem sie semantisch ähnlich ist, ist bereits zugeordnet. Wenn dementsprechend eine Richtlinie für ein Suchen nach dem nächsten Nachbarn der Eingabezeichenfolge „M.D.“ angegeben ist, würde sie „Hochschulbildung“ als einen Datenpunkt verwenden. Nach einem Bestimmen des nächsten Nachbarn wird dieser dementsprechend auf dieselbe oder eine ähnliche Dimension komprimiert wie einer der Datenpunkte in der ausgeblendeten Schicht 403. Anschließend wird für die Ausgabeschicht 407 die komprimierte Version von „Hochschulbildung“ (z.B. a1) ihrer ursprünglichen (z.B. nicht komprimierten) Dimensionsversion (z.B. T1) zugeordnet, sodass die Zeichenfolge „Hochschulbildung“ jetzt als ein oder mehrere Werte für ein Bildungsniveau-Attribut anstatt oder anstelle einzelner Bildungsniveau-Werte verwendet werden kann, wie zum Beispiel „M.D.“ oder „Ph.D.“ usw.
-
5 ist ein Ablaufplan eines beispielhaften Prozesses 500 zum Anonymisieren von Daten gemäß Ausführungsformen. Der Prozess 500 (sowie alle anderen hierin offenbarten Prozesse, z.B. 600, 700) können durch eine Verarbeitungslogik ausgeführt werden, die Hardware (z.B. Schaltungen, dedizierte Logik, programmierbare Logik, Mikrocode usw.), Software (z.B. auf einem Prozessor ausgeführte Anweisungen zum Ausführen von Hardware-Simulation), Firmware oder eine Kombination davon aufweist.
-
Gemäß Block 502 werden Rohdaten (z.B. die Rohdaten 101 von 1) empfangen. Die Rohdaten können in jeder geeigneten Form vorliegen wie beispielsweise ein oder mehrere Datenbank-Datensätze, unstrukturierte Daten und/oder jedes andere Set von Daten. Gemäß Block 504 werden ein oder mehrere Werte von expliziten Kennungen (z.B. ein Name einer Person, Sozialversicherungsnummern) der Rohdaten unterdrückt. Ein „Unterdrücken“ der Werte ist oder umfasst ein Löschen, Maskieren, Ändern und/oder Verschlüsseln eines Datensets derart, dass die Werte für einen menschlichen Leser nicht erkennbar sind. In einigen Ausführungsformen sind die in dem Prozess 500 verwendeten Daten nicht notwendigerweise „Roh“-Daten, sondern können jedes Set von Daten sein.
-
Gemäß Block 506 werden ein oder mehrere Werte von Quasi-Kennungen (z.B. Postleitzahl, Bildungsniveau usw.) und ein oder mehrere Werte von vertraulichen Kennungen (z.B. Krankheitstyp, Gehalt usw.) der Rohdaten identifiziert. In einigen Ausführungsformen definiert ein Benutzer zuerst, was die Quasi-Kennung bzw. die Quasi-Kennungen und die vertrauliche Kennung bzw. die vertraulichen Kennungen sind, und gibt diese Definition in ein Datenverarbeitungssystem ein. Die Quasi-Kennungen können für jede Attributklasse eingerichtet werden, ungeachtet dessen, dass sich einige Attribute typischerweise in anderen Kategorien befinden. Zum Beispiel werden in einigen Ausführungsformen typische „vertrauliche“ Attribute wie beispielsweise Krankheit und Gehalt als die Quasi-Attribute definiert. Typische „explizite“ Kennungen (z.B. Name, Sozialversicherung) können ebenfalls als die Quasi-Attribute eingerichtet werden. In einigen Ausführungsformen identifiziert das Datenverarbeitungssystem im Unterschied zu einem Benutzer jeden Kennungstyp ohne Benutzerrückmeldung über jedes geeignete Verfahren, wie zum Beispiel natürliche Sprachverarbeitung (NLP), Wortabgleich und -Kennzeichnung auf Richtliniengrundlage (z.B. ein Abgleichen einer Zeichenfolge in einer Datenbank mit einer Zeichenfolge in einer Datenstruktur mit einer Regel, dass das Wort eine bestimmte Kennung ist) usw.
-
Gemäß Block 508 wird bestimmt, ob der eine oder die mehreren Quasi-Kennungswerte sowohl eine oder mehrere reale Zeichenfolgen als auch reelle Zahlenwerte enthalten, wie zum Beispiel Ganzzahlen (z.B. über NLP, benutzerdefinierte Spezifikation usw.). Wenn der eine oder die mehreren Werte von Quasi-Kennungen gemäß Block 510 nicht sowohl eine oder mehrere Zeichenfolgen als auch reelle Zahlen enthalten (d.h. der Wert bzw. die Werte der Quasi-Kennungen sind entweder eine oder mehrere reelle Zahlen oder eine oder mehrere Zeichenfolgen, nicht aber beides), wird anschließend bestimmt, ob die Quasi-Kennung(en) nur reelle Zahlen sind. Wenn die eine oder die mehreren Quasi-Kennungen nur reelle Zahlen sind, werden gemäß Block 514 die eine oder die mehreren reellen Zahlen der Quasi-Kennung extrahiert und normalisiert und als ein oder mehrere Tensoren dargestellt (z.B. die reelle Zahlendarstellung des Datensatz-Tokens 205-1 von 2). Wenn die eine oder die mehreren Werte von Quasi-Kennungen nicht nur reelle Zahlen sind (sie sind z.B. alle Zeichenfolgen), werden gemäß Block 512 die eine oder die mehreren Zeichenfolgen extrahiert und durchlaufen ein oder mehrere Worteinbettungs-Vektormodelle (z.B. Worteinbettungs-Vektormodell 102 von 1) und werden als ein oder mehrere Tensoren oder Tensorwerte dargestellt (z.B. die Zeichenfolgedarstellung des Datensatz-Tokens 205-1 von 2). Anschließend kommt in einigen Ausführungsformen ein Block 516 nach Block 512 vor, da keine reellen Zahlen für eine Normalisierung vorliegen.
-
Wenn gemäß Block 512 und 514 die eine oder die mehreren Quasi-Kennungen beides enthalten, Zeichenfolge(n) und reelle Zahl(en), werden beide, die Quasi-Kennungs-Zeichenfolge(n) und die reelle Zahl bzw. die reellen Zahlen der Quasi-Kennung extrahiert und durchlaufen entweder ein oder mehrere Worteinbettungs-Vektormodelle oder werden jeweils normalisiert. Die sich daraus ergebende Ausgabe der Normalisierung und des einen oder der mehreren Worteinbettungs-Vektormodelle sind Daten-Tensoren.
-
Gemäß Block 516 wird ein Rauschen zu dem Tensor bzw. den Tensoren der Quasi-Kennung zur Datenanonymisierung hinzugefügt (z.B. durch das Rauschausbreitungsmodul 121 von 1). Gemäß Block 518 werden die anonymisierten Daten für Abfragen bereitgestellt. Zum Beispiel enthält das endgültige Datenset in einigen Ausführungsformen die unterdrückten expliziten Kennungen, die anonymisierten Quasi-Kennungswerte, die auf einen oder mehrere spezifische automatisierte Attributwerte und Äquivalenzklassen generalisiert wurden, und den vertraulichen Wert bzw. die vertraulichen Werte in einer nicht geänderten (z.B. nicht unterdrückten oder verschleierten) Form. Wenn ein Benutzer dementsprechend eine Abfrage für einige oder alle Daten ausgibt, können die Daten so angezeigt werden, wie sie in Block 518 angegeben sind.
-
6 ist ein Ablaufplan eines beispielhaften Prozesses 600 für ein Durchlaufen von Daten durch ein oder mehrere Worteinbettungs-Vektormodelle gemäß den Ausführungsformen. Am Block 602 werden ein oder mehrere vortrainierte Worteinbettungs-Vektormodule heruntergeladen. Zum Beispiel empfängt ein Datenverarbeitungssystem in einigen Ausführungsformen eine Benutzeranfrage für ein Herunterladen eines Worteinbettungs-Vektormodells, wie beispielsweise Word2vec, aus einer Website oder von einem anderen Dienst, bei dem jeder der Datenpunkte im Vektorraum bereits zugeordnet ist (z.B. der Vektorraum 309 von 3). Dementsprechend haben zu einem früheren Zeitpunkt eine oder mehrere Quellen, wie beispielsweise Dokumente, Posts in sozialen Medien, Blogs, Nachrichten-Feeds, Wörterbücher, Zeitschriften usw. das Worteinbettungs-Vektormodell durchlaufen und dessen entsprechende Zeichenfolgedarstellungen sind gemäß einer semantischen Ähnlichkeit zugeordnet.
-
Gemäß Block 604 durchlaufen eine oder mehrere Datensatz-Zeichenfolgen (z.B. eine Tabelle von Datenbank-Datensätzen) zu einem zweiten Zeitpunkt das bzw. die Worteinbettungs-Vektormodelle. Dementsprechend werden die eine oder die mehreren Daten-Zeichenfolgedarstellungen im Vektorraum gemäß der semantischen Ähnlichkeit zu anderen Zeichenfolgedarstellungen zugeordnet, die während der Vortrainingsphase zugeordnet wurden. Unter erneuter Bezugnahme auf 3 wird zum Beispiel die Zeichenfolge „M.D.“ in dem Vektorraum 309 wie veranschaulicht zugeordnet.
-
Gemäß Block 606 wird der Abstand (z.B. Cosinus-Abstand) von der einen oder den mehreren Datensatz-Zeichenfolgedarstellungen zu jedem Nachbarn (oder anderen Wort) im Vektorraum bestimmt. In einigen Ausführungsformen wird nur jeder des einen oder der mehreren Nachbarn der Datensatz-Zeichenfolgen (d.h. die unmittelbaren Wörter, die die eine oder die mehreren Datensatz-Zeichenfolgen umgeben) zum Berechnen von Abstand zu der einen oder den mehreren Datensatz-Zeichenfolgen verwendet. In anderen Ausführungsformen wird der Abstand von der einen oder den mehreren Datensatz-Zeichenfolgen zu jedem Wort (nicht nur Nachbar) in dem Vektorraum (z.B. der Vektorraum 309) berechnet.
-
Gemäß Block 608 wird der nächste Nachbar (oder ein anderes Wort) auf Grundlage einer Richtlinie als ein Ausgabe-Kandidat für eine Anonymisierung ausgewählt In einigen Ausführungsformen gibt die Richtlinie an, das Wort, das der Zeichenfolgedarstellung in Bezug auf den Abstand am nächsten ist, als einen Kandidaten für eine Anonymisierung auszuwählen. Zum Beispiel, unter erneuter Bezugnahme auf 3, wenn die eine oder die mehreren Datensatz-Zeichenfolgen „M.D.“ enthielten, ist der nächste Nahbar von „M.D.“ in Bezug auf Abstand „Hochschulbildung“. Daher wird „Hochschulbildung“ in einigen Ausführungsformen als der Ausgabe-Kandidat für Anonymisierung ausgewählt. In anderen Ausführungsformen gibt die Richtlinie an, andere Wortdarstellungen, die nicht notwendigerweise die nächsten Nachbarn der einen oder der mehreren Datensatz-Zeichenfolgedarstellung sind, als den Kandidaten auszuwählen, wie beispielsweise ein Auswählen der Ontologie oder eines anderen Nachbarn der einen oder der mehreren Datensatz-Zeichenfolgen. Unter erneuter Bezugnahme auf 3 kann die Richtlinie zum Beispiel statt eines Auswählens des nächsten Nachbarn „Hochschulbildung“ als den Kandidaten angeben, ein Wort in einem bestimmten Abstand von „M.D.“ auszuwählen, das „J.D.“ oder „Doktorgrad“ usw. lauten kann. In einigen Ausführungsformen gibt die Richtlinie ein Gruppieren jedes Datensatz in einer Ontologie und ein Verwenden desselben Worts für ein bestimmtes Attribut an, das nicht notwendigerweise der Name der Ontologie ist. Wenn zum Beispiel eine Mehrzahl von Datensätzen in Zeichenfolgen enthalten ist, die jedem Zeichensatz in der Ontologie 305 entsprechen, kann die Richtlinie angeben, jeden Wert eines Bildungsniveaus in eine der Zeichenfolgen zu ändern, wie zum Beispiel „J.D.“ (statt „Hochschuldbildung“), um zu verhindern, dass eine Person identifiziert wird.
-
Gemäß Block 610 wird bestimmt, ob die Auswahl an Block 608 mit der Richtlinie übereinstimmt. Dies wird durch quantitative Messungen (z.B. ob der Kandidat wirklich der nächste Nachbar ist) und/oder qualitative Messungen (z.B. ob der Kandidat die eine oder die mehreren Datensatz-Zeichenfolgen auf akkurate Weise darstellt) bestimmt. In einer beispielhaften Veranschaulichung der qualitativen Messung kann der nächste Nachbar der Zeichenfolge „M.D.“ statt „Hochschulbildung“ „J.D.“ lauten. Obwohl eine Richtlinie angeben kann, den nächsten Nachbarn auszuwählen, und der Algorithmus tatsächlich den nächsten Nachbarn ausgewählt hat, wird die Klasse, zu der „M.D.“ gehört, möglicherweise nicht adäquat dargestellt. Dies kann durch einen Benutzer entschieden werden, der bestimmt, dass „M.D.“ eher als generalisierte Klasse oder Ontologie anstatt als ungenauer spezifischer Wert dargestellt werden soll. Somit würde in dieser Situation die Kandidaten-Auswahl „J.D.“ nicht mit der Richtlinie in Einklang stehen, obwohl die Richtlinie quantitativ richtig berechnet wurde. In einigen Ausführungsformen gibt es keine Benutzerrückmeldung, sondern stattdessen wird ein nicht überwachter Algorithmus zu einem Bestimmen verwendet, ob die Auswahl mit der Richtlinie in Einklang steht oder zum erneuten Trainieren verwendet wird. In diesen Ausführungsformen kann ein Set von Regeln zu einem Bestimmen verwendet werden, ob die Auswahl mit der Richtlinie in Einklang steht, zum Beispiel ob die Auswahl quantitativ korrekt war, und ob die Auswahl eine oder mehrere Regeln erfüllt hat (z.B. ob die Auswahl der Name der ontologischen Klasse war).
-
Wenn gemäß Block 612 die Auswahl von Block 608 nicht mit der Richtlinie in Einklang steht, wird das bzw. werden die Worteinbettungs-Vektormodelle erneut trainiert. Zum Beispiel kann ein Benutzer oder nicht überwachter Algorithmus mehrere andere verschiedene Quelldokumente in das Modell hochladen und/oder manuell ändern, wobei eine oder mehrere Zeichenfolgen im Vektorraum zugeordnet werden. Wenn zum Beispiel unter erneuter Bezugnahme auf 3 „Hochschulbildung“ der bzw. den Datensatz-Zeichenfolgen zugehörig ist, kann der Benutzer oder der nicht überwachte Algorithmus zusätzliche Dokumente mit Bezug auf Bildung hochladen, wie beispielsweise spezielle Website-Seiten, die verschiedene Bildungsniveaus, ausgewählte Wörterbuch-Wörter, Nachrichtenartikel zum Thema Bildung usw. definieren und erörtern. Wenn in einem anderen Beispiel „M.D.“ in der einen oder den mehreren Datensatz-Zeichenfolgen enthalten war, kann der Benutzer „Hochschulbildung“ in nächste Nähe zu M.D. verschieben, sodass bei einer weiteren Ausführung „Hochschulbildung“ statt irgendeines anderen Worts als der Kandidat ausgewählt wird. Nach dem erneuten Trainieren der Daten in Block 612 durchlaufen die eine oder die mehreren Datenzeichenfolgen in Block 604 das bzw. die Worteinbettungs-Vektormodelle noch einmal. Die Blöcke 606 und 608 werden für die zweite Ausführung wiederholt, bis die Auswahl mit der Richtlinie in Block 610 in Einklang steht.
-
Wenn gemäß Block 614 die Auswahl in Block 608 mit der Richtlinie in Einklang steht, wird der nächste Nachbar (oder ein anderes Wort) als die tatsächliche Ausgabe zur Anonymisierung verwendet, wie auch immer die Richtlinie lautet. Unter Bezugnahme auf 7 wird bzw. werden zum Beispiel die Zeichenfolgen, die in Block 614 in einigen Ausführungsformen als die Ausgabe verwendet wird oder werden, in den anonymisierten Daten 113 dargestellt.
-
7 ist ein Ablaufplan eines beispielhaften Prozesses 700 für ein Durchlaufen der Daten gemäß den Ausführungsformen durch ein Rauschausbreitungsmodul. Gemäß Block 702 wird ein bzw. werden mehrere Daten-Tensoren (z.B. die Daten-Tensoren von 105 von 1) von einer ersten Darstellung in eine zweite Darstellung encodiert. Zum Beispiel können die Daten-Tensoren eine Mehrzahl von Datensatz-Token sein, die von einer höheren Dimension auf eine niedrigere Dimension projiziert werden, wie in 4 beschrieben. In Ausführungsformen enthält das Encodieren ein Erlernen der Gewichtungen oder relevantesten Informationen aus dem bzw. den Daten-Tensoren, und ordnet diese Informationen der zweiten Darstellung zu, die in einigen Ausführungsformen eine zusammengefasste oder komprimierte Version der ersten Darstellung ist.
-
Gemäß Block 704 werden ein oder mehrere Quasi-Kennungswerte identifiziert, die gemäß einer Richtlinie anonymisiert worden sind. Zum Beispiel wird unter erneuter Bezugnahme auf 6 die Ausgabe zur Anonymisierung identifiziert, wie im Block 614 angegeben. Gemäß Block 706 wird eine dritte Darstellung des bzw. der im Block 704 identifizierten Quasi-Kennungswerte generiert. Zum Beispiel wird bzw. werden in einigen Ausführungsformen der bzw. die im Block 704 identifizierten Quasi-Kennungswerte auf dieselbe oder eine analoge Dimensionalität wie die zweite Darstellung komprimiert.
-
Gemäß Block 708 wird die zweite Darstellung der dritten Darstellung zugeordnet. In einigen Ausführungsformen stellt diese Zuordnung sicher, dass beim Decodieren die ursprüngliche Eingabe (d.h. die erste Darstellung) nicht erneut generiert wird, wie dies bei typischen automatischen Decodierern der Fall ist, sondern stattdessen ein anderes Set von Daten generiert und decodiert wird. In Ausführungsformen erfolgt dies, um den Quasi-Kennungswert zu generalisieren und durch Quasi-Kennungswerte zu ersetzen, die weniger spezifisch, aber semantisch konsistent sind.
-
Gemäß Block 710 wird die dritte Darstellung in eine anzeigbare Version des bzw. der anonymisierten Quasi-Kennungswerte decodiert. Zum Beispiel kann die dritte Darstellung eine komprimierte Version sein, die in eine nicht komprimierte Version decodiert wird. In einer beispielhaften Veranschaulichung der „anzeigbaren Version“ kann der Abfrageprozessor zu einer Anzeigezeit nach einem Ausgeben einer Abfrage durch den Benutzer die anonymisierten Quasi-Kennungswerte (und die restlichen Daten) dekomprimieren und in einem zu einer im Folgenden beschriebenen Tabelle 830 von 8 analogen Schema darstellen oder anzeigen.
-
8 ist eine schematische Darstellung, die veranschaulicht, wie eine anonymisierte Datenbank zur Anzeigezeit gemäß Ausführungsformen aussehen kann. 8 enthält eine Tabelle 800, die eine private Datenbank darstellt, und die Tabelle 830, die dieselbe Tabelle 800 in anonymisierter Form darstellt. Wie in den Tabellen 800 und 830 veranschaulicht, gibt es eine Mehrzahl von Datensätzen, die Personen entsprechen, die unter dem Attribut „Name“ (z.B. die explizite Kennung) identifiziert werden. Jeder der Datenbank-Datensätze enthält bestimmte Werte (z.B. 65) in den Attributen „Alter“, „Postleitzahl“, „Bildungsniveau“ (z.B. die Quasi-Kennungen) und „Krankheit“ (z.B. die vertrauliche Kennung). Obwohl die Tabellen 800 und 830 spezielle Attribute, Datensätze und Werte auflisten, sollte klar sein, dass sie nur zu Veranschaulichungszwecken dienen, und dass jede Menge, jede Darstellung oder jeder Typ von Attributen, Datensätzen und Werten vorhanden sein kann.
-
Die Tabelle 800 listet Daten in unveränderter Form auf, sodass jeder Wert erkennbar ist und leicht zu einer Person zurück verknüpft werden kann. Dementsprechend sind keine Datenwerte unterdrückt oder anderweitig verschleiert (z.B. generalisiert) worden. Typischerweise ist es unerwünscht, Daten analog zu der Tabelle 800 zu veröffentlichen, da sie private Daten enthält, die andere mit Personen verknüpfen können, die sie kennen. Dementsprechend werden Techniken zur Anonymisierung ausgeführt, die einige oder alle Daten derart anonymisieren, dass vertrauliche Informationen nicht mit Personen verknüpft werden können, wobei gleichzeitig erwünschte Daten unverändert (oder minimal verändert) für Forschungs- oder andere Zwecke beibehalten werden.
-
Um die Daten in der Tabelle 800 zu anonymisieren, wird jeder der Zeichenfolgewerte 801-2 in dem Attribut „Bildungsniveau“ aus der Tabelle 800 extrahiert oder herauskopiert und durchläuft das bzw. die Worteinbettungs-Vektormodelle 803 (z.B. Worteinbettungs-Vektormodell(e) 103). Dementsprechend wird jeder der Zeichenfolgewerte 801-2 in dem Vektorraum (z.B. Vektorraum 309) gemäß einer semantischen oder einer anderen kontextbezogenen Ähnlichkeit mit anderen Wörtern zugeordnet. Der Abstand von jedem der Zeichenfolgewerte 801-2 zu einigen oder jedem der anderen Wörter in dem oder den Worteinbettungsmodellen 803 wird berechnet. Eine Richtlinie wird abgefragt, um zu bestimmen, welches Wort bzw. welche Wörter für die anonymisierte Tabelle 830 für das Attribut „Bildungsniveau“ verwendet werden. Eine Richtlinie besteht darin, den nächsten Nachbarn von jedem der Zeichenfolgewerte 801-2 auszuwählen, der entweder „Hochschulbildung“ oder „Grundstudium“ lautet, wie im Vektorraum 309 von 3 veranschaulicht.
-
Jeder der reellen Zahlenwerte 801-1 wird ebenfalls aus der Tabelle extrahiert oder herauskopiert und normalisiert, wie oben beschrieben wird. In einigen Ausführungsformen wird eine zweite Richtlinie oder ein Set von Richtlinien definiert, die Klassengrenzen oder Bereiche für einige oder jeden der reellen Zahlenwerte 801-1 bereitstellen, wie beispielsweise Richtlinien für k-Anonymität, t-Ähnlichkeit, und/oder /-Diversität. Zum Beispiel enthält die Richtlinie, wie in Tabelle 830 gezeigt, ein Gruppieren von Datenbank-Datensätzen nach Postleitzahlenbereich und Altersgruppe.
-
Jeder der reellen Zahlenwerte 801-1 und der Zeichenfolgewerte 801-2 durchläuft das Rauschausbreitungsmodul 121 (z.B. das Rauschausbreitungsmodul 121 von 1), um den reellen Zahlenwerten 801-1 und den Zeichenfolgewerten 801-2 gemäß den speziellen Richtlinien, die wie oben beschrieben verwendet werden, ein Rauschen hinzuzufügen. Zum Beispiel kann eine Richtlinie ein Suchen nach dem nächsten Nachbarn für jeden der Zeichenfolgewerte 901-2 und ein Darstellen von jedem der Werte durch den nächsten Nachbarn angeben. Wie in 8 veranschaulicht, wird jeder der Bildungsniveau-Zeichenfolgewerte von „Hochschulbildung“, „Bachelor“, „J.D.“, „M.D.“ und „Ph.D.“ von Tabelle 800 seinem nächsten Nachbarn zugeordnet, der entweder „Grundstudium“ oder „Hochschulbildung“ lautet, wie in der Tabelle 830 unter dem Attribut „Bildungsniveau“ veranschaulicht. Wenn dementsprechend ein Benutzer eine Abfrage ausgibt, wird statt der einzelnen Bildungsniveaus, die in der Tabelle 800 gezeigt sind, entweder „Hochsch.-Bildg.“ oder „Grundstud.“ angezeigt.
-
In einigen Ausführungsformen kann ein anderes Set von Richtlinien ein Definieren der Bereichsgrenzen und/oder des Aufteilungspunkts jeder Äquivalenzklasse durch einen reellen Zahlenbereich angeben, wie beispielsweise Altersgruppe und/oder Postleitzahlenbereich. Zum Beispiel veranschaulicht 8, dass jeder der reellen Zahlenwerte für das Altersattribut (27, 40, 65, 58, 34, 63, 40, 54, 58) in der Tabelle 800 als kleiner oder gleich 40 oder größer oder gleich 40 Jahre alt (eine Richtlinie) definiert ist, wie unter dem Altersattribut von Tabelle 830 veranschaulicht. Jeder der reellen Zahlenwerte für die Postleitzahl, wie in Tabelle 800 dargestellt, ist gemäß den letzten 3 identischen Zahlen einer bestimmten Postleitzahl gruppiert, wobei die letzte Zahl unterdrückt wird (weitere Richtlinie), wie unter dem Postleitzahlen-Attribut von Tabelle 830 gezeigt. Wenn dementsprechend ein Benutzer eine Abfrage ausgibt, wird statt der einzelnen Werte für Alter und Postleitzahl, die in der Tabelle 800 gezeigt sind, ≤ 40, ≥ 40, 4767*, 4790* oder 4760* angezeigt.
-
Die Attributwerte „Krankheit“ von Tabelle 800 bleiben unverändert, wie durch die Attributspalte „Krankheit“ von 830 gemäß den Richtlinien veranschaulicht, die in dem Rauschausbreitungsmodul 821 umgesetzt sind. Dementsprechend wird diesen vertraulichen Attributwerten kein Rauschen hinzugefügt. Obwohl jeder der Attributwerte „Krankheit“ soweit es Unterdrückung betrifft (d.h. sie sind vollständig anzeigbar) unverändert ist, wird die Datensatz-Reihenfolge von oben nach unten gemäß den Richtlinien geändert, wie oben angegeben. Jeder der Attributwerte „Name“ der Tabelle 800 wird ebenfalls unterdrückt, wie unter der Attributspalte „Name“ der Tabelle 830 veranschaulicht, da Namen für den Forschungszweck von 8 nicht wichtig sind. Es ist ebenfalls wünschenswert, dass die unveränderten Attributwerte „Krankheit“ mit keinem bestimmten Namen verknüpft werden können. Wie veranschaulicht, ist keinem der Attributwerte für „Name“ ein Rauschen hinzugefügt, da sie das Rauschausbreitungsmodul 821 nicht durchlaufen.
-
Die Ausgabe von Datenbank-Datensätzen und ihren Werten in der Tabelle 830 veranschaulicht, dass es drei Äquivalenzklassen gibt, zu denen die Äquivalenzklasse 823 gehört. Eine Äquivalenzklasse ist ein Set von Datensätzen in einem anonymisierten Objekt, die dieselben Werte für mindestens eines der Quasi-Kennungsattribute haben. Dementsprechend ist eine Äquivalenzklasse ein untergeordnetes Set von Daten, die in einer Gruppe zusammengefasst sind und als ein einzelner Wert für ein bestimmtes Attribut dargestellt werden. Die Äquivalenzklasse 823 veranschaulicht zum Beispiel, dass jeder der Datensätze denselben Wert ≥ 40 in seinem jeweiligen Attribut „Alter“ und „4767*“ in seinem jeweiligen Attribut „Postleitzahl“ hat. Die Werte „Bildungsniveau“ sind jedoch nicht dieselben für jeden Datensatz, da die Werte entweder „Hochsch.-Bildg.“ oder „Grundstud.“ lauten.
-
Äquivalenzklassen können auf jede geeignete Weise organisiert werden. 8 veranschaulicht, dass die Äquivalenzklassen nach den Bereichen Alter und Postleitzahl organisiert sind. In einigen Ausführungsformen können Äquivalenzklassen zusätzlich oder stattdessen unter Verwendung der „vertraulichen“ Attribute und/oder anderen Quasi-Attributen organisiert werden. Zum Beispiel können die Werte „Bildungsniveau“ in der Tabelle 830 in einigen Ausführungsformen für eine bestimmte Äquivalenzklasse dieselben sein. In einem veranschaulichenden Beispiel gibt es drei Datensätze mit einem Wert „Hochsch.-Bildg.“, und jeder dieser Datensätze kann in eine Äquivalenzklasse gruppiert werden. In einem anderen veranschaulichenden Beispiel können alle Werte für „Herzerkrankung“ und deren entsprechende Datensätze zusammen in einer Äquivalenzklasse in einer Gruppe zusammengefasst werden.
-
9 ist ein Blockschaubild einer Datenverarbeitungsumgebung 900 gemäß den Ausführungsformen. Die Datenverarbeitungsumgebung 900 enthält eine oder mehrere Benutzereinheiten 902 (z.B. die Datenverarbeitungseinheit 12 von 11), die im Datenaustausch über ein oder mehrere Netzwerke 918 mit jeder der anonymisierten Datenbanken 904, 906 und 908 verbunden sind. Jede dieser anonymisierten Datenbanken war zu einem bestimmten Zeitpunkt als eine private Datenbank vorhanden - private Datenbanken 910, 912 und 914.
-
In einigen Ausführungsformen entspricht jede der privaten Datenbanken 910, 912 und 914 (z.B. die Tabelle 800 von 8) den privaten Datenspeichern von verschiedenen Entitäten. Zum Beispiel entspricht die private Datenbank 910 in einigen Ausführungsformen in Bezug auf Gesundheitsdaten einem Datenbankserver eines ersten Krankenhauses, die private Datenbank 912 entspricht einem Datenbankserver eines zweiten Krankenhauses und die private Datenbank 914 entspricht einem Datenbankserver eines dritten Krankenhauses. Die privaten Datenbanken enthalten Daten in einer unveränderten Form, sodass jedes Attribut und jeder Wert vollständig anzeigbar ist.
-
Jede der privaten Datenbanken wird für eine entsprechende anonymisierte Datenbank anonymisiert (z.B. über den Prozess 500 von 5 und/oder den in 1 veranschaulichten Blockschaubildablauf). Zum Beispiel kann die private Datenbank 910 die Tabelle 800 von 8 enthalten, und wenn sie zur anonymisierten Datenbank 904 wird, ist sie gemäß der Tabelle 830 von 8 anzeigbar und führt alle Funktionen aus, die notwendig sind, um zur Tabelle 830 zu werden.
-
Ein Benutzer, wie beispielsweise ein Forscher, der die Benutzereinheit(en) 902 verwendet, möchte zum Beispiel Daten erhalten, die sich auf jeder der anonymisierten Datenbanken befinden. Dementsprechend gibt bzw. geben die Benutzereinheit(en) 902 eine Mehrzahl von Anforderungen (z.B. Leseanforderungen) über das bzw. die Netzwerke 918 aus, um auf die Daten in jeder der anonymisierten Datenbanken zuzugreifen. Die Benutzereinheit(en) 902 und die anonymisierten Datenbanken stellen miteinander Verbindungen über das bzw. die Netzwerke 918 her. Das bzw. die Netzwerke 918 sind oder enthalten jedes geeignete Netzwerk, wie beispielsweise ein lokales Netzwerk (LAN), ein allgemeines Weitverkehrsnetzwerk (WAN), ein persönliches Netzwerk (PAN) und/oder ein öffentliches Netzwerk (z.B. das Internet). In einigen Ausführungsformen ist oder enthält die Datenverarbeitungsumgebung 900 die Cloud-Computing-Umgebung 50, wie in 11 beschrieben.
-
10 ist ein Blockschaubild einer Datenverarbeitungsumgebung 1000 gemäß Ausführungsformen. Die Datenverarbeitungsumgebung 1000 enthält eine oder mehrere Benutzereinheiten 1002 (z.B. die Datenverarbeitungseinheit 12 von 11), die im Datenaustausch über ein oder mehrere Netzwerke 1018 mit einer aggregierten anonymisierten Datenbank 1004 verbunden sind. Die aggregierte anonymisierte Datenbank 1004 ist ein einzelner zentraler Datenspeicher, der eine anonymisierte Gruppe von Datenbanken enthält. Die aggregierte anonymisierte Datenbank 1004 war zu einem Zeitpunkt als eine aggregierte private Datenbank 1006 vorhanden. Die aggregierte private Datenbank 1006 ist ein einzelner zentraler privater Datenspeicher, der jede der privaten Datenbanken 1008, 1010 und 1012 enthält.
-
In einigen Ausführungsformen entspricht jede der privaten Datenbanken 1008, 1010 und 1012 privaten Datenspeichern von verschiedenen Entitäten. Zum Beispiel entspricht die private Datenbank 1008 in einigen Ausführungsformen in Bezug auf Gesundheitsdaten einem Server eines ersten Gesundheitszentrums, die private Datenbank 1010 entspricht einem Server eines zweiten Gesundheitszentrums und die private Datenbank 1012 entspricht einem Server eines dritten Gesundheitszentrums. Die privaten Datenbanken enthalten Daten in einer unveränderten Form, sodass jedes Attribut und jeder Wert vollständig anzeigbar ist.
-
Jede der privaten Datenbanken wird durch eine unabhängige Quelle in einen Datenspeicher aggregiert oder konsolidiert, wie zum Beispiel eine vertrauenswürdige dritte Partei (z.B. eine Entität von einer oder mehreren anderen Datenverarbeitungseinheiten, die von Entitäten getrennt sind, die den privaten Datenbanken 1008, 1010 und 1012 zugehörig sind). Die aggregierte private Datenbank 1006 wird anschließend für die entsprechende aggregierte anonymisierte Datenbank 1004 anonymisiert (z.B. über den Prozess 500 von 500 und/oder den in 1 veranschaulichten Blockschaubildablauf). Zum Beispiel kann die aggregierte private Datenbank 1006 mehrere Tabellen oder Datenbanken analog zur Tabelle 800 von 8 enthalten, und wenn sie anonymisiert werden, um zur aggregierten anonymisierten Datenbank 1004 zu werden, sind mehrere Tabellen und/oder Datenbanken analog zur Tabelle 830 von 8 anzeigbar und führen alle Funktionen aus, die notwendig sind, um zur Tabelle 830 zu werden.
-
Ein Benutzer, wie beispielsweise ein Forscher, der die Benutzereinheit(en) 1002 verwendet, möchte zum Beispiel Daten erhalten, die sich auf der aggregierten anonymisierten Datenbank 1004 befinden. Dementsprechend gibt bzw. geben die Benutzereinheit(en) 1002 eine Anforderung über das bzw. die Netzwerke 1018 aus, um auf die Daten in der aggregierten anonymisierten Datenbank 1004 zuzugreifen. Die Benutzereinheit(en) 1002 und die aggregierte anonymisierte Datenbank 1004 stellen Verbindungen miteinander über das bzw. die Netzwerke 1018 her. Das bzw. die Netzwerke 1018 sind oder enthalten jedes geeignete Netzwerk, wie beispielsweise ein lokales Netzwerk (LAN), ein allgemeines Weitverkehrsnetzwerk (WAN), ein persönliches Netzwerk (PAN) und/oder ein öffentliches Netzwerk (z.B. das Internet). In einigen Ausführungsformen ist oder enthält die Datenverarbeitungsumgebung 1000 die Cloud-Computing-Umgebung 50, wie in 11 beschrieben.
-
Obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud Computing enthält, sollte klar sein, dass die Umsetzung der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jedem beliebigen Typ von jetzt bekannter oder später entwickelter Datenverarbeitungsumgebung umgesetzt werden.
-
Cloud Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle enthalten.
-
Die Eigenschaften sind wie folgt:
- On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
- Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
- Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
- Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt, und sie können jederzeit in jeder beliebigen Menge gekauft werden.
- Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
-
Es gibt folgende Dienstmodelle:
- Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. eine auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
- Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
- Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Nutzungsmodelle:
- Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb von Geschäftsräume vorhanden sein.
- Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
- Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
- Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die eine Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt von Cloud Computing steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten enthält.
-
Unter folgender Bezugnahme auf 11 wird eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, enthält die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Datenverarbeitungseinheiten Daten austauschen können, die von Nutzern der Cloud verwendet werden, wie beispielsweise Personal Digital Assistant (PDA) oder Mobiltelefon 54A, Desktop-Computer 54B, Laptop-Computer 54C und/oder Fahrzeug-Computersystem 54N. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert werden (nicht gezeigt), wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder in einer Kombination davon. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sollte klar sein, dass die in 11 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
-
Unter folgender Bezugnahme auf 12 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die von der Cloud Computing-Umgebung 50 (11) bereitgestellt werden. Dabei sollte von Anfang an klar sein, dass die in 12 gezeigten Komponenten, Schichten und Funktionen, die in 12 gezeigt werden, lediglich zur Veranschaulichung dienen 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: Mainframes 61; Server auf Grundlage einer RISC- (Reduced Instruction Set Computer) Architektur 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und vernetzte Komponenten 66. In einigen Ausführungsformen enthalten Software-Komponenten Software für Netzwerkanwendungsserver 67 und Datenbank-Software 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden beispielhaften virtuellen Entitäten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich 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. Die Ressourcenbereitstellung 81 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung 82 ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware enthalten. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Nutzer und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung 84 sorgt für die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen, sodass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) 85 stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
-
Eine Arbeitslastschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Arbeitslasten 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 Rauschausbreitung auf Grundlage von Datenanonymisierung 96 (z.B. Anonymisierung auf Grundlage des Prozesses 500 von 5).
-
13 ist ein Blockschaubild einer Datenverarbeitungseinheit gemäß den Ausführungsformen. Wie in 13 gezeigt, wird die Datenverarbeitungseinheit 12 in der Form einer Universal-Datenverarbeitungseinheit gezeigt, die nicht notwendigerweise von einem Fachmann als ein allgemeiner Computer konzipiert sein muss, der allgemeine Funktionen ausführt. Die Datenverarbeitungseinheit 12 ist stattdessen nur eine Veranschaulichung dessen, welche Komponenten eine Datenverarbeitungseinheit enthalten kann. Die Komponenten der Datenverarbeitungseinheit 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 enthalten, der verschiedene Systemkomponenten einschließlich des Systemarbeitsspeichers 28 mit dem Prozessor 16 verbindet, sie sind aber nicht darauf beschränkt. In einigen Ausführungsformen stellt die Datenverarbeitungseinheit 12 die Benutzereinheiten 902, 1002, eine Datenverarbeitungseinheit, die anonymisierte Datenbanken (z.B. 904) enthält, die aggregierte anonymisierte Datenbank 1004, die Datenverarbeitungseinheiten 54 und/oder die in 11 enthaltenen Knoten 10 und/oder eine Einheit dar, die den Ablauf von 1 umsetzt.
-
Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeichercontrollers, eines Peripheriebusses, eines Accelerated Graphics Port (beschleunigter Grafikanschluss) und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen einen Industry Standard Architecture- (ISA) Bus, Micro Channel Architecture- (MCA) Bus, Enhanced ISA- (EISA) Bus, einen lokalen Video Electronics Standards Association- (VESA) Bus und Peripheral Component Interconnect- (PCI) Bus.
-
Die Datenverarbeitungseinheit 12 enthält typischerweise eine Vielfalt von Medien, die von einem Computersystem gelesen werden können. Derartige Medien können alle verfügbaren Medien sein, auf die von der Datenverarbeitungseinheit 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.
-
Der Systemarbeitsspeicher 28 kann vom Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher enthalten wie beispielsweise einen Direktzugriffspeicher (RAM) 30 und/oder einen Cache-Speicher 32. Die Datenverarbeitungseinheit 12 kann ferner weitere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 34 zum Lesen von und Schreiben auf nicht austauschbaren, nicht flüchtigen Magnetdatenträger bereitgestellt werden (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet). Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Auslesen und Beschreiben einer austauschbaren, nichtflüchtigen Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Auslesen oder Beschreiben einer austauschbaren, nichtflüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Datenträger bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie ferner im Folgenden dargestellt und beschrieben wird, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen enthalten, die konfiguriert sind, um die Funktionen von Ausführungsformen der Erfindung auszuführen.
-
Ein Programm/Dienstprogramm 40, das einen Satz (mindestens einen) von Programmmodulen 42 aufweist, kann beispielsweise und nicht einschränkend im Arbeitsspeicher 28 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination davon können eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus, wie hierin beschrieben wird. Zum Beispiel können die Programmmodule 42 der Ablauf von 1, die in 2 beschriebenen Prozesse, die in 3 beschriebenen Verfahren, das in 4 beschriebene Rauschausbreitungsmodul 121, der Prozess 500, der Prozess 600, der Prozess 700, die in 8 beschriebenen Funktionen, die in 9 und/oder 10 beschriebenen Funktionen der Datenverarbeitung sein oder diese enthalten.
-
Die Datenverarbeitungseinheit 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie zum Beispiel einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit der Datenverarbeitungseinheit 12 zu interagieren; und/oder allen Einheiten (z.B. Netzwerkkarte, Modem usw.), die es der Datenverarbeitungseinheit 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe-/Ausgabe- (E/A) Schnittstellen 22 erfolgen. Weiterhin kann die Datenverarbeitungseinheit 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. Das Internet) über einen Netzwerkadapter 20 Daten austauschen Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten der Datenverarbeitungseinheit 12 über den Bus 18 Daten aus. Es sollte klar sein, dass, obwohl nicht gezeigt, andere Hardware- und/oder Software-Komponenten in Verbindung mit der Datenverarbeitungseinheit 12 verwendet werden könnten. Zu Beispielen gehören Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID- (Redundant Array of Independent Disks) Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw., sie sind aber nicht darauf beschränkt.
-
Bei Aspekten der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte der verschiedenen Ausführungsformen auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. 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 Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, 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 des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, 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 andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel 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 Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, 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 von Ausführungsformen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche 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 dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte von Ausführungsformen der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen 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, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
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 Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber auf dem Markt gefundenen Technologien zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
-
Die Folgenden Definitionen sind für diese Offenbarung spezifisch:
- „Und/oder“ ist die einschließende Disjunktion, auch bekannt als logische Disjunktion und allgemein bekannt als das „einschließliche oder“. Zum Beispiel bedeutet der Ausdruck „A, B und/oder C“, dass mindestens eines von A oder B oder C wahr ist; und „A, B und/oder C“ ist nur falsch, wenn jedes von A und B und C falsch ist.
- Ein „Set“ von Elementen bedeutet, dass ein oder mehrere Elemente vorhanden sind; es muss zumindest ein Element vorhanden sein, aber es können auch zwei, drei oder mehr Elemente vorhanden sein. Ein „untergeordnetes Set“ von Elementen bedeutet, dass ein oder mehrere Elemente in einer Gruppierung von Elementen vorhanden sind, die ein gemeinsames Merkmal enthalten.
- „Enthält“ und jede Variante (z.B. enthaltend, enthalten usw.) bedeutet, sofern nicht ausdrücklich anders angegeben, „enthält, ist aber nicht notwendigerweise darauf beschränkt“.
- Ein „Benutzer“ oder ein „Abonnent“ umfasst, ist aber nicht notwendigerweise beschränkt auf: (i) einen einzelnen Menschen ; (ii) eine künstliche Intelligenzentität mit ausreichender Intelligenz, um anstelle eines einzelnen Menschen oder mehr als einem Menschen zu handeln; (iii) eine Geschäftsentität, für die durch einen einzelnen Menschen oder mehr als einen Menschen Maßnahmen ergriffen werden; und/oder (iv) eine Kombination von irgendeinem oder mehreren zugehörigen „Benutzern“ oder „Abonnenten“, die als ein einzelner „Benutzer“ oder „Abonnent“ handeln.
- Die Begriffe „empfangen“, „bereitstellen“, senden“, „eingeben“, „ausgeben“ und „melden“ sollten nicht so aufgefasst werden, dass sie, sofern nicht ausdrücklich anders angeben, Folgendes angeben oder umsetzen: (i) einen speziellen Grad einer Direktheit in Bezug auf die Beziehung zwischen einem Objekt und einem Subjekt; und/oder (ii) ein Vorhandensein oder Fehlen eines Sets von dazwischenliegenden Komponenten, dazwischenliegenden Aktionen und/oder Dingen, die zwischen einem Objekt und einem Subjekt angeordnet sind.
- Ein „Modul“ ist jedes Set von Hardware, Firmware und/oder Software, das funktionell zum Ausführen einer Funktion arbeitet, ohne Berücksichtigung, ob das Modul: (i) sich in einer einzelnen lokalen Nähe befindet; (ii) über einen weiten Bereich verteilt ist; (iii) sich in einer einzelnen Nähe in einem größeren Abschnitt von Software-Code befindet; (iv) sich in einem einzelnen Abschnitt von Software-Code befindet; (v) sich in einer einzelnen Speichereinheit, einem Arbeitsspeicher oder Medium befindet; (vi) mechanisch verbunden ist; (vii) elektrisch verbunden ist; und/oder (viii) in Datenaustausch verbunden ist. Ein „untergeordnetes Modul“ ist ein „Modul“ in einem „Modul“.
- Ein „Datenspeicher“, wie hierin beschrieben, ist jeder Typ von Repository zum Speichern und/oder Verwalten von Daten. Zum Beispiel kann ein Datenspeicher eines oder mehreres sein oder enthalten von: Datenbanken, Dateien (z.B. von unstrukturierten Daten), Körpern, digitalen Dokumenten usw.
- Der Begriff „veranlassend“ oder „veranlassen“ bedeutet, dass ein oder mehrere Systeme (z.B. Datenverarbeitungseinheiten) und/oder Komponenten (z.B. Prozessoren) für sich allein oder in Kombination mit anderen Systemen und/oder Komponenten ein bestimmtes Ergebnis oder eine bestimmte Wirkung erzielen oder deren Erzielen unterstützen können. Zum Beispiel kann eine Server-Datenverarbeitungseinheit „veranlassen“, dass eine Nachricht für eine Benutzereinheit angezeigt wird (z.B. durch ein Übertragen einer Nachricht zu der Benutzereinheit), und/oder dieselbe Benutzereinheit „veranlassen“ kann, dass dieselbe Nachricht angezeigt wird (z.B. durch einen Prozessor, der Anweisungen ausführt, und Daten in einem Anzeigespeicher der Benutzereinheit). Dementsprechend können ein oder beide Systeme für sich allein oder zusammen die Wirkung eines Anzeigens einer Nachricht „veranlassen“.
- Der Begriff „Datenverarbeitungssystem“ oder „Einheit“ bedeutet eine einzelne Datenverarbeitungseinheit (z.B. eine mobile Einheit) und/oder mehrere Datenverarbeitungseinheiten (z.B. mehrere Cloud-Computing-Knoten).
- Die Begriffe erste/r/s (z.B. erster Cache), zweite/r/s (z.B. zweiter Cache) usw. sind nicht so aufzufassen, dass sie Reihenfolgen oder Zeitabfolgen angeben oder implizieren, sofern dies nicht ausdrücklich angegeben ist. Stattdessen sind sie so aufzufassen, dass sie zwei oder mehrere Elemente voneinander unterscheiden. In einigen Ausführungsformen haben die zwei oder die mehreren Elemente, obwohl sie voneinander unterscheidbar sind, denselben Aufbau. Zum Beispiel können ein erster Arbeitsspeicher und ein zweiter Arbeitsspeicher tatsächlich zwei getrennte Arbeitsspeicher sein, aber beide können RAM-Einheiten mit derselben Speicherkapazität sein (z.B. 4 GB).