[Li Hongyi 2020 ML / DL] P18-19 Graph Neural Network | NN4G, DCNN, MoNet, GraphSAGE, GAT, GIN, ChedNet, GCN

P18 19 Graph Neural Network Nn4g



Jeg har hatt to års erfaring med ML. Denne kursserien brukes hovedsakelig for å kontrollere mangler, og vil registrere noen detaljer som jeg ikke vet.

Noen har allerede tatt notater (veldig vanskelig, anbefales på det sterkeste): https://github.com/Sakura-gh/ML-notes



Tilsvarende merknader i dette avsnittet: Ingen



Disposisjon

  • Introduksjon
  • Veikart
  • Oppgaver, datasett og målestokk
  • Rombasert GNN
  • Graf signalbehandling og spektralbasert GNN
  • Grafgenerering
  • GNN for NLP

Hvordan legge inn node i et funksjonsrom ved hjelp av konvolusjon?

Det er to ideer:



  • Løsning 1: Generaliser begrepet konvolusjon (korelasjon) til graf >> Rombasert konvolusjon
  • Løsning 2: Tilbake til definisjonen av konvolusjon i signalbehandling >> Spektralbasert konvolusjon

Veikart

Oppgaver, datasett og målestokk

Oppgaver:

  • Semi-overvåket nodeklassifisering
  • Regresjon
  • Grafklassifisering
  • Læring av grafrepresentasjon
  • Link prediksjon



    Vanlig datasett:
  • CORA: siteringsnettverk. 2.7k noder og 5.4k lenker
  • TU-MUTAG: 188 molekyler med 18 noder i gjennomsnitt

Rombasert GNN



Bildet over viser den generelle ideen om romlig-basert GNN, ved hjelp av nabo-noder for å oppdatere konvolusjon:

  • Samlet først
  • Avlesning igjen.

NN4G (nevrale nettverk for graf)

I NN4G:

  • Først innebygging av inngangslaget
  • Deretter legger du til naboene til noden, multipliserer den med en vekt og legger til sin egen funksjon (w ˉ 1 ⋅ x 3 bar {w} _1 cdot x_3)
  • Les deretter ut (som vist i figuren nedenfor), legg sammen funksjonene til hvert lag, ta deretter gjennomsnittet, og multipliser deretter med forskjellige vekter, og legg til dem.

DCNN (Diffusion-Convolution Neural Network)

For DCNN behandler vi hver node i det første laget som følger:

  • Som følgerh 3 0 h_3 ^ 0, For å gjennomsnittliggjøre hver egenverdi, er objektet alt og gjeldende node Point at distance 1

For det andre laget er avstanden 2.

h 3 0 = w 3 0 M E A N (d (3, ⋅) = 1) h_3 ^ 0 = w_3 ^ 0 BETYDNING (d (3, cdot) = 1)
h 3 1 = w 3 1 M E A N (d (3, ⋅) = 2) h_3 ^ 1 = w_3 ^ 1 BETYDNING (d (3, cdot) = 2)

Etter det, for hvert lag, blir node-egenverdivektorpunktene stablet i en matrise etter rader.

Dens Roadout er vist i figuren.

MoNET (Mixture Model Networks)

  • Definer et mål på nodenes 'avstander'
  • Bruk vektet sum (gjennomsnitt) i stedet for bare å oppsummere (gjennomsnitt) nabofunksjoner.

Forskjellig fra den forrige modellen: Denne modellen anser viktigheten av hver nabo for å være forskjellig og vurderer vekten mellom naboene.

Her bruker vi 'grad' for å definere kantvekten mellom naboeneu (x, y) u (x, y).

GraphSAGE (Liten og aggreGat)

  • Kan jobbe med både transduktiv og induktiv setting
  • GraphSAGE lærer hvordan du legger inn nodefunksjoner fra naboer


I tillegg til å snakke om å legge til naboer til gjennomsnittet, og bruke funksjonen som max-pooling, og også legge inn forskjellige ordrer i LSTM for å eliminere effekten av orden.

GAT (Graph Attention Networks)

  • Input: node-funksjonerh = {h ⃗ 1, h ⃗ 2,…, h ⃗ N}, h ⃗ i ∈ RF mathbf {h} = left { vec {h} _ {1}, vec {h} _ { 2}, ldots, vec {h} _ {N} right }, vec {h} _ {i} in mathbb {R} ^ {F}
  • Beregn energi:eij = a (W h ⃗ i, W h ⃗ j) e_ {ij} = a left ( mathbf {W} vec {h} _ {i}, mathbf {W} vec {h} _ { j} høyre)
  • Oppmerksomhetspoeng (over naboene)

α ij = exp ⁡ (LeakyReLU (a → T [W h ⃗ i ∥ W h ⃗ j])) ∑ k ∈ N i exp ⁡ (LeakyReLU (a → T [W h ⃗ i ∥ W h ⃗ k])) alpha_ {ij} = frac { exp left ( text {LeakyReLU} left ( overrightarrow { mathbf {a}} ^ {T} left [ mathbf {W} vec {h} _ { i} | mathbf {W} vec {h} _ {j} right] right) right)} { sum_ {k in mathcal {N} _ {i}} exp left ( text {LeakyReLU} left ( overrightarrow { mathbf {a}} ^ {T} left [ mathbf {W} vec {h} _ {i} | mathbf {W} vec {h} _ {k} right] right) right)}

For å beregne en node, må du først beregne oppmerksomheten til forskjellige naboer, beregne energien til de to nodene, og dette brukes som vekt for vekting. Som vist under.

Denne GAT brukes oftere

GIN (Graph Isomorphism Network)

  • Et GNN kan være maksimalt like kraftig som WL-isomorf test
  • Teoretiske bevis ble levert

Denne undersøkelsen gir noen teoretiske bevis, og konklusjonen er:

  • Når du oppdaterer, er det best å bruke følgende formelh v (k) h_v ^ {(k)}Oppdater (legg til naboer, og legg deretter til egne multipler)
  • Sum i stedet for gjennomsnitt eller maks

hv (k) = MLP ⁡ (k) ((1 + ϵ (k)) ⋅ hv (k - 1) + ∑ u ∈ N (v) hu (k - 1)) h_ {v} ^ {(k) } = operatorname {MLP} ^ {(k)} left ( left (1+ epsilon ^ {(k)} right) cdot h_ {v} ^ {(k-1)} + sum_ { u in mathcal {N} (v)} h_ {u} ^ {(k-1)} right)

Hvorfor bruke sum i stedet for gjennomsnitt eller maks? Følgende figur viser noen moteksempler på gjennomsnitt og maks.

Graf signalbehandling og spektralbasert GNN

Vi håper at grafen kan formes. Den generelle ideen er å endre grafen og filteret slik at de to kan multipliseres direkte. This involves some changes in the signal and system courses.

Signal og system

N-dim Vector Space

Signalet kan sees på som et sett med N-dimensjonale vektorer. Denne vektoren i lineært rom er sammensatt av flere basisvektorer synthesis av:

A ⃗ = ∑ k = 1 N a k v ^ k vec {A} = sum_ {k = 1} ^ N a_k hat {v} _k

Hvis du vil analysis Hva er en bestemt basisvektor, må du gjøre det indre produktet:

a j = A ^ ⋅ v ^ j a_j = hat {A} cdot hat {v} _j

I tillegg, anta at basisvektorene våre er ortogonale (ortogonale):

v ^ i ⋅ v ^ j = δ i j hat {v} _i cdot hat {v} _j = delta_ {ij}

Fourier Series Representasjon

I tidsdomenet brukes ofte basisvektorene til synd og cos.

For et periodisk signal kan det utvides til Fourier-serien:
x (t) = ∑ k = - ∞ ∞ hvilken som helst ω 0 t = ∑ k = - ∞ ∞ ak ϕ k (t) x (t) = sum_ {k = - infty} ^ { infty} a_ {k } e ^ {jk omega_ {0} t} = sum_ {k = - infty} ^ { infty} a_ {k} phi_ {k} (t)

a k ϕ k (t) a_ {k} non_ {k} (t): j-th harmoniske komponenter

Vi har forskjellige måter å beregne påa k a_kstørrelsen til.

Signalrepresentasjon i to domener

Time Domain Basis

A ⃗ = ∑ i a i v ⃗ i vec {A} = sum_ {i} a_i vec {v} _i

x (t) = ∫ - ∞ ∞ x (τ) δ (t - τ) d τ x (t) = int _ {- Infty} ^ { Infty} x () delta (t ) d

I tillegg kan den samme gruppen av signaler også være representert ved forskjellige grunnlag, som kan skrives i følgende form:

x (t) = 1 2 π ∫ - ∞ ∞ X (j ω) ej ω td ω x (t) = frac {1} {2 pi} int ^ { infty} _ {- infty} X (j omega) e ^ {j omega t} d omega

. . . = ∑ k (... B k) u ⃗ k ... = sum_k (... b_k) vec {u} _k

Basis for frekvensdomene

A ⃗ = ∑ k b k u ⃗ k vec {A} = sum_ {k} b_k vec {u} _k

x (t) = 1 2 π ∫ - ∞ ∞ X (j ω) ej ω td ω x (t) = frac {1} {2 pi} int ^ { infty} _ {- infty} X (j omega) e ^ {j omega t} d omega

x (t) = ∫ - ∞ ∞ x (τ) δ (t - τ) d τ x (t) = int _ {- Infty} ^ { Infty} x () delta (t ) d

. . . = ∑ i (... A i) v ⃗ i ... = sum_ {i} (... a_i) vec {v} _i

Fourier transform

Fourier-transform refererer til prosessen med å analysere grunnlaget.

Spektralgrafteori


Som ovenfor, i grafteori, skal tre matriser deklareres, inkludert kritisk matrise og gradmatrise. Hver node har sin egen signal

Vektoren eller konstanten til hver node kan forstås som signalet til denne noden.

basert på Tulaplace's expansion theorem, kan Positive semi-definite matrix L Del. Eksempler er som følger.

Vertex domenesignal


Beregn først L basert på D og A, og del deretter L iΛ LambdamotU U.

In U, the number of rows represents the node the number of columns represents the 'frequency' in the signal.

Tegn den ut som vist nedenfor.

Hvorfor forstår du 'frekvens' på denne måten? La oss starte diskusjonen.

Diskret tid Fourier basis


I signalet, jo større frekvens, desto større endres signalet mellom to tilstøtende punkter.

Tolker toppunktfrekvens


Det kan sees at den endelige Lf-verdien faktisk er dens egen energimultipel minus energisummen til naboene.

Denne energien må firkantes for å være fornuftig, som vist i figuren nedenfor.

Det kan sees at endringen av signalenergi faktisk representerer om nodene er glatte.

Når du går tilbake til det originale bildet, kan du se:

  • Den såkalte energiforskjellen erλ i lambda_i
  • λ = 0 lambda = 0Når det er en likestrømskomponent DC component
Et spesielt eksempel: en linjediagram med 20 noder


Det kan sees at i dette spesifikke eksemplet, jo større frekvens, desto større energiforskjell.

Graf Fourier Transform av signal


Som vist i figuren ovenfor, i likhet med signalbehandlingen til høyre, vil vi utføreU T x U ^ T xDen indre produktoperasjonen av utføres faktisk på hver frekvens analysis. Derfor er den kartlagt til det spektrale domenet.

Invers graf Fourier Transform av signal

Det samme gjelder signalbehandling tilbake til tidsdomene.

Som vist Treat the node as a value on the horizontal axis in the time domain, and add up the parts of each frequency. Beregnes somx = U ⋅ x ^ x = U cdot hat {x}.

Filtrering og problem

Det vi bygde filter, er også basert på frekvens for strekkartlegging. Som vist under.

I faktiske beregninger passerer viy ^ = g θ (Λ) x ^ hatt {y} = g_ theta ( Lambda) hatt {x}Få den filtrerte verdien for hver frekvens.

Som vist nedenfor, vil vi endeligy ^ hat {y}Multipliser medU U, Gjør den inverse Fourier-transformasjonen og gå tilbake til verdien som tilsvarer hver node.

Den siste parameteren vi ønsker å trene er verdien av dette filteret. som følger.

Men problemet er:

  • lignendeg θ (L) = l o g (I + L) g_ theta (L) = log (I + L)Hvis denne funksjonen brukes som en filterfunksjon, Then the parameter size of the filter will change as the input changes (100,000 nodes, then 100,000 filter parameters)
  • I tillegg, som vist i figuren nedenfor, vil du lære det du ikke vil lære (hvis koeffisienten til g erL N L ^ N, Så involverer hver filtrering den generelle situasjonen, nei Localize Opp).

ChebNet

Løs de to ovennevnte problemene, filter kan fikses og lokaliser.

Denne kostnadstiden er imidlertid for høy.

It uses a very magical method, as shown in the figure below, to solve the problem of calculating time cost.


som vist ovenfor, først erklærer vi en Chebyshev polynomial Polynomfunksjon. Basert på dette endrer vi g-funksjonen.

Vi vikler en funksjon inn i en polynomfunksjon. Betydningen er som følger.

Innpakning av en funksjon tilsvarer organisering av polynomer. For matematikkproblemet på videregående skole blir beregningen av polynomer mye lettere.

Basert på naturen til selve T-funksjonen, kan den avledes som følger.

Som ovenfor er beregningen sterkt forenklet.

Oppsummert, uavhengig av det matematiske beviset, er det vi må lære oss filteret.

GCN

GCN er den mest brukte og relativt enkle og intuitive.

Den matematiske avledningen bak GCN er som ovenfor, der:

  • Det behandler K i ChebNet som 1
  • Og gjorde mange tilnærminger for å forenkle
  • Og for å forfølge færre parametere, erklærer det forholdet mellom selvinnstilte parametereθ = θ 0 ′ = - θ 1 ′ theta = theta_0 '= - theta_1'
  • Og laget en renormalization trick


GCN oppsummerer det:

  • Legg til nabo-nodene, og legg deretter til forskyvningen
  • Deretter oppnås neste lag av nevrale nettverk gjennom en aktiveringsfunksjon.

Oppgaver, datasett og målestokk - Resultater


Det kan sees at GCN ikke er veldig bra. Men noen varianter er veldig sterke.




Antall lag har økt, og GCN har blitt dårligere.

Søknad til GCN

Det er bevist at jo flere lag med GCN er stablet, desto mer sannsynlig er det å være et problem:

@inproceedings{ Oono2020Graph, title={Graph Neural Networks Exponentially Lose Expressive Power for Node Classification}, author={Kenta Oono and Taiji Suzuki}, booktitle={International Conference on Learning Representations}, year={2020}, url={https://openreview.net/forum?id=S1ldO2EFPr} }

Hvordan løse dette problemet? Noen foreslo drop edge Metoder:

  • DropEdge: Towards Deep Graph Convolutional Networks on Node Classification

Grafgenerering




kort nevnt tre metoder for generering av graf.

Sammendrag