In dit artikel, mijn doel is om een uitleg te geven van wat pointer netwerken zijn, zoals gedefinieerd in het artikel “Pointer netwerken” (Dit is het artikel beschrijven pointers netwerk voor de eerste keer dat ik geloof), en waarom ze worden gebruikt. Dit werk wordt gedaan in het kader van mijn doctoraat op het gebied van Natural Language Processing (NLP).

ik schrijf dit soort notities echt voor mijn eigen begrip, maar ik hoop dat u kunt profiteren van het ook.

Ik adviseer eerst “Pointer Networks” van Oriol Vinyals, Meire Fortunato en Navdeep Jaitly te lezen, en dan hier terug te komen voor de uitleg die ik geef.

in het eerste deel van mijn toelichting geef ik een overzicht van de belangrijkste termen die in het document worden gebruikt.

in het tweede deel geef ik een samenvatting van het document.

als algemene regel, wanneer ik werk aan het leren van een wetenschappelijk artikel, de eerste stap die ik neem is het opschrijven van alle onbekende of dubbelzinnige termen die vaak worden gebruikt in het artikel of die belangrijk lijken voor het begrip ervan.

ik volg meestal deze eenvoudige stappen om een duidelijke definitie te vinden:

– met ctrl + f vind ik alle gevallen van de dubbelzinnige woorden in het papier dat ik lees. Met de context kan ik over het algemeen een definitie van het woord intuã teren.

– zoek het woord op het internet op met zorgvuldig gekozen trefwoorden

hieronder zijn enkele van de onduidelijke termen die ik vond in het artikel:

– combinatorische problemen:
een combinatorisch probleem bestaat uit het vinden, tussen een eindige verzameling van objecten, een die voldoet aan een reeks beperkingen.

– tokens:
in een NLP-context is een token een W die voldoet aan een verzameling van constraintsord of subword in een taal.
in dit artikel zijn tokens echter elementen van een Uitvoerreeks, die uit twee soorten kan bestaan: “speciale” tokens en gewone tokens.
> in het geval van” speciale ” tokens vertegenwoordigen zij het begin of het einde van de Uitvoerreeks.
> regelmatige tokens worden samengesteld uit de indices die worden gebruikt om onderscheid te maken tussen de verschillende elementen van een invoerreeks.

– uitvoerwoordenboek:
In deze context is een uitvoerwoordenboek een lijst van alle mogelijke waarden die een token kan aannemen.

voorbeelden van een reeks tokens en de bijbehorende invoerreeks, geëxtraheerd uit het artikel:

Cp1={⇒, (1, 2, 4), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1 = {P_1,. . . , P_5 } in de context van het probleem van de convexe romp (een van de 3 combinatorische problemen die in het artikel worden gepresenteerd).

” ⇒ ” en ” ⇐ “zijn” speciale ” tokens. Merk op hoe ze zowel aan het begin als aan het einde van onze Uitvoerreeks van tokens worden geplaatst.

“(1, 2, 4)” of “(1, 4, 5) ” zijn regelmatige tokens. Ze bestaan uit 3 indices die worden gebruikt om elementen van de invoerreeks te onderscheiden {P_1 , . . . , P_5 }.

merk op dat het volgende niet mogelijk is:

Cp1={⇒, (1, 2, 8), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1 = {P_1,. . . , P_5 } in de context van het convexe rompprobleem, omdat er geen P_8 in onze invoerreeks zit.

samenvatting van het artikel

na het artikel een eerste keer te hebben gelezen en de bovenstaande definities te hebben bekeken, begrijp ik het artikel als volgt::

de focus van dit artikel ligt op combinatorische problemen.
het doel van de auteur is om een model te bouwen dat in staat is een correcte Uitvoerreeks Cp te geven, gegeven een invoerreeks P van variabele grootte en een geassocieerd combinatorisch probleem.

een dergelijk model staat blijkbaar in contrast met een uitsluitend Recurrent Neural Network (RNN) gebaseerd model, waar het model alleen kan worden getraind en vervolgens kan worden gebruikt op inputs van dezelfde grootte.

nadat ik klaar ben met het opruimen van dubbelzinnige termen, lees ik meestal het artikel waaraan ik werk een tweede keer, om te beoordelen of mijn begrip correct of verkeerd is. Om dit te doen, schrijf ik vaak een kleine samenvatting van wat ik denk dat relevant is voor mijn begrip, voor elk deel dat de paper vormt.

inzichten uit de inleiding:

uit het artikel

in figuur 1 zien we een classic sequence to sequence RNN gebaseerd model naast een Ptr-Net (pointer network).
uit de figuur-beschrijving zien we dat het Ptr-net bestaat uit een codering RNN aan de ene kant en een genererend netwerk aan de andere kant, in tegenstelling tot het gebruik van twee RNNs voor het sequence to sequence model.

het genererende netwerk van het Ptr-Net lijkt bij elke stap een softmax-verdeling over de ingangen te produceren, de zogenaamde “pointer”.

inzichten uit modellen:

in deze paragraaf zien we een overzicht van het sequence to sequence model, Het input-attention model en tenslotte het Ptr-Net model.

a / Seq-tot-seq-model:

we gaan ervan uit dat de lezer weet wat RNN ‘ s zijn en hoe ze worden gebruikt om een seq-naar-seq model te maken (zo niet, dan zou ik dit en/of dit aanbevelen).

auteurs definiëren de waarschijnlijkheid van een outputvolgorde van tokens, als het product van de voorwaardelijke waarschijnlijkheid van de tokens die onze output vormen gegeven de tokens ervoor, evenals de inputvolgorde.

waarschijnlijkheid van een output sequentie

als onze output Cp bestaat uit 3 tokens, dan hebben we m(P)=3. Het Theta symbool vertegenwoordigt de parameters van het model dat wordt gebruikt om deze waarschijnlijkheid te vinden.

hier modelleert het RNN dat wordt gebruikt om de Uitvoerreeks te genereren (de zogenaamde decoder) de voorwaardelijke waarschijnlijkheden die verbonden zijn aan de mogelijke tokens, op elk uitvoertijdstip, gegeven de tokens gegenereerd op eerdere uitvoertijden.

tijdens de training wordt het model getraind om de juiste uitgangssequentie te genereren en wordt de trainingsset dienovereenkomstig gebruikt.

Training de parameters van het model

na het trainen van het model gebruiken we het om oplossingen te vinden voor soortgelijke problemen als die in de trainingsset. Dit is het zogenaamde inferentieproces.

tijdens de gevolgtrekking (wanneer het model wordt gebruikt om een antwoord voor het combinatorische probleem te voorspellen), wordt een bundelzoekprocedure gebruikt. Het modelleert de best mogelijke output sequence.

belangrijkste take-away:

het sequence to sequence model werkt niet bij gebruik op inputs van verschillende grootte. Er moet één apart model zijn voor elke” n ” / invoergrootte.

mijn beste gok is dat dit te wijten is aan de grootte van de uitvoer die wordt ingesteld bij initialisatie van het model.
nauwkeuriger, de decodering RNN genereert verborgen toestanden op elke uitvoertijd. Deze verborgen toestanden worden op twee manieren gebruikt:
– als input voor de RNN bij de volgende stap
– om de output/token

te berekenen wordt dit tweede gebruik van de verborgen toestand gekenmerkt door het dot-product met een verzameling gewichten W(S) die de verborgen toestand converteert naar een vector van vaste grootte, typisch de grootte van het uitvoerwoordenboek.

het berekenen van de output in tijdstap t

omdat de grootte van W (S) is vastgesteld bij initialisatie, maakt het het onmogelijk voor het model om te trainen op problemen met verschillende output woordenboekgroottes.

B / inhoud gebaseerde input aandacht:

het begrip aandacht komt tot uiting in dit document met de formule:

Content based input attention

waarbij e staat voor encoder hidden states, d voor Decoder hidden states, W1, W2 en v zijn parameters van het attention network.

ik ben al bekend met het concept van aandacht uit het bestuderen van transformator gebaseerde modellen zoals BERT, die gebruik maakt van de “Scaled Dot-Product aandacht”.

hoewel het aandachtsmechanisme hier niet hetzelfde is, is het algemene doel van het gebruik van aandacht identiek. Het doel is om zich te concentreren op subs-delen van de invoerreeks. Om dat te doen, zetten auteurs een genormaliseerde distributie over de uitgangen of verborgen toestanden van de encoder samen met de verborgen toestanden van de decoder.

dit staat in contrast met een standaard sequence to sequence model, waar de encoder alleen de laatste verborgen status geeft als invoer voor de decoder.

belangrijkste afhaalmaaltijden:

het aandachtsmechanisme maakt het mogelijk betere prestaties te verkrijgen in vergelijking met het reguliere sequence to sequence model. Het probleem van inputs van verschillende grootte is echter niet opgelost.

C / Ptr-Net:

het idee achter Ptr-Net is eigenlijk vrij eenvoudig. Het gebruikt de output van het aandachtsmechanisme om de voorwaardelijke waarschijnlijkheid van elk token te modelleren.
met andere woorden, de stap waarbij de verborgen toestand wordt vermenigvuldigd met een reeks gewichten W(S) wordt gewoon overgeslagen.

PTR-Net modeling probabilities of an output sequence of tokens

Main take-away:

het gebruik van dit model maakt het mogelijk om input van verschillende grootte te trainen en af te leiden, met behoud van een goed prestatieniveau.

de rest van het artikel laat zien hoe goed de verschillende modellen hierboven presteren op drie verschillende combinatorische problemen.

Slotgedachten:

wetenschappelijke artikelen zijn een zeer goede bron van informatie, maar ik heb uit ervaring ontdekt dat ze soms een beetje ingewikkeld zijn. Veel informatie moet via een beperkte hoeveelheid tekst worden doorgegeven. Als gevolg hiervan kunnen auteurs niet alles uitleggen, ze gaan ervan uit dat de lezer basiskennis heeft over het onderwerp van belang.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.