-
INFORMATION BEZÜGLICH ZUGEHÖRIGER ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität der am 1. Juli 2020 eingereichten nicht-vorläufigen US-Patentanmeldung mit der seriellen Nummer 16/918.257, die die Priorität der vorläufigen US-Patentanmeldung mit der seriellen Nummer 62/873.255, eingereicht am 12. Juli 2019 beansprucht, welche beide hierin durch Bezugnahme in ihrer Gesamtheit enthalten sind.
-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft Informationsverarbeitung und insbesondere eine überwachte kreuzmodale Wiedergewinnung für Zeitreihen und Freiformtextkommentare unter Verwendung von multimodalen Triplettverlusten.
-
Beschreibung des zugehörigen Standes der Technik
-
Zeitreihendaten sind zum Beispiel in der Finanz- und Industriewelt weit verbreitet. Die Effektivität von Zeitreihenanalysen wird oft durch den Mangel an Feedback behindert, das für menschliche Benutzer verständlich ist. Eine Interpretation von Zeitreihen erfordert oft Fachwissen. In vielen realen Szenarien werden Zeitreihen mit von menschlichen Experten geschriebenen Kommentaren markiert. Obwohl die Kommentare in einigen Fällen nicht mehr als kategorische Bezeichnungen sind, sind sie häufiger natürliche Freiformtexte. Es ist wünschenswert, eine Zeitreihenanalyse in Richtung zu Fachgebietsbewusstsein und Interpretierbarkeit in Bezug auf die Zeitreihen und die assoziierten Freiformtexte voranzutreiben.
-
ZUSAMMENFASSUNG
-
Gemäß Aspekten der vorliegenden Erfindung wird ein Computerverarbeitungssystem zum kreuzmodalen Datenabruf bzw. zur kreuzmodalen Datenwiedergewinnung bereitgestellt. Das Computerverarbeitungssystem enthält ein neuronales Netzwerk mit einem Zeitreihencodierer und einem Textcodierer, die basierend auf einem Triplettverlust gemeinsam trainiert werden. Der Triplettverlust bezieht sich auf zwei unterschiedliche Modalitäten von (i) Zeitreihen und (ii) Freiformtextkommentaren, die jeweils einem Trainingssatz von Zeitreihen und einem Trainingssatz von Freiformtextkommentaren entsprechen. Das Computerverarbeitungssystem enthält weiterhin eine Datenbank zum Speichern der Trainingssätze mit aus Codierungen der Trainingssätze extrahierten Merkmalsvektoren. Die Codierungen werden durch Codieren der Zeitreihen im Trainingssatz von Zeitreihen unter Verwendung des Zeitreihencodierers und Codieren der Freiformtextkommentare im Trainingssatz von Freiformtextkommentaren unter Verwendung des Textcodierers erhalten. Das Computerverarbeitungssystem enthält auch einen Hardwareprozessor zum Abrufen bzw. Wiedergewinnen der Merkmalsvektoren entsprechend wenigstens einer der zwei unterschiedlichen Modalitäten aus der Datenbank zur Einfügung in einen Merkmalsraum zusammen mit wenigstens einem Merkmalsvektor entsprechend einer Testeingabe in Bezug auf wenigstens eines von einer Test-Zeitreihe und einem Test-Freiformtextkommentar, Bestimmen einer Gruppe von nächsten Nachbarn unter den Merkmalsvektoren im Merkmalsraum basierend auf Abstandskriterien und Ausgeben von Testergebnissen für die Testeingabe basierend auf der Gruppe von nächsten Nachbarn.
-
Gemäß anderen Aspekten der vorliegenden Erfindung wird ein computerimplementiertes Verfahren zum kreuzmodalen Datenabruf bzw. zur kreuzmodalen Datenwiedergewinnung bereitgestellt. Das Verfahren enthält ein gemeinsames Trainieren eines neuronalen Netzwerks mit einem Zeitreihencodierer und einem Textcodierer basierend auf einem Triplettverlust. Der Triplettverlust bezieht sich auf zwei unterschiedliche Modalitäten von (i) Zeitreihen und (ii) Freiformtextkommentaren, die jeweils einem Trainingssatz von Zeitreihen und einem Trainingssatz von Freiformtextkommentaren entsprechen. Das Verfahren enthält weiterhin ein Speichern, in einer Datenbank, der Trainingssätze mit aus Codierungen der Trainingssätze extrahierten Merkmalsvektoren. Die Codierungen werden durch Codieren die Zeitreihen im Trainingssatz von Zeitreihen unter Verwendung des Zeitreihencodierers und Codieren der Freiformtextkommentare im Trainingssatz von Freiformtextkommentaren unter Verwendung des Textcodierers erhalten. Das Verfahren enthält auch ein Abrufen bzw. Wiedergewinnung der Merkmalsvektoren entsprechend wenigstens einer der zwei unterschiedlichen Modalitäten aus der Datenbank zur Einfügung in einen Merkmalsraum zusammen mit wenigstens einem Merkmalsvektor entsprechend einer Testeingabe in Bezug auf wenigstens eines von einer Test-Zeitreihe und einem Test-Freiformtextkommentar. Das Verfahren enthält zusätzlich ein Bestimmen, durch einen Hardwareprozessor, einer Gruppe von nächsten Nachbarn unter den Merkmalsvektoren im Merkmalsraum basierend auf Abstandskriterien und ein Ausgeben von Testergebnissen für die Testeingabe basierend auf der Gruppe von nächsten Nachbarn.
-
Gemäß noch anderen Aspekten der vorliegenden Erfindung ist ein Computerprogrammprodukt zum kreuzmodalen Datenabruf bzw. zur kreuzmodalen Datenwiedergewinnung bereitgestellt, wobei das Computerprogrammprodukt ein nicht transitorisches computerlesbares Speichermedium umfasst, das Programmanweisungen damit verkörpert hat, wobei die Programmanweisungen durch einen Computer ausführbar sind, um zu veranlassen, dass der Computer durchführt. Das Verfahren enthält ein gemeinsames Trainieren eines neuronalen Netzwerks mit einem Zeitreihencodierer und einem Textcodierer basierend auf einem Triplettverlust. Der Triplettverlust bezieht sich auf zwei unterschiedliche Modalitäten von (i) Zeitreihen und (ii) Freiformtextkommentaren, die jeweils einem Trainingssatz von Zeitreihen und einem Trainingssatz von Freiformtextkommentaren entsprechen. Das Verfahren enthält weiterhin ein Speichern, in einer Datenbank, der Trainingssätze mit aus Codierungen der Trainingssätze extrahierten Merkmalsvektoren. Die Codierungen werden durch Codieren die Zeitreihen im Trainingssatz von Zeitreihen unter Verwendung des Zeitreihencodierers und Codieren der Freiformtextkommentare im Trainingssatz von Freiformtextkommentaren unter Verwendung des Textcodierers erhalten. Das Verfahren enthält auch ein Abrufen bzw. Wiedergewinnung der Merkmalsvektoren entsprechend wenigstens einer der zwei unterschiedlichen Modalitäten aus der Datenbank zur Einfügung in einen Merkmalsraum zusammen mit wenigstens einem Merkmalsvektor entsprechend einer Testeingabe in Bezug auf wenigstens eines von einer Test-Zeitreihe und einem Test-Freiformtextkommentar. Das Verfahren enthält zusätzlich ein Bestimmen, durch einen Hardwareprozessor, einer Gruppe von nächsten Nachbarn unter den Merkmalsvektoren im Merkmalsraum basierend auf Abstandskriterien und ein Ausgeben von Testergebnissen für die Testeingabe basierend auf der Gruppe von nächsten Nachbarn.
-
Diese und andere Merkmale und Vorteile werden aus der folgenden detaillierten Beschreibung von illustrativen Ausführungsformen davon offensichtlich werden, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
-
Figurenliste
-
Die Offenbarung wird Details in der folgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die folgenden Figuren bereitstellen, wobei:
- 1 ein Blockdiagramm, das eine beispielhafte Computingvorrichtung zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 2 ein detailliertes Blockdiagramm, das ein beispielhaftes System/Verfahren zum kreuzmodalen Abrufen bzw. Wiedergewinnen zwischen Zeitreihen und Freiformtextkommentaren zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 3-4 Flussdiagramme für ein Verfahren zum kreuzmodalen Abrufen bzw. Wiedergewinnen zwischen Zeitreihen und Freiformtextkommentaren gemäß einer Ausführungsform der vorliegenden Erfindung sind;
- 5 ein Blockdiagramm, das eine beispielhafte Architektur des Textcodierers 212 von 2 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 6 ein Blockdiagramm, das eine beispielhafte Architektur des Textcodierers von 2 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
- 7 ein Blockdiagramm, das eine beispielhafte Computingumgebung zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung ist.
-
DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Gemäß Ausführungsformen der vorliegenden Erfindung werden Systeme und Verfahren zur überwachten kreuzmodalen Wiedergewinnung für Zeitreihen und Freiformtextkommentare unter Verwendung eines multimodalen Triplettverlusts bereitgestellt.
-
Ausführungsformen der vorliegenden Erfindung können eine Zeitreihenanalyse in Richtung von Fachbereichsbewusstsein und Interpretierbarkeit voranzutreiben, indem sie aus den Zeitreihen und den assoziierten Freiformtexten gemeinsam lernen.
-
Bei einer Ausführungsform konzentriert sich die vorliegende Erfindung auf die kreuzmodale Wiedergewinnungsaufgabe, bei der die Abfragen und wiedergewonnenen bzw. abgerufenen Ergebnisse von einer der beiden Modalitäten sein können. Insbesondere stellen eine oder mehrere Ausführungsformen der vorliegenden Erfindung eine Architektur eines neuronalen Netzwerks und einen zugehörigen Wiedergewinnungs-Algorithmus bereit, um die folgenden drei Anwendungsszenarien zu adressieren:
- (1) Erklärung: bei einem gegebenen Zeitreihensegment relevante Kommentare abrufen bzw. wiedergewinnen, die als von Menschen lesbare Erklärungen des Zeitreihensegments verwendet werden können.
- (2) Suche in natürlicher Sprache: bei einem gegebenen Satz oder einer gegebenen Gruppe von Schlüsselwörtern relevante Zeitreihensegmente abrufen bzw. wiedergewinnen.
- (3) Suche bei gemeinsamer Modalität: bei einem gegebenen Zeitreihensegment und einem gegebenen Satz oder einer gegebenen Gruppe von Schlüsselwörtern relevante Zeitreihensegmente so abrufen bzw. wiedergewinnen, dass eine Untergruppe der Attribute mit den Schlüsselwörtern übereinstimmt und der Rest der Attribute dem gegebenen Zeitreihensegment ähnelt.
-
Im Allgemeinen stellen eine oder mehrere Ausführungsformen der vorliegenden Erfindung eine Architektur bereit, die das Lernen eines modalitätsunabhängigen Begriffs einer Ähnlichkeit zwischen Paaren von Datenelementen ermöglicht, und schlugen einen Suchalgorithmus vor, um nahe Elemente bei einer gegebenen Abfrage abzurufen.
-
Zu diesem Zweck werden zwei Sequenzcodierer (ein Zeitreihencodierer und ein Textcodierer) aus einem Datensatz bei beiden Modalitäten gelernt, der mit Klasseninformationen markiert bzw. bezeichnet ist. Die Codierer sind trainiert, um Dateninstanzen in einen gemeinsamen latenten Raum abzubilden, so dass Instanzen derselben Klasse nahe beieinander sind und diejenigen von unterschiedlichen Klassen weit voneinander entfernt sind. Ein Abrufen bzw. Wiedergewinnen basiert dann auf einem Finden nächster Nachbarn (einer beliebigen Modalität) zu der Abfrage (die auch bei einer beliebigen Modalität sein kann) in diesem gemeinsamen latenten Raum. Wenn ein Lernen erfolgreich ist, teilen die meisten der Nachbarn dieselbe Klasse wie die Abfrage, was bedeutet, dass die Abrufergebnisse eine hohe Relevanz für die Abfrage haben.
-
1 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung bzw. Computingvorrichtung 100 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung. Die Computingvorrichtung 100 kann Teil eines nachstehend in Bezug auf 2 beschriebenen Systems 200 sein. Die Computingvorrichtung 100 ist konfiguriert, um ein kreuzmodales Abrufen zwischen Zeitreihen und Freiformtextkommentaren durchzuführen.
-
Die Computingvorrichtung 100 kann als irgendein Typ von Berechnungs- oder Computervorrichtung verkörpert sein, die die hierin beschriebenen Funktionen durchführen kann, einschließlich, ohne Beschränkung, eines Computers, eines Servers, eines auf einem Rack basierenden Servers, eines Blade-Servers, einer Workstation, eines Desktop-Computers, eines Laptop-Computers, eines Notebook-Computers, eines Tablet-Computers, einer mobilen Computingvorrichtung, einer tragbare Computingvorrichtung, eines Netzwerkgeräts, eines Webgeräts, eines verteilten Computingsystems, eines prozessorbasierten Systems und/oder einer Unterhaltungselektronikvorrichtung. Zusätzlich oder alternativ kann die Computingvorrichtung 100 als ein oder mehrere Rechenschlitten, Speicherschlitten oder andere Racks, Schlitten, Computing-Gehäuse oder andere Komponenten einer physikalisch disaggregierten Computingvorrichtung verkörpert sein. Wie es in 1 gezeigt ist, enthält die Computingvorrichtung 100 illustrativ den Prozessor 110, ein Eingabe-/Ausgabe-Untersystem 120, einen Speicher 130, eine Datenspeichervorrichtung 140 und ein Kommunikations-Untersystem 150 und/oder andere Komponenten und Vorrichtungen, die üblicherweise in einem Server oder einer ähnlichen Computingvorrichtung zu finden sind. Natürlich kann die Computingvorrichtung 100 bei anderen Ausführungsformen andere oder zusätzliche Komponenten enthalten, wie beispielsweise diejenigen, die üblicherweise in einem Servercomputer zu finden sind (z.B. verschiedene Eingabe-/Ausgabe-Vorrichtungen). Zusätzlich kann oder können bei einigen Ausführungsformen eine oder mehrere der illustrativen Komponenten in eine andere Komponente eingebaut sein oder anderweitig einen Teilbereich davon bilden. Zum Beispiel kann der Speicher 130, oder können Teilbereiche davon, bei einigen Ausführungsformen im Prozessor 110 eingebaut sein.
-
Der Prozessor 110 kann als irgendein Typ von Prozessor verkörpert sein, der die hierin beschriebenen Funktionen durchführen kann. Der Prozessor 110 kann als einzelner Prozessor, mehrere Prozessoren, zentrale Verarbeitungseinheit(en) (CPU(s)), Grafikverarbeitungseinheit(en) (GPU(s)), Einzel- oder Mehrkernprozessor(en), Digitalsignalprozessor(en), Mikrosteuerung(en) oder anderer Prozessor (andere Prozessoren) oder Verarbeitungs-/Steuerungs-Schaltung(en) verkörpert sein.
-
Der Speicher 130 kann als irgendein Typ von flüchtigem oder nichtflüchtigem Speicher oder Datenspeicher verkörpert sein, der die hierin beschriebenen Funktionen durchführen kann. Im Betrieb kann der Speicher 130 verschiedene Daten und Software speichern, die während des Betriebs bzw. einer Operation der Computingvorrichtung 100, wie beispielsweise von Betriebssystemen, Anwendungen, Programmen, Bibliotheken und Treibern, verwendet werden. Der Speicher 130 ist kommunikativ mit dem Prozessor 110 über das I/O-Untersystem 120 gekoppelt, das als Schaltung und/oder Komponenten verkörpert sein kann, um Eingabe-/Ausgabe-Operationen mit dem Prozessor 110, dem Speicher 130 und anderen Komponenten der Computingvorrichtung 100 zu ermöglichen. Zum Beispiel kann das I/O-Untersystem 120 als Speichersteuerungs-Hubs, Eingabe-/Ausgabe-Steuerungs-Hubs, Plattformsteuerungs-Hubs, integrierte Steuerschaltung, Firmware-Vorrichtungen, Kommunikationsverbindungen (z.B. Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen der Leiterplatten etc.) und/oder andere Komponenten und Untersysteme verkörpert sind oder diese anderweitig enthalten, um die Eingabe-/Ausgabe-Operationen zu ermöglichen bzw. erleichtern. Bei einigen Ausführungsformen kann das I/O-Untersystem 120 einen Teilbereich eines Systems auf einem Chip (SOC (= system-on-a-chip)) bilden und zusammen mit dem Prozessor 110, dem Speicher 130 und anderen Komponenten der Computingvorrichtung 100 auf einem einzigen integrierten Schaltungschip eingebaut sein.
-
Die Datenspeichervorrichtung 140 kann als irgendein Typ von Vorrichtung oder Vorrichtungen verkörpert sein, die für die kurzfristige oder langfristige Speicherung von Daten konfiguriert ist oder sind, wie zum Beispiel Speichervorrichtungen und -schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeichervorrichtungen. Die Datenspeichervorrichtung 140 kann einen Programmcode 140A zur kreuzmodalen Wiedergewinnung zwischen Zeitreihen und Freiformtextkommentaren speichern. Das Kommunikationssubsystem 150 der Computingvorrichtung 100 kann als irgendeine Netzwerkschnittstellensteuerung oder irgendeine andere Kommunikationsschaltung, -vorrichtung oder -sammlung bzw. -kollektion davon verkörpert sein, die Kommunikationen zwischen der Computingvorrichtung 100 und anderen entfernten Geräten bzw. Vorrichtungen über ein Netzwerk ermöglichen bzw. freigeben kann. Das Kommunikations-Untersystem 150 kann konfiguriert sein, um irgendeine oder mehrere Kommunikationstechnologien (z.B. drahtgebundene oder drahtlose Kommunikationen) und assoziierte bzw. zugehörige Protokolle (z.B. Ethernet, InfiniBand®, Bluetooth®, Wi-Fi®, WiMAX usw.) zu verwenden, um eine solche Kommunikation zu bewirken.
-
Wie es gezeigt ist, kann die Computingvorrichtung 100 auch eine oder mehrere periphere Vorrichtungen 160 enthalten. Die peripheren Vorrichtungen 160 können irgendeine Anzahl zusätzlicher Eingabe-/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen und/oder anderer peripherer Vorrichtungen enthalten. Zum Beispiel können die peripheren Vorrichtungen 160 bei einigen Ausführungsformen eine Anzeige, einen Berührungsbildschirm, eine Grafikschaltung, eine Tastatur, eine Maus, ein Lautsprechersystem, ein Mikrofon, eine Netzwerkschnittstelle und/oder andere Eingabe-/Ausgabe-Vorrichtungen, Schnittstellenvorrichtungen und/oder periphere Vorrichtungen enthalten.
-
Natürlich kann die Computingvorrichtung 100 auch andere Elemente (nicht gezeigt) enthalten, wie es von einem Fachmann auf dem Gebiet leicht in Betracht gezogen wird, sowie bestimmte Elemente weglassen. Zum Beispiel können verschiedene andere Eingabevorrichtungen und/oder Ausgabevorrichtungen in der Computingvorrichtung 100 enthalten sein, und zwar abhängig von der bestimmten Implementierung derselben, wie es von einem Fachmann auf dem Gebiet leicht verstanden wird. Zum Beispiel können verschiedene Typen von drahtlosen und/oder drahtgebundenen Eingabe- und/oder Ausgabevorrichtungen verwendet werden. Darüber hinaus können zusätzliche Prozessoren, Steuerungen, Speicher und so weiter bei verschiedenen Konfigurationen auch verwendet werden. Diese und andere Variationen des Verarbeitungssystems 100 werden angesichts der hierin bereitgestellten Lehren der vorliegenden Erfindung von einem Fachmann auf dem Gebiet leicht in Betracht gezogen.
-
Wie er hierin verwendet wird, kann sich der Begriff „Hardwareprozessor-Untersystem“ oder „Hardwareprozessor“ auf einen Prozessor, einen Speicher (einschließlich RAM, Cache(s) und so weiter), Software (einschließlich Speichermanagementsoftware) oder Kombinationen davon beziehen, die zusammenarbeiten, um eine oder mehrere spezifische Aufgaben durchzuführen. Bei nützlichen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Datenverarbeitungselemente (z.B. Logikschaltungen, Verarbeitungsschaltungen, Anweisungsausführungsvorrichtungen etc.) enthalten. Das eine oder die mehreren Datenverarbeitungselemente kann oder können in einer zentralen Verarbeitungseinheit, einer Grafikverarbeitungseinheit und/oder einer separaten prozessor- oder computingelementbasierten Steuerung (z.B. Logikgatter etc.) enthalten sein. Das Hardwareprozessor-Untersystem kann einen oder mehrere integrierte Speicher bzw. Onboard-Speicher (z.B. Caches, bestimmte bzw. dedizierte Speicherarrays, einen Nurlesespeicher etc.) enthalten. Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem einen oder mehrere Speicher enthalten, die onboard oder offboard sein können oder die zur Verwendung durch das Hardwareprozessor-Untersystem bestimmt bzw. dediziert sein können (z.B. ROM, RAM, BIOS (Basic Input/Output System (= Grundlegendes Eingabe-/Ausgabe-System)) etc.).
-
Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Softwareelemente umfassen und ausführen. Das eine oder die mehreren Softwareelemente kann oder können ein Betriebssystem und/oder eine oder mehrere Anwendungen und/oder einen spezifischen Code enthalten, um ein spezifiziertes bzw. bestimmtes Ergebnis zu erzielen.
-
Bei anderen Ausführungsformen kann das Hardwareprozessor-Untersystem eine dedizierte, spezialisierte Schaltung enthalten, die eine oder mehrere elektronische Verarbeitungsfunktionen durchführt, um ein bestimmtes Ergebnis zu erzielen. Eine solche Schaltung kann eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs), FPGAs und/oder PLAs enthalten.
-
Diese und andere Variationen eines Hardwareprozessor-Untersystems werden gemäß Ausführungsformen der vorliegenden Erfindung auch in Betracht gezogen.
-
2 ist ein detailliertes Blockdiagramm bzw. ein Blockdiagramm auf hoher Ebene, das ein beispielhaftes System/Verfahren 200 zur kreuzmodalen Wiedergewinnung zwischen Zeitreihen und Freiformtextkommentaren zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Das System/Verfahren 200 enthält einen Codierungsteilbereich 210 mit einem Zeitreihencodierer 211 und einem Textcodierer 212 und enthält weiterhin eine Datenbank 220.
-
Ein Betrieb bzw. eine Operation der Elemente des Systems/Verfahrens 200 wird in Bezug auf 3 beschrieben.
-
3-4 sind Flussdiagramme für ein Verfahren zur kreuzmodalen Wiedergewinnung zwischen Zeitreihen und Freiformtextkommentaren gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Bei einem Block 310 erfolgt ein Empfangen eines Satzes von Trainingsdateninstanzen 231, die entweder Zeitreihen oder Freiformtextkommentare sind.
-
Bei einem Block 320 erfolgt ein Bilden eines neuronalen Netzwerks, das zwei Sequenzcodierer 211 und 212 enthält. Der Textcodierer 212, der mit gtxt bezeichnet ist, nimmt die tokenisierten (z.B. Phrase, Wort, Wortwurzel etc.) Textkommentare als Eingabe. Der Zeitreihencodierer 211, der mit gsrs bezeichnet ist, nimmt die Zeitreihe als Eingabe. Der Textcodierer 212 ist in Bezug auf 4 detaillierter gezeigt. Der Zeitreihencodierer 211 (der in Bezug auf 5 detaillierter gezeigt ist) hat dieselbe Architektur, wie es für den Textcodierer 212 von 6 gezeigt ist, außer dass die Worteinbettung 511 durch eine vollständig verbundene Schicht 611 ersetzt ist.
-
Die in 4 gezeigte Architektur 400 des Textcodierers 212 enthält eine Reihe von Faltungsschichten 413 und 422, gefolgt von einem Transformer-Netzwerk 490. Die Faltungsschichten erfassen lokale Kontexte (z.B. Phrasen für Textdaten). Der Transformer codiert die längerfristigen Abhängigkeiten in der Sequenz.
-
In der Trainingsphase des neuronalen Netzwerks werden Tripletts aus dem Datensatz abgetastet. Ein Triplett ist ein Tupel von drei Dateninstanzen (a, p, n), von denen jede von einer von beiden Modalitäten sein kann, so dass p dieselbe Klasse wie a hat, während n aus einer anderen Klasse ist.
-
Die Parameter von beiden Codierern 211 und 212 werden durch Minimieren des Triplettverlusts gemeinsam trainiert. Dieser Verlust fördert das Erlernen von Transformationen, so dass nach der Transformation Instanzen derselben Klasse in der Nähe bleiben und Instanzen von anderen Klassen mit einem spezifizierten bzw. bestimmten Abstand α getrennt sind. Der Triplettverlust für einen Stapel von Tripletts, der mit Ω bezeichnet ist, ist wie folgt definiert:
wobei f = g
txt, wenn die Eingabe eine Zeitreihe ist, und g
srs, wenn die Eingabe ein Textkommentar ist.
-
Eine Hard-Example-Mining(= Auswertung für harte Beispiele)-Strategie wird verwendet, um Tripletts auszuwählen, die „semi-hart“ bzw. „halbhart“ sind, was zulässt, dass ein Trainieren signifikant schneller voranschreiten kann als ein gleichmäßiges Auswählen von Tripletts nach dem Zufallsprinzip. Ein halbhartes Triplett (a, p, n) ist eines, das unter der aktuellen Transformation kaum die Abstands- bzw. Randkriterien verletzt. Formal erfüllt es die folgende Bedingung:
-
Es gibt keine Beschränkung an den Modalitäten der Instanzen in einem Triplett, was Tripletts einer einzelnen Modalität sowie gemischte Modalitäten wie beispielsweise (Text, Reihe, Text), (Reihentext, Reihe) und so weiter zulässt.
-
Das Trainieren verläuft in Iterationen. Bei jeder Iteration wird ein fester Stapel von halbharten Tripletts abgetastet. Der Triplettverlust für den Stapel wird optimiert, was die Parameter des Netzwerks unter Verwendung eines stochastischen Gradientenabstiegs aktualisiert bzw. updated.
-
Bei einem Block 330 (entsprechend nachdem das Netzwerk trainiert ist) erfolgt ein Auswählen eines Satzes von Zeitreihen und Textinstanzen, die als Kandidaten für ein zukünftiges Abrufen bzw. Wiedergewinnen beabsichtigt sind. Es erfolgt ein Laufen der Zeitreiheninstanzen durch den Zeitreihencodierer 211 und eine Laufen der Textinstanzen durch den Textcodierer 212, um Merkmalsvektoren 211A bzw. 212A zu erhalten. Es erfolgt ein Speichern der Instanzen in ihrer Rohform zusammen mit den Merkmalsvektoren in einer Datenbank.
-
Bei einem Block 340 erfolgt ein Verwenden einer Suche eines nächsten Nachbarn, um relevante Daten für ungesehene Abfragen abzurufen, wobei die Codierer 211 und 212 und die Datenbank 220 verfügbar sind. Die spezifische Prozedur für jedes der drei Anwendungsszenarien wird nachstehend beschrieben:
- (1) Erklärung: Wenn die Abfrage als Zeitreihe beliebiger Länge gegeben ist, wird sie durch den Zeitreihencodierer geführt, um einen Merkmalsvektor x zu erhalten. Dann erfolgt ein Finden, aus der Datenbank 220, der k Textinstanzen, die den kleinsten (euklidischen) Abstand zu diesem Vektor haben (auch bekannt als nächste Nachbarn). Diese Textinstanzen, die von Menschen geschriebene Freiformkommentare sind, werden als Abruf- bzw. Wiedergewinnungsergebnisse zurückgebracht.
- (2) Abruf bzw. Wiedergewinnung von Zeitreihen durch natürliche Sprache: Wenn die Abfrage als Freiformtextpassage (d.h. Wörter oder kurze Sätze) gegeben ist, wird sie durch den Textcodierer 212 geführt, um einen Merkmalsvektor y zu erhalten. Dann erfolgt ein Finden, aus der Datenbank 220, der k Zeitreiheninstanzen, die den kleinsten Abstand zu y haben. Diese Zeitreihen, die dieselbe semantische Klasse wie der Abfragetext haben und daher eine hohe Relevanz für die Abfrage haben, werden als Abruf- bzw. Wiedergewinnungsergebnisse zurückgebracht.
- (3) Suche mit gemeinsamer Modalität: Wenn die Abfrage als ein Paar von (Zeitreihensegment, Textpassage) gegeben ist, wird die Zeitreihe durch den Zeitreihencodierer 211 geführt, um einen Merkmalsvektor x 211A zu erhalten, und wird die Textpassage durch den Textcodierer 212 geführt, um einen Merkmalsvektor y 212A zu erhalten. Dann erfolgt eine Finden, aus der Datenbank 220, der n nächsten Nachbarn der Zeitreihe 240 von x und der n nächsten Nachbarn der Zeitreihe von y und eine Erhalten ihrer Schnittstelle. Es erfolgt eines Starten ab n = k. Wenn die Anzahl von Instanzen in der Schnittstelle kleiner als k ist, erfolgt eine Inkrementieren von n und ein Wiederholen der Suche, bis wenigstens k Instanzen abgerufen sind. Diese Instanzen, die semantisch sowohl der Abfragezeitreihe als auch dem Abfragetext ähneln, werden als Abrufergebnisse 250 zurückgebracht.
-
Bei einem Block 350 erfolgt ein Empfangen einer Abfrage 232. Die Abfrage 232 kann in Zeitreihen- oder Textform vorliegen.
-
Bei einem Block 360 erfolgt ein Verarbeiten der Abfrage unter Verwendung des Zeitreihencodierers 211 und/oder des Textcodierers 212, um Merkmalsvektoren zu erzeugen, damit sie in einem Merkmalsraum enthalten sind.
-
Bei einem Block 370 erfolgt ein Durchführen einer Suche nach dem nächsten Nachbarn im Merkmalsraum, der mit einem oder mehreren Merkmalsvektoren bestückt ist, die aus einem Verarbeiten der Abfrage und der Merkmalsvektoren aus der Datenbank 220 erhalten sind, um Suchergebnisse in wenigstens einer der zwei Modalitäten auszugeben. Bei einer Ausführungsform kann eine Eingabemodalität mit ihrer entsprechenden Ausgabemodalität in den Suchergebnissen assoziiert sein, wobei sich die Eingabe- und Ausgabemodalitäten unterscheiden oder eine oder mehrere derselben Modalitäten enthalten, und zwar an jedem Ende (Eingabe oder Ausgabe, abhängig von der Implementierung und der entsprechenden Systemkonfiguration zu diesem Zweck, wie es angesichts der hierin bereitgestellten Lehren leicht einzusehen ist).
-
Bei einem Block 380 erfolgt ein Durchführen einer Aktion in Reaktion auf die Suchergebnisse.
-
Beispielhafte Aktionen können zum Beispiel ein Erkennen von Anomalien in Computerverarbeitungssystemen und ein Steuern des Systems, in dem eine Anomalie erkannt wird, enthalten, sind aber nicht darauf beschränkt. Zum Beispiel kann eine Abfrage in der Form von Zeitreihendaten von einem Hardwaresensor oder einem Sensornetzwerk (z.B. einem Mesh bzw. vermaschten Netz) als anomales Verhalten (gefährliche oder anderweitig zu hohe Betriebsgeschwindigkeit (z.B. Motor, Zahnradverbindung), gefährliche oder anderweitig übermäßige Betriebswärme (z.B. Motor, Zahnradverbindung), gefährlich oder anderweitig außerhalb einer Toleranzausrichtung (z.B. Motor, Zahnradverbindung etc.)) unter Verwendung einer Textnachricht als Beschriftung bzw. Markierung charakterisiert werden. In einer Verarbeitungspipeline bzw. -kette kann eine anfängliche Eingabezeitreihe in mehrere Textnachrichten verarbeitet und dann neu kombiniert werden, um eine Untergruppe bzw. Teilmenge der Textnachrichten für eine fokussiertere resultierende Ausgabezeitreihe in Bezug auf ein gegebenes Thema (z.B. Anomalietyp) zu enthalten. Demgemäß kann eine Vorrichtung ausgeschaltet, seine Betriebsgeschwindigkeit reduziert, eine Ausrichtungs-(z.B. hardwarebasierte)Prozedur durchgeführt werden, und so weiter, und zwar basierend auf der Implementierung.
-
Eine weitere beispielhafte Aktion kann eine Ablaufverfolgung von Betriebsparametern sein, bei der eine Historie der Parameteränderung im Laufe der Zeit protokolliert werden kann, wie sie verwendet wird, um andere Funktionen, wie beispielsweise Hardware-Maschinensteuerungsfunktionen einschließlich Ein- oder Ausschalten, Verlangsamen, Beschleunigen, positionelles Anpassen und so weiter, auf die Erkennung eines gegebenen Betriebszustands hin durchzuführen, der einer bestimmten Ausgabezeitreihe und/oder einem Textkommentar in Bezug auf historische Daten gleicht.
-
5 ist ein Blockdiagramm, das eine beispielhafte Architektur 500 des Textcodierers 212 von 2 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Die Architektur 500 enthält eine Worteinbettungseinheit 511, einen Positionscodierer 512, eine Faltungsschicht 513, eine Normalisierungsschicht 521, eine Faltungsschicht 522, eine Skip-Verbindung 523, eine Normalisierungsschicht 531, eine Selbstaufmerksamkeitsschicht 532, eine Skip-Verbindung 533, eine Normalisierungsschicht 541, eine Feedforward-Schicht 542 und eine Skip-Verbindung 543. Die Architektur 500 stellt eine eingebettete Ausgabe 550 bereit.
-
Die obigen Elemente bilden ein Transformationsnetzwerk 590.
-
Die Eingabe ist eine Textpassage. Jedes Token der Eingabe wird durch die Worteinbettungsschicht 511 in Wortvektoren transformiert bzw. umgewandelt. Der Positionscodierer 512 hängt dann den Positionseinbettungsvektor jedes Tokens an den Wortvektor des Tokens an. Der resultierende Einbettungsvektor wird einer anfänglichen Faltungsschicht 513 zugeführt, gefolgt durch einer Reihe von restlichen Faltungsblöcken 501 (wobei der Veranschaulichung und Kürze halber einer gezeigt ist). Jeder restliche Faltungsblock 501 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 521 und eine Faltungsschicht 522 und eine Skip-Verbindung 523. Als nächstes folgt ein restlicher Selbstaufmerksamkeitsblock 502. Der restliche Selbstaufmerksamkeitsblock 502 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 531 und eine Selbstaufmerksamkeitsschicht 532 und eine Skip-Verbindung 533. Als nächstes folgt ein restlicher Feedforward-Block 503. Der restliche Feedforward-Block 503 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 541, eine vollständig verbundene lineare Feedforward-Schicht 542 und eine Skip-Verbindung 543. Der Ausgabevektor 550 von diesem Block ist die Ausgabe des gesamten Transformationsnetzwerks und ist der Merkmalsvektor für den Eingabetext.
-
Diese besondere Architektur 500 ist nur eine von vielen möglichen Architekturen für neuronale Netzwerke, die den Zweck eines Codierens von Textnachrichten zu Vektoren erfüllen können. Neben der obigen besonderen Implementierung kann der Textcodierer unter Verwendung vieler Varianten von rekursiven neuronalen Netzwerken oder 1-dimensionalen neuronalen Faltungsnetzen implementiert werden. Diese und andere Architekturvariationen werden angesichts der hierin bereitgestellten Lehren der vorliegenden Erfindung von einem Fachmann auf dem Gebiet leicht in Betracht gezogen.
-
6 ist ein Blockdiagramm, das eine beispielhafte Architektur 600 des Zeitreihencodierers 211 von 2 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Die Architektur 600 enthält eine Worteinbettungseinheit 611, einen Positionscodierer 612, eine Faltungsschicht 613, eine Normalisierungsschicht 621, eine Faltungsschicht 622, eine Skip-Verbindung 623, eine Normalisierungsschicht 631, eine Selbstaufmerksamkeitsschicht 632, eine Skip-Verbindung 633, eine Normalisierungsschicht 641, eine Feedforward-Schicht 642 und eine Skip-Verbindung 643. Die Architektur stellt eine Ausgabe 650 bereit.
-
Die obigen Elemente bilden ein Transformationsnetzwerk 690.
-
Die Eingabe ist eine Zeitreihe fester Länge. Der Datenvektor zu jedem Zeitpunkt wird durch eine vollständig verbundene Schicht zu einem hochdimensionalen latenten Vektor transformiert. Der Positionscodierer hängt dann einen Positionsvektor an den latenten Vektor jedes Zeitpunkts an. Der resultierende Einbettungsvektor wird einer anfänglichen Faltungsschicht 613 zugeführt, gefolgt von einer Reihe von restlichen bzw. verbleibenden Faltungsblöcken 601 (wobei der Veranschaulichung und Kürze halber einer gezeigt ist). Jeder restliche bzw. verbleibende Faltungsblock 601 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 621 und eine Faltungsschicht 622 und eine Skip-Verbindung 623. Als nächstes folgt ein restlicher bzw. verbleibender Selbstaufmerksamkeitsblock 602. Der verbleibende Selbstaufmerksamkeitsblock 602 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 631 und eine Selbstaufmerksamkeitsschicht 632 und eine Skip-Verbindung 633. Als nächstes folgt ein restlicher bzw. verbleibender Feedforward-Block 603. Der verbleibende Feedforward-Block 603 enthält eine Stapel- bzw. Batch-Normalisierungsschicht 641, eine vollständig verbundene lineare Feedforward-Schicht 642 und eine Skip-Verbindung 643. Der Ausgabevektor 650 von diesem Block ist die Ausgabe des gesamten Transformationsnetzwerks und ist der Merkmalsvektor für die Eingabezeitreihe.
-
Diese besondere Architektur 600 ist nur eine von vielen möglichen Architekturen für neuronale Netzwerke, die den Zweck eines Codierens von Zeitreihen zu Vektoren erfüllen können. Daneben kann der Zeitreihencodierer unter Verwendung vieler Varianten von rekursiven neuronalen Netzen oder temporalen dilationalen neuronalen Faltungsnetzen implementiert werden.
-
7 ist ein Blockdiagramm, das eine beispielhafte Computingumgebung 700 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Die Umgebung 700 enthält einen Server 710, mehrere Client-Vorrichtungen (die gemeinsam durch das Bezugszeichen 720 bezeichnet sind), ein gesteuertes System A 741, ein gesteuertes System B 742 und eine entfernte Datenbank 750.
-
Eine Kommunikation zwischen den Entitäten bzw. Einheiten der Umgebung 700 kann über ein oder mehrere Netzwerke 730 durchgeführt werden. Der Veranschaulichung halber ist ein drahtloses Netzwerk 730 gezeigt. Bei anderen Ausführungsformen kann irgendetwas von drahtgebunden, drahtlos und/oder einer Kombination davon verwendet werden, um Kommunikation zwischen den Entitäten bzw. Einheiten zu ermöglichen bzw. zu erleichtern.
-
Der Server 710 empfängt Abfragen von Client-Vorrichtungen 720. Die Abfragen können in Zeitreihen- und/oder Textkommentarform vorliegen. Der Server 710 kann eines der Systeme 741 und/oder 742 basierend auf Abfrageergebnissen steuern, die durch Zugreifen auf die entfernte Datenbank 750 abgeleitet sind (um Merkmalsvektoren zum Auffüllen eines Merkmalsraums zusammen mit aus der Abfrage extrahierten Merkmalsvektoren zu erhalten). Bei einer Ausführungsform kann die Abfrage Daten sein, die sich auf die gesteuerten Systeme 741 und/oder 742 beziehen, wie zum Beispiel, aber nicht beschränkt darauf, Sensordaten.
-
Während die Datenbank 750 als entfernt gezeigt ist und man sie sich unter mehreren überwachten Systemen in einer verteilten Umgebung als gemeinsam genutzt vorstellt (mit Dutzenden, wenn nicht möglicherweise Hunderten von überwachten und gesteuerten Systemen wie 741 und 742), kann bei anderen Ausführungsformen die Datenbank 750 in den Server 710 eingebaut bzw. integriert sein.
-
Hierin beschriebene Ausführungsformen können vollständig Hardware, vollständig Software oder sowohl Hardware- als auch Softwareelemente enthaltend sein. Bei einer bevorzugten Ausführungsform ist die vorliegende Erfindung in Software implementiert, die Firmware, residente Software, einen Microcode etc. enthält, aber nicht darauf beschränkt ist.
-
Ausführungsformen können ein Computerprogrammprodukt enthalten, auf das von einem computerverwendbaren oder computerlesbaren Medium aus zugegriffen werden kann, das einen Programmcode zur Verwendung durch einen Computer oder ein Anweisungsausführungssystem, oder in Verbindung damit, bereitstellt. Ein computerverwendbares oder computerlesbares Medium kann irgendeine Vorrichtung enthalten, die das Programm zur Verwendung durch das Befehlsausführungssystem, eine Vorrichtung oder ein Gerät, oder in Verbindung damit, speichert, kommuniziert, ausbreitet oder transportiert. Das Medium kann ein magnetisches, optisches, elektronisches, elektromagnetisches, infrarotes oder Halbleitersystem (oder eine Vorrichtung oder Gerät) oder ein Ausbreitungsmedium sein. Das Medium kann ein computerlesbares Speichermedium, wie beispielsweise einen Halbleiter- oder Festkörperspeicher, ein Magnetband, eine Wechselcomputerdiskette, ein Direktzugriffsspeicher (RAM), ein Nurlesespeicher (ROM), eine feste bzw. starre Magnetplatte und eine optische Scheibe bzw. Platte, etc., enthalten.
-
Jedes Computerprogramm kann konkret bzw. materiell in einem maschinenlesbaren Speichermedium oder einer Vorrichtung (z.B. einem Programmspeicher oder einer Magnetplatte) gespeichert sein, das oder die durch einen allgemeinen oder speziellen programmierbaren Computer lesbar ist, zum Konfigurieren und Steuern des Betriebs eines Computers, wenn das Speichermedium oder die Vorrichtung durch den Computer gelesen wird, um die hierin beschriebenen Prozeduren durchzuführen. Das erfinderische System kann auch als in einem computerlesbaren Speichermedium verkörpert angesehen werden, das mit einem Computerprogramm konfiguriert ist, wo das so konfigurierte Speichermedium veranlasst, dass ein Computer auf eine spezifische bzw. bestimmte und vordefinierte Weise arbeitet, um die hierin beschriebenen Funktionen durchzuführen.
-
Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen eines Programmcodes geeignet ist, kann wenigstens einen Prozessor enthalten, der über einen Systembus direkt oder indirekt mit Speicherelementen gekoppelt ist. Die Speicherelemente können einen lokalen Speicher enthalten, der während einer tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cachespeicher, die eine temporäre Speicherung von wenigstens etwas von einem Programmcode zur Verfügung stellen, um die Anzahl von Malen zu reduzieren, für welche eine Code während der Ausführung aus einem Massenspeicher abgerufen wird. Eingabe-/Ausgabe- oder I/O-Vorrichtungen (einschließlich, aber nicht darauf beschränkt, von Tastaturen, Anzeigen, Zeigevorrichtungen etc.) können entweder direkt oder über dazwischenliegende I/O-Steuerungen mit dem System gekoppelt sein.
-
Netzwerkadapter können auch mit dem System gekoppelt sein, um zu ermöglichen, dass das Datenverarbeitungssystem über dazwischenliegende private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder Remote-Druckern bzw. entfernten Druckern oder Speichervorrichtungen gekoppelt wird. Modems, ein Kabelmodem und Ethernet-Karten sind nur einige wenige von derzeit verfügbaren Typen von Netzwerkadaptern.
-
Eine Bezugnahme in der Spezifikation auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Erfindung sowie andere Variationen davon bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur, eine bestimmte Charakteristik und so weiter, das oder die in Verbindung mit der Ausführungsform beschrieben wird, bei wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Erscheinungen der Formulierung „bei einer einzelnen Ausführungsform“ oder „bei einer Ausführungsform“ sowie irgendwelche anderen Variationen, die an verschiedenen Stellen in der gesamten Spezifikation erscheinen, nicht notwendigerweise alle auf dieselbe Ausführungsform. Es ist jedoch einzusehen, dass Merkmale von einer oder von mehreren Ausführungsformen bei den hierin zur Verfügung gestellten gegebenen Lehren der vorliegenden Erfindung kombiniert werden können.
-
Es ist einzusehen, dass die Verwendung von irgendetwas von dem folgendem „/“, „und/oder“ und „wenigstens eines von“, wie zum Beispiel in den Fällen von „NB“, „A und/oder B“ und „wenigstens eines von A und B“, nur die Auswahl der ersten aufgelisteten Option (A) oder die Auswahl der zweiten aufgelisteten Option (B) oder die Auswahl von beiden Optionen (A und B) umfassen soll. Als ein weiteres Beispiel soll eine solche Formulierung in den Fällen „A, B und/oder C“ und „wenigstens eines von A, B und C“ nur die Auswahl der ersten aufgelisteten Option (A) oder nur die Auswahl der zweiten aufgelisteten Option (B) oder nur die Auswahl der dritten aufgelisteten Option (C) oder nur die Auswahl der ersten und zweiten aufgelisteten Optionen (A und B) oder nur die Auswahl der ersten und dritten aufgelisteten Optionen (A und C) oder nur die Auswahl der zweiten und dritten aufgelisteten Optionen (B und C) oder die Auswahl aller drei Optionen (A und B und C) umfassen. Dies kann für so viele Elemente ausgeweitet werden, wie sie aufgelistet sind.
-
Das Vorstehende ist in jeder Hinsicht als illustrativ und beispielhaft, aber nicht als einschränkend, zu verstehen, und der Schutzumfang der hierin offenbarten Erfindung ist nicht aus der detaillierten Beschreibung zu bestimmen, sondern aus den Ansprüchen, wie sie gemäß der vollständigen Breite interpretiert werden, die durch die Patentgesetze zulässig ist. Es ist zu verstehen, dass die hierin gezeigten und beschriebenen Ausführungsformen nur illustrativ für die vorliegende Erfindung sind und dass Fachleute auf dem Gebiet verschiedene Modifikationen implementieren können, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Fachleute auf dem Gebiet könnten verschiedene andere Merkmalskombinationen implementieren, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Nachdem somit Aspekte der Erfindung mit den von den Patentgesetzen geforderten Details und Besonderheiten beschrieben sind, wird das, was beansprucht und durch das Patent geschützt er-wünscht wird, in den beigefügten Ansprüchen dargelegt.