Pozornost ni čisto vse, kar potrebujete

Med delom na MacGraphu, nevronski mreži, ki odgovarja na vprašanja s pomočjo grafov znanja, sem naletel na težavo: kako ugotoviti, če na seznamu ni nekaj.

V tem članku vam bomo pokazali našo rešitev, signal ostrenja in prikazali, kako deluje zanesljivo v različnih različnih zbirkah podatkov in arhitekturah.

Ozadje

V tradicionalnem programiranju je enostavno ugotoviti, če nekaj ni na seznamu: zaženite zanko nad elementi, in če pridete do konca, ne da bi ga našli, potem ni tam. Vendar nevronske mreže niso ravno tako preproste.

Nevronske mreže so sestavljene iz različnih funkcij, tako da jih je mogoče trenirati z gradientnim spuščanjem. Operaterji za enakost za zanke in, če pogoji, standardni deli tradicionalnega programiranja, ki se uporabljajo za reševanje te naloge, ne delujejo tako dobro v nevronskih omrežjih:

  • Operater za enakost je v bistvu stopnična funkcija, ki ima ničelni naklon skoraj povsod (in zato prekine širjenje hrbtne širine gradienta)
  • Če pogoji običajno uporabljajo boolov signal za preklapljanje vej, kar je pogosto izhod problematične koračne funkcije
  • Čeprav so zanke na GPU-ju neučinkovite in včasih celo nekoristne, saj pogosto knjižnice nevronskih omrežij zahtevajo, da imajo vsi podatki enake dimenzije (npr. Izvedba TensorFlow na statično definiranem grafu tenzorja).

Priljubljena tehnika nevronske mreže za delo s seznami elementov (npr. Prevajanje stavkov, ki jih obravnavajo kot sezname besed), je namenjena "pozornosti". To je funkcija, pri kateri se naučeno »poizvedovanje« o tem, kaj išče omrežje, primerja z vsakim elementom na seznamu in se prikaže tehtana vsota elementov, podobnih poizvedbi:

V zgornjem primeru je dr.

  1. Poizvedba je izdelana s pikami z vsakim elementom na seznamu za izračun "ocene". To se izvede vzporedno za vse predmete
  2. Rezultati se nato prenesejo preko softmaxa, da jih pretvorijo v seznam, ki sešteva do 1.0. Rezultati se nato lahko uporabijo kot porazdelitev verjetnosti.
  3. Na koncu se izračuna ponderirana vsota predmetov, pri čemer se vsak predmet tehta glede na rezultat

Pozornost je bila zelo uspešna in je osnova trenutnih modelov prevajanja v najboljšem razredu. Mehanizem je deloval še posebej dobro, ker:

  • Izvedba je hitra in preprosta
  • V primerjavi s ponavljajočo se nevronsko mrežo (npr. LSTM) se lahko veliko bolj nanaša na pretekle vrednosti v vhodnem zaporedju. LSTM se mora naučiti zaporednega hranjenja preteklih vrednosti skupaj v enem samem notranjem stanju v več iteracijah RNN, medtem ko lahko pozornost prikliče pretekle vrednosti zaporedja v kateri koli točki v enem prehodu.
  • Številne naloge je mogoče rešiti s preurejanjem in združevanjem elementov seznama, da se oblikuje nov seznam (npr. Pozorni modeli so bili pomembni sestavni deli v številnih trenutnih modelih prevajanja, odgovarjanja na vprašanja in sklepanja v najboljšem razredu)

Naš problem

Kljub vsestranskosti in uspešnosti pozornosti ima pomanjkanje, ki je prizadeto pri našem delu na vprašanju grafov odgovoril: pozornost nam ne pove, ali je izdelek na seznamu.

To se je najprej zgodilo, ko smo poskušali odgovoriti na vprašanja, kot so „Ali obstaja postaja, imenovana London Bridge?“ In „Ali je postaja Trafalgar Square blizu meje postaje Waterloo?“. Naše tabele vozlišč in robov grafov vsebujejo te podatke, ki jih je treba odvzeti, vendar sama pozornost ni uspela uspešno določiti obstoja elementa.

To se zgodi, ker pozornost vrne tehtano vsoto seznama. Če se poizvedba ujema (npr. Z visoko oceno) proti enemu elementu na seznamu, bo izhod skoraj taka vrednost. Če poizvedba ni ustrezala nobenemu elementu, se vrne vsota vseh elementov na seznamu. Glede na rezultat pozornosti preostala mreža ne more enostavno razlikovati med tema dvema situacijama.

Naša rešitev

Preprosta rešitev, ki jo predlagamo, je prikaz skalarnega agregata rezultatov poizvedb za nerazširjene elemente (npr. Pred uporabo softmaxa). Ta signal bo nizek, če noben element ni podoben poizvedbi, in visok, če je veliko elementov.

V praksi je to zelo učinkovito (resnično edina zanesljiva rešitev mnogih, ki smo jih preizkusili) pri reševanju vprašanj o obstoju. Odslej bomo ta signal označevali kot "fokus". Tukaj je prikaz mreže pozornosti, ki smo jo pokazali prej, z dodanim signalom ostrenja:

Pozor s signalom ostrenja z uporabo seštevanja za seštevanje neobdelanih rezultatov

Poskusna namestitev

Ko smo ugotovili, da je signal ožičenja bistven za uspeh MacGrapha pri nekaterih nalogah, smo ta koncept preizkusili na številnih naborih podatkov in vzorčnih arhitekturah.

Nevronska mreža eksperimenta

Sestavili smo mrežo, ki sprejme seznam elementov in želeni element ("poizvedba") in odda, ali je bil ta element na seznamu. Omrežje sprejme vhodne podatke, izvede pozornost (po izbiri z našim signalom ostrenja), pretvori izhode skozi par preostalih slojev in nato ustvari dvojiško porazdelitev¹ o tem, ali je bil predmet najden.

Izguba omrežja se izračuna z uporabo navzkrižne entropije softmaxa in usposobljeno z uporabo Adamovega optimizatorja. Vsaka različica omrežja ima svojo idealno stopnjo učenja, določeno pred usposabljanjem z uporabo iskalnika stopnje učenja.

V naših poskusih mrežo spreminjamo po:

  • Vključitev / odstranjevanje signala ostrenja iz koraka pozornosti (spodaj »Uporabi fokus«)
  • Spreminjanje funkcije ocene pozornosti
  • Spreminjanje funkcije združevanja fokusnega signala
  • Spreminjanje funkcije aktiviranja prvega preostalega transformacijskega sloja (spodaj "Aktivacija izhoda")

Nato uporabimo te različice omrežij za nekaj različnih nizov podatkov, navedenih v naslednjem razdelku.

Tu so vse omrežne konfiguracije, ki smo jih preizkusili:

Signal ostrenja je bistvenega pomena za zanesljivo omrežje, saj dosega> 99% natančnost v celotnem naboru podatkov in omrežnih konfiguracij.

Koda naših poskusov je v našem GitHubu odprtokodna.

Nabori podatkov

Vsak nabor podatkov je niz primerov, vsak primer vsebuje vhodne funkcije Seznam elementov, želeni element in osnovna resnična izhodna vrednost, Postavka je na seznamu. Element je N dimenzijski vektor števil s plavajočo vejico.

Vsak nabor podatkov je bil izdelan tako, da je možna 100-odstotna natančnost.

Testirali smo na treh različnih naborih podatkov, od katerih ima vsak različen vir elementov:

  • Ortogonalni enosmerni vektorji dolžine 12
  • Veliko vročih vektorjev (npr. Naključni nizi 1,0s in 0,0s) dolžine 12
  • Word2vec vektorji dolžine 300

Vsak nabor podatkov ima uravnotežene razrede odgovorov (tj. Enako število pravilnih in napačnih odgovorov)

Eno vroči in številni vroči vektorji so bili naključno ustvarjeni. Vsak primer usposabljanja ima seznam dveh postavk. Vsak nabor podatkov ima 5000 predmetov usposabljanja. Tu je eden od primerov usposabljanja:

Primer treninga v ortogonalnem enem vročem naboru podatkov. (Vektorji so prikazani kot dolžina 3 za vizualno preprostost)

Za naš nabor podatkov word2vec smo v Google News uporabili vnaprej izračunane vdelave word2vec, ki jih lahko prenesete tukaj.

Nabor podatkov word2vec vsebuje sezname elementov do dolžine 77, od katerih vsak predstavlja zmešan, naključno izbran stavek iz članka Wikipedije s 300 vrsticami. Vsak želeni element je naključno izbran vektor word2vec iz besed v članku.

Rezultati

Signal ostrenja je bil pomemben za zanesljivo določitev obstoja predmeta:

  • Brez signala ostrenja ni bila dosežena nobena konfiguracija omrežja> 56% natančnost za vse skupine podatkov
  • Pri ortogonalnih vektorjih podatkovnih podatkov ni doseženo omrežje> 80% natančnost brez signala ostrenja
  • Omrežja z doseženim fokusnim signalom> 98% natančnost v vseh naborih in konfiguracijah, omrežja brez samo fokusnega signala> 98% v 4 od 9 konfiguracij

Upoštevati je treba, da je omrežje brez fokusnega signala v nekaterih konfiguracijah in naborih podatkov doseglo> 98% natančnost.

Zaključek

V tem članku smo predstavili nov koncept za pozorne mreže, "signal ostrenja". Pokazali smo, da je močan mehanizem za zaznavanje obstoja elementov na seznamu, ki je pomemben postopek za strojno sklepanje in odgovore na vprašanja. Signal ostrenja je uspešno zaznal obstoj elementa v vseh testiranih naborih podatkov in omrežnih konfiguracijah.

Upamo, da to delo pomaga drugim skupinam pri reševanju izzivov obstoja postavk in doda več jasnosti pri preučevanju arhitekture.

Oktavianovo raziskovanje

Naloga Octaviana je razviti sisteme z zmožnostjo sklepanja na človeški ravni. Verjamemo, da so podatki grafov in poglobljeno učenje ključni sestavni del, da to omogočimo. Če vas zanima, če želite izvedeti več o naši raziskavi ali prispevanju, si oglejte spletno stran ali se obrnite.

Zahvala

Rad bi se zahvalil Davidu Macku za prvotno idejo in pomoč pri velikem urejanju tega članka. Rad bi se tudi zahvalil Andrewu Jeffersonu, ker je napisal večino kodeksa in me vodil skozi to pisanje. Na koncu bi se rad zahvalil Octavianu, ker mi je dal priložnost delati na tem projektu.

Opombe

  1. Plasti izhodnih transformacij so bili kopirani iz MacGraph-a in bi jih bilo mogoče poenostaviti. Sigmoidna (σ) plast v tem modelu vsekakor ni potrebna, saj omejuje obseg vhodov na softmax in zato preprečuje, da bi model lahko treniral do ničelne izgube (čeprav še vedno lahko doseže 100-odstotno natančnost, saj je izhod argmax. " ed do vročega vektorja in primerjamo z oznako). Ne verjamemo, da ta zapletenost ne vpliva na noben od rezultatov, vendar smo bili prepričani, da jih moramo razkriti.