Zusammenfassung der Wissenspunkte zur Sprachinteraktion

1 NLU

1. Natural Language Understanding (NLU), das es Computern ermöglicht, natürliche Sprache (menschliche Sprache) usw. zu verstehen, wobei der Schwerpunkt auf dem Verstehen liegt.

2. Schwierigkeiten:

(1) Sprachenvielfalt : Die Zusammensetzung der Sprachen ist unregelmäßig und die Kombinationen sind vielfältig und flexibel

(2) Sprachmehrdeutigkeit : Polysemie

(3) Rauschen in der Sprache : Es gibt Probleme wie viele Wörter, wenige Wörter, Tippfehler, Rauschen usw.

(4) Wissensabhängigkeit der Sprache : hängt von angeborener Erfahrung und Wissen ab

(5) Sprachkontext : Unterschiedliche Kontexte haben unterschiedliche Semantiken

3. Hierarchie:

(1) Sprachanalyse: Gemäß phonemischen Regeln sollten einzelne Phoneme aus dem Sprachstrom unterschieden werden, und dann sollten Silben und ihre entsprechenden Morpheme oder Wörter gemäß phonemmorphologischen Regeln ermittelt werden.

(2) Lexikalische Analyse : Finden Sie jedes Morphem des Wortschatzes heraus und erhalten Sie daraus sprachliche Informationen.

(3) Syntaktische Analyse: Analysieren Sie die Struktur von Sätzen und Phrasen. Der Zweck besteht darin, die Beziehung zwischen Wörtern, Phrasen usw. und ihre jeweiligen Funktionen im Satz herauszufinden.

(4) Semantische Analyse : Finden Sie die Bedeutung von Wörtern, die strukturelle Bedeutung und ihre kombinierte Bedeutung heraus, um die wahre Bedeutung oder das durch die Sprache ausgedrückte Konzept zu bestimmen.

(5) Pragmatische Analyse : Untersuchung des Einflusses der externen Umgebung, in der Sprache existiert, auf Sprachbenutzer.

4. Geschichte der Technologieentwicklung:

(1) Regelbasierte Methode: Beurteilung der Absicht natürlicher Sprache durch Zusammenfassung der Regeln. Zu den gängigen Methoden gehören: CFG, JSGF usw.

  • Kontextfreie Grammatik (CFG): Überprüfen Sie, ob eine Zeichenfolge einer regulären Grammatik G entspricht

(2) Statistikbasierte Methoden: Führen Sie Statistiken und Analysen zu Sprachinformationen durch und extrahieren Sie semantische Merkmale daraus. Zu den gängigen Methoden gehören: SVM, HMM usw.

  • Hidden-Markov-Modell HMM
  • Maximales Entropie-Markov-Modell MEMM
  • Bedingtes Zufallsfeld (CRF)

(3) Auf Deep Learning basierende Methoden: CNN, RNN, LSTM

2 NLG

1. Erzeugung natürlicher Sprache (NLG, Natural Language Generation) , Bereitstellung strukturierter Daten, Text, Grafiken, Audio, Video usw., um Text in natürlicher Sprachform zu generieren, den Menschen verstehen können.

2. Modus:

(1) Text-zu-Text: Text-zu-Sprache-Generierung

(2) Daten-zu-Text: Daten-zu-Sprachgenerierung

(3) Bild-zu-Text: Bild-zu-Sprache-Generierung

3. Methode:

(1) Einfache Datenzusammenführung: Eine vereinfachte Form der Verarbeitung natürlicher Sprache, die Daten in Text umwandelt (über Excel-ähnliche Funktionen).

(2) Template-NLG: Diese Form von NLG verwendet ein vorlagengesteuertes Modell, um die Ausgabe anzuzeigen. Daten ändern sich ständig dynamisch und werden durch einen vordefinierten Satz von Geschäftsregeln generiert.

(3) Fortgeschrittenes NLG: Diese Form der Erzeugung natürlicher Sprache ähnelt der des Menschen. Es versteht die Absicht, fügt Intelligenz hinzu, berücksichtigt den Kontext und präsentiert Ergebnisse auf verständliche Weise, wie es normalerweise mit einer auf Deep Learning basierenden Encoder-Decoder-Struktur erreicht wird.

4. Schritte:

Schritt 1: Inhaltsbestimmung – Inhaltsbestimmung

Zunächst muss das NLG-System entscheiden, welche Informationen in den zu erstellenden Text aufgenommen werden sollen und welche nicht. Oftmals enthalten die Daten mehr Informationen, als letztendlich übermittelt werden.

Schritt 2: Textstrukturierung – Textstrukturierung

Nachdem festgestellt wurde, welche Informationen übermittelt werden müssen, muss das NLG-System die Reihenfolge des Textes angemessen organisieren. Wenn beispielsweise über ein Basketballspiel berichtet wird, wird zuerst „wann“, „wo“ und „welche zwei Mannschaften“ geäußert, dann „Überblick über das Spiel“ und schließlich „das Ende des Spiels“.

Schritt 3: Satzzusammenfassung – Satzzusammenfassung

Nicht jede Information muss in einem separaten Satz ausgedrückt werden. Durch die Kombination mehrerer Informationen in einem Satz kann die Lesbarkeit flüssiger und einfacher sein.

Schritt 4: Grammatikalisierung – Lexikalisierung

Wenn der Inhalt jedes Satzes bestimmt ist, können die Informationen in natürlicher Sprache organisiert werden. In diesem Schritt werden einige Verbindungswörter zwischen verschiedenen Informationen hinzugefügt, die eher wie ein vollständiger Satz aussehen.

Schritt 5: Verweisende Ausdrucksgenerierung – Verweisende Ausdrucksgenerierung|REG

Dieser Schritt ähnelt stark der Grammatikalisierung, bei der Wörter und Phrasen ausgewählt werden, um einen vollständigen Satz zu bilden. Der wesentliche Unterschied zwischen ihm und der Grammatikalisierung besteht jedoch darin, dass „REG die Domäne des Inhalts identifizieren und dann das Vokabular dieser Domäne (und nicht anderer Domänen) verwenden muss“.

Schritt 6: Sprachverwirklichung – Sprachliche Verwirklichung

Wenn schließlich alle relevanten Wörter und Phrasen identifiziert sind, müssen sie zu einem gut strukturierten vollständigen Satz kombiniert werden.

5. Typische Anwendung:

(1) Anwendungsziele: In der Lage sein, personalisierte Inhalte in großem Umfang zu generieren; Menschen helfen, Einblicke in Daten zu gewinnen und Daten leichter verständlich zu machen; Inhaltsproduktion beschleunigen.

(2) Automatisches Schreiben von Nachrichten (automatische Finalisierung), Chat-Roboter (maschineller Kundenservice), BI-Interpretation (Business Intelligence) und Berichtserstellung

(3) Essay-Schreiben, Zusammenfassungsgenerierung, automatisches Verfassen von Gedichten, Schreiben von Nachrichten, Erstellen von Berichten,

3-Stimmen-Interaktion

       Der Ablauf der Sprachinteraktion und die verwendeten Technologien sind in der folgenden Abbildung dargestellt:

  • Automatische Spracherkennung, kurz ASR, ist der Prozess der Umwandlung von Ton in Text, der dem Ohr entspricht.
  • Verarbeitung natürlicher Sprache (Natural Language Processing): NLP genannt, ist der Prozess des Verstehens und Verarbeitens von Text, der dem Gehirn entspricht.
  • Text-To-Speech: kurz TTS, ist der Prozess der Umwandlung von Text in Sprache, was dem Mund entspricht.

3.1 Spracherkennung (ASR)

Der Prozess der Spracherkennung ist: „Eingabe-Kodierung-Dekodierung-Ausgabe“

 

Spracheingabe ist im Allgemeinen ein Sprachsignal im Zeitbereich. Mathematisch wird es durch eine Reihe von Vektoren (Länge T, Dimension d) dargestellt, und die Ausgabe ist Text, dargestellt durch eine Reihe von Token (Länge N, V ​​​​verschieden). Tokens). Im Allgemeinen ist beim ASR-Problem die Länge T des Eingangssignals größer als die Länge N des Tokens

 1. Codierung

Wandeln Sie den Ton in ein für die Maschine erkennbares Muster um, das durch einen digitalen Vektor dargestellt wird . Das eingegebene Tonsignal kann vom Computer nicht direkt erkannt werden. Zuerst muss das Tonsignal in kleine Segmente geschnitten werden, und dann wird jedes Segment nach bestimmten Regeln durch einen Vektor dargestellt.

2. Dekodierung: die Form des Zusammenfügens digitaler Vektoren in Text

Fügen Sie zunächst den kompilierten Vektor in das akustische Modell ein, und Sie können erhalten, was den Buchstaben in jedem Segment entspricht.

Anschließend können die übersetzten Buchstaben über das Sprachmodell zu Wörtern zusammengesetzt werden.

3. Token-Auswahl

Token kann als Brücke zwischen Stimme und Text verstanden werden. Die Stimme, die wir hören, kann über AD in einen digitalen Signalspeicher umgewandelt und dann in Form einer Matrix im Computer gespeichert werden. Auch der Text im täglichen Leben benötigt eine Konvertierung vom Computer gespeichert und verwendet. Im ASR-Problem sind die aktuellen Mainstream-Token wie folgt:

(1), Phonem : Die Grundelemente des Klangs werden als Token verwendet. Verschiedene Wörter bestehen aus unterschiedlichen Phonemen. Durch die Identifizierung, welche Phoneme in der Eingabestimme vorhanden sind, und deren anschließende Kombination zu erkanntem Text entsteht eine sehr wichtige Zuordnungsbeziehungstabelle im Lexikon Daher liegt auch der Mangel dieses Tokens auf der Hand, nämlich dass für den Erhalt des Lexikons Kenntnisse der Linguistik erforderlich sind und unterschiedliche Dokumente unterschiedliche Lexikon ergeben

(2) Graphem: Die kleinste in Worten geschriebene Einheit wird als Token verwendet

Vorteile: (1) Es sind keine Sprachkenntnisse erforderlich, es ist lexikonfrei; (2) Selbst wenn Sie auf Token stoßen, die im Trainingsprozess nicht angezeigt wurden, können Sie erwarten, welche Ergebnisse erzielt werden (manuell lustig).

Nachteile: (1) Die Verwendung ist ziemlich schwierig. Viele Aussprachen sind gleich, aber die entsprechenden Token sind tatsächlich unterschiedlich. Es sind stärkere Kontextinformationen erforderlich, was höhere Anforderungen an das Modelllernen stellt. Derzeit stehen wir vor einer komplexeren Situation Frage: (2) Am Beispiel der englischen Sprache besteht ein relativ großes Risiko von Rechtschreibfehlern

(3).Wort: Die Verwendung von Wörtern als Token ist für viele Sprachen oft nicht geeignet, da die Gesamtzahl der Token V sehr groß sein wird. Im Englischen beträgt die Anzahl von V, da es Leerzeichen zur Unterscheidung von Wörtern gibt immer noch akzeptabel. , aber Chinesisch ist schwierig, Wörter als Token zu verwenden. Gleichzeitig ist es am Beispiel des Türkischen möglich, kontinuierlich Suffixe hinzuzufügen, um neue Wörter zu werden, die keinen Anspruch auf Vollständigkeit erheben können, so dass Sprachen wie diese dies nicht tun Geeignet für die Verwendung von Wörtern als Token.

(4). Morphem: Die kleinste Einheit mit spezifischer Bedeutung wird als Token verwendet, das ein Token zwischen Wort und Graphem ist. Nehmen wir als Beispiel Englisch: unbreakable → „un“ „break“ „able“; rekillable → „re“ „töten“ „fähig“

        Wie bekommt man also Morpheme für eine Sprache? Generell gibt es zwei Möglichkeiten:

        Bitten Sie einen Linguisten um Hilfe

        Statistiken haben einige Musterstatistiken gefunden

(5).Bytes: Das härtere Token besteht darin, das Byte direkt im Computer auszuwählen. Offensichtlich ist das Token auf diese Weise sprachunabhängig

        Das Nutzungsverhältnis der oben genannten Token-Methode beträgt:

                Graphem 41 %

                Phonem 32 %

                Morphem 17 %

                Wort 10 %

3.2 Sprachsynthese (TTS)

Sprachsynthese, allgemein bekannt als Text To Speech (TTS), ist eine Technologie, die jeden eingegebenen Text in entsprechende Sprache umwandeln kann. Sprache besteht aus drei Schlüsselkomponenten: Information, Klangfarbe und Rhythmus .

Die Sprachsynthese kann im Allgemeinen entsprechend den unterschiedlichen angewandten Algorithmusideen in zwei Kategorien unterteilt werden: Sprachsynthese basierend auf statistischen Parametern (traditionell) und Sprachsynthese basierend auf Deep Learning (End-to-End) .

3.2.1 Traditionelle Sprachsynthesesysteme

1. Allgemeiner Rahmen

Es enthält normalerweise zwei Module, Front-End und Back-End . Das Front-End-Modul analysiert hauptsächlich den Eingabetext und extrahiert die vom Back-End-Modul benötigten sprachlichen Informationen . Bei chinesischen Synthesesystemen umfassen die Front-End-Module im Allgemeinen Untermodule wie Textregularisierung, Wortsegmentierung, Wortartvorhersage, polyphone Disambiguierung und Prosodievorhersage. Das Back-End-Modul generiert anhand der Analyseergebnisse des Front-Ends mithilfe einer bestimmten Methode Sprachwellenformen .

Das Frontend-Modul verwendet normalerweise NLP (Natural Language Processing), um die sprachlichen Merkmale des Textes zu extrahieren.

Die Back-End-Module sind im Allgemeinen in zwei technische Hauptlinien unterteilt : Statistical Parameter Speech Synthesis (SPSS, im Folgenden als Parametersynthese bezeichnet) basierend auf statistischer Parametermodellierung und Sprachsynthese basierend auf Einheitenauswahl und Wellenformspleißen (im Folgenden als Splicing bezeichnet). Synthese).

  • Parametersynthese: In der Trainingsphase wird eine kontextabhängige Modellierung der sprachakustischen Merkmale und Dauerinformationen durchgeführt. In der Synthesephase werden die akustischen Merkmalsparameter durch das Dauermodell und das akustische Modell vorhergesagt und die akustischen Merkmalsparameter werden postiert -verarbeitet. Schließlich wird die Sprachwellenform durch den Vocoder wiederhergestellt. (Vorteil: Wenn die Soundbank klein ist, gibt es einen relativ stabilen Syntheseeffekt; Nachteil: Die durch statistische Modellierung verursachten akustischen Charakteristikparameter sind zu glatt und der Vocoder beeinträchtigt die Klangqualität.)
  • Spleißen und Synthese: Statistische Modelle werden normalerweise zur Steuerung der Einheitenauswahl verwendet, und die Trainingsphase ist im Grunde dieselbe wie die Parametersynthese. In der Synthesephase werden die Modellberechnungskosten als Leitfaden für die Auswahl der Einheiten verwendet, und der dynamische Programmieralgorithmus wird verwendet, um die optimale Einheitensequenz auszuwählen. Anschließend werden Energieregulierung und Wellenformspleißen an den ausgewählten Einheiten durchgeführt . (Vorteile: Echte Sprachclips können direkt verwendet werden, um die Sprachqualität weitestgehend zu erhalten; Nachteile: Es ist eine große Soundbibliothek erforderlich und der Syntheseeffekt von Text außerhalb der Domäne kann nicht garantiert werden.)

2. Sprachsynthese basierend auf statistischen Parametern

  • Die Hauptaufgabe des Merkmalsextraktors besteht darin, sprachliche Merkmale zu generieren, um dem akustischen Modell dabei zu helfen, genauere akustische Merkmale zu generieren.
  • Akustische Modelle können Sprachwellenformen nicht direkt erzeugen, hauptsächlich weil Sprache komplex und schwer zu modellieren ist. Daher gibt das akustische Modell im Allgemeinen eine Zwischenformdarstellung wie das Mel-Spektrum aus, und dann stellt der Vocoder die Sprache gemäß der Zwischenform dar.
  • Der Vocoder erzeugt Audio durch akustische Merkmale wie das Mel-Spektrum. Er muss die niedrigdimensionalen akustischen Merkmale der hochdimensionalen Sprachwellenform zuordnen, und der Rechenaufwand ist hoch. Daher ist der Wellenformwiederherstellungsprozess einer der Schlüsselschritte bei der Verbesserung der Effizienz des Sprachsynthesesystems. . Da der Vocoder außerdem eine große Menge an Informationen lernen und vorhersagen muss, wird dadurch auch die endgültige Sprachqualität eingeschränkt.

3.2.2 End-to-End-System für synthetische Sprache

1. Allgemeiner Rahmen

2. Sprachsynthese basierend auf Deep Learning

  • Textvorverarbeitung: Rhythmusinformationen zum chinesischen Text hinzufügen und chinesische Schriftzeichen in phonetische Sequenzen umwandeln;
  • Netzwerk zur Generierung akustischer Merkmale: Generieren Sie akustische Merkmale basierend auf den vom Text-Frontend ausgegebenen Informationen , z. B.: Zuordnung phonetischer Sequenzen zum Mel-Spektrum oder linearen Spektrum;
  • Vocoder: Verwenden Sie akustische Merkmale wie das Spektrum, um Sprachabtastpunkte zu generieren und Zeitbereichswellenformen zu rekonstruieren , z. B.: Wiederherstellen des Mel-Spektrums für die entsprechende Sprache.

1.2.1 Feature-Netzwerkmodellalgorithmus

1, Tacotron

Tacotron ist das erste wirklich durchgängige Sprachsynthesesystem. Geben Sie Text oder phonetische Zeichen ein, geben Sie Linear-Spectrum aus und konvertieren Sie es dann über den Vocoder Griffin-Lim in eine Wellenform. Tacotron hat derzeit zwei Generationen auf den Markt gebracht. Die Hauptverbesserung von Tacotron2 besteht darin, das Modell zu vereinfachen, die komplexe CBHG-Struktur zu entfernen und den Aufmerksamkeitsmechanismus zu aktualisieren , wodurch die Ausrichtungsstabilität verbessert wird.

(1) Struktur

Das Netzwerk ist in vier Teile unterteilt: Encoder links, Aufmerksamkeit in der Mitte, Decoder unten rechts und Nachbearbeitung oben rechts .

Eingabe: Um Probleme wie polyphone Zeichen in verschiedenen Sprachen und nicht aufgezeichnete Wortaussprachen zu vermeiden, verwendet Tacotron normalerweise phonetische Zeichen als Eingabe. Chinesisch kann beispielsweise „Pinyin“ als Eingabe verwenden, das mithilfe der Python-Bibliothek konvertiert werden kann Konvertieren chinesischer Schriftzeichen in Pinyin.

Ausgabe: Je nach Zweck kann Tacotron zwei Arten von Spektren mit linearem Spektrum oder Mel-Spektrum ausgeben . Die Auswahl erfolgt pro Vocoder:

Vocoder

Spektrum

Griffin-Lim

Lineares Spektrum

WaveNet

Linear-Spectrum oder Mel-Spectrum (weniger extreme Kosten, empfohlen)

Nachbearbeitung: Im Rahmen von Tacotron+WaveNet gibt Tacotron phonetische Zeichen ein und gibt ein Spektrum aus; WaveNet gibt ein Spektrum ein und gibt eine Wellenform aus . Das Nachbearbeitungsmodul wird zwischen Tacotron und WaveNet hinzugefügt. Der Hauptzweck besteht darin, mehrere Frames zu verketten und die Qualität der Generierung zu verbessern . Das seq2seq-Framework bestimmt, dass der Decoder nur die ersten paar Frames sehen kann, aber nichts über die letzteren weiß. Bei der Nachbearbeitung können jedoch mehrere Frames vorwärts und rückwärts mit mehr Referenzinformationen beobachtet werden , sodass die Generierungsqualität höher ist.

(2)CBHG

Sowohl Encoder als auch Post-Processing enthalten eine Struktur namens CBHG . Das sogenannte CBHG ist: 1-D-Faltungsbank + Autobahnnetz + bidirektionale GRU , wie in der folgenden Abbildung dargestellt.

Die Netzwerkstruktur von CBHG ist in der blauen Box dargestellt. Sie besteht aus einer eindimensionalen Faltungsfilterbank, einem Highway-Netzwerk und einer bidirektionalen GRU. CBHG ist ein leistungsstarkes Netzwerk, das häufig zum Extrahieren von Sequenzmerkmalen verwendet wird .

(3) Tacotron + WaveNet (Vocoder)

Tacotron kann phonetische Zeichen in ein Spektrum dekomprimieren und benötigt einen Vocoder (SampleRNN, WaveNet, WaveRNN usw.), um das Spektrum in eine Wellenform wiederherzustellen. Mit WaveNet funktionieren autoregressive Sample-Point-Modelle. Das Modell gibt mehrere historische Stichprobenpunkte ein und gibt den vorhergesagten Wert des nächsten Stichprobenpunkts aus, dh es prognostiziert die Zukunft basierend auf der Geschichte.

Der Gesamtprozess eines vollständigen TTS-Systems ist: Phonetische Zeichen in Tacotron eingeben, Mel-Spectrum ausgeben; Mel-Spectrum in WaveNet eingeben, Tonwellenform ausgeben.

  1. Tiefe Stimme

DeepVoice teilt das TTS-System der traditionellen Parametersynthese in mehrere Untermodule auf, und jedes Untermodul wird durch ein neuronales Netzwerkmodell ersetzt. DeepVoice unterteilt die Sprachsynthese in fünf Teile, nämlich: Text-zu-Phonem (auch bekannt als Morphem-zu-Phonem, G2P), Audiosegmentierung, Vorhersage der Phonemdauer, Vorhersage der Grundfrequenz und akustisches Modell .

(1) Vor- und Nachteile

Vorteile: Bietet eine vollständige TTS-Lösung. Im Gegensatz zu WaveNet, das zur Bereitstellung von Funktionen auf andere Module angewiesen ist, werden auch die verwendeten künstlichen Funktionen reduziert, die Synthesegeschwindigkeit ist schnell und die Echtzeitleistung ist gut.

Fehler: Fehler häufen sich, die Fehler von 5 Untermodulen häufen sich, ein Modul schlägt fehl, die gesamte Synthese schlägt fehl und Entwicklung und Debuggen sind schwierig; obwohl die Verwendung künstlicher Merkmale reduziert wird, sind in dieser vollständigen Lösung Phonemmarkierungen und Akzente vorhanden noch erforderlich Funktionen wie Markierungen; Die direkte Verwendung der Texteingabe kann das Problem polyphoner Zeichen nicht gut lösen.

(2) DeepVoice2: Einführung des „Lautsprecher“-Vektors, der Stimmen verschiedener Klangfarben synthetisieren kann .

1.2.2 Vocoder-Modellalgorithmus

1, Griffin-Lim

Griffin-Lim ist ein Algorithmus zur Rekonstruktion von Zeitbereichswellenformen, wenn nur ein Größenspektrum, aber kein Phasenspektrum vorhanden ist. Da die Sprachwellenform, die die Phaseninformationen verwirft, wiederhergestellt werden muss, ist es notwendig, die ursprünglichen Informationen durch Iteration so weit wie möglich zu „erraten“.

2, WaveNet

WaveNet ist ein typisches autoregressives generatives Modell . Das sogenannte autoregressive generative Modell ist ein lineares Regressionsmodell, das eine lineare Kombination von Variablen zu einem bestimmten Zeitpunkt in der Vergangenheit verwendet, um eine Variable zu einem bestimmten Zeitpunkt in der Zukunft zu beschreiben . Ohne vorhergehende Annahmen über die Stimme zu treffen, wird das neuronale Netzwerk verwendet, um die Verteilung aus den Daten zu lernen. Anstatt den Stimmprobenwert direkt vorherzusagen, wird die Stimme durch einen Stichprobenprozess erzeugt.

Vorteile: Es kann anhand akustischer Merkmale hochwertige Sprache erzeugen.

Mängel: 1) Es ist langsam, jedes Mal einen Abtastpunkt vorherzusagen; 2) WaveNet ist keine vollständige TTS-Lösung, da es auf andere Module angewiesen ist, um Funktionen auf hoher Ebene bereitzustellen. Die Front-End-Analyse ist falsch, was sich direkt auf den Syntheseeffekt auswirkt ; 3) Bei der Verwendung in TTS ist die Wahl des ersten Probenahmepunkts wichtig

3,WaveRNN

WaveRNN verwendet eine brandneue Vocoder-Architektur mit einer besonders einfachen Struktur. Der Hauptkörper besteht nur aus einem einschichtigen rekurrenten neuronalen Netzwerk (RNN), und das RNN verwendet eine spärliche Matrix, um den Rechenaufwand weiter zu reduzieren. Im Vergleich zu WaveNet , die Synthesegeschwindigkeit ist etwa zehnmal schneller.

4 Graphisches neuronales Netzwerk

Graph Neural Networks (GNN) ist eine Kombination aus Diagrammdaten und neuronalen Netzen und führt End-to-End-Berechnungen für Diagrammdaten durch.

  1. GNN-Struktur

Im Vergleich zur grundlegendsten Netzwerkstruktur des neuronalen Netzwerks, der vollständig verbundenen Schicht (MLP), wird die Merkmalsmatrix mit der Gewichtsmatrix multipliziert, und das graphische neuronale Netzwerk verfügt über eine zusätzliche Adjazenzmatrix . Die Berechnungsform ist sehr einfach: Drei Matrizen werden multipliziert und eine nichtlineare Transformation hinzugefügt

Ein relativ häufiger Anwendungsmodus eines graphischen neuronalen Netzwerks ist in der folgenden Abbildung dargestellt. Die Eingabe ist ein Graph. Nach verschiedenen Operationen wie mehrschichtiger Graphfaltung und Aktivierungsfunktionen wird schließlich die Darstellung jedes Knotens erhalten, um dies zu erleichtern Knotenklassifizierung, Linkvorhersage, Diagramm- und Unterdiagrammgenerierung und andere Aufgaben.

     2. GNN-Klassifizierung

Graph Convolution Networks (GCN), Graph Attention Networks, Graph Auto-Encoder, Graph Generative Networks und Graph Spatial-Temporal Networks Networks).

    3. Mehrere klassische Modelle und Entwicklung eines graphischen neuronalen Netzwerks

Die klassischsten GNN-Modelle sind GCN, GraphSAGE und GAT, die im Folgenden vorgestellt werden:

(1)GCN

Halbüberwachte Klassifizierung mit Graph Convolutional Networks (ICLR2017) https://arxiv.org/pdf/1609.02907

Das Graph-Faltungsnetzwerk aggregiert die Merkmale benachbarter Knoten und führt dann eine lineare Transformation durch . Wie nachfolgend dargestellt:

Damit GCN die Informationen von K-Hop-Nachbarknoten erfassen kann, stapelt der Autor gleichzeitig auch mehrere GCN-Schichten, beispielsweise stapelt er K-Schichten:

    Die obige Formel wird mithilfe einer Matrix wie folgt ausgedrückt:

Unter diesen ist D - 1 2 Ã D - 1 2 die Adjazenzmatrix nach der Normalisierung, H (l) W (l) entspricht der Durchführung einer linearen Transformation zum Einbetten aller Knoten in Schicht l und der Multiplikation der linken mit der Adjazenzmatrix zur Darstellung Für jeden Knoten wird das Merkmal des Knotens als Ergebnis der Addition der Merkmale benachbarter Knoten ausgedrückt. (Beachten Sie, dass das Ersetzen von D - 1 2 Ã D - 1 2 durch Matrix A die Multiplikation der drei im GNN-Strukturdiagramm erwähnten Matrizen ist.)

Die Mängel von GCN liegen ebenfalls auf der Hand: Erstens muss GCN das gesamte Bild im Speicher und im Videospeicher ablegen, was viel Speicher und Videospeicher verbraucht und keine großen Bilder verarbeiten kann. Zweitens muss GCN die Struktur kennen Das gesamte Bild während des Trainings. Informationen (einschließlich vorherzusagender Knoten), die bei einigen Aufgaben in der Realität nicht erreicht werden können.

(2) Diagrammbeispiel und Aggregat (GraphSAGE)

Um die beiden Mängel von GCN zu beheben, wurde GraphSAGE vorgeschlagen. GraphSAGE ist ein Framework für induktives Lernen . In der spezifischen Implementierung behält es während des Trainings nur die Kanten von den Trainingsmustern zu den Trainingsmustern bei und umfasst dann zwei Schritte : Stichprobe und Aggregation . Stichprobe bezieht sich darauf, wie die Anzahl der Nachbarn abgetastet wird Unter „Aggregation“ versteht man, wie diese Einbettungen nach den Einbettungen von Nachbarknoten aggregiert werden, um ihre eigenen Einbettungsinformationen zu aktualisieren . Die folgende Abbildung zeigt einen Prozess des GraphSAGE-Lernens:

Der erste Schritt besteht darin, die Nachbarn zu befragen

Im zweiten Schritt wird die abgetastete Nachbareinbettung an den Knoten übergeben und eine Aggregationsfunktion wird verwendet, um diese Nachbarinformationen zu aggregieren, um die Knoteneinbettung zu aktualisieren

Der dritte Schritt besteht darin, die Bezeichnung des Knotens gemäß der aktualisierten Einbettung vorherzusagen

    Die folgende Abbildung zeigt, wie ein trainiertes GrpahSAGE die Einbettung für einen neuen Knoten generiert (d. h. einen Vorwärtspropagierungsprozess).

Zunächst initialisiert der (Zeile1)-Algorithmus zunächst die Eigenvektoren aller Knoten im Eingabediagramm, (Zeile3) für jeden Knoten v, nachdem er seinen abgetasteten Nachbarknoten N(v) erhalten hat, (Zeile4) verwendet die Aggregationsfunktion, um die Nachbarknoten zu aggregieren Informationen (Zeile5) und aktualisiert seine eigene Einbettungsdarstellung durch eine nichtlineare Transformation in Kombination mit seiner eigenen Einbettung.

K im Algorithmus bezieht sich auf die Anzahl der Aggregatoren, die Anzahl der Gewichtsmatrizen oder die Anzahl der Schichten des Netzwerks. Dies liegt daran, dass die Aggregatoren und Gewichtsmatrizen in jeder Schicht des Netzwerks gemeinsam genutzt werden .

  • Aggregat

Die Anzahl der Schichten des Netzwerks kann als die Anzahl der Hops (Hops ) der Nachbarn verstanden werden, die den meisten Zugriff benötigen . Beispielsweise beträgt die Anzahl der Hops des roten Knotens in Abbildung 2 in Abbildung 1 zwei Hops Die Anzahl der Netzwerkschichten beträgt 2. Um die roten Knoten zu aktualisieren, aggregieren wir zunächst in der ersten Ebene (k=1) die Informationen der blauen Knoten zu den roten Lösungsknoten und die Informationen der grünen Knoten zu den blauen Knoten. In der zweiten Ebene (k=2) wird die Einbettung des roten Knotens erneut aktualisiert, dieses Mal wird jedoch die aktualisierte Einbettung des blauen Knotens verwendet, wodurch sichergestellt wird, dass die aktualisierte Einbettung des roten Knotens die Informationen des blauen und des roten Knotens enthält Grüne Knoten, also Zwei-Hop-Informationen. Die folgende Abbildung veranschaulicht den Aktualisierungsprozess der Knoten A und B gut:

    Gängige Aggregatoren sind:

  • Probe

GraphSAGE verwendet eine Sampling-Methode mit fester Länge . Definieren Sie insbesondere die erforderliche Anzahl von Nachbarn S und verwenden Sie dann die Resampling-/negative Sampling-Methode mit Ersetzung, um S zu erreichen. Stellen Sie sicher, dass jeder Knoten (nach der Stichprobe) die gleiche Anzahl von Nachbarn hat. Dies dient dazu, mehrere Knoten und ihre Nachbarn zu Tensoren zusammenzufügen und sie zum Batch-Training an die GPU zu senden.

  • Lernen Sie die Parameter des Aggregators und die Gewichtsmatrix W kennen

Wenn es sich um eine überwachte Situation handelt, kann die Kreuzentropie des vorhergesagten Labels und des realen Labels jedes Knotens als Verlustfunktion verwendet werden.

Wenn es sich um eine unbeaufsichtigte Situation handelt, kann davon ausgegangen werden, dass die Einbettungsdarstellungen benachbarter Knoten so ähnlich wie möglich sind, sodass die folgende Verlustfunktion entworfen werden kann:

  • Vor- und Nachteile von GraphSAGE

1) Vorteile

(1) Mithilfe des Sampling-Mechanismus wird das Problem gelöst, dass GCN die Informationen aller Diagramme kennen muss, die Einschränkungen des Speichers und des Videospeichers während des GCN-Trainings überwunden werden und seine Darstellung auch für unbekannte neue Knoten erhalten werden kann

(2) Die Parameter des Aggregators und der Gewichtsmatrix werden von allen Knoten gemeinsam genutzt

(3) Die Anzahl der Parameter des Modells hat nichts mit der Anzahl der Knoten im Diagramm zu tun, wodurch GraphSAGE größere Diagramme verarbeiten kann

(4) Es kann sowohl überwachte als auch unbeaufsichtigte Aufgaben bewältigen

2) Nachteile

    Bei so vielen Nachbarn pro Knoten berücksichtigt die Stichprobe von GraphSAGE nicht die unterschiedliche Wichtigkeit verschiedener Nachbarknoten , und die Wichtigkeit der Nachbarknoten unterscheidet sich auch während der Aggregationsberechnung vom aktuellen Knoten.

(3) Graph Attention Networks (GAT)

Um das Problem zu lösen, dass GNN beim Aggregieren von Nachbarknoten die Bedeutung verschiedener Nachbarknoten nicht berücksichtigt, greift GAT auf die Idee von Transformer zurück und führt einen maskierten Selbstaufmerksamkeitsmechanismus ein . Bei der Berechnung der Darstellung jedes Knotens im Diagramm Es basiert auf unterschiedlichen Eigenschaften der Nachbarknoten und weist ihnen unterschiedliche Gewichte zu. Für das Eingabediagramm ist die Aufmerksamkeitsschicht des Diagramms in der folgenden Abbildung dargestellt:

Unter diesen wird a durch ein einschichtiges Feed-Forward-Neuronales Netzwerk realisiert, und der Berechnungsprozess ist wie folgt (beachten Sie, dass die Gewichtsmatrix W von allen Knoten gemeinsam genutzt wird):

Nachdem die Aufmerksamkeit berechnet wurde, kann eine neue Darstellung eines Knotens durch Aggregation seiner Nachbarknoteninformationen erhalten werden. Der Berechnungsprozess ist wie folgt:

Um die Anpassungsfähigkeit des Modells zu verbessern, wird auch ein Mehrkopf-Selbstaufmerksamkeitsmechanismus eingeführt . Das heißt, mehrere W k werden gleichzeitig zur Berechnung der Selbstaufmerksamkeit verwendet und dann werden die berechneten Ergebnisse kombiniert (verbunden). oder summiert):

Aufgrund der Eigenschaften der GAT-Struktur muss GAT außerdem keinen vorgefertigten Graphen verwenden , sodass GAT sowohl für transduktives Lernen als auch für induktives Lernen geeignet ist .

  • Vorteile von GAT:

(1) Das Training von GCN muss nicht die gesamte Diagrammstruktur verstehen, sondern nur die Nachbarknoten jedes Knotens kennen

(2) Die Berechnungsgeschwindigkeit ist hoch und parallele Berechnungen können auf verschiedenen Knoten durchgeführt werden

(3) Es kann sowohl für transduktives Lernen als auch für induktives Lernen verwendet werden und kann unsichtbare Graphstrukturen verarbeiten

4. Lernen der unbeaufsichtigten Knotendarstellung (unüberwachte Knotendarstellung)

Da die Kosten für die Kennzeichnung von Daten sehr hoch sind, ist es von großem Wert und von großer Bedeutung, wenn Sie unbeaufsichtigte Methoden verwenden können, um die Darstellung von Knoten gut zu lernen. Zu den klassischeren Modellen gehören GraphSAGE, Graph Auto-Encoder (GAE) usw.

Graph Auto-Encoder (GAE)

Der allgemeine Prozess des Modells besteht darin, die Adjazenzmatrix A des Diagramms und die Merkmalsmatrix ) und verwenden Sie dann den Decoder (Link-Vorhersage), um eine Abbildung zu generieren, wie unten gezeigt:

Aus der obigen Abbildung geht hervor, dass der Encoder (Encoder) ein einfaches zweischichtiges GCN-Netzwerk verwendet und der Decoder (Encoder) die Wahrscheinlichkeit einer Kante zwischen zwei Punkten berechnet , um das Diagramm zu rekonstruieren. Die Verlustfunktion umfasst das Abstandsmaß zwischen den generierten Diagrammen und das Originaldiagramm. , und die Knoten repräsentieren die beiden Teile der Vektorverteilung und die KL-Divergenz der Normalverteilung. Die spezifische Formel ist in der folgenden Abbildung dargestellt:

Das Einbetten von Graphen zielt darauf ab, die Scheitelpunkte in einem Graphen als niedrigdimensionale Vektoren darzustellen, indem die Netzwerktopologie und Knoteninhaltsinformationen des Graphen für die Verarbeitung mit einfachen Algorithmen für maschinelles Lernen (z. B. Support Vector Machine Classification) erhalten bleiben.

 

Notiz:

1, induktives Lernen und transduktives Lernen

Induktives Lernen (induktives Lernen) ist unsere übliche Art zu lernen. Die Eigenschaften der Testdaten wurden während des Trainings nicht erkannt, und ein Modell wird anhand der Trainingsdaten trainiert, um Vorhersagen zu treffen, und das trainierte Modell kann direkt zur Vorhersage neuer Daten verwendet werden.

Transduktives Lernen ist eine ungewöhnliche Lernmethode, die ein Teilproblem des halbüberwachten Lernens darstellt. Die Eigenschaften der Testdaten wurden während des Trainings erkannt und Vorhersagen werden durch Beobachtung der Verteilung aller Daten getroffen. Wenn neue Daten hinzugefügt werden, muss der gesamte Algorithmus neu trainiert werden. Das heißt, beim transduktiven Lernen werden die Trainingssatzdaten und die Testsatzdaten verwendet, um das Modell gemeinsam zu trainieren, und dann werden die Testsatzdaten zum Testen verwendet.

2, AutoEncoder (AutoEncoder, AE) und Variations-Autoencoder (Variations-Auto-Encoder, VAE)

(1) Autoencoder

Es gehört zum Problem des unüberwachten Lernens und wird häufig zur Vorverarbeitung von Datensätzen zur Reduzierung der Datendimensionalität oder zur Merkmalsextraktion verwendet . 

Besonderer Hinweis: Da dieser Artikel auf der Lektüre einer großen Anzahl von Blogs basiert, kann ein Teil des Inhalts aus anderen Blogs extrahiert werden. Bei Vorliegen eines Verstoßes entschuldige ich mich aufrichtig und hoffe, dass ich Sie kontaktieren kann, um das Problem zu lösen.

Ich denke du magst

Origin blog.csdn.net/qq_43704127/article/details/128399638
Empfohlen
Rangfolge