DE202017007517U1 - Aggregatmerkmale für maschinelles Lernen - Google Patents

Aggregatmerkmale für maschinelles Lernen Download PDF

Info

Publication number
DE202017007517U1
DE202017007517U1 DE202017007517.2U DE202017007517U DE202017007517U1 DE 202017007517 U1 DE202017007517 U1 DE 202017007517U1 DE 202017007517 U DE202017007517 U DE 202017007517U DE 202017007517 U1 DE202017007517 U1 DE 202017007517U1
Authority
DE
Germany
Prior art keywords
aggregate
feature
value
records
metric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202017007517.2U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Twitter Inc
Original Assignee
Twitter Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Twitter Inc filed Critical Twitter Inc
Publication of DE202017007517U1 publication Critical patent/DE202017007517U1/de
Expired - Lifetime legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Ein System von Computern, aufweisend:
mindestens einen Prozessor;
einen Speicher, der Aggregatdefinitionen speichert, wobei jede Aggregatdefinition Folgendes spezifiziert:
ein Schlüsselfeld,
einen Ausgabespeicher,
mindestens ein Merkmal,
mindestens einen Halbwertszeitwert, und
mindestens eine Aggregatoperation;
Speicher, der eine Aggregationsmaschine speichert, die konfiguriert ist, um Aggregatmerkmalsdatensätze zu erzeugen durch:
Bestimmen, dass eine Eingabequelle ein Feld hat, das einem Schlüsselfeld in
einer ersten Aggregatdefinition der Aggregatdefinitionen entspricht, wobei das Feld einen entsprechenden Wert in der Eingabequelle hat, Feststellen, dass der in der ersten Aggregatdefinition spezifizierte
Ausgabespeicher keinen Aggregatmerkmalsdatensatz für den entsprechenden Wert aufweist, und
als Reaktion auf die Feststellung, dass dem Ausgabespeicher der
Aggregatmerkmalsdatensatz fehlt, Erzeugen und Speichern des Aggregatmerkmalsdatensatzes in dem Ausgabespeicher, wobei der Aggregatmerkmalsdatensatz einen Schlüsselwert enthält, der mit dem entsprechenden Wert übereinstimmt, und Aggregatmetriken für eindeutige Kombinationen von Aggregatoperationen, Merkmalen und Halbwertszeiten enthält, die in der ersten Aggregatdefinition angegeben sind, und Halbwertszeitwerten enthält, die in der ersten Aggregatdefinition spezifiziert sind, wobei eine Aggregatmetrik der Aggregatmetriken eine Aggregatoperation darstellt, die auf Werte von Datensätzen in der Eingabequelle eines Merkmals in der ersten Aggregatdefinition angewandt wird, wobei die Aggregatmetrik mit einem Halbwertszeitwert aus der ersten Aggregatdefinition verknüpft ist, und
Speicher, der einen Abfragedienst speichert, der konfiguriert ist, um:
von einem anfordernden Prozess eine Anforderung mit Abfrageparametern zu empfangen, die ein Schlüssel-Wert-Paar spezifizieren,
aus den Aggregatdefinitionen zweite Aggregatdefinitionen zu identifizieren, wobei jede zweite Aggregatdefinition ein Feld aufweist, das dem Schlüssel des Schlüssel-Wert-Paares entspricht,
in Ausgabespeichern, die in den zweiten Aggregatdefinitionen spezifiziert
sind, antwortende Aggregatmerkmalsdatensätze zu identifizieren, die einen Wert haben, der dem Wert des Schlüssel-Wert-Paares entspricht,
für jede Aggregatmetrik in den antwortenden aggregierten
Merkmalsdatensätzen eine aktualisierte Metrik zu berechnen, indem der Halbwertszeitwert, der mit dem aggregierten Merkmalsdatensatz verknüpft ist, auf die Aggregatmetrik angewendet wird,
die antwortenden aggregierten Merkmalsdatensätze mit aktualisierten Metriken an den anfordernden Prozess bereitzustellen, und
durch den anfordernden Prozess eine Ausgabe von einem neuronalen Netz zu erhalten, das die antwortenden aggregierten Merkmalsdatensätze als Eingabe verwendet.

Description

  • Nach den Bestimmungen des Gebrauchsmustergesetzes sind nur Vorrichtungen, wie sie in den beigefügten Schutzansprüchen definiert sind, schutzfähig und Gegenstand des Gebrauchsmusters, nicht aber Verfahren. Soweit in der nachfolgenden Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen nur der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen geschützten Vorrichtung(en).
  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist eine Fortsetzung der und beansprucht Priorität für die US-Vorläufige Anmeldung Nr. 62/373,946 mit dem Titel „Data Science and Machine Learning at Scale“, die am 11. August 2016 eingereicht wurde und deren Offenbarung hierin durch Bezugnahme aufgenommen wird.
  • HINTERGRUND
  • Maschinelles Lernen ist ein Forschungsgebiet, in dem ein Computer oder Computer lernen, Klassen von Aufgaben auszuführen, indem sie das Feedback nutzen, das aus den Erfahrungen oder Daten generiert wird, die der maschinelle Lernprozess während der Ausführung dieser Aufgaben durch den Computer sammelt. Beim maschinellen Lernen werden in der Regel Beispieleingaben zum Trainieren eines maschinell erlernten Modells bereitgestellt, und sobald das Modell trainiert wurde, kann es in einem Inferenzmodus verwendet werden, um die Aufgabe anhand einer neuen, zuvor nicht gesehenen Eingabe auszuführen. Die Beispieleingaben für das Training einer Schlussfolgerung werden üblicherweise als Merkmale bezeichnet. Vorhersagen und Klassifizierungen, die von Modellen des maschinellen Lernens getroffen werden, hängen in hohem Maße von den Merkmalen der bereitgestellten Eingaben ab. Historische Daten können für einige dieser Prozesse wertvoll sein, sind aber teuer in der Speicherung, und die Berechnung historischer Metriken (z. B. Zählungen, Durchschnittswerte, Verhältnisse usw.) kann große Mengen an Verarbeitungszyklen erfordern.
  • ZUSAMMENFASSUNG
  • Die Implementierungen bieten eine flexible Infrastruktur zum Definieren, Berechnen und Verwenden historischer Daten, um Eingangsmerkmale für ein maschinengelemtes Modell zu erzeugen. Die von den historischen Daten erzeugten Merkmale können verwendet werden, um die Vorhersagen des Modells für bestimmte Datenelemente zu verbessern (z. B. für personalisierte Empfehlungen). Aggregatmerkmale sind Datensätze, die einen Wert für eine Aggregatfunktion (Anzahl, Durchschnitt usw.) eines Merkmals über ein bestimmtes Zeitfenster speichern. Diese Werte können hier als Metriken oder Aggregatmetriken bezeichnet werden. Die Infrastruktur umfasst ein Schema für die Definition von Aggregaten und ein gemeinsames Format für Ausgabedatensätze, das es ermöglicht, neue Aggregate (Gruppierungen) und neue Metriken für die Aggregate im Handumdrehen hinzuzufügen. Die Aggregatmerkmaldatensätze können durch ein oder mehrere Felder indiziert werden. Mit dem Schema kann ein Benutzer festlegen, welche Felder indiziert werden sollen, welche Felder für die Aggregatoperationen verwendet werden sollen und wie lange ein Halbwertszeit für den Verfall sein soll. Das Schema kann mit beliebigen Eingabedatensätzen arbeiten. Das Schema kann sowohl von Offline-/Stapel-Prozessen als auch von Online-/Echtzeitprozessen verwendet werden. So können Implementierungen Signale erfassen, die für einen kurzen Zeitrahmen wichtig sind. Solche Aggregate können verwendet werden, um relevantere Inhalte für einen bestimmten Benutzer mit geringer Latenzzeit bereitzustellen, z. B. um Informationen in Echtzeit zu finden und um Abfragevorschläge (z. B. Type-ahead, Rechtschreibung, verwandte Suchen) zu machen, die ebenfalls unverbraucht und in Echtzeit sind.
  • In einem Aspekt umfasst ein System mindestens einen Prozessor und einen Speicher, der Aggregatdefinitionen speichert. Jede Aggregatdefinition kann einen Schlüssel, einen Ausgabespeicher, ein Merkmal, einen Halbwertszeitwert und eine Aggregatoperation spezifizieren, die auf eine Kreuzung des Merkmals und des Halbwertszeitwerts anzuwenden ist, um Aggregatmetriken zu erzeugen. Das System kann auch einen Speicher enthalten, in dem eine Aggregationsmaschine gespeichert ist, die so konfiguriert ist, dass sie Aggregatmerkmaldatensätze aus der Eingabequelle auf der Grundlage der Aggregatdefinitionen erzeugt und die Aggregatmerkmaldatensätze in dem Ausgabespeicher speichert, wobei ein Aggregatmerkmaldatensatz eine Aggregatmetrik für das Merkmal enthält, das im Laufe der Zeit unter Verwendung des Halbwertszeitwerts verfällt. Das System kann auch einen Speicher enthalten, der einen Abfragedienst speichert. Der Abfragedienst ist so konfiguriert, dass er eine Anfrage mit Parametern empfängt und unter Verwendung der Aggregatdefinitionen ansprechende Aggregatmerkmaldatensätze identifiziert, die die Parameter erfüllen. Der Abfragedienst ist ferner so konfiguriert, dass er die Halbwertszeit auf die ansprechenden Merkmalsdatensätze anwendet und die ansprechenden Merkmalsdatensätze einem Anforderer bereitstellt, wobei der Anforderer die ansprechenden Merkmalsdatensätze als Eingabe für ein neuronales Netz verwendet.
  • In einem Aspekt umfasst ein Verfahren das Lesen eines neuen Datensatzes aus einer Eingabequelle und den Zugriff auf eine Vielzahl von Aggregatdefinitionen. Jede der mehreren Aggregatdefinitionen spezifiziert einen Schlüssel, einen Ausgabespeicher, der einen Ort für aus der Aggregatdefinition erzeugte Aggregatdatensätze angibt, einen Merkmalssatz, der ein oder mehrere Informationsfelder aus der Eingabequelle angibt, einen Halbwertszeitwertsatz, der einen oder mehrere Zeiträume angibt, und einen Satz von Aggregatoperationen, die auf eine Kreuzung aus dem Merkmalssatz und dem Halbwertszeitwertsatz anzuwenden sind, um einen Satz von Aggregatmetriken zu erzeugen. Das Verfahren kann die Bestimmung eines jeweiligen Eingabeschlüsselwertes für jede der Aggregatdefinitionen auf der Grundlage des Zugriffs beinhalten. Der jeweilige Eingabeschlüsselwert wird auf der Grundlage des Schlüssels für die Aggregatdefinition und eines entsprechenden Wertes aus dem neuen Datensatz bestimmt. Das Verfahren umfasst auch das Identifizieren erster Aggregatmerkmaldatensätze in Ausgabespeichern, die mit der Vielzahl von Aggregatdefinitionen verknüpft sind, wobei jeder erste Aggregatmerkmaldatensatz einen Wert für den Schlüssel aufweist, der mit dem jeweiligen Eingabeschlüsselwert für die Aggregatdefinition übereinstimmt. Jeder erste Aggregatmerkmaldatensatz enthält eine oder mehrere Aggregatmetriken, wobei die Mehrzahl eine Kreuzung des Merkmalssatzes, des Halbwertszeitwertsatzes und des in der Aggregatdefinition spezifizierten Aggregatoperationssatzes darstellt. Das Verfahren umfasst auch für jeden der ersten Aggregatmerkmaldatensätze das Aktualisieren der Aggregatmetriken unter Verwendung des Datensatzes von der Eingabequelle und eines auf die Aggregatmetriken angewandten Halbwertszeitverfalls. Das Verfahren umfasst auch die Verwendung der Aggregatmerkmaldatensätze als Eingabe für ein neuronales Netz.
  • In einem Aspekt umfasst ein Verfahren den Empfang eines Abfrageparameters und die Bestimmung von Aggregatdefinitionen aus einer Vielzahl von Aggregatdefinitionen, die auf den Parameter ansprechen. Jede der mehreren Aggregatdefinitionen spezifiziert einen Schlüssel, einen Ausgabespeicher, der einen Ort für aus der Aggregatdefinition erzeugte Aggregatdatensätze angibt, einen Merkmalssatz, der ein oder mehrere Informationsfelder aus der Eingabequelle angibt, einen Halbwertszeitwertsatz, der eine oder mehrere Zeitperioden angibt, und einen Satz von Aggregatoperationen, der einen oder mehrere Aggregatoperatoren angibt, die auf eine Kreuzung aus dem Merkmalssatz und dem Halbwertszeitwertsatz anzuwenden sind. Das Verfahren kann auch beinhalten, dass ansprechende Aggregatmerkmaldatensätze, die auf den Parameter ansprechen, aus Ausgabespeichern erhalten werden, die in den ansprechenden Aggregatdefinitionen angegeben sind, und dass ein Halbwertszeitverfall auf jeden ansprechenden Aggregatmerkmaldatensatz angewendet wird. Der Halbwertszeitverfall für einen bestimmten Aggregatmerkmaldatensatz kann auf einem Zeitstempel, der mit dem bestimmten Aggregatmerkmaldatensatz verknüpft ist, und einem Zeitstempel der letzten Aktualisierung basieren. Das Verfahren kann auch die Bereitstellung der ansprechenden Aggregatmerkmaldatensätze als Eingabe für ein neuronales Netz umfassen.
  • Implementierungen können einen oder mehrere der folgenden Vorteile beinhalten. Zum Beispiel umfassen die offengelegten Implementierungen die Fähigkeit, Merkmale aus Echtzeit-Inhalten in einem sich schnell ändernden und großen Korpus zu generieren. Die Merkmale können verwendet werden, um einem bestimmten Benutzer zusätzliche Inhalte vorzuschlagen oder zu empfehlen. Beispielsweise können die Merkmale einem maschinell lernenden Bewerters helfen, den Rang einer Nachricht (z. B. eines Tweets oder Posts) auf der Grundlage der Aggregate zu personalisieren. So können Echtzeit-Benutzerinteraktionen in Empfehlungen für sich schnell ändernde Inhalte verwendet werden. Als ein weiteres Beispiel können Aggregatmetriken einfach hinzugefügt und entfernt werden, was die Wartung von Extraktions- und Abfrageprozessen minimiert, die erforderlich sind, um die neuen Signale in Trainingsprozesse einzubinden. So kann beispielsweise eine neue Aggregatgruppierung, ein neues Merkmal und/oder ein neuer Aggregatoperator ohne Codeänderungen hinzugefügt werden. Sobald die neuen Aggregatmerkmaldatensätze vorhanden sind, können sie in bestehende Trainings- und Inferenzpipelines integriert werden. So kann beispielsweise die Ausgabe eines neuronalen Netzes mit einem Merkmal trainiert werden, das eine neue Aggregatgruppierung oder neue Aggregatoperatoren repräsentiert, und mit einem älteren neuronalen Netz verglichen werden, dem das Merkmal fehlt, um festzustellen, ob das neue Merkmal die Ausgabe verbessert. Wenn dies nicht der Fall ist, kann die neue Gruppierung oder das neue Merkmal einfach aus dem Schema entfernt werden.
  • Als ein weiteres Beispiel ist das Schema generisch und kann sowohl von einem Online- als auch von einem Offline-Prozess verwendet werden, um die Merkmale zu generieren, die dann sowohl beim Online-Training eines maschinengelernten Modells als auch beim Online-Training eines maschinengelernten Modells verwendet werden können. Durch die Flexibilität und Wiederverwendbarkeit des Schemas wird die Wartung des Codes reduziert, da die Wartung im Zusammenhang mit dem Hinzufügen eines einzelnen Aggregats nur einmal anstatt viermal erfolgen muss.
  • Figurenliste
    • 1 ist ein schematisches Diagramm eines Beispiels eines Systems zur Erzeugung von Aggregatmerkmalen gemäß einer Implementierung.
    • 2 zeigt ein Beispiel für ein Schema zur Definition von Aggregatmerkmalen gemäß einer Implementierung.
    • 3 ist ein Flussdiagramm eines Beispielprozesses für die Verwendung von Aggregatmerkmaldefinitionen zur Erzeugung von Aggregatmerkmaldatensätzen, gemäß einer Implementierung.
    • 4 ist ein Flussdiagramm eines Beispielprozesses zur Verwendung Aggregatmerkmaldefinitionen und Aggregatmerkmaldatensätze zur Bereitstellung von Merkmalen für ein neuronales Netz, gemäß einer Implementierung.
    • 5 zeigt ein schematisches Diagramm einer Beispiel-Aggregatdefinition, eines Beispiel-Aggregatdatensatzes und einer Beispiel-Aktualisierung des Aggregatdatensatzes unter Verwendung eines Halbwertszeit-Verfallens in Übereinstimmung mit einigen Implementierungen.
    • 6 ist ein schematisches Diagramm einer Maschine in der Beispielsform eines Computergeräts, in dem ein Satz von Anweisungen enthalten ist, um die Maschine zu veranlassen, eine oder mehrere der hierin beschriebenen Funktionen gemäß einer Implementierung durchzuführen.
  • Gleiche Referenzsymbole in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines Systems 100 zur Erzeugung von Aggregatmerkmalen in Übereinstimmung mit einem Implementierungsbeispiel. Das System 100 kann ein neuartiges Aggregatmerkmalsschema verwenden, um Aggregatmerkmaldatensätze zu erzeugen, die dazu verwendet werden können, einem neuronalen Netz historische Daten zum Training oder zur Inferenz bereitzustellen. Die Aggregatmerkmaldatensätze bieten eine bequeme Möglichkeit, Aggregatmetriken, z. B. Zählungen, Durchschnittswerte, Mittelwerte usw. über die Zeit zu verfolgen. Das Aggregatdefinitionsschema bietet dem System Flexibilität, da Merkmale, Bezeichnungen, Aggregatoperatoren usw. hinzugefügt oder entfernt werden können, ohne dass die Maschinen, die die Datensätze erzeugen, und der Abfragedienst, der die Datensätze dem neuronalen Netz zur Verfügung stellt, geändert werden müssen. Das Aggregatdefinitionsschema ist flexibel und kann für jede Aufgabe des maschinellen Lernens verwendet werden, die von historischen Daten profitiert. Ein Beispiel für eine solche Aufgabe sind Empfehlungen für einen Benutzer. Historische Informationen über einen Benutzer sind nützlich für die Vorhersage zukünftigen Verhaltens. Zur Erleichterung der Diskussion kann die Darstellung des Systems 100 in 1 als eine Social-Media-Plattform für das Ranking von Dokumenten beschrieben werden, die zum Ansehen vorgeschlagen werden. Die Implementierungen sind jedoch nicht so beschränkt und können leicht auf jede Aufgabe angewendet werden, die maschinelles Lernen verwendet. Beispielsweise könnte das System 100 in 1 ein System zur automatischen Vervollständigung von Aufgaben, ein System zum Vorschlagen neuer Einzelhandelsartikel, ein System für Wetter-, Immobilien- oder andere Trendvorhersagen usw. sein.
  • Das System 100 zur Generierung von Aggregatmerkmalen kann ein Computer oder mehrere Computer sein, die die Form einer Reihe verschiedener Geräte haben, z. B. ein Standardserver, eine Gruppe solcher Server oder ein Rack-Server-System. Darüber hinaus kann das System 100 in einem Personal Computer, z. B. einem Laptop, implementiert sein. Das Aggregatmerkmal-Erzeugungssystem 100 kann ein Beispiel für eine Computervorrichtung 600 sein, wie in 6 dargestellt.
  • Das System zur Erzeugung von Aggregatmerkmalen 100 kann einen oder mehrere Prozessoren 102 enthalten, die in einem Substrat ausgebildet sind und so konfiguriert sind, dass sie eine oder mehrere maschinenausführbare Anweisungen oder Software, Firmware oder eine Kombination davon ausführen. Die Prozessoren 102 können auf Halbleitern basieren, d. h., die Prozessoren können Halbleitermaterial enthalten, das digitale Logik ausführen kann. Das System zur Erzeugung von Aggregatmerkmalen 100 kann auch ein Betriebssystem und einen oder mehrere Computerspeicher, z. B. einen Hauptspeicher, enthalten, die so konfiguriert sind, dass sie ein oder mehrere Daten entweder vorübergehend, dauerhaft, semipermanent oder eine Kombination davon speichern. Der Speicher kann jede Art von Speichergerät umfassen, das Informationen in einem Format speichert, das von dem einen oder den mehreren Prozessoren gelesen und/oder ausgeführt werden kann. Der Speicher kann einen flüchtigen Speicher, einen nichtflüchtigen Speicher oder eine Kombination davon enthalten und Module speichern, die bei Ausführung durch den einen oder die mehreren Prozessoren bestimmte Operationen durchführen. In einigen Implementierungen können die Module in einem externen Speichergerät gespeichert und in den Speicher des Systems 100 geladen werden.
  • Das System zur Erzeugung von Aggregatmerkmalen 100 umfasst Aggregatdefinitionen 110. Die Aggregatdefinitionen 110 können in einem Speicher gespeichert werden. In einigen Implementierungen können die Aggregatdefinitionen 110 in einem Speicher gespeichert werden, der vom System 100 entfernt, aber für dieses zugänglich ist (z. B. über ein Netzwerk). Die Aggregatdefinitionen 110 stellen ein Schema dar, mit dem festgelegt wird, welche Art von Daten aggregiert werden sollen und wie ein eventueller Verfall auf ältere historische Daten angewendet werden soll. Die Aggregatdefinitionen 110 verwenden ein flexibles Schema, das an jedes Problem oder jeden Prozess angepasst werden kann. Ein Benutzer kann eine Aggregatdefinition über einen Texteditor oder eine grafische Benutzeroberfläche erstellen. Aggregatdefinitionen können jederzeit hinzugefügt, geändert und entfernt werden, da die Maschinen und Dienste, die die Definitionen verwenden, nach solchen Änderungen nicht geändert werden müssen. Aggregatmerkmaldatensätze, die gemäß der Definition erzeugt wurden, werden als in derselben Aggregatgruppe befindlich betrachtet. Daher kann eine Bezugnahme auf eine Aggregatdefinition auch als Bezugnahme auf eine Aggregatgruppe oder eine Gruppierung betrachtet werden.
  • 2 zeigt ein Beispiel für ein Schema zur Definition von Aggregatmerkmalen gemäß einer Implementierung. Das Beispiel in 2 zeigt die Elemente, welche das Schema ausmachen. Während das Beispiel in 2 ein Beispiel für ein Format für das Aggregatdefinitionsschema zeigt, sind Implementierungen nicht auf das dargestellte Format beschränkt und können jedes beliebige Format mit ähnlichen Elementen enthalten. Eine Aggregatdefinition 200 kann ein Präfix-Element 205 enthalten. Das Präfix 205 kann zur Identifizierung von Aggregatmerkmalseinträgen für eine Aggregatgruppe verwendet werden. Wenn das Präfix 205 beispielsweise „user aggregate“ lautet, kann ein Abfragedienst oder eine Aggregatmaschine Aggregatmerkmalseinträge für diese Gruppe finden, indem er Datensätze identifiziert, die dem globalen Muster „user aggregate.*“ entsprechen. Das Präfix 205 muss nicht für alle Definitionen eindeutig sein. In einigen Implementierungen kann das Präfix 205 verwendet werden, um zwischen verschiedenen Versionen einer Aggregatgruppe zu unterscheiden. Wenn zum Beispiel ein Merkmal, eine Bezeichnung oder eine Halbwertszeit hinzugefügt oder entfernt wird, kann das Präfix 205 aktualisiert werden, um eine andere Version der Definition anzuzeigen. Die Aggregatdefinition 200 kann auch eine Eingabequelle 210 enthalten. Das Element Eingabequelle 210 kann einer Aggregationsmaschine angeben, woher sie Eingabedatensätze lesen soll. Diese Eingabedatensätze stellen die zu aggregierenden Daten dar. In einigen Implementierungen sind die Eingabedatensätze selbst Merkmalssätze. Ein Merkmalsdatensatz ist ein Datensatz in einem Standardformat, das von dem maschinellen Lernsystem als Eingabe erkannt wird. So können die Eingabedatensätze bereits in einem Standardformat vorliegen, das vom System als Eingabe für das neuronale Netz erkannt wird. In einigen Implementierungen können die Eingabedatensätze in einem anderen Standardformat vorliegen, das von den Aggregatmaschinen erkannt wird. In einigen Implementierungen kann die Definition 200 ein Transformationsroutine 215 Element enthalten. Die Transformationsroutine 215 gibt einen Prozess (z. B. ein Modul, eine Funktion oder eine Routine) an, der mit dem Eingabedatensatz aufgerufen werden soll, bevor der Eingabedatensatz aggregiert wird. In einigen Implementierungen wandelt die Transformationsroutine 215 den Eingabedatensatz in ein Standardformat um, das von den Aggregatmaschinen erkannt wird. In einigen Implementierungen kann die Transformationsroutine 215 Vorverarbeitungsoperationen am Eingabedatensatz durchführen. Wenn beispielsweise für zwei verschiedene Felder im Eingabedatensatz (z. B. ITEM PURCHASED und ITEM WISHLISTED) eine kombinierte Bezeichnung (z. B. ITEM_SELECTED) gewünscht wird, kann eine Transformationsroutine 215 verwendet werden, um alle ITEM PURCHASED-Etiketten und ITEM WISHLISTED-Etiketten in ein ITEM_SELECTED- Etikett umzuwandeln. Die Transformationsroutine 215 ist optional und kann weggelassen oder auf einen Einstweilen-Wert, z. B. „none“ oder „null“, gesetzt werden.
  • Die Definition 200 kann auch ein Schlüssel 220 Element enthalten. Das Schlüsselelement identifiziert ein oder mehrere Merkmale aus dem Eingabedatensatz. Merkmale sind Datenfelder in der Eingabedatei. Jedes im Eingabedatensatz identifizierbare Feld kann ein Merkmal sein. Der Schlüssel 220 repräsentiert eine Gruppe von einem oder mehreren Merkmalen aus dem Eingabedatensatz, für die eine Gruppierung stattfindet. Wenn der Schlüssel 220 beispielsweise ein Merkmal USER_ID angibt, aggregiert das System die Eingabedatensätze nach Benutzerkennungen und erstellt Aggregatmetriken (z. B. Summe, Anzahl usw.) für einzelne Benutzer. Der Schlüssel 220 kann ein oder mehrere Merkmale aus der Eingabedatei angeben. So kann der Schlüssel 220 beispielsweise USER_ID und ITEM_ID enthalten. In diesem Fall stellen die Aggregatmetriken Werte für eine Gruppierung von Eingabedatensätzen nach Benutzerkennungen und Elementkennungen dar. In einigen Implementierungen ist die Benutzerkennung ein Primärschlüssel, da sie zuerst aufgeführt wird. In einigen Implementierungen ist die Elementkennung ein Sekundärschlüssel. In einigen Implementierungen können die Aggregatmerkmaldatensätze nach Primärschlüssel oder Sekundärschlüssel indiziert werden. In einigen Implementierungen kann ein Merkmal nur dann in den Schlüssel 220 aufgenommen werden, wenn es einen bestimmten Typ hat. Zum Beispiel können nur Merkmale mit einem Typ STRING, SPARSE_BINARY oder DISCRETE in den Schlüssel 220 aufgenommen werden. Der Typ STRING ist ein Feld mit einer beliebigen Kombination von alphanumerischen Zeichen. Ein DISCRETE-Typ ist ähnlich wie STRING, kann aber nur bestimmte Werte haben. Ein Merkmal vom Typ SIZE kann zum Beispiel nur die Werte S, M und L haben und ist daher diskret. Ein SPARSE_BINARY-Typ stellt eine Menge dar. Zum Beispiel kann USER_INTERESTS eine Menge von Themenkennungen darstellen. Wenn ein Merkmal vom Typ SPARSE_BINARY im Schlüssel 200 enthalten ist, gruppiert das System die Eingabedatensätze nach Mengenmitgliedern. Beispielsweise veranlasst ein Schlüssel 220, der (USER_ID, USER_INTERESTS) angibt, das System, Aggregatmetriken für jedes Paar aus Benutzerkennungen und Interessen zu erstellen.
  • Die Definition 200 kann auch ein Merkmale 225 Element enthalten. Die Merkmale 225 identifizieren einen Satz von einem oder mehreren Feldern (d. h. Merkmalen) aus dem Eingabedatensatz, die in jeder Gruppierung zusammengefasst werden sollen, wobei die Gruppierung durch den Schlüssel 220 definiert wird. Bei den Merkmalen 225 kann es sich um jedes beliebige Feld im Eingabedatensatz handeln, wobei sich Felder vom Typ BINARY oder CONTINUOUS am besten eignen. BINARY-Felder haben einen Wert von eins oder null, z. B. entweder wahr oder falsch. CONTINUOUS-Felder sind numerisch, d. h. sie stellen einen numerischen Wert dar. Felder vom Typ SPARSE oder DISCRETE können in den Merkmalen 225 enthalten sein, sollten aber besser im Schlüssel 220 verwendet werden. In einigen Implementierungen können SPARSE- und DISCRETE-Merkmale als BINARY-Typen behandelt werden (z. B. ein Wert für das Feld existiert oder existiert nicht), wenn sie in den Merkmalen 225 verwendet werden.
  • Die Definition 200 kann auch ein Etiketten 230 Element enthalten. Die Etiketten 230 stellen einen Satz von null, einem oder mehreren binären Merkmalen aus dem Eingabedatensatz dar. Das System kreuzt die Merkmale 225 und die Etiketten 230 vor der Anwendung der Aggregatoperationen. Dadurch wird die Aggregatberechnung im Wesentlichen auf eine Teilmenge der Eingabedatensätze innerhalb eines bestimmten Schlüssels beschränkt. Das Etiketten 230 Element ist optional, und Aggregate können auch ohne die Verwendung von Etiketten erstellt werden. Die Definition 200 kann auch ein Halbwertszeiten 235 Element enthalten. Der Halbwertszeiten 235 Satz stellt einen oder mehrere Zeiträume dar, die für die Berechnung der verfallenden Aggregatmetriken verwendet werden. Das System verwendet die Halbwertszeiten 235, um älteren Aktivitäten eine geringere Bedeutung beizumessen als neueren Aktivitäten. Kürzere Halbwertszeiten erfassen Echtzeit-Merkmale und längere Halbwertszeiten einen längerfristigen Verlauf. Beispielsweise können Informationen über kürzlich angesehene Elemente für einige Stunden wichtig sein, während Elemente, die geteilt, geliked oder kommentiert wurden, für einen längeren Zeitraum, z. B. Tage oder Wochen, von Bedeutung sein können. Daher können die Zeiträume im Halbwertszeiten 235 Satz in Minuten, Stunden, Tagen, Wochen usw. angegeben werden. In einigen Implementierungen kann der Zeitraum auch unendlich sein, was bedeutet, dass ältere Daten im Aggregat genauso wichtig sind wie neuere Daten und niemals verfallen. Fehlt in einer bestimmten Aggregatdefinition eine Halbwertszeit 235, so kann die Halbwertszeit als unendlich angenommen werden.
  • Die Definition 200 enthält auch einen Operationen 240 Satz. Der Operatoren 240 Satz gibt einen oder mehrere Aggregatoperatoren an, die auf die Merkmale 225 anzuwenden sind. Aggregatoperatoren sind alle Operatoren, die eine Reihe von Zahlen kombinieren. Beispiele für Aggregatoperatoren sind Zählung, Summe, sumSq, Mittelwert, Verhältnis usw. Der Zähloperator zählt die Anzahl der Nicht-Null-Ereignisse eines binären Merkmals. Der Zähloperator kann alle Merkmale als binär behandeln, d. h., wenn das Merkmal im Eingabedatensatz vorhanden ist, wird es als 1 gezählt, andernfalls als Null. Der Summenoperator kann jedes Merkmal, das nicht CONTINUOUS ist, ignorieren, da eine Summe eines anderen Merkmalstyps keine wirkliche Bedeutung hat. In einigen Implementierungen können die Operatoren Summe und Zählung die einzigen unterstützten Operatoren sein, da andere Aggregatoperatoren, wie der Mittelwert, aus den metrischen Werten von Zählung und Summe berechnet werden können. Der Operatoren 240 Satz wird auf eine Kreuzung von Merkmalen 225, Kennzeichnungen 230 und Halbwertszeiten 235 angewendet. Mit anderen Worten: Das System wendet jeden Aggregatoperator in den Operatoren 240 auf jedes eindeutige Merkmal-Etiketten-Paar für jede Halbwertszeit an, wie im Folgenden näher erläutert wird.
  • Die Definition 200 kann auch einen Ausgabespeicher 245 enthalten. Der Ausgabespeicher 245 verweist auf den Ort, an dem die mit der Definition 200 erzeugten Aggregatmerkmaldatensätze gespeichert werden. Wenn zwei Aggregatdefinitionen denselben Ausgabespeicher 245 und denselben Schlüssel 220 verwenden, werden die Aggregatmerkmaldatensätze an denselben Ort geschrieben. Dies kann von Vorteil sein, wenn eine vollständige Kreuzung der Merkmale 225, Bezeichnungen 230 und Halbwertszeiten 235 zu groß ist und nur eine Teilmenge der vollständigen Kreuzung nützlich ist. Die Definition 200 kann auch eine optionale Anzahl von zu haltenden Stapeln 255 umfassen. In einigen Implementierungen speichert das System nur einen Aggregatmerkmaldatensatz pro Schlüssel für die Aggregatgruppe und aktualisiert nur die Aggregatwerte, wenn neue Daten verarbeitet werden. Dadurch wird der Speicherplatz für die Aggregate minimiert. Wenn eine Historie der Aggregatmerkmaldatensätze gewünscht wird, kann das zu haltende Stapel 255 Element die Anzahl der aufzubewahrenden früheren Aggregatmerkmaldatensätze angeben. Diese früheren Datensätze können im Falle eines Systemausfalls als Backup verwendet werden, sind aber optional. Natürlich kann die Definition 200 auch andere, nicht dargestellte Elemente enthalten.
  • Zurück zu 1 kann das System 100 eine Online-Aggregationsmaschine 115 und eine Offline-Aggregationsmaschine 125 umfassen. Die Offline-Aggregationsmaschine 125 aggregiert Datensatzstapel aus der Eingabequelle 122. Die Eingabequelle 122 kann ein beliebiger Computerspeicher sein, der Eingabedatensätze speichert. In einigen Implementierungen können die Eingabedatensätze für die Offline-Aggregationsmaschine 125 verarbeitet und formatiert worden sein. Beispielsweise können die Eingabedatensätze von der Eingabequelle 122 Merkmalsdatensätze sein, z. B. in einem Standardformat, das von einem Einbettungsprozess für das neuronale Netz 150 erkannt wird. Der Einbettungsprozess kann die Daten in den Merkmalsdatensätzen in ein numerisches Format konvertieren und die Daten normalisieren, wie es im Bereich des maschinellen Lernens bekannt ist. So kann zum Beispiel die Eingabequelle 122 Teil anderer Merkmale 140 sein.
  • Die Offline-Aggregationsmaschine 125 kann in regelmäßigen Abständen laufen, z. B. einmal pro Tag, zweimal pro Tag, wöchentlich oder in einem anderen Zeitraum. Die Offline-Aggregationsmaschine 125 liest Datensätze aus der Eingabequelle 122 und den Aggregatdefinitionen 110, um Aggregatmerkmale 132 zu erzeugen. In einigen Implementierungen verknüpft die Offline-Aggregationsmaschine 125 eine Stapelnummer mit jedem von ihm erzeugten Aggregatmerkmaldatensatz. Die Stapelnummer kann verwendet werden, um dem Aggregatmerkmaldatensatz einen Zeitraum zuzuordnen. Zum Beispiel kann das System jede Stapelnummer mit einer Endzeit verknüpfen. Diese Endzeit kann vom Abfragedienst 145 verwendet werden, um festzustellen, ob Datensätze fehlen und wie die Aggregatmetriken zur Abfragezeit zu vermindern sind. Die Offline-Aggregatmaschine 125 aggregiert die Datensätze in der Eingabequelle 122 auf der Grundlage der Aggregatdefinitionen 110 und gibt die resultierenden Aggregatmerkmaldatensätze, die durch die Schlüssel der Aggregatdefinitionen verschlüsselt sind, an die in den Aggregatdefinitionen angegebenen Ausgabespeicher aus. Dieser Vorgang wird anhand von 3 näher erläutert. Diese Ausgabespeicher können alle durch Aggregatmerkmale 132 dargestellt werden. Aggregatmerkmale 132 können somit einen oder mehrere Computerspeicher darstellen, in denen die von der Offline-Aggregationsmaschine 125 erzeugten Aggregatmerkmale gespeichert sind.
  • In einigen Implementierungen kann die Offline-Aggregationsmaschine 125 eine Optimierungsfunktion verwenden, die alle Aggregatmerkmaldatensätze, die denselben Schlüssel und Ausgabespeicher haben, zusammenfasst. Wenn also zwei oder mehr Aggregatdefinitionen einen Schlüssel und einen Ausgabespeicher gemeinsam haben, kann die Offline-Aggregationsmaschine 125 einen Datensatz für einen bestimmten Schlüsselwert schreiben. Der Datensatz enthält alle Aggregatmetriken beider Aggregatdefinitionen.
  • Die Online-Aggregationsmaschine 115 arbeitet ähnlich wie die Offline-Aggregationsmaschine 125, mit dem Unterschied, dass die Online-Aggregationsmaschine 115 die Eingabedatensätze nicht in Stapeln verarbeitet, sondern so, wie sie empfangen werden, und dass den von ihm erzeugten Aggregatmerkmaldatensätzen keine Stapelnummer zugewiesen wird. Die Online-Aggregationsmaschine 115 kann Protokollsätze aus dem Eingabeprotokoll 120 lesen. In einigen Implementierungen kann das Eingabeprotokoll 120 derselbe Speicher wie die Eingabequelle 122 sein. In einigen Implementierungen kann es sich bei dem Eingabeprotokoll 120 um einen anderen Datenspeicher handeln. In einigen Implementierungen kann sich das Format der Eingabedatensätze im Eingabeprotokoll 120 von denen der Eingabequelle 122 unterscheiden. Die Online-Aggregationsmaschine 115 kann die Aggregatmerkmaldatensätze an den Cache für Aggregatmerkmale 130 ausgeben. Der Aggregatmerkmal-Cache 130 kann ein temporärer Computerspeicher mit begrenztem Platz sein. In einigen Implementierungen können ältere Datensätze aus dem Cache 130 verschwinden, wenn der Speicher im Cache 130 benötigt wird. In einigen Implementierungen können die in den Cache 130 geschriebenen Aggregatmerkmaldatensätze zur Abfragezeit mit den Aggregatmerkmaldatensätzen in den Aggregatmerkmalen 132 kombiniert werden.
  • Das System 100 kann einen Abfragedienst 145 enthalten. Der Abfragedienst ist so konfiguriert, dass er Abfrageanforderungen von einem anfordernden Prozess 155 empfängt und die Aggregatdefinitionen 110 verwendet, um Aggregatmerkmaldatensätze zu finden, z. B. aus dem Aggregatmerkmal-Cache 130 und den Aggregatmerkmalen 132, die auf die Abfrage ansprechen. In einigen Implementierungen wendet der Abfragedienst 145 auch einen Verfallsvorgang auf die Aggregatmetriken in den ansprechenden Aggregatmerkmaldatensätzen an. Der Abfragedienst kann den Verfall so anwenden, dass Daten aus älteren Datensätzen (z. B. solche, deren Metriken zuletzt vor einiger Zeit aktualisiert wurden) dem Verfall unterworfen werden, bevor sie dem anfragenden Prozess 155 zur Verfügung gestellt werden. Dadurch wird sichergestellt, dass ältere Daten weniger Gewicht haben als neuere Daten, wobei die Gewichtsreduzierung auf der Halbwertszeit basiert. Der Abfragedienst 145 ist so konfiguriert, dass er nach ansprechenden Aggregatmerkmaldatensätzen sowohl von der Stapel- als auch von der Online-Aggregationsmaschine sucht, sofern beide vorhanden sind. Der Abfragedienst 145 kann so konfiguriert sein, dass er die Datensätze aus dem Aggregatmerkmale-Cache 130 und den Aggregatmerkmalen 132 kombiniert oder verkettet, wie in 4 näher beschrieben.
  • Das System 100 kann einen Anforderungsprozess 155 enthalten. Der Anforderungsprozess kann ein beliebiger Prozess sein, der dem neuronalen Netz 150 Merkmale zur Verfügung stellt. Der Anforderungsprozess 155 kann zum Beispiel ein Bewertungsprozess sein, der für einen bestimmten Benutzer bestimmt, welche Dokumente, Nachrichten, Elemente oder andere Inhalte dem Benutzer vorgeschlagen werden sollen. Als weiteres Beispiel kann der Anforderungsprozess 155 eine andere Art von Vorhersagedienst sein, wie z. B. die Vorhersage von Trends in Bezug auf Wetter, Märkte usw. In einigen Implementierungen kann der anfordernde Prozess 155 auch vom System 100 und/oder dem Abfragedienst 145 entfernt sein, aber mit diesem kommunizieren. Zusätzlich zu den Aggregatmerkmaldatensätzen kann der Anforderungsprozess 155 auch andere Merkmale 140 als Eingabe für das neuronale Netz 150 verwenden. In einigen Implementierungen können die anderen Merkmale 140 Merkmalsdatensätze sein, z. B. ein Datensatzformat ähnlich dem der Aggregatmerkmaldatensätze. In einigen Implementierungen können die anderen Merkmale 140 von einem anderen Abfragedienst (nicht gezeigt) ausgewählt und gesendet werden. In einigen Implementierungen können die anderen Merkmale 140 vom anfordernden Prozess 155 entfernt, aber zugänglich sein. Der Anforderungsprozess 155 kann die Merkmale dem neuronalen Netz 150 zur Verfügung stellen. In einigen Implementierungen kann der Anforderungsprozess 155 einen Einbettungsprozess beinhalten, der die Merkmale in einen Merkmalsvektor umwandelt. Ein Merkmalsvektor ist eine Reihe von Zahlen, typischerweise Gleitkommazahlen, wobei jede Position in der Reihe ein anderes Attribut oder Signal über das Objekt darstellt. In einigen Implementierungen kann der Merkmalsvektor normalisiert werden, so dass die Fließkommazahlen in einen bestimmten Bereich fallen. So kann zum Beispiel jede Aggregatmetrik in einem Aggregatmerkmaldatensatz normalisiert und einer Position in einem Merkmalsvektor zugeordnet werden. In einigen Implementierungen kann der Anforderungsprozess 155 zusätzliche Merkmale, z. B. Verhältnisse, Mittelwerte, aus der Aggregatmetrik in den Aggregatmerkmaldatensätzen berechnen.
  • In einigen Implementierungen kann der Anforderungsprozess 155 ein Trainingsprozess für das neuronale Netz 150 sein. Mit anderen Worten, der Anforderungsprozess 155 kann aus den Aggregatmerkmaldatensätzen und den anderen Merkmalen 140 positive und/oder negative Trainingsbeispiele für das neuronale Netz 150 erzeugen. Ein positives Trainingsbeispiel ist ein Datenpunkt, der dem neuronalen Netz 150 mitteilt, dass das eingegebene Datenobjekt, d.h. das Objekt, das in den dem Abfragedienst 145 zur Verfügung gestellten Parametern identifiziert wurde, eine bestimmte Entscheidung erhalten sollte (z.B. dem Benutzer empfohlen werden sollte). Ein negatives Trainingsbeispiel ist ein Datenpunkt, der dem neuronalen Netz 150 mitteilt, dass dem Eingabedatenobjekt oder mit anderen Worten dem Objekt, das in den dem Abfragedienst 145 zur Verfügung gestellten Parametern identifiziert wurde, eine bestimmte Entscheidung nicht gegeben werden sollte (z. B. dem Benutzer nicht empfohlen werden sollte). In einigen Implementierungen können zwei oder mehr Abfrageprozesse 155 verwendet werden, um festzustellen, ob ein neu hinzugefügtes Aggregatmerkmal die Vorhersage des neuronalen Netzes 150 verbessert, z. B. durch A/B-Tests oder Ähnliches.
  • Das neuronale Netz 150 kann jede Art von maschinellem Lernnetz darstellen, das eine Aufgabe auf eine gegebene Eingabe hin ausführt. Im Allgemeinen ist ein neuronales Netz eine zusammenhängende Gruppe von Knoten, wobei jeder Knoten ein künstliches Neuron darstellt. Die Knoten sind in Schichten miteinander verknüpft, wobei die Ausgabe einer Schicht die Eingabe der nächsten Schicht ist. Neuronale Netze wandeln eine Eingabe, die von der Eingabeschicht empfangen wird, durch eine Reihe von verborgenen Schichten um und erzeugen eine Ausgabe über die Ausgabeschicht. Jede Schicht setzt sich aus einer Teilmenge des Knotensatzes zusammen. Die Knoten in den verborgenen Schichten können vollständig miteinander verknüpft sein, d. h. sie erhalten Eingaben von allen Knoten in der vorherigen Schicht und geben Ausgaben an alle Knoten in der nächsten Schicht weiter. Die Knoten in einer einzelnen Schicht funktionieren unabhängig voneinander (d. h., sie haben keine gemeinsamen Verbindungen). Die Knoten in versteckten Schichten können auch teilweise miteinander verknüpft sein. Die Knoten in der Ausgabeschicht liefern die umgewandelte Eingabe für den anfordernden Prozess. In einigen Implementierungen kann das neuronale Netz 150 ein tiefes neuronales Netz sein, das viele verborgene Schichten hat und mit unbeaufsichtigtem oder semi-überwachtem Training verwendet werden kann, um Muster in den Eingangsmerkmalsvektoren zu erkennen und diese Muster zur Durchführung einer Aufgabe/Vorhersage zu verwenden.
  • Obwohl in 1 nicht dargestellt, kann das System zur Erzeugung von Aggregatmerkmalen 100 über ein Netzwerk mit einem oder mehreren Clients in Verbindung stehen. Die Clients können es einem menschlichen Benutzer ermöglichen, eine Aggregatdefinition zu den Aggregatdefinitionen 110 hinzuzufügen, Elemente einer bestehenden Aggregatdefinition hinzuzufügen, zu entfernen oder zu ändern oder eine Aggregatdefinition zu entfernen. Clients können es einem Benutzer auch ermöglichen, zusätzliche anfordernde Prozesse 155 einzurichten. Bei dem Netzwerk kann es sich beispielsweise um das Internet oder um ein drahtgebundenes oder drahtloses lokales Netzwerk (LAN), ein Weitverkehrsnetz (WAN) usw. handeln, das beispielsweise mit Hilfe von Gateway-Geräten, Brdiges, Switches usw. implementiert wird. In einigen Implementierungen kann das Aggregatmerkmal-Erzeugungssystem 100 mit anderen Computergeräten kommunizieren oder diese einschließen, die das Eingabeprotokoll 120 und Datensätze für die Eingabequelle 122 sowie andere Merkmale 140 bereitstellen. In einigen Implementierungen kann das System 100 zur Erzeugung von Aggregatmerkmalen mit anderen Computergeräten kommunizieren oder diese einschließen, die eines oder mehrere der Objekte speichern, z. B. Aggregatdefinitionen 110, Aggregatmerkmal-Cache 130, Aggregatmerkmale 132, Online-Aggregationsmaschine 115, Offline-Aggregationsmaschine 125, Eingabeprotokoll 120, Eingabequelle 122, Abfragedienst 145, andere Merkmale 140, Anforderungsprozess 155 oder neuronales Netz 150. Das System 100 zur Generierung von Aggregatmerkmalen stellt eine Beispielkonfiguration dar; andere Konfigurationen sind möglich. Darüber hinaus können die Komponenten des Systems 100 auf andere Weise als dargestellt kombiniert oder verteilt werden. Beispielsweise können in einigen Implementierungen ein oder mehrere der Online-Aggregationsmaschine 115, der Offline-Aggregationsmaschine 125, des Abfragedienstes 145, des Anforderungsprozesses 155 und des neuronalen Netzes 150 in einem einzigen Modul oder einer einzigen Maschine kombiniert und/oder auf zwei oder mehrere Module oder Maschinen verteilt werden.
  • 3 zeigt ein Flussdiagramm eines Beispiels 300 für die Verwendung von Aggregatmerkmal-Definitionen zur Erzeugung von Aggregatmerkmaldatensätzen, gemäß einer Implementierung. Der Prozess 300 kann von einem System zur Erzeugung von Aggregatmerkmalen, wie z. B. dem System 100 von 1, durchgeführt werden. Der Prozess 300 kann die Aggregatmerkmaldatensätze in einem Stapel-/Offline-Modus oder in einem Online-/Echtzeit-Modus erzeugen. Der Prozess 300 kann zum Beispiel von der Online-Aggregationsmaschine 115 oder der Offline-Aggregationsmaschine 125 durchgeführt werden. Die durch den Prozess 300 erzeugten Aggregatmerkmaldatensätze ermöglichen somit die Verwendung von schnell verfallenden Aggregationsmetriken mit länger verfallenden Metriken als Eingabe für ein neuronales Netz. Bei der Verwendung im StapelModus kann der Prozess 300 mit einer Stapel-Nummer verknüpft werden. Die Stapelnummer kann mit jedem während des Stapellaufs erzeugten Aggregatmerkmaldatensatz verknüpft werden. Die Stapelnummer kann auch mit einem Zeitstempel verknüpft sein. Der Zeitstempel kann eine Startzeit des Stapel-Jobs oder eine Endzeit des Stapel-Jobs darstellen. In einigen Implementierungen können sowohl eine Start- als auch eine Stoppzeit mit der Stapelnummer verknüpft sein. In einigen Implementierungen kann es vorkommen, dass Aggregatmerkmaldatensätze, die von einem Online-Prozess generiert werden, keiner Stapelnummer zugeordnet sind. In einigen Implementierungen kann der Zeitstempel der letzten Aktualisierung des durch den Online-Prozess erzeugten Datensatzes die Stapelnummer sein. Somit kann ein Datensatz mit einer früheren Stapelnummer der Datensatz mit dem jüngsten Zeitstempel sein.
  • Der Prozess 300 kann mit dem Lesen eines Datensatzes aus der Eingabequelle (310) beginnen. Bei der Eingabequelle kann es sich um eine beliebige Datendatei mit zu verarbeitenden Datensätzen handeln. In einigen Implementierungen kann der Datensatz in einem Merkmalsdatensatzformat vorliegen, z. B. ein Merkmalsdatensatz, der von einem anderen Prozess erzeugt wurde. In einigen Implementierungen kann der Datensatz in einer Datenbank, einer Protokolldatei oder einer anderen Datenquelle enthalten sein. In solchen Implementierungen kann das Lesen des Datensatzes aus der Eingabequelle die Bereitstellung des Datensatzes an einen Transformationsprozess beinhalten, z. B. einen, der in einer Aggregatdefinition wie Transformieren 215 in 2 angegeben ist, bevor der Datensatz verarbeitet wird. Das System kann auf die Aggregatdefinitionen zugreifen, um für jede Aggregatdefinition einen Eingabeschlüsselwert (320) zu bestimmen. Der Eingabeschlüsselwert basiert auf der Aggregatdefinition und dem Eingabedatensatz. Beispielsweise gibt die Aggregatdefinition (z. B. in Schlüssel 220) ein oder mehrere Felder oder Merkmale im Eingabedatensatz an, die als Aggregatgruppe oder -schlüssel für diese Definition dienen. Das System identifiziert dieses Feld im Eingabedatensatz und übernimmt den Wert dieses Feldes als Eingabeschlüsselwert. Beispielsweise kann das System feststellen, dass bei einer Aggregatdefinition mit dem Schlüssel (user_id,doc_id) ein Datensatz mit der Benutzer-ID 12345 und der Dokument-ID 9876 den Schlüsselwert (12345,9876) hätte. Jede Aggregatdefinition kann einen anderen Schlüssel haben, aber die Schlüssel müssen bei den Aggregatdefinitionen nicht eindeutig sein. In einigen Implementierungen kann die Aggregatdefinition einen Ort der Eingabequelle angeben, so dass nur Eingabedatensätze aus dieser Quelle auf die Aggregatdefinition zugreifen.
  • Das System identifiziert auf der Grundlage der Aggregatdefinitionen und der Eingabeschlüsselwerte Aggregatmerkmaldatensätze in den Ausgabespeichern, die dem Eingabeschlüsselwert (330) entsprechen. Jede Aggregatdefinition kann einen zugehörigen Ausgabespeicher haben (z. B. Ausgabespeicher 245). Diese Ausgabespeicher identifizieren, welche Aggregatmerkmaldatensätze zu welchen Aggregatdefinitionen gehören, müssen aber nicht eindeutig sein. Unter Verwendung des Eingabeschlüsselwertes für eine Aggregatdefinition kann das System im Ausgabedatenspeicher nach einem bestehenden Aggregatmerkmaldatensatz für diesen Schlüssel suchen. Bei der Stapel-Verarbeitung kann der vorhandene Aggregat-Merkmalssatz aus dem aktuellen Stapel stammen, wenn der Aggregat-Merkmalssatz bereits mindestens einmal während des Stapel-Laufs aktualisiert wurde, oder aus einem früheren Stapel. In einem Online-Prozess ist ein Aggregatmerkmaldatensatz mit dem jüngsten Zeitstempel der vorhandene Aggregatmerkmaldatensatz. Wenn im Ausgabespeicher kein bestehender Merkmalsdatensatz vorhanden ist, erzeugt das System bei der Aktualisierung einen neuen Datensatz, wie unten erläutert.
  • Das System kann die identifizierten Aggregatmerkmaldatensätze aktualisieren, indem es auf die vorherigen Metriken einen Verfall anwendet (340). Wenn das System beispielsweise einen Aggregatmerkmaldatensatz für eine bestimmte Gruppe identifiziert, kann es den Eingabedatensatz zu dem Aggregatmerkmaldatensatz kombinieren, dabei aber einen Verfallsvorgang durchführen. Die Halbwertszeiten (z. B. Halbwertszeiten 235) geben an, wie die alten/vorhandenen Werte verfallen sollen, damit die Aggregatmetriken ein gleitendes Fenster von Zählungen abdecken. Wenn beispielsweise bei einer Halbwertszeit von H die Metrik (z. B. eine Summe oder ein Zählwert) für ein bestimmtes Merkmal (oder ein Merkmal/Etikett-Paar) zum Zeitpunkt told X beträgt und der Eingabedatensatz zum Zeitpunkt tnew eine neue Aggregatmetrik von Y aufweist, wird die Aggregatmetrik gemäß der folgenden Formel aktualisiert Y + X 2 { ( t o l d t n e w ) H } .
    Figure DE202017007517U1_0001
    Auf diese Weise können kürzere Halbwertszeiten mehr Echtzeit-Merkmale und längere Halbwertszeiten einen längerfristigen Verlauf abdecken und erfassen. Wenn der zu aktualisierende Aggregatdatensatz von der gleichen Stapelnummer stammt, sind told und tnew gleich und der Zerfall ist Null, so dass X und Y addiert werden. Existiert kein vorheriger Datensatz, wird bei der Aktualisierung des Datensatzes die Aggregatmetrik auf den Wert von Y gesetzt.
  • Zusätzlich zu den in der Aggregatdefinition angegebenen Merkmalen kann das System in einigen Implementierungen ein zusätzliches Merkmal hinzufügen, das alle Merkmale darstellt, z. B. „alle Merkmale“. Dieses Merkmal kann automatisch vom System hinzugefügt werden, ohne dass es in der Aggregatdefinition angegeben wird. Bei einer Zählaggregatoperation ist dieses Merkmal immer eins für jeden Eingabedatensatz, so dass diese Metrik die Gesamtzahl der für den Schlüssel identifizierten Datensätze darstellt. Wenn die Aggregatdefinition ein Etikett identifiziert, kann das System außerdem ein Etikett „alle Etiketten“ hinzufügen. Wenn also die Merkmaldefinition ein Etikett angibt, kann das System Einträge für die Aggregatoperationen hinzufügen, die auf ein Kreuz von „alle_Etiketten“ mit jedem Feature im Feature-Set angewendet werden. Diese zusätzlichen Aggregatmetriken können bei der Berechnung von Verhältnissen nützlich sein, z. B. der Anteil aller Nachrichten, die gemocht wurden. Das System schreibt den neuen Aggregatmerkmaldatensatz (oder den aktualisierten Datensatz) in den Ausgabespeicher. In einigen Implementierungen kann jede Aktualisierung mit einem Zeitstempel verknüpft sein. Ein Beispiel für die Aktualisierung eines Aggregatmerkmaldatensatzes wird unten in Bezug auf 5 beschrieben.
  • In einigen Implementierungen kann das System mehrere Verarbeitungsknoten (physische oder logische Knoten) umfassen, um die Aggregatdefinitionen parallel zu verarbeiten. Wenn beispielsweise drei Aggregatdefinitionen den Schlüssel user_id und eine den Schlüssel doc_id haben, kann der Eingabedatensatz parallel an zwei verschiedene Verarbeitungsknoten gesendet werden, so dass die Aggregatdefinitionen mit user_id als Schlüssel vom ersten Knoten und die Aggregatdefinitionen mit doc id als Schlüssel vom zweiten Knoten verarbeitet werden. So können die Schritte 330 und 340 für die verschiedenen Aggregatdefinitionen parallel durchgeführt werden.
  • Wenn weitere Datensätze zu verarbeiten sind (350, Ja), liest das System den nächsten Datensatz aus der Eingabequelle (310) und führt die Schritte 320 bis 340 für diesen Datensatz aus. Wenn alle Datensätze verarbeitet wurden (350, Nein), kann das System Nachbearbeitungsaufgaben durchführen, wie z. B. die Zuordnung einer Stoppzeit zur Stapelnummer und die Indizierung der Aggregatmerkmaldatensätze nach dem vollständigen Schlüssel oder nach dem Primärschlüssel (wenn der Schlüssel mehrere Merkmale enthält). In einigen Offline-Implementierungen kann das System Datensätze aus dem vorherigen Stapel identifizieren, die im aktuellen Stapel nicht aktualisiert wurden, die Verfallszeit auf die Aggregatmetriken anwenden und einen Datensatz in den aktuellen Stapelausgangsspeicher schreiben. In solchen Implementierungen wird der Zeitstempel für den Datensatz nicht aktualisiert. In einigen Implementierungen kann das System Einträge in Merkmalsdatensätzen, die denselben Schlüssel und Ausgabespeicher haben, zu einem einzigen Datensatz (360) verketten. So können die Aggregatmetriken für ähnliche Schlüssel und Ausgabespeicher als Einträge in einem einzigen Datensatz gespeichert werden. Dies ist eine optionale Funktion für Optimierungszwecke. In einigen Implementierungen kann das System auch eine zusätzliche Indizierung durchführen, z. B. die Indizierung der Aggregatmerkmaldatensätze durch ein sekundäres Merkmal im Schlüssel (370). Der Prozess 300 endet dann, nachdem die Aggregatmerkmaldatensätze erzeugt wurden, die für die Eingabe in ein neuronales Netz zur Verfügung stehen. Sobald die Eingabedatensätze in ein Aggregatmerkmal aufgenommen worden sind, müssen sie nicht mehr gespeichert werden, es sei denn, der Eingabedatensatz wird auch als Eingabe für das neuronale Netz oder einen anderen Prozess verwendet. Dementsprechend hat ein System, das die Aggregatmerkmaldatensätze verwendet, einen geringeren Speicherbedarf und arbeitet schneller als Systeme, die keine Aggregatmerkmaldatensätze enthalten.
  • 4 ist ein Flussdiagramm eines Beispielprozesses 400 zur Verwendung von Aggregatmerkmaldefinitionen und Aggregatmerkmaldatensätzen zur Bereitstellung von Merkmalen für ein neuronales Netz, gemäß einer Implementierung. Der Prozess 400 kann von einem System zur Erzeugung von Aggregatmerkmalen, wie z. B. dem System 100 von 1, durchgeführt werden. Der Prozess 400 kann Aggregatmerkmaldatensätze identifizieren, die auf eine Abfrage aus mehreren Quellen, z. B. einer Stapel- und einer Offline-Quelle, ansprechen, einen Zerfall auf die Aggregatmerkmaldatensätze anwenden und die ansprechenden, zerfallenen Aggregatmerkmaldatensätze an den anfordernden Prozess liefern. Der Prozess 400 kann mit dem Empfangen von Abfrageparametern (410) beginnen. Die Abfrageparameter können einen Gruppierungsschlüssel angeben. Der Gruppierungsschlüssel ist der Name eines Feldes oder Merkmals, das im Schlüssel einer Aggregatdefinition angegeben ist, und der gewünschte Wert für dieses Feld. Ein Gruppierungsschlüssel kann zum Beispiel „user_id=12345“ oder „document_id=9876 and topic=4B“ sein. In den Abfrageparametern kann optional auch eine Ausgabequelle angegeben werden. Wenn eine Ausgabequelle angegeben wird, kann das System nur nach Aggregatmerkmaldatensätzen in der entsprechenden Ausgabequelle suchen. In den Abfrageparametern kann auch ein Eingabedatensatz angegeben werden. Wenn ein Eingabedatensatz angegeben wird, fragt das System alle Aggregatmerkmaldatensätze aus allen Ausgabespeichern ab und führt sie mit dem Eingabedatensatz zusammen. So kann der Abfragedienst anhand des Eingabedatensatzes einen aktualisierten Aggregatmerkmaldatensatz berechnen.
  • Das System kann die Aggregatdefinitionen verwenden, um Ausgabespeicher und Aggregatmerkmaldatensätze in Abhängigkeit von den Parametern zu identifizieren (420). Wenn die Parameter beispielsweise einen Gruppierungsschlüssel für die Benutzerkennung angeben, identifiziert das System die in den Aggregatdefinitionen angegebenen Ausgabespeicher, die die Benutzerkennung als Schlüssel haben. Handelt es sich bei dem Parameter um einen Eingabedatensatz, werden alle Aggregatdefinitionen untersucht und die angegebenen Ausgabespeicher identifiziert. Wird als ein weiteres Beispiel im Parameter ein Ausgabespeicher angegeben, werden nur die Aggregatdefinitionen berücksichtigt, die einen passenden Ausgabespeicher enthalten. Das System holt die entsprechenden Datensätze aus den identifizierten Quellen (430). Beispielsweise such in dem Benutzer-ID-Schlüssel-Beispiel das System in den im vorherigen Schritt identifizierten Ausgabespeichern nach Aggregatmerkmaldatensätzen aus den Ausgabespeichern, die mit dem Wert des Gruppierungsschlüssels übereinstimmen. Wenn als ein weiteres Beispiel ein Eingabedatensatz der Parameter ist, erhält das System alle Aggregatmerkmaldatensätze, die mit den Schlüsselfeldern des Eingabedatensatzes übereinstimmen, wobei die Schlüsselfelder in der Aggregatdefinition identifiziert werden.
  • Das System kann eine Verfallszeit auf die ansprechenden Aggregatmerkmaldatensätze anwenden (440). Das System kann einen Zeitstempel der letzten Aktualisierung für jeden Aggregatmerkmaldatensatz speichern. In einigen Implementierungen wendet das System den exponentiellen Zerfall an (oben in Bezug auf Schritt 340 von 3 besprochen), wobei die aktuelle Abfragezeit als tnew und die Endzeit des Stapels als told verwendet wird. Bei Aggregatdatensätzen, die mit einem Online-Prozess erzeugt werden, kann told der Zeitstempel der letzten Aktualisierung für den Aggregatmerkmaldatensatz sein. Das System kann sowohl Stapel- als auch Online-Ausgabequellen abfragen. In einigen Implementierungen können die Ergebnisse kombiniert werden, wenn sowohl der Schlüssel als auch die Aggregatoperation übereinstimmen. In anderen Implementierungen werden die Ergebnisse verkettet. Das System liefert die entsprechenden Aggregatmerkmaldatensätze zurück, die dann als Eingabe für ein neuronales Netz (450) verwendet werden. In einigen Implementierungen können die Datensätze mit anderen Merkmalen kombiniert und in einen Merkmalsvektor umgewandelt werden, bevor sie als Eingabe bereitgestellt werden. In einigen Implementierungen kann das System den Merkmalen Kennzeichnungen hinzufügen, um das neuronale Netz zu trainieren. In einigen Implementierungen können die Merkmale verwendet werden, um ein Muster in den Daten zu erkennen. In einigen Implementierungen kann das neuronale Netz die Merkmale verwenden, um eine Vorhersage zu treffen. Da Prozess 400 spezifische historische Merkmale für eine Entität liefert, kann das neuronale Netz bessere Vorhersagen für diese Entität treffen. Mit anderen Worten, die Verwendung der Aggregatmerkmale kann das neuronale Netz genauer machen.
  • 5 zeigt ein schematisches Diagramm einer Beispiel-Aggregatdefinition 500, eines Beispiel-Aggregatmerkmalsdatensatzes 505 und eines Beispiel-aktualisierten Merkmalsdatensatzes 520 unter Verwendung eines Halbwertszeit-Verfallens, in Übereinstimmung mit einigen Implementierungen. Im Beispiel von 5 beziehen sich die Eingabedatensätze auf eine Punktzahl (z. B. einen Rang), die für ein einem bestimmten Benutzer bereitgestelltes Dokument berechnet wurde. Die Aggregatgruppierung erfolgt nach Benutzer-ID, und die Aggregatoperationen sind Zählung und Summe. Bei den in der Aggregatdefinition 500 angegebenen Merkmalen handelt es sich um eine Punktzahl und ein binäres Flag, das angibt, ob ein Bild in dem Dokument enthalten oder an das Dokument angehängt war. Bei dem Dokument kann es sich beispielsweise um einen Social-Media-Beitrag handeln, dem ein Bild angehängt oder eingebettet sein kann oder auch nicht. Die Aggregatdefinition 500 enthält auch ein Etikettierungsmerkmal, das angibt, ob der Benutzer dem Dokument zugestimmt hat, z. B. ob es ihm gefallen hat, ob er es favorisiert hat, ob es ihm gefällt usw. Darüber hinaus enthält die Aggregatdefinition zwei Halbwertszeiten, eine für einen Zeitraum von 7 Tagen und eine weitere für sechs Stunden. Das System wendet die Summenoperation und die Zähloperation auf jedes Merkmal/Etikett-Paar für jede Halbwertszeit an, d. h. eine vollständige Kreuzung der Merkmale, Etiketten und Halbwertszeiten. Natürlich ist es nicht sinnvoll, einige Aggregatoperationen auf bestimmte Arten von Merkmalen anzuwenden. So ist beispielsweise eine Summenoperation nicht auf ein binäres Merkmal anwendbar, und das System kann die Anwendung dieser Operation auf binäre Merkmale oder Etiketten ignorieren. Darüber hinaus kann das System eine Summenoperation für eine Kreuzung aus „all_features“ und „all_labels“ für jede Halbwertszeit vorsehen. Das Merkmal „all features“ und das Etikett „all_labels“ werden in jedem Eingabedatensatz als vorhanden betrachtet.
  • Element 505 stellt einen Aggregatmerkmaldatensatz dar, der unter Verwendung der Aggregationsdefinition 500 erzeugt wurde. Der Merkmalsdatensatz 505 bezieht sich auf einen Benutzer, der durch die Benutzerkennung 12345 identifiziert wird, und ist mit dem hinter der Benutzerkennung dargestellten Zeitstempel verknüpft. Der erste Eintrag ist eine Metrik, die eine Zählung der in den letzten 7 Tagen verfallenen Eingabedatensätze darstellt, unabhängig von Merkmalen oder Etiketten. Der nächste Eintrag ist eine Metrik, die eine Zählung der in den letzten 6 Stunden verfallenen Eingabedatensätze darstellt, unabhängig von Merkmalen oder Etiketten. Die nächsten beiden Einträge sind Metriken, die die Anzahl der Dokumente darstellen, die in den letzten 7 Tagen bzw. 6 Stunden als verfallen galten, unabhängig von einem Merkmal. Der nächste Eintrag ist eine Metrik, die die Anzahl der Eingabedatensätze darstellt, die eine Bewertung haben, die über 7 Tage hinweg verfällt, gefolgt von einer Metrik, die die Summe dieser Bewertungen darstellt, die über 7 Tage hinweg verfällt. Die nächsten beiden Einträge sind ähnlich, jedoch mit einer Verfallszeit von 6 Stunden. Der nächste Eintrag ist eine Metrik, die eine Zählung der Eingabedatensätze darstellt, bei denen eine Bewertung vorhanden ist und der Benutzer die Genehmigung des Dokuments angegeben hat, mit einem Verfall über 7 Tage, gefolgt von einem Eintrag mit einer Metrik, die eine Summe der Bewertungen darstellt, mit einem Verfall über 7 Tage. Die Einträge werden in ähnlicher Weise fortgesetzt, obwohl für die letzten Einträge keine Summenoperation berechnet wird, da es sich um binäre Merkmale handelt und eine Summenoperation für ein binäres Merkmal nicht sinnvoll ist.
  • Element 510 stellt eine Eingabe dar, die z. B. von der Online-Aggregationsmaschine 115 verarbeitet wird. In einigen Implementierungen kann das System die Transformationsoperation „myLib/log_to_daterec()“ auf den Eingabedatensatz angewendet haben, um den Eingabedatensatz 510 zu erzeugen. Der Eingabedatensatz 510 enthält eine Benutzerkennung, eine Punktzahl und den Hinweis, dass das Dokument eine Bewertung erhalten hat, aber kein Bild enthält. Natürlich kann der Eingabedatensatz auch andere, nicht dargestellte Informationen enthalten, die jedoch der Kürze halber nicht dargestellt werden. Das System aktualisiert den Aggregatmerkmaldatensatz 505 mit dem Eingabedatensatz 510 und wendet dabei die entsprechenden Verfälle an. Nehmen wir beispielsweise an, der aktuelle Zeitstempel lautet „2017-07-15 08:32:16“ - das System verwendet diesen Zeitstempel als tnew. Der Kürze halber veranschaulicht 5, wie die Einträge 515 mit dem angewandten Verfallsverhalten aktualisiert werden, um einen aktualisierten Aggregatmerkmaldatensatz 520 zu erzeugen. Zum Beispiel kann das System den Exponenten (12 - 15)/7 berechnen, um -.42857 zu erhalten. Das System berechnet dann 10 * 2-.42857 zu 7,42998 und addiert eins (die Zählung für Datensatz 510, da Datensatz 510 eine Punktzahl enthält), was zu 8,42998 führt. Das System aktualisiert die Metrik von 10 auf 8,42998 im Datensatz 520 für das Gesamtmerkmal. In ähnlicher Weise berechnet das System 76 * 2-42857 zu 56,467848 und addiert 15, was 71,46784 ergibt. Dies sind die Metriken, die mit einer Verfallszeit von 7 Tagen aktualisiert werden. Für die Verfallszeit von 6 Stunden berechnet das System die Differenz in Stunden zwischen den beiden Zeitstempeln, z.B. -65, und errechnet 1 + (2*2(-65/6)) zu 1,0010 und aktualisiert den Datensatz des Aggregationsmerkmals 520 mit dieser Metrik. Diese Berechnung zeigt, wie der kurze Zerfall die vorherige Metrik angesichts eines Zeitraums, der viel größer als die Halbwertszeit ist, fast irrelevant macht. In ähnlicher Weise aktualisiert das System die Summe für die Halbwertszeit von 6 Stunden auf 15 (15 + (6*2(-65/6)).
  • Wie 5 zeigt, kann die Größe eines Aggregatmerkmaldatensatzes 515 mit der Anzahl der Merkmale, Bezeichnungen und Halbwertszeiten ansteigen, da eine vollständige Kreuzung durchgeführt wird. Um die Größe der Einträge im Aggregatmerkmaldatensatz 515 zu verringern, können zwei Aggregatmerkmaldefinitionen erstellt werden, die jeweils dieselben Schlüssel und Ausgabespeicher verwenden. Dies führt zu weniger Einträgen. Wenn z. B. die 6-Stunden-Halbwertszeit besonders nützlich für die Punktesumme ist, kann die 6-Stunden-Halbwertszeit aus der Definition 500 entfernt und in eine andere Definition verschoben werden. Dadurch werden alle Einträge für die 7-Tage-Halbwertszeit, die die Punktzahl enthalten (z. B. 4 Einträge), ohne Datenverlust entfernt.
  • 6 zeigt eine schematische Darstellung einer Maschine in der beispielhaften Form eines Computergeräts 600, in dem ein Satz von Anweisungen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hierin diskutierten Methoden durchzuführen. Bei dem Computergerät 600 kann es sich um ein Mobiltelefon, ein Smartphone, einen Netbook-Computer, einen Rackmount-Server, einen Router-Computer, einen Server-Computer, einen Personal-Computer, einen Großrechner, einen Laptop-Computer, einen Tablet-Computer, einen Desktop-Computer usw. handeln, in dem ein Satz von Anweisungen ausgeführt werden kann, um die Maschine zu veranlassen, eine oder mehrere der hierin diskutierten Methoden auszuführen. In einer Implementierung kann das Computergerät 600 einem Benutzer eine Overlay-UI präsentieren (wie oben beschrieben). In alternativen Implementierungen kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet, einem Extranet oder dem Internet verbunden (z. B. vernetzt) sein. Die Maschine kann in der Funktion eines Servers in einer Client-Server-Netzwerkumgebung arbeiten. Bei der Maschine kann es sich um einen Personal Computer (PC), eine Set-Top-Box (STB), einen Server, einen Netzwerk-Router, einen Switch oder eine Bridge oder ein beliebiges Gerät handeln, das in der Lage ist, eine Reihe von Anweisungen (sequentiell oder anderweitig) auszuführen, die die von dieser Maschine auszuführenden Aktionen spezifizieren. Auch wenn nur eine einzige Maschine abgebildet ist, umfasst der Begriff „Maschine“ auch eine beliebige Sammlung von Maschinen, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um eine oder mehrere der hier erörterten Methoden durchzuführen.
  • Das Beispiel-Computergerät 600 umfasst eine Verarbeitungsvorrichtung (z. B. einen Prozessor) 602, einen Hauptspeicher 604 (z. B. Festwertspeicher (ROM), Flash-Speicher, dynamischer Direktzugriffsspeicher (DRAM) wie synchroner DRAM (SDRAM)), einen statischen Speicher 606 (z. B. Flash-Speicher, statischer Direktzugriffsspeicher (SRAM)) und eine Datenspeichervorrichtung 618, die über einen Bus 630 miteinander kommunizieren.
  • Die Verarbeitungsvorrichtung 602 ist eine oder mehrere Allzweckverarbeitungsvorrichtungen wie ein Mikroprozessor, eine Zentraleinheit oder ähnliches. Insbesondere kann die Verarbeitungsvorrichtung 602 ein Complex Instruction Set Computing (CISC)-Mikroprozessor, ein Reduced Instruction Set Computing (RISC)-Mikroprozessor, ein Very Long Instruction Word (VLIW)-Mikroprozessor oder ein Prozessor sein, der andere Befehlssätze oder eine Kombination von Befehlssätzen implementiert. Bei der Verarbeitungsvorrichtung 602 kann es sich auch um eine oder mehrere spezielle Verarbeitungsvorrichtungen handeln, wie z. B. eine anwendungsspezifische integrierte Schaltung (ASIC), ein Field Programmable Gate Array (FPGA), einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor oder ähnliches. Die Verarbeitungsvorrichtung 602 ist so konfiguriert, dass sie Befehle 626 (z. B. Befehle für ein Anwendungsbewertungssystem) zur Durchführung der hier besprochenen Operationen und Schritte ausführt.
  • Das Computergerät 600 kann außerdem eine Netzwerkschnittstelle 608 enthalten, die mit einem Netzwerk 620 kommunizieren kann. Das Computergerät 600 kann auch eine Videoanzeigeeinheit 610 (z. B. eine Flüssigkristallanzeige (LCD) oder eine Kathodenstrahlröhre (CRT)), eine alphanumerische Eingabevorrichtung 612 (z. B. eine Tastatur), eine Cursorsteuerungsvorrichtung 614 (z. B. eine Maus) und eine Signalerzeugungsvorrichtung 616 (z. B. einen Lautsprecher) umfassen. In einer Ausführung können die Videoanzeigeeinheit 610, die alphanumerische Eingabevorrichtung 612 und die Cursorsteuerungsvorrichtung 614 zu einer einzigen Komponente oder Vorrichtung (z. B. einem LCD-Touchscreen) kombiniert werden.
  • Die Datenspeichervorrichtung 618 kann ein computerlesbares Speichermedium 628 enthalten, auf dem ein oder mehrere Sätze von Anweisungen 626 (z. B. Anweisungen für das Anwendungsbewertungssystem) gespeichert sind, die eine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen 626 können sich auch vollständig oder zumindest teilweise im Hauptspeicher 604 und/oder in der Verarbeitungsvorrichtung 602 befinden, während sie von der Rechenvorrichtung 600 ausgeführt werden, wobei der Hauptspeicher 604 und die Verarbeitungsvorrichtung 602 ebenfalls computerlesbare Medien darstellen. Die Anweisungen können ferner über ein Netzwerk 620 über die Netzwerkschnittstellenvorrichtung 608 übertragen oder empfangen werden.
  • Während das computerlesbare Speichermedium 628 in einer Beispielimplementierung als einzelnes Medium dargestellt ist, sollte der Begriff „computerlesbares Speichermedium“ so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien (z. B. eine zentralisierte oder verteilte Datenbank und/oder zugehörige Caches und Server) umfasst, die den einen oder mehrere Befehlssätze speichern. Der Begriff „computerlesbares Speichermedium“ soll auch jedes Medium umfassen, das in der Lage ist, einen Satz von Anweisungen zur Ausführung durch die Maschine zu speichern, zu kodieren oder zu tragen, und das die Maschine veranlasst, eine oder mehrere der Methoden der vorliegenden Offenbarung durchzuführen. Der Begriff „computerlesbares Speichermedium“ schließt dementsprechend Festkörperspeicher, optische Medien und magnetische Medien ein, ist aber nicht darauf beschränkt. Der Begriff „computerlesbares Speichermedium“ schließt keine transitorischen Signale ein.
  • In der obigen Beschreibung sind zahlreiche Details aufgeführt. Einem Fachmann, der mit den Vorteilen dieser Offenbarung vertraut ist, wird jedoch klar sein, dass Implementierungen der Offenbarung auch ohne diese spezifischen Details durchgeführt werden können. Darüber hinaus sind Implementierungen nicht auf die exakte Reihenfolge einiger Operationen beschränkt, und es versteht sich, dass einige Operationen, die als zwei Schritte dargestellt sind, kombiniert werden können und einige Operationen, die als ein Schritt dargestellt sind, aufgeteilt werden können. In einigen Fällen werden bekannte Strukturen und Geräte in Form von Blockdiagrammen und nicht im Detail dargestellt, um die Beschreibung nicht zu verkomplizieren.
  • Einige Teile der detaillierten Beschreibung werden in Form von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten der Datenverarbeitung verwendet werden, um anderen Fachleuten den Inhalt ihrer Arbeit am effektivsten zu vermitteln. Ein Algorithmus wird hier und im Allgemeinen als eine in sich konsistente Abfolge von Schritten verstanden, die zu einem gewünschten Ergebnis führen. Bei den Schritten handelt es sich um solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
  • Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen in Verbindung gebracht werden müssen und lediglich praktische Bezeichnungen für diese Größen sind. Sofern nicht ausdrücklich anders angegeben und aus der obigen Diskussion ersichtlich, wird davon ausgegangen, dass sich Diskussionen, die Begriffe wie „Identifizieren“, „Bestimmen“, „Berechnen“, „Aktualisieren“, „Übertragen“, „Empfangen“, „Erzeugen“, „Ändern“ oder ähnliches verwenden, auf die Aktionen und Prozesse eines Computersystems oder eines ähnlichen elektronischen Computergeräts beziehen, das Daten, die als physikalische (z. B, (z. B. elektronische) Größen in den Registern und Speichern des Computersystems dargestellt sind, in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder in anderen derartigen Geräten zur Speicherung, Übertragung oder Anzeige von Informationen dargestellt werden.
  • Die Ausführungen der Offenbarung beziehen sich auch auf ein Gerät zur Durchführung der hier beschriebenen Vorgänge. Dieses Gerät kann speziell für die geforderten Zwecke konstruiert sein, oder es kann einen Allzweckcomputer umfassen, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann in einem nicht transitorischen, computerlesbaren Speichermedium gespeichert sein, wie z. B., aber nicht beschränkt auf, jede Art von Diskette, einschließlich Disketten, optische Disketten, CD-ROMs und magnetischoptische Disketten, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten, Flash-Speicher oder jede Art von Medien, die zur Speicherung elektronischer Anweisungen geeignet sind.
  • Die Worte „Beispiel“ oder „beispielhaft“ werden hierin verwendet, um als Beispiel, Instanz oder Illustration zu dienen. Jeder hier als „Beispiel“ oder „beispielhaft“ beschriebene Aspekt oder Entwurf ist nicht unbedingt als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Entwürfen zu verstehen. Vielmehr soll die Verwendung der Worte „Beispiel“ oder „beispielhaft“ dazu dienen, Konzepte in einer konkreten Weise darzustellen. Wie in dieser Anmeldung verwendet, soll der Begriff „oder“ eher ein einschließendes „oder“ bedeuten als ein ausschließendes „oder“. Das heißt, sofern nicht anders angegeben oder aus dem Kontext ersichtlich, ist mit „X schließt A oder B ein“ jede der natürlichen, einschließenden Permutationen gemeint. Das heißt, wenn X A einschließt, X B einschließt oder X sowohl A als auch B einschließt, dann ist „X schließt A oder B ein“ in jedem der vorgenannten Fälle erfüllt. Darüber hinaus sollten die Artikel „ein/eine/eines“, wie sie in dieser Anmeldung und den beigefügten Ansprüchen verwendet werden, im Allgemeinen so ausgelegt werden, dass sie „ein/eine/eines oder mehrere“ bedeuten, es sei denn, es ist etwas anderes angegeben oder aus dem Kontext geht eindeutig hervor, dass sie sich auf eine Singularform beziehen. Darüber hinaus ist die Verwendung des Begriffs „eine Implementierung“ oder „eine gewisse Ausführungsform“ oder „eine Implementierung“ oder „eine gewisse Implementierung“ durchweg nicht gleichbedeutend mit ein und derselben Ausführungsform oder Implementierung, es sei denn, sie wird als solche beschrieben. Darüber hinaus sind die hierin verwendeten Begriffe „erstes“, „zweites“, „drittes“, „viertes“ usw. als Kennzeichnungen zur Unterscheidung zwischen verschiedenen Elementen zu verstehen und haben nicht unbedingt eine ordinale Bedeutung entsprechend ihrer numerischen Bezeichnung.
  • Die hier vorgestellten Algorithmen und Anzeigen sind nicht von Natur aus an einen bestimmten Computer oder ein anderes Gerät gebunden. Verschiedene Allzwecksysteme können mit Programmen gemäß den hier dargelegten Lehren verwendet werden, oder es kann sich als zweckmäßig erweisen, ein spezielleres Gerät zu konstruieren, um die erforderlichen Verfahrensschritte durchzuführen. Die erforderliche Struktur für eine Vielzahl dieser Systeme geht aus der nachfolgenden Beschreibung hervor. Darüber hinaus wird die vorliegende Offenbarung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es versteht sich von selbst, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der Offenbarung, wie sie hier beschrieben sind, umzusetzen.
  • In einem Aspekt umfasst ein System mindestens einen Prozessor und einen Speicher, der Aggregatdefinitionen speichert. Jede Aggregatdefinition kann einen Schlüssel, einen Ausgabespeicher, ein Merkmal, einen Halbwertszeitwert und eine Aggregatoperation spezifizieren, die auf eine Kreuzung des Merkmals und den Halbwertszeitwert anzuwenden ist, um Aggregatmetriken zu erzeugen. Das System kann auch einen Speicher enthalten, in dem eine Aggregationsmaschine gespeichert ist, die so konfiguriert ist, dass sie aus der Eingabequelle auf der Grundlage der Aggregatdefinitionen Aggregatmerkmaldatensätze erzeugt und die Aggregatmerkmaldatensätze im Ausgabespeicher speichert, wobei ein Aggregatmerkmaldatensatz eine Aggregatmetrik für das Merkmal enthält, das im Laufe der Zeit unter Verwendung des Halbwertszeitwerts verfallen ist. Das System kann auch einen Speicher enthalten, der einen Abfragedienst speichert. Der Abfragedienst ist so konfiguriert, dass er eine Anfrage mit Parametern empfängt und unter Verwendung der Aggregatdefinitionen ansprechende Aggregatmerkmaldatensätze identifiziert, die die Parameter erfüllen. Der Abfragedienst ist ferner so konfiguriert, dass er die Halbwertszeit auf die ansprechenden Merkmalsdatensätze anwendet und die ansprechenden Merkmalsdatensätze einem Anforderer bereitstellt, wobei der Anforderer die ansprechenden Merkmalsdatensätze als Eingabe für ein neuronales Netz verwendet.
  • Diese und andere Aspekte können einen oder mehrere der folgenden Punkte umfassen. Beispielsweise kann das Merkmal ein binäres Feld oder ein kontinuierliches Feld sein, das in der Eingabequelle gefunden wurde. In einigen Implementierungen spezifizieren zumindest einige Aggregatdefinitionen außerdem eine Kennung, wobei die Kennung ein binäres Feld ist, das in der Eingabequelle gefunden wurde, und die Aggregationsmaschine kann die Aggregatoperation auf ein vollständiges Kreuz des Merkmals und der Kennung und den Halbwertszeitwert anwenden. Als weiteres Beispiel ist der Schlüssel ein binäres Feld, ein diskretes Feld oder ein spärliches Feld, das in der Eingabequelle gefunden wurde. Als weiteres Beispiel kann mindestens eine Aggregatdefinition zwei Halbwertszeiten enthalten, und die aus der mindestens einen Aggregatdefinition erzeugten Aggregatmerkmaldatensätze enthalten die Aggregatoperation, die auf eine Kreuzung aus dem Merkmal und jedem der beiden Halbwertszeiten angewendet wird. Als weiteres Beispiel können die Aggregationsmaschine und der Abfragedienst weiterarbeiten, wenn ein zweites Merkmal zu einer Aggregatdefinition hinzugefügt wird. Als weiteres Beispiel enthält jeder Datensatz eines Aggregatmerkmals eine Version. Als weiteres Beispiel können zumindest einige Aggregatdefinitionen auch eine Transformationsmaschine zur Übersetzung von Daten in der Eingabequelle in ein gemeinsames, von der Aggregationsmaschine verwendetes Eingabeformat angeben. Als weiteres Beispiel kann der Aggregatmerkmaldatensatz eine Gesamtzahl von Datensätzen unabhängig vom Merkmal enthalten. Als weiteres Beispiel kann die Aggregationsmaschine Aggregatmerkmaldatensätze in einem Stapelmodus erzeugen, und jeder Aggregatmerkmaldatensatz kann mit einer Stapelnummer verknüpft sein, und der Abfragedienst ist so konfiguriert, dass er die Halbwertszeit auf einen ersten Aggregatmerkmaldatensatz anwendet, der auf einer Endzeit für die Stapelnummer und einem letzten Aktualisierungsdatum basiert, das mit dem ersten Aggregatmerkmaldatensatz verknüpft ist.
  • In einem Aspekt umfasst ein Verfahren das Lesen eines neuen Datensatzes aus einer Eingabequelle und den Zugriff auf eine Vielzahl von Aggregatdefinitionen. Jede der mehreren Aggregatdefinitionen spezifiziert einen Schlüssel, einen Ausgabespeicher, der einen Ort für aus der Aggregatdefinition erzeugte Aggregatdatensätze angibt, einen Merkmalssatz, der ein oder mehrere Informationsfelder aus der Eingabequelle angibt, einen Halbwertszeitwertsatz, der einen oder mehrere Zeiträume angibt, und einen Satz von Aggregatoperationen, die auf eine Kreuzung aus dem Merkmalssatz und dem Halbwertszeitwertsatz anzuwenden sind, um einen Satz von Aggregatmetriken zu erzeugen. Das Verfahren kann die Bestimmung eines jeweiligen Eingabeschlüsselwertes für jede der Aggregatdefinitionen auf der Grundlage des Zugriffs beinhalten. Der jeweilige Eingabeschlüsselwert wird auf der Grundlage des Schlüssels für die Aggregatdefinition und eines entsprechenden Wertes aus dem neuen Datensatz bestimmt. Das Verfahren umfasst auch das Identifizieren erster Aggregatmerkmaldatensätze in Ausgabespeichern, die mit der Vielzahl von Aggregatdefinitionen verknüpft sind, wobei jeder erste Aggregatmerkmaldatensatz einen Wert für den Schlüssel aufweist, der mit dem jeweiligen Eingabeschlüsselwert für die Aggregatdefinition übereinstimmt. Jeder erste Aggregatmerkmaldatensatz enthält eine oder mehrere Aggregatmetriken, wobei die Mehrzahl eine Kreuzung des Merkmalssatzes, des Halbwertszeitwertsatzes und des in der Aggregatdefinition spezifizierten Aggregatoperationssatzes darstellt. Das Verfahren umfasst auch für jeden der ersten Aggregatmerkmaldatensätze das Aktualisieren der Aggregatmetriken unter Verwendung des Datensatzes von der Eingabequelle und eines auf die Aggregatmetriken angewandten Halbwertszeitverfalls. Das Verfahren umfasst auch die Verwendung der Aggregatmerkmaldatensätze als Eingabe für ein neuronales Netz.
  • Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale umfassen. Zum Beispiel kann das Aktualisieren der Aggregatmetriken für jeden der ersten Aggregatmerkmaldatensätze das Berechnen der aktuellen Aggregatmetriken für den Datensatz aus der Eingabequelle und das Kombinieren der aktuellen Aggregatmetriken mit den verfallenen Aggregatmetriken des ersten Aggregatmerkmaldatensatzes umfassen. In einigen Implementierungen wird das Kombinieren der aktuellen Aggregatmetriken mit den verfallenen Aggregatmetriken wie folgt durchgeführt Y + X 2 ( t o l d t n e w ) H
    Figure DE202017007517U1_0002
    wobei X eine frühere Aggregatmetrik ist, told ein mit X verknüpfter Zeitstempel ist, Y die aktuelle Aggregatmetrik ist, tnew ein mit Y verknüpfter Zeitstempel ist und H der Halbwertszeitwert ist. Als weiteres Beispiel kann die Verwendung der Aggregatmerkmaldatensätze als Eingabe für ein neuronales Netz den Empfang einer Parameter spezifizierenden Abfrage, den Erhalt von ansprechenden Aggregatmerkmaldatensätzen, die mit den Parametern übereinstimmen, unter Verwendung der Vielzahl von Aggregatdefinitionen, und die Bereitstellung der ansprechenden Aggregatmerkmaldatensätze für das neuronale Netz umfassen. Als weiteres Beispiel kann mindestens eine der Aggregatdefinitionen eine Transformationsroutine spezifizieren, und das Verfahren umfasst ferner die Durchführung der Transformationsroutine an dem Eingabedatensatz vor der Identifizierung der ersten Aggregatdatensätze. Als weiteres Beispiel kann mindestens eine der mehreren Aggregatdefinitionen ferner einen Etikettensatz spezifizieren, und der Aggregatoperationssatz kann auf die Kreuzung des Merkmalssatzes, des Etikettensatzes und des Halbwertszeitwertsatzes angewendet werden.
  • In einem Aspekt umfasst ein Verfahren den Empfang eines Abfrageparameters und die Bestimmung von Aggregatdefinitionen aus einer Vielzahl von Aggregatdefinitionen, die auf den Parameter ansprechen. Jede der mehreren Aggregatdefinitionen spezifiziert einen Schlüssel, einen Ausgabespeicher, der einen Ort für aus der Aggregatdefinition erzeugte Aggregatdatensätze angibt, einen Merkmalssatz, der ein oder mehrere Informationsfelder aus der Eingabequelle angibt, einen Halbwertszeitwertsatz, der eine oder mehrere Zeitperioden angibt, und einen Satz von Aggregatoperationen, der einen oder mehrere Aggregatoperatoren angibt, die auf eine Kreuzung aus dem Merkmalssatz und dem Halbwertszeitwertsatz anzuwenden sind. Das Verfahren kann auch beinhalten, dass ansprechende Aggregatmerkmaldatensätze, die auf den Parameter ansprechen, aus Ausgabespeichern erhalten werden, die in den ansprechenden Aggregatdefinitionen angegeben sind, und dass ein Halbwertszeitverfall auf jeden ansprechenden Aggregatmerkmaldatensatz angewendet wird. Der Halbwertszeitverfall für einen bestimmten Aggregatmerkmaldatensatz kann auf einem Zeitstempel, der mit dem bestimmten Aggregatmerkmaldatensatz verknüpft ist, und einem Zeitstempel der letzten Aktualisierung basieren. Das Verfahren kann auch die Bereitstellung der ansprechenden Aggregatmerkmaldatensätze als Eingabe für ein neuronales Netz umfassen.
  • Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale umfassen. Zum Beispiel können zumindest einige der Ausgabespeicher aus einer Online-Quelle und zumindest einige der Ausgabespeicher aus einer Stapel-Quelle stammen. Ein weiteres Beispiel ist, dass der Abfrageparameter ein Schlüssel-Wert-Paar spezifizieren kann und die ansprechenden Aggregatdefinitionen einen Schlüssel haben, der mit dem Schlüssel des Schlüssel-Wert-Paares übereinstimmt. In einigen Implementierungen kann der Abfrageparameter einen Benutzeridentifikator darstellen, der Schlüssel und die Bereitstellung der ansprechenden Aggregatmerkmaldatensätze als Eingabe für das neuronale Netz erhöhen die Genauigkeit einer Vorhersage durch das neuronale Netz für den Benutzer. Als weiteres Beispiel kann der Abfrageparameter ein Datensatz sein, der dasselbe Format wie die Aggregatmerkmaldatensätze hat, und die ansprechenden Aggregatdefinitionen haben einen Schlüssel, der mit dem Schlüssel des Schlüssel-Wert-Paares übereinstimmt. Als weiteres Beispiel kann der Abfrageparameter ein Datensatz sein, der dasselbe Format wie die Aggregatmerkmaldatensätze hat, und die ansprechenden Aggregatdefinitionen sind die Mehrzahl von Aggregatdefinitionen, und die ansprechenden Aggregatmerkmaldatensätze sind Aggregatmerkmaldatensätze mit einem zugehörigen jeweiligen Schlüsselwert, der mit dem Wert eines Feldes in dem Datensatz übereinstimmt, der dem Schlüssel der jeweiligen Aggregatdefinition für den Aggregatmerkmaldatensatz entspricht.
  • In einem Aspekt enthält ein System mindestens einen Prozessor und einen Speicher, in dem Anweisungen gespeichert sind, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Computersystem veranlassen, einen der hierin offengelegten Prozesse oder Methoden durchzuführen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/373946 [0002]

Claims (20)

  1. Ein System von Computern, aufweisend: mindestens einen Prozessor; einen Speicher, der Aggregatdefinitionen speichert, wobei jede Aggregatdefinition Folgendes spezifiziert: ein Schlüsselfeld, einen Ausgabespeicher, mindestens ein Merkmal, mindestens einen Halbwertszeitwert, und mindestens eine Aggregatoperation; Speicher, der eine Aggregationsmaschine speichert, die konfiguriert ist, um Aggregatmerkmalsdatensätze zu erzeugen durch: Bestimmen, dass eine Eingabequelle ein Feld hat, das einem Schlüsselfeld in einer ersten Aggregatdefinition der Aggregatdefinitionen entspricht, wobei das Feld einen entsprechenden Wert in der Eingabequelle hat, Feststellen, dass der in der ersten Aggregatdefinition spezifizierte Ausgabespeicher keinen Aggregatmerkmalsdatensatz für den entsprechenden Wert aufweist, und als Reaktion auf die Feststellung, dass dem Ausgabespeicher der Aggregatmerkmalsdatensatz fehlt, Erzeugen und Speichern des Aggregatmerkmalsdatensatzes in dem Ausgabespeicher, wobei der Aggregatmerkmalsdatensatz einen Schlüsselwert enthält, der mit dem entsprechenden Wert übereinstimmt, und Aggregatmetriken für eindeutige Kombinationen von Aggregatoperationen, Merkmalen und Halbwertszeiten enthält, die in der ersten Aggregatdefinition angegeben sind, und Halbwertszeitwerten enthält, die in der ersten Aggregatdefinition spezifiziert sind, wobei eine Aggregatmetrik der Aggregatmetriken eine Aggregatoperation darstellt, die auf Werte von Datensätzen in der Eingabequelle eines Merkmals in der ersten Aggregatdefinition angewandt wird, wobei die Aggregatmetrik mit einem Halbwertszeitwert aus der ersten Aggregatdefinition verknüpft ist, und Speicher, der einen Abfragedienst speichert, der konfiguriert ist, um: von einem anfordernden Prozess eine Anforderung mit Abfrageparametern zu empfangen, die ein Schlüssel-Wert-Paar spezifizieren, aus den Aggregatdefinitionen zweite Aggregatdefinitionen zu identifizieren, wobei jede zweite Aggregatdefinition ein Feld aufweist, das dem Schlüssel des Schlüssel-Wert-Paares entspricht, in Ausgabespeichern, die in den zweiten Aggregatdefinitionen spezifiziert sind, antwortende Aggregatmerkmalsdatensätze zu identifizieren, die einen Wert haben, der dem Wert des Schlüssel-Wert-Paares entspricht, für jede Aggregatmetrik in den antwortenden aggregierten Merkmalsdatensätzen eine aktualisierte Metrik zu berechnen, indem der Halbwertszeitwert, der mit dem aggregierten Merkmalsdatensatz verknüpft ist, auf die Aggregatmetrik angewendet wird, die antwortenden aggregierten Merkmalsdatensätze mit aktualisierten Metriken an den anfordernden Prozess bereitzustellen, und durch den anfordernden Prozess eine Ausgabe von einem neuronalen Netz zu erhalten, das die antwortenden aggregierten Merkmalsdatensätze als Eingabe verwendet.
  2. Das System von Computern nach Anspruch 1, wobei das Schlüssel-Wert-Paar einen Benutzer identifiziert, und wobei der Anforderungsprozess die Ausgabe des neuronalen Netzes in einer Vorhersage für den Benutzer verwendet.
  3. Das System von Computern nach Anspruch 1, wobei der Anforderungsprozess die Ausgabe des neuronalen Netzes bei der Vorhersage eines Artikels verwendet.
  4. Das System von Computern nach Anspruch 2 oder 3, wobei die Vorhersage ein Vorschlag zur automatischen Vervollständigung ist.
  5. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei das mindestens eine Merkmal ein binäres Feld oder ein kontinuierliches Feld ist, das in den Datensätzen der Eingabequelle gefunden wird.
  6. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die erste Aggregatdefinition ferner ein Label spezifiziert, wobei das Label ein binäres Feld ist, das in einem Eingangsquellendatensatz gefunden wird, und wobei der Aggregatmerkmalsdatensatz Aggregatmetriken für eindeutige Kombinationen von Aggregatoperationen, Merkmalen, Labels und Halbwertszeiten enthält.
  7. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei mindestens eine der Aggregatdefinitionen zwei Halbwertszeiten enthält.
  8. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die Aggregatdefinitionen über einen Texteditor modifizierbar sind und die Aggregationsmaschine und der Abfragedienst weiterarbeiten, wenn ein neues Merkmal zu einer Aggregatdefinition hinzugefügt wird.
  9. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei der Aggregatmerkmalsdatensatz ferner eine Version enthält.
  10. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die erste Aggregatdefinition ferner eine Transformationsmaschine zum Übersetzen von Daten in den Datensätzen in der Eingabequelle in ein gemeinsames Eingabeformat spezifiziert, das von der Aggregationsmaschine verwendet wird.
  11. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei der aggregierte Merkmalsdatensatz eine Aggregatmetrik enthält, die eine Gesamtzahl von Datensätzen unabhängig vom Merkmal darstellt.
  12. Das System von Computern nach einem der vorangehenden Ansprüche, wobei die Aggregationsmaschine so konfiguriert ist, dass sie die aggregierten Merkmalsdatensätze in einem Stapelmodus erzeugt, und wobei jeder Aggregatmerkmalsdatensatz mit einer Stapelnummer verknüpft ist und der Abfragedienst so konfiguriert ist, dass er den Halbwertszeitwert auf einen ersten Aggregatmerkmalsdatensatz anwendet, der auf einer Endzeit für die Stapelnummer und einem letzten Aktualisierungsdatum basiert, das mit dem ersten Aggregatmerkmalsdatensatz verknüpft ist.
  13. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die Aggregationsmaschine ferner so konfiguriert ist, dass sie Aggregatmerkmalsdatensätze aktualisiert durch: Bestimmen, dass Datensätze für eine Eingabequelle ein Feld haben, das einem Schlüsselfeld in mindestens einer dritten Aggregatdefinition der Aggregatdefinitionen entspricht, wobei die Datensätze einen entsprechenden Feldwert für das Schlüsselfeld haben; Bestimmen, dass der in der dritten Aggregatdefinition spezifizierte Ausgabespeicher einen Aggregatmerkmalsdatensatz mit einem Wert des Feldes hat, der dem entsprechenden Feldwert der Datensätze entspricht; Berechnen aktueller Aggregatmetriken für die Datensätze aus der Eingabequelle, wobei die aktuellen Aggregatmetriken eindeutige Kombinationen eines Satzes von Aggregatoperationen und eines Satzes von Merkmalen darstellen, wobei eine aktuelle Aggregatmetrik der aktuellen Aggregatmetriken eine Operation aus dem Satz von Aggregatoperationen darstellt, die auf Werte eines Merkmals in dem Satz von Merkmalen angewendet wird, die aus den Datensätzen der Eingabequelle erhalten wurden; und Aktualisieren des Aggregatmerkmalsdatensatzes in dem in der dritten Aggregatdefinition spezifizierten Ausgabespeicher durch, für jede vorherige Aggregatmetrik in dem Aggregatmerkmalsdatensatz: Abklingenlassen der früheren Aggregatmetrik unter Verwendung des Halbwertszeitwerts für die frühere Aggregatmetrik, und Kombinieren der aktuellen Aggregatmetrik mit der abgeklungenen Aggregatmetrik.
  14. Das System von Computern nach Anspruch 13, wobei das Kombinieren der aktuellen Aggregatmetrik mit der abgeklungenen Aggregatmetrik gemäß Y + X 2 ( t o l d t n e w ) H ,
    Figure DE202017007517U1_0003
    durchgeführt wird, wobei: X eine vorherige Aggregatmetrik ist; told ein mit X verknüpfter Zeitstempel ist; Y die aktuelle Aggregatmetrik ist; tnew ein mit Y verknüpfter Zeitstempel ist; und H der Halbwertszeitwert für die aktuelle Aggregatmetrik ist.
  15. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei der Abfragedienst ferner so konfiguriert ist, dass er bei der Anwendung des Halbwertszeitwerts auf die Aggregatmetrik einen Zeitstempel, der mit dem antwortenden Aggregatmerkmalsdatensatz, in dem die Aggregatmetrik gefunden wird, verknüpft ist, und eine Abfragezeit für die Anfrage verwendet.
  16. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die Abfrageparameter dasselbe Format haben wie die antwortenden Aggregatmerkmalsdatensätze und die zweiten Aggregatdefinitionen ein Schlüsselfeld haben, das dem Schlüssel des Schlüssel-Wert-Paares entspricht, und die antwortenden Aggregatmerkmalsdatensätze einen Schlüsselwert haben, der dem Wert des Schlüssel-Wert-Paares entspricht.
  17. Das System von Computern nach einem der Ansprüche 1 bis 15, wobei der Wert des Schlüssel-Wert-Paares einen Ausgabespeicher identifiziert.
  18. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei der Abfragedienst ferner konfiguriert ist, um: von einem anfordernden Prozess einen Eingabedatensatz zu empfangen; für jede Aggregatmetrik in jedem Aggregatmerkmalsdatensatz in jedem Ausgabespeicher, der in einer der Aggregatdefinitionen spezifiziert ist, eine aktualisierte Metrik für die Aggregatmetrik zu berechnen durch: Anwenden der Operation für die Aggregatmetrik auf einen Wert aus dem Eingabedatensatz des Merkmals für die Aggregatmetrik, um einen ersten Wert zu erzeugen, Anwenden des Halbwertszeitwertes auf die Aggregatmetrik, um einen zweiten Wert zu erzeugen, und Aktualisieren der aggregierten Metrik mit einer Kombination aus dem ersten Wert und dem zweiten Wert; und Bereitstellen der aktualisierten aggregierten Metrik an den anfordernden Prozess als Antwort.
  19. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei das neuronale Netz mindestens eines der folgenden enthält: ein neuronales Netz, das für die Vorhersage der automatischen Erledigung von Aufgaben konfiguriert ist; ein neuronales Netzwerk, das für eine Wettervorhersage konfiguriert ist; ein neuronales Netzwerk, das für die Vorhersage von Empfehlungen an einen Benutzer für sich schnell ändernde Inhalte, die von der Eingabequelle empfangen werden, konfiguriert ist; und ein neuronales Netzwerk, das so konfiguriert ist, dass es Muster in Eingangsmerkmalen identifiziert und diese Muster verwendet, um eine Aufgabe und/oder Vorhersage durchzuführen.
  20. Das System von Computern nach einem der vorhergehenden Ansprüche, wobei die Aggregationsmaschine ferner so konfiguriert ist, dass sie in dem erzeugten Aggregatmerkmalsdatensatz jede Aggregatmetrik mit der Aggregatoperation, dem Merkmal und dem Halbwertszeitwert verknüpft, die in der eindeutigen Kombination verwendet werden, die die Aggregatmetrik darstellt.
DE202017007517.2U 2016-08-11 2017-08-11 Aggregatmerkmale für maschinelles Lernen Expired - Lifetime DE202017007517U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662373946P 2016-08-11 2016-08-11
US62/373,946 2016-08-11

Publications (1)

Publication Number Publication Date
DE202017007517U1 true DE202017007517U1 (de) 2022-05-03

Family

ID=59677438

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017007517.2U Expired - Lifetime DE202017007517U1 (de) 2016-08-11 2017-08-11 Aggregatmerkmale für maschinelles Lernen

Country Status (5)

Country Link
US (5) US20180046475A1 (de)
EP (2) EP3497609B1 (de)
CN (1) CN109643347A (de)
DE (1) DE202017007517U1 (de)
WO (2) WO2018031921A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10834054B2 (en) 2015-05-27 2020-11-10 Ping Identity Corporation Systems and methods for API routing and security
US11403563B2 (en) 2016-10-19 2022-08-02 Accertify, Inc. Systems and methods for facilitating recognition of a device and/or an instance of an app invoked on a device
US11093852B2 (en) * 2016-10-19 2021-08-17 Accertify, Inc. Systems and methods for recognizing a device and/or an instance of an app invoked on a device
US10681012B2 (en) 2016-10-26 2020-06-09 Ping Identity Corporation Methods and systems for deep learning based API traffic security
US11315685B2 (en) * 2017-01-25 2022-04-26 UCB Biopharma SRL Method and system for predicting optimal epilepsy treatment regimes
US10530795B2 (en) * 2017-03-17 2020-01-07 Target Brands, Inc. Word embeddings for anomaly classification from event logs
US11748653B2 (en) * 2017-10-05 2023-09-05 DataRobot, Inc. Machine learning abstraction
EP4020282A1 (de) * 2017-10-13 2022-06-29 Ping Identity Corporation Verfahren und vorrichtung zur analyse von sequenzen von anwendungsprogrammierschnittstellenverkehr zur identifizierung möglicher bösartiger aktionen
US11537931B2 (en) * 2017-11-29 2022-12-27 Google Llc On-device machine learning platform to enable sharing of machine-learned models between applications
US11640420B2 (en) 2017-12-31 2023-05-02 Zignal Labs, Inc. System and method for automatic summarization of content with event based analysis
US11755915B2 (en) 2018-06-13 2023-09-12 Zignal Labs, Inc. System and method for quality assurance of media analysis
US11356476B2 (en) * 2018-06-26 2022-06-07 Zignal Labs, Inc. System and method for social network analysis
US11430312B2 (en) * 2018-07-05 2022-08-30 Movidius Limited Video surveillance with neural networks
US11824882B2 (en) * 2018-08-13 2023-11-21 Ares Technologies, Inc. Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11695783B2 (en) * 2018-08-13 2023-07-04 Ares Technologies, Inc. Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11429627B2 (en) 2018-09-28 2022-08-30 Splunk Inc. System monitoring driven by automatically determined operational parameters of dependency graph model with user interface
US11620300B2 (en) * 2018-09-28 2023-04-04 Splunk Inc. Real-time measurement and system monitoring based on generated dependency graph models of system components
US11017028B2 (en) * 2018-10-03 2021-05-25 The Toronto-Dominion Bank Systems and methods for intelligent responses to queries based on trained processes
US11470101B2 (en) 2018-10-03 2022-10-11 At&T Intellectual Property I, L.P. Unsupervised encoder-decoder neural network security event detection
US11181894B2 (en) * 2018-10-15 2021-11-23 Uptake Technologies, Inc. Computer system and method of defining a set of anomaly thresholds for an anomaly detection model
US11989634B2 (en) * 2018-11-30 2024-05-21 Apple Inc. Private federated learning with protection against reconstruction
US11941513B2 (en) * 2018-12-06 2024-03-26 Electronics And Telecommunications Research Institute Device for ensembling data received from prediction devices and operating method thereof
US11496475B2 (en) 2019-01-04 2022-11-08 Ping Identity Corporation Methods and systems for data traffic based adaptive security
US10897402B2 (en) * 2019-01-08 2021-01-19 Hewlett Packard Enterprise Development Lp Statistics increment for multiple publishers
US11170064B2 (en) 2019-03-05 2021-11-09 Corinne David Method and system to filter out unwanted content from incoming social media data
US11126678B2 (en) 2019-03-05 2021-09-21 Corinne Chantal David Method and system to filter out harassment from incoming social media data
CN113508381B (zh) * 2019-03-05 2024-03-01 西门子工业软件有限公司 用于嵌入式软件应用的基于机器学习的异常检测
US11128649B1 (en) 2019-03-06 2021-09-21 Trend Micro Incorporated Systems and methods for detecting and responding to anomalous messaging and compromised accounts
US11544621B2 (en) * 2019-03-26 2023-01-03 International Business Machines Corporation Cognitive model tuning with rich deep learning knowledge
US20200366459A1 (en) * 2019-05-17 2020-11-19 International Business Machines Corporation Searching Over Encrypted Model and Encrypted Data Using Secure Single-and Multi-Party Learning Based on Encrypted Data
US11032150B2 (en) * 2019-06-17 2021-06-08 International Business Machines Corporation Automatic prediction of behavior and topology of a network using limited information
US11677703B2 (en) 2019-08-15 2023-06-13 Rovi Guides, Inc. Systems and methods for automatically identifying spam in social media comments based on context
US11258741B2 (en) * 2019-08-15 2022-02-22 Rovi Guides, Inc. Systems and methods for automatically identifying spam in social media comments
US11443235B2 (en) * 2019-11-14 2022-09-13 International Business Machines Corporation Identifying optimal weights to improve prediction accuracy in machine learning techniques
US11238354B2 (en) * 2020-02-03 2022-02-01 Kaskada, Inc. Event-based feature engineering
US11354596B2 (en) 2020-02-03 2022-06-07 Kaskada, Inc. Machine learning feature engineering
US11792877B2 (en) * 2020-02-21 2023-10-17 Qualcomm Incorporated Indication triggering transmission of known data for training artificial neural networks
US11948352B2 (en) * 2020-03-26 2024-04-02 Amazon Technologies, Inc. Speculative training using partial gradients update
US11363057B1 (en) * 2020-04-17 2022-06-14 American Express Travel Related Services Company, Inc. Computer-based system for analyzing and quantifying cyber threat patterns and methods of use thereof
US11516240B2 (en) * 2020-12-29 2022-11-29 Capital One Services, Llc Detection of anomalies associated with fraudulent access to a service platform
US11609924B2 (en) * 2021-04-14 2023-03-21 Citrix Systems, Inc. Database query execution on multiple databases
US11340968B1 (en) * 2021-04-21 2022-05-24 EMC IP Holding Company LLC Executing repetitive custom workflows through API recording and playback
US11983102B2 (en) * 2021-11-19 2024-05-14 Bank Of America Corporation Electronic system for machine learning based anomaly detection in program code
US20230252033A1 (en) * 2022-02-09 2023-08-10 Microsoft Technology Licensing, Llc Impression discounting for followfeed

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039177A1 (en) * 1997-07-12 2005-02-17 Trevor Burke Technology Limited Method and apparatus for programme generation and presentation
US20050125280A1 (en) * 2003-12-05 2005-06-09 Hewlett-Packard Development Company, L.P. Real-time aggregation and scoring in an information handling system
US20050125401A1 (en) * 2003-12-05 2005-06-09 Hewlett-Packard Development Company, L. P. Wizard for usage in real-time aggregation and scoring in an information handling system
CN1691576A (zh) * 2004-04-27 2005-11-02 微软公司 通过移动设备的帐户创建
US8504575B2 (en) * 2006-03-29 2013-08-06 Yahoo! Inc. Behavioral targeting system
US10007895B2 (en) * 2007-01-30 2018-06-26 Jonathan Brian Vanasco System and method for indexing, correlating, managing, referencing and syndicating identities and relationships across systems
US8027938B1 (en) * 2007-03-26 2011-09-27 Google Inc. Discriminative training in machine learning
US7974974B2 (en) 2008-03-20 2011-07-05 Microsoft Corporation Techniques to perform relative ranking for search results
US8150723B2 (en) * 2009-01-09 2012-04-03 Yahoo! Inc. Large-scale behavioral targeting for advertising over a network
US8595194B2 (en) * 2009-09-15 2013-11-26 At&T Intellectual Property I, L.P. Forward decay temporal data analysis
US20130304818A1 (en) * 2009-12-01 2013-11-14 Topsy Labs, Inc. Systems and methods for discovery of related terms for social media content collection over social networks
US8904149B2 (en) * 2010-06-24 2014-12-02 Microsoft Corporation Parallelization of online learning algorithms
US8260826B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. Data processing system and method
US9558339B2 (en) * 2010-11-29 2017-01-31 Biocatch Ltd. Method, device, and system of protecting a log-in process of a computerized service
US9037483B1 (en) * 2011-04-07 2015-05-19 Aggregate Knowledge, Inc. Multi-touch attribution model for valuing impressions and other online activities
US8719273B2 (en) * 2011-08-26 2014-05-06 Adobe Systems Incorporated Analytics data indexing system and methods
US9218573B1 (en) * 2012-05-22 2015-12-22 Google Inc. Training a model using parameter server shards
US9817827B2 (en) * 2012-10-04 2017-11-14 Netflix, Inc. Relationship-based search and recommendations
US9646003B2 (en) * 2013-11-20 2017-05-09 Wolfram Research, Inc. Cloud storage methods and systems
US10152676B1 (en) * 2013-11-22 2018-12-11 Amazon Technologies, Inc. Distributed training of models using stochastic gradient descent
US9535897B2 (en) 2013-12-20 2017-01-03 Google Inc. Content recommendation system using a neural network language model
US9160760B2 (en) 2014-01-06 2015-10-13 Cisco Technology, Inc. Anomaly detection in a computer network
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20150324686A1 (en) * 2014-05-12 2015-11-12 Qualcomm Incorporated Distributed model learning
US9386078B2 (en) * 2014-05-30 2016-07-05 Ca, Inc. Controlling application programming interface transactions based on content of earlier transactions
US20160011732A1 (en) * 2014-07-11 2016-01-14 Shape Security, Inc. Disrupting automated attacks on client-server interactions using polymorphic application programming interfaces
US20190147365A1 (en) * 2014-08-19 2019-05-16 Google Inc. Deep vector table machine systems
US9984337B2 (en) * 2014-10-08 2018-05-29 Nec Corporation Parallelized machine learning with distributed lockless training
US9836480B2 (en) * 2015-01-12 2017-12-05 Qumulo, Inc. Filesystem capacity and performance metrics and visualizations
US10445641B2 (en) * 2015-02-06 2019-10-15 Deepmind Technologies Limited Distributed training of reinforcement learning systems
CN106156810B (zh) * 2015-04-26 2019-12-03 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
US9953063B2 (en) * 2015-05-02 2018-04-24 Lithium Technologies, Llc System and method of providing a content discovery platform for optimizing social network engagements
US10540608B1 (en) * 2015-05-22 2020-01-21 Amazon Technologies, Inc. Dynamically scaled training fleets for machine learning
US10579750B2 (en) * 2015-06-05 2020-03-03 Uptake Technologies, Inc. Dynamic execution of predictive models
CN104980518B (zh) * 2015-06-26 2018-11-23 深圳市腾讯计算机系统有限公司 多学习主体并行训练模型的方法、装置和系统
US10679145B2 (en) * 2015-08-07 2020-06-09 Nec Corporation System and method for balancing computation with communication in parallel learning
US10229357B2 (en) * 2015-09-11 2019-03-12 Facebook, Inc. High-capacity machine learning system
US10671916B1 (en) * 2015-09-29 2020-06-02 DataRobot, Inc. Systems and methods to execute efficiently a plurality of machine learning processes
US20170091668A1 (en) * 2015-09-30 2017-03-30 Nec Laboratories America, Inc. System and method for network bandwidth aware distributed learning
US10402469B2 (en) * 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization
US10474951B2 (en) * 2015-10-23 2019-11-12 Nec Corporation Memory efficient scalable deep learning with model parallelization
CN105446834B (zh) * 2015-11-30 2018-10-19 华为技术有限公司 虚拟机快照的生成方法和装置
US10438132B2 (en) * 2015-12-16 2019-10-08 Accenture Global Solutions Limited Machine for development and deployment of analytical models
CN106980900A (zh) * 2016-01-18 2017-07-25 阿里巴巴集团控股有限公司 一种特征数据处理方法及设备
US10922620B2 (en) * 2016-01-26 2021-02-16 Microsoft Technology Licensing, Llc Machine learning through parallelized stochastic gradient descent
US10762539B2 (en) * 2016-01-27 2020-09-01 Amobee, Inc. Resource estimation for queries in large-scale distributed database system
CN107025205B (zh) * 2016-01-30 2021-06-22 华为技术有限公司 一种分布式系统中的训练模型的方法及设备
WO2017139534A1 (en) * 2016-02-12 2017-08-17 Google Inc. Systems and methods for robust large-scale machine learning
WO2017156791A1 (en) * 2016-03-18 2017-09-21 Microsoft Technology Licensing, Llc Method and apparatus for training a learning machine
CN107229518B (zh) * 2016-03-26 2020-06-30 阿里巴巴集团控股有限公司 一种分布式集群训练方法和装置
CN107292326A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种模型的训练方法和装置
US10338931B2 (en) * 2016-04-29 2019-07-02 International Business Machines Corporation Approximate synchronization for parallel deep learning
US10362013B2 (en) * 2016-05-27 2019-07-23 Dropbox, Inc. Out of box experience application API integration
US20170372232A1 (en) * 2016-06-27 2017-12-28 Purepredictive, Inc. Data quality detection and compensation for machine learning
EP3485436A4 (de) * 2016-07-18 2020-04-01 Nantomics, LLC Verteilte maschinenlernsysteme, vorrichtung und verfahren
US20180039905A1 (en) * 2016-08-03 2018-02-08 International Business Machines Corporation Large scale distributed training of data analytics models
CN107784364B (zh) * 2016-08-25 2021-06-15 微软技术许可有限责任公司 机器学习模型的异步训练
US10643150B2 (en) * 2016-10-11 2020-05-05 International Business Machines Corporation Parameter version vectors used for deterministic replay of distributed execution of workload computations
EP3549312B1 (de) * 2016-11-29 2022-08-03 Telefonaktiebolaget LM Ericsson (publ) Masterknoten, lokaler knoten und entsprechende verfahren, die davon durchgeführt werden, um eine oder mehrere metriken, die einem kommunikationsnetzwerk zugeordnet sind, vorherzusagen
US20180189228A1 (en) * 2017-01-04 2018-07-05 Qualcomm Incorporated Guided machine-learning training using a third party cloud-based system
CN110168580B (zh) * 2017-01-10 2022-10-04 华为技术有限公司 使用分布式系统训练分类器模型时的容错恢复系统和方法
US20180218287A1 (en) * 2017-02-01 2018-08-02 Facebook, Inc. Determining performance of a machine-learning model based on aggregation of finer-grain normalized performance metrics
US11544740B2 (en) * 2017-02-15 2023-01-03 Yahoo Ad Tech Llc Method and system for adaptive online updating of ad related models
WO2018162069A1 (en) * 2017-03-09 2018-09-13 Huawei Technologies Co., Ltd. Computer system for distributed machine learning
US10649806B2 (en) * 2017-04-12 2020-05-12 Petuum, Inc. Elastic management of machine learning computing
US10360500B2 (en) * 2017-04-20 2019-07-23 Sas Institute Inc. Two-phase distributed neural network training system
US10614356B2 (en) * 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US10891156B1 (en) * 2017-04-26 2021-01-12 EMC IP Holding Company LLC Intelligent data coordination for accelerated computing in cloud environment
KR102372423B1 (ko) * 2017-05-16 2022-03-10 한국전자통신연구원 파라미터 공유 장치 및 방법
KR102197247B1 (ko) * 2017-06-01 2020-12-31 한국전자통신연구원 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법

Also Published As

Publication number Publication date
EP3497625A1 (de) 2019-06-19
EP3497609A1 (de) 2019-06-19
WO2018031921A1 (en) 2018-02-15
US20200257543A1 (en) 2020-08-13
US20180046918A1 (en) 2018-02-15
US20220382564A1 (en) 2022-12-01
CN109643347A (zh) 2019-04-16
WO2018031958A1 (en) 2018-02-15
US11132602B1 (en) 2021-09-28
US20180046475A1 (en) 2018-02-15
US10649794B2 (en) 2020-05-12
US11416268B2 (en) 2022-08-16
EP3497609B1 (de) 2020-10-07

Similar Documents

Publication Publication Date Title
DE202017007517U1 (de) Aggregatmerkmale für maschinelles Lernen
DE112017005538T5 (de) Automatisierte Erzeugung von Arbeitsabläufen
DE112021004908T5 (de) Computerbasierte systeme, rechenkomponenten und rechenobjekte, die eingerichtet sind, dynamische ausreisser-verzerrungs-verringerung bei maschinenlernmodellen zu implementieren
DE102012218966B4 (de) Verfahren und System zum Kennzeichnen von durch Dinge im Internet der Dinge erzeugten Originaldaten
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
DE102017207686A1 (de) Einblicke in die belegschaftsstrategie
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE102014113692A1 (de) Verdichtung von longitudinalen epa für eine verbesserte phänotypisierung
DE112013000916T5 (de) System zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt
DE112013003205T5 (de) Verfahren und Vorrichtung zum Verarbeiten von Datenbankdaten in einem verteilten Datenbanksystem
DE112013005993T5 (de) Verfahren, Vorrichtung und computerlesbares Medium für eine optimale Bestimmung von Daten-Teilmengen
DE112021001986T5 (de) Verfahren und System zum Verarbeiten von Datenaufzeichnungen
DE112020002344T5 (de) Feature engineering zur optimierung von neuronalen netzwerken
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
DE112020000554T5 (de) Verfahren zum zugreifen auf datensätze eines stammdatenverwaltungssystems
DE102021127244A1 (de) Künstliche Intelligenz Optimierungsplattform
DE102017208219A1 (de) Erstellung elektronischer Musterdokumente unter Nutzung des semantischen Kontexts
DE102021006293A1 (de) Bestimmung digitaler Personas unter Verwendung datengetriebener Analytik
DE102021124445A1 (de) Metamerkmal-trainingsmodelle für maschinenlernalgorithmen
DE102021123578A1 (de) Messen der datenqualität von daten in einer graphendatenbank
DE112021003761T5 (de) Prädiktive modelle mit zerlegbaren hierarchischen ebenen, die konfiguriert werden, um interpretierbare resultate zu erzeugen
DE202016009111U1 (de) System zur Verwaltung der Datenqualität
DE102017208626A1 (de) Liquide Belegschafts-Plattform
EP3736749A1 (de) Verfahren und vorrichtung zur ansteuerung eines geräts mit einem datensatz
WO2021104608A1 (de) Verfahren zum erzeugen eines engineering-vorschlags für eine vorrichtung oder anlage

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R157 Lapse of ip right after 6 years