Subsymbolische Zinsontleding: Het vormen van Gedistribueerde Representaties in Modulaire Systemen

Boris van Schooten
24 november 1995

A.I.: Symbolisch versus Subsymbolisch

Een belangrijk idee achter subsymbolische systemen is dat ze automatisch impliciete regelmaat uit voorbeelden kunnen halen. De functies die zij zo leren zijn echter alleen combinatorische transformaties; er zijn namelijk geen trainingsmethoden om automatisch sequentiële berekeningen 'uit te vinden' slechts door het suggereren van wat voor resultaat de berekening moet geven. Sommige bewerkingen kunnen echter niet in één combinatorische transformatie gedaan worden, want dan leiden zij tot een combinatorische explosie van het aantal neuronen. Dit is een duidelijk nadeel ten opzichte van symbolische systemen.

Een ander belangrijk idee is, dat neurale netwerken kunnen werken met gedistribueerde representaties [Hinton&McClelland&Rumelhart 86]. De 'concepten' die gerepresenteerd worden, zijn (in tegenstelling tot symbolische representaties) niet direct te localiseren; in plaats daarvan is deze informatie gelijkmatig verdeeld over de gehele representatie. Hinton&McClelland&Rumelhart beargumenteren, dat juist gedistribueerde representaties, op een niveau onder het symbolische niveau, als het ware 'van nature', geschikt zijn voor associatieve-geheugenfuncties, reconstructie van gegevens in plaats van letterlijke opslag, en categorisatie. Echter, zoals in [Fodor & Pylyshyn 88] beargumenteerd wordt, zijn zij uit zichzelf niet in staat tot compositionele structuur in hun representaties, zoals men dat in symbolische systemen neerkomt. Compositionele structuur komt neer op de volgende twee dingen: de mogelijkheid tot representaties van willekeurige grootte, en de systematische (recursieve) wijze waarmee ze opgebouwd/ontbonden (compositie en decompositie) kunnen worden.

Deze twee nadelen ten opzichte van symbolische systemen komen beide neer op hetzelfde: een fundamenteel gebrek aan structuur, als het ware in de tijd en in de ruimte. Bewerkingen worden in één tijdstap uitgevoerd, en de representaties hebben een beperkte, vaststaande grootte. Ze zijn gerelateerd aan elkaar: werken met compositionele structuur vergt complexe sequentiële bewerkingen, en andersom.

Sindsdien zijn er verschillende principes bedacht om aan deze problemen tegemoet te komen. In de natuurlijke-taalverwerking, wat duidelijk een ingewikkeld probleem is, dat ook nog nauw verweven is met ideeën omtrent cognitie, ziet men deze het duidelijkst terug.

Modellen voor de beschrijving van natuurlijke taal

Een centrale vraag is hoe men de betekenis van een zin modelleert, ofwel hoe 'betekenis' zich uit. De originele symbolische opvatting is, dat de betekenis van een zin alleen afhangt van de compositionele structuur, ofwel dat bij het analyseren van de zin volgens compositorische regels de betekenis, in compositorische zin, naar voren komt. Echter, de problemen bij deze aanpak zijn o.a. de vele uitzonderingen op de regel,het niet kunnen lezen van onsyntactische zinnen en ambiguïteiten van woorden en zinsstructuren.

De extreemste subsymbolische opvatting zou zijn, dat men geen expliciete informatie in het systeem inbrengt omtrent de betekenis van de taal; het systeem leert de betekenis door blootgesteld te worden aan taal. Taal bestaat uit de verzameling verwachtingspatronen die het systeem heeft gevormd in de omgang. Natuurlijke taal is echter een ingewikkeld probleem, en men is dus min of meer genoodzaakt om voor een deel symbolische theorieën expliciet in de architectuur onder te brengen.

Deze theorieën gaan over het algemeen uit van een opdeling in syntaxis en semantiek. De oppervlaktestructuur van taal (de syntax) heeft een recursieve opbouw, analoog aan het idee van compositionele structuur. Uit deze structuur komt voor een deel de betekenis van de zin naar voren. Men houdt voor de beschrijving van de syntax over het algemeen (de bekende) conventies uit de taalkunde aan.

Men ziet dit het eenduidigst terug in bijzinnen (embedded clauses). Er zijn grofweg twee soorten bijzinnen te onderscheiden, namelijk 'center embeddings' en 'tail embeddings' (uit [Miikkulainen 93]):
Merk op, dat bijvoorbeeld zin (7) niet het soort zin is die mensen gebruiken, en eigenlijk vrij belachelijk overkomt. Dit is in principe aan te voeren tegen het bestaan van recursieve structuur van willekeurige grootte in taalgebruik.

1 The girl saw the boy.

2 The girl saw the boy, who chased the cat.
3 The girl saw the boy, who chased the cat, who saw the girl.
4 The girl saw the boy, who chased the cat, who saw the girl, who liked the dog.
etc...
5 The girl, who the dog bit, saw the boy.
6 The girl, who the dog, who the boy liked, bit, saw the boy.
7 The girl, who the dog, who the boy, who the cat saw, liked, bit, saw the boy.
etc...
Het verwijswoordje 'who' verwijst steeds terug naar het woord, waar de bijzin naast staat. Bij ingewikkeldere zinnen vormen verwijswoorden een probleem; er zijn ook verwijswoorden die 'impliciet' terugverwijzen, zoals bijvoorbeeld 'zij', 'hij' en 'het'. Er komt dan niet duidelijk uit de syntactische structuur naar voren waar ze naar verwijzen. Verder kan de syntactische betekenis van een woord ambigu zijn, bijvoorbeeld 'slaap' kan zowel werkwoord als zelfstandig naamwoord zijn. Het probleem is dan vaak, dat beide mogelijke betekenissen een syntactisch correcte zin opleveren.
Bijvoorbeeld:
Deze ambiguïteit kan men oplossen door te kijken naar de mogelijke 'intuïtieve' betekenis van de zin (de semantiek). In het voorbeeld ziet men al, dat één van de twee mogelijke afleidingen steeds onzin is.

Veel gebruikt voor het beschrijven van semantiek is case-role-assignment. Het leent zich ook goed voor subsymbolische systemen: één van de eerste neurale netwerken voor natuurlijke-taalverwerking [McClelland&Kawamoto 86] gebruikte deze aanpak al. Case-role-assignment komt neer op het correct kunnen verbinden van de concepten, die overeenkomen met de woorden, aan rollen die zij eventueel kunnen vervullen in mogelijke rolpatronen. Zo'n rolpatroon gaat er meestal vanuit dat er sprake is van acties (overeenkomend met werkwoorden), die uitgevoerd worden door personen of dingen (zelfstandige naamwoorden), en die betrekking hebben op personen of dingen (zelfstandige naamwoorden). Het is eigenlijk een formele, eenduidige taal, die wat opbouw betreft zo direct mogelijk correspondeert met de natuurlijke taal die het beschrijft.
Bijvoorbeeld (uit [McClelland&Kawamoto 86]):

Dit voorbeeld laat zien hoe hiermee ambiguïteiten opgelost kunnen worden: de betekekenis van het achtervoegsel 'with the ...' hoort óf bij broke, óf bij window, terwijl beide zinnen dezelfde syntactische opbouw hebben. Zin 3 laat zien, dat 'broke' ook als éénplaatsig werkwoord gebruikt kan worden, waarbij in feite de betekenis van het woord anders is: Het 'syntactische' onderwerp van 'broke' speelt steeds een andere rol. Het concept broke waarop het afgebeeld wordt heeft hier echter een striktere betekenis, zodat desambiguatie plaatsvindt.

Meerlagige Perceptrons & Backpropagation

De basisarchitectuur die hoofdzakelijk gebruikt wordt voor natuurlijke-taalverwerking is het meerlagige perceptron-netwerk. Deze bestaat uit een invoerlaag, verborgen lagen, en een uitvoerlaag van perceptrons. Elke perceptron ontvangt de signalen uit de vorige laag, die dan via gewogen synapsen en een activatiefunctie weer een signaal genereert. De activatiefunctie moet niet-lineair zijn, omdat anders een meerlagig netwerk altijd herschreven kan worden tot een tweelagig netwerk. Met drie lagen (dus twee lagen synapsen) kan, mits de activatiefunctie niet-lineair is en er maar genoeg neuronen in de verborgen laag zitten, theoretisch elke functie willekeurig dicht benaderd worden.

Het idee is, om het neurale netwerk een afbeeldingsfunctie te kunnen leren aan de hand van slechts voorbeelden van invoer/uitvoer-paren (de trainingsverzameling). Hoe het systeem interpoleert voor nieuwe invoer (dit wordt meestal getest aan de hand van een aparte testverzameling) wordt generalisatiegedrag genoemd. Men zou willen, dat het systeem niet gewoon letterlijk de voorbeelden gaat onthouden, maar iets van de regelmaat van het probleem gaat gebruiken om het te vergemakkelijken, en zo ook interessante generalisaties kan maken.

Het trainen gaat over het algemeen met backpropagation: Men vergelijkt hiertoe de geproduceerde uitvoer (het uitvoerpatroon) met de bedoelde uitvoer (het doelpatroon). Men bepaalt waar de fout vandaan komt door te kijken welke synapsveranderingen de fout het meest zouden verminderen, deze evenredig hieraan te veranderen, en vervolgens ook het neuronactivatiedeel van de foutbijdrage (het 'foutsignaal') terug te volgen naar de teruggelegen lagen. Als de synapsverandering in kleine stapjes gaat (de stapgrootte noemt men leerconstante of learning rate), dan wordt de fout gegarandeerd verminderd. Deze garandeert echter niet dat de fout altijd nul wordt.

De interne lagen neuronen geven het systeem in feite de vrijheid om eigen interne representaties te vormen voor het berekenen van de functie. Voor eenvoudige problemen blijkt backpropagation inderdaad in staat tot het vormen van 'slimme' representaties [Rumelhart&Hinton&Williams 86]. Theoretisch kan er willekeurig veel informatie in de interne representatie opgeslagen worden (afgezien van de numerieke onnauwkeurigheid), omdat de signalen continue waardes aanemen. Echter, dan is het systeem zeer ruisgevoelig.

Het idee om deze interne representaties naar buiten te brengen, en weer aan het systeem te voeren (recirculatie van interne representaties of moving target learning) is interessant. Er zijn nu ook sequentiële en recursieve bewerkingen mogelijk, waarbij de representaties in principe geoptimaliseerd worden om zowel te representeren als gerepresenteerd te worden. Er kunnen stabiliteitsproblemen bij het trainen optreden, maar in de praktijk blijkt dit geen probleem.

Meerlagige Perceptrons en recirculatie van representaties

FGREP: Forming Global Representations with Extended Backpropagation

Voor subsymbolische natuurlijke-taalverwerking heeft men over het algemeen één of ander manier nodig on woorden te representeren als neuronactivatiepatronen aan de invoerlaag. Er bestaat een methode om deze representaties tijdens het trainingsproces zelf te vormen, genaamd FGREP [Miikulainen&Dyer 89]. Het idee is, om uiteindelijk deze representaties globaal te gebruiken, d.w.z. zowel als invoer als als uitvoerrepresentaties, en door meerdere subsystemen. Het wordt bijvoorbeeld gebruikt in CLAUSES (zie verderop).

De FGREP-methode: Men begint met random representaties. Het foutsignaal van de invoerneuronen, dat normaal niet nodig is omdat er geen synapsen deze neuronen binnenkomen, wordt nu gebruikt om de representatie van het invoerpatroon te veranderen, en wel lineair met het foutsignaal. Men gebruikt clipping om de getalswaardes binnen de perken (tussen 0 en 1) te houden. Men gebruikt voor FGREP meestal een aparte, kleine leerconstante om stabiliteit te garanderen.

FGREP is uitgebreid getest op het oplossen van een case-role assignment van eenvoudige drie- of vierwoordszinnen waarvan elk van de woorden afgebeeld kan worden op één van vijf mogelijke case-roles [Miikulainen&Dyer 91].
Bijvoorbeeld:

Syntax:    Subject Verb      Object          With
(The)      ball    hit (the) girl (with the) dog

Case-Roles:Agent   Act       Patient   Instrument  Modifier
           -       HIT       GIRL      BALL        DOG
Deze representatie van case-roles, die bestaat uit een vast aantal vakjes, die wel of niet ingevuld worden, wordt ook wel case-role vector (CRV) genoemd. Dit is handig af te beelden op neuronen, waarbij elk vakje een groep neuronen voorstelt. Merk hierbij het gebrek aan structuur op: voor elke mogelijke rolvervulling heeft men een vakje nodig, of deze nu gebruikt wordt of niet.

De invoerlaag bestaat uit vier groepen neuronen die elk een FGREP-code van een woord doorgeven; de uitvoerlaag bestaat uit vijf (even grote) groepen die de concepten voorstellen. De representaties van de woorden zijn gelijk aan die van de corresponderende concepten. De trainingsset bevat alleen semantisch betekenisvolle zinnen, en het neurale netwerk zal gebruik gaan maken van deze semantische regelmaat om de associatie optimaal uit te voeren.

Er vormen zich inderdaad semantische categorieën in de FGREP-representaties, ofwel bijvoorbeeld 'menselijke wezens', 'gebruiksvoorwerpen' en 'dieren' hebben op elkaar gelijkende representaties gevormd. De representatie van een woord stelt in feite het verwachtingspatroon voor die bij het woord hoort. De generalisatiemogelijkheden liggen nu hierin: een nieuwe zin lijkt al automatisch op een al bekende zin omdat de mogelijke manieren waarop een woord gebruikt kan worden bij de representatie in zit.

Echter, op elkaar gelijkende woordrepresentaties kunnen op een bepaald moment niet meer van elkaar onderscheiden worden. De fout gaat wel naar 0, maar een lage fout zegt niets over dat 'synonieme' woorden en concepten door de war beginnen te raken. Dit is een nadeel van FGREP: in principe kan het op deze manier een probleem 'omzeilen' in plaats van het op te lossen. In het extreemste geval worden alle woord/conceptrepresentaties gelijk aan 0, zodat elke zin een fout van 0 geeft. Dit laatste blijkt in de praktijk echter geen probleem.

Een oplossing hiervoor is om een deel van de representatie (het ID-gedeelte) niet door FGREP te beïnvoeden, zodat woorden altijd voor een deel een unieke code hebben. Echter, het systeem moet het ID-veld letterlijk doorsluizen omdat het niet 'slim' gecodeerd is. Dit blijkt een 'bottleneck' tijdens het trainen te zijn.

Een ander probleem is, dat woorden met meerdere syntactische of semantische betekenissen maar één representatie hebben.

RAAM: Recursive Auto Associative Memory

Het RAAM [Pollack 90] is geïntroduceerd als een manier om neurale netwerken te kunnen laten werken met recursieve structuren, zoals bomen en stapels, en deze te coderen in vaste-lengte representaties.

[Van Gelder 90] heeft beargumenteerd dat het principe om compositionele structuur op te slaan in gedistribueerde representaties van vaste lengte meer is dan slechts een neurale implementatie van een symbolische methode. [Chalmers 92] werkt dit idee concreter uit, en laat zien, dat een ander backpropagation-netwerk getraind kan worden om andere dan strikt compositorische (hij noemt dit 'holistische') bewerkingen op de door het RAAM gevormde representaties kan uitvoeren. De structuur die in de representatie zit kan, in tegenstelling tot symbolische systemen, door het andere backpropagation-netwerk als het ware 'als geheel' overzien worden.


De training van het RAAM. De blokken stellen de lagen neuronen voor, de paren pijlen (volledige) synapsverbindingen tussen de lagen.

Het RAAM wordt getraind op auto-associatie, ofwel met de invoer en het doelpatroon gelijk aan elkaar. Het idee erachter is, dat de interne laag, omdat deze minder neuronen bevat dan de te leren patronen, een gecomprimeerde interne representatie moet vormen om de patronen te coderen. Bij het RAAM worden nu de gevormde interne representaties zelf weer aan het systeem gevoerd om nogmaals autoassociatie op uit te voeren, en dit willekeurig vaak herhaald. Men kan het beste incrementeel trainen, d.w.z. men voegt de interne representaties pas toe aan de trainingsverzameling als ze beginnen te differentiëren.

Zo wordt het systeem gedwongen om de informatie van (vaste maximale valentie) boomstructuren in een vaste-lengte representatie op te slaan. Het bovenste deel (invoerlaag/verborgen laag) kan gebruikt worden voor boomcompositie, het onderste deel (verborgen laag/uitvoerlaag) voor decompositie. Merk op, dat een RAAM, om te functioneren, gebruik moet maken van een externe stapel, en een subsysteem die bij de decompositie bepaalt wanneer de bladeren van de boom bereikt zijn, of nog een extra decodeerstap nodig is.

Als men zeker wil weten, dat het RAAM daadwerkelijk boomcompositie en -decompositie leert behorende bij zekere productieregels, moet men trainen met alle mogelijke toegestane (welgevormde) boomcombinaties. Echter, dit is ondoenlijk. Het systeem blijkt echter tot op zekere hoogte in staat tot generalisatie; het kan voor een deel nieuwe, en zelfs diepere, welgevormde bomen coderen en terugdecoderen, maar produceert voor een deel ook niet-welgevormde bomen. Het heeft soms de neiging om een nieuwe boom terug te coderen naar ééntje uit de voorbeeldenverzameling die er erg op lijkt.

SRN: Simple Recurrent Network

Het SRN, geïntroduceerd in [Elman 90], is opgezet om perceptrons te kunnen trainen op het voorspellen en representeren van sequenties van willekeurige lengte. Het vormt interne representaties van (delen van) sequenties slechts door ze te proberen te voorspellen, zonder dat verteld wordt wat deze sequenties 'te betekenen' hebben. Het SRN is een vaak gebruikt basissysteem voor het lezen van zinnen.

Het SRN (Simple Recurrent Network), en het in de tijd uitgevouwen SRN. De dubbele pijlen tussen de lagen zijn synapsen, de enkele pijlen het aanvoeren/kopiëren van representaties.

Tijdens de training wordt een willekeurig lange sequentie van patronen één voor één aangeboden, waarbij het invoerpatroon op tijdstip t+1 steeds gelijk is aan het doelpatroon op tijdstip t. Het systeem moet dus steeds het volgende patroon voorspellen, en om verder dan één stap terug te kunnen kijken, krijgt het systeem terugkoppeling van zijn verborgen laag van de vorige tijdstap.

Het systeem is o.a. getest op natuurlijke-taalzinnen, die letter-voor-letter aangeboden worden. De opeenvolgende letters van woorden werden steeds beter voorspeld als er meer letters van het betreffende woord gelezen waren. Het systeem heeft dus in zijn interne laag de steeds terugkomende woorden gerepresenteerd.

Het interessante zijn nu deze representaties die het systeem gebruikt om de predictie uit te voeren. Na training met (semantisch correcte) zinnen, die woord-voor-woord aangeboden waren, bleek de interne laag na het lezen van elk woord een representatie te bevatten die deze woorden bleek te categoriseren in wat intuïtief ongeveer overeenkomt met semantische categorieën.

De beperking van hoe ingewikkeld de structuren kunnen worden, blijkt overeen te komen met die van een finite-state automaton. Als incrementeel getraind wordt, blijkt het ook recursieve (contextvrije) structuren aan te kunnen, mits de recursie niet te diep is en het aantal symbolen in het binnenste deel van de recursie niet te groot. Het systeem 'vergeet' na teveel stappen als het ware de recursieve context.

Subsymbolische Systemen voor Natuurlijke-taalverwerking

Dit is geen volledig ovezicht, maar er is geprobeerd om een paar van de belangrijkste principes te behandelen, waarbij de nadruk ligt op weinig interne architectuur, en veel vrijheid voor het neurale netwerk om het probleem zelf op te lossen, zodat de systemen niet op slechts neurale implementaties van symbolische methoden neerkomen.

Het Sentence Gestalt-model [St.John&McClelland 90]

Het SG-model is opgezet als model om ambigue woordbetekenissen en -types van eenvoudige zinnen te desambigueren. Het vormt tijdens het lezen een gedistribueerde interne representatie van de gehele zin (de Sentence Gestalt). Het systeem zal een SG coderen in termen van de (semantische) verwachtingspatronen van de voorbeeldzinnen, en het blijkt in staat om met behulp van de geleerde verwachtingspatronen de zin te desambigueren.

Links: de trainingsconfiguratie. Rechtsboven: het netwerk leest een zin in, en heeft aan het einde van de zin een SG gevormd. Rechtsonder: de SG kan 'ondervraagd' worden omtrent de betekenis van de zin.

Het systeem bestaat uit een 5-lagige variant op het SRN. Echter, het systeem wordt getraind om case-roles aan te wijzen in plaats van de gewoonlijke predictie. Het systeem moet, na het lezen van elk woord van een zin, steeds voor elke toepasselijke Role (Patient, Agent, Action) een Filler (het bijbehorende niet-ambigue woord) kunnen aanwijzen, en andersom. De invoerwoorden worden in ambigue vorm aangeleverd. Deze zijn gecodeerd met semantic feature encoding. Dit betekent, dat zij 'slim' gecodeerd zijn aan de hand van de intuïtieve betekenis van elk woord. Er is bijvoorbeeld een neuron die 'menselijk/niet menselijk' aangeeft, of 'kind/volwassen'. Voor ambigue woorden neemt men het gemiddelde tussen de meerdere representaties.

Het opvragen gaat door middel van een 'probe', dat bestaat uit een groep neuronen, die voor een deel 'role'-neuronen bevat, en voor een deel 'filler'-neuronen. Door een specifiek patroon via één van de twee delen aanbieden, moet het systeem aan de uitvoer (die op dezelfde manier gecodeerd is) het bijbehorende andere deel reproduceren. Dit is een vrij efficiënte manier om met veel verschillende roles te kunnen werken. Merk op, dat men ook aan het systeem over geheel ontoepasselijke fillers, ofwel woorden die helemaal niet in de zin voorkwamen, kan vragen.

De voordelen van deze aanpak zijn het kunnen werken met de zin 'als geheel', zodat de zin nog open staat voor alle mogelijke interpretaties tot het helemaal gelezen is. Het opvragen van de role/fillers door middel van de probe is een efficiënte manier om veel role/fillers in een kleine representatie te krijgen. Het systeem generaliseert redelijk goed, maar de training is erg langzaam, en het kan alleen enkelvoudige representaties aan.

CLAUSES [Miikkulainen 90,91]

Dit systeem is opgezet als een manier om complexe zinnen (zinnen met embedded clauses) te kunnen verwerken. Een zin wordt vertaald naar een verzameling case-role vectors (ofwel CRV's; zie het stukje over FGREP). De verwijzingen van de verwijswoorden ('who') worden bepaald door in de CRV in de rol van het verwijswoord het concept in te vullen waar het woord naar wijst. Zo krijgt men uit een samengestelde zin een verzameling losstaande CRV's, die de informatie van de zin beschrijven. Merk op, dat verwijzingen nu alleen impliciet terug te vinden zijn in het overeenkomen van concepten. Het idee erachter is, dat de structuur een eigenschap van de taal is, en niet noodzakelijkerwijs van de informatie, die erin beschreven wordt. De taal gebruikt alleen structuur om op efficiënte wijze de informatie naar buiten door te geven; intern gaat alles parallel. CLAUSES is een voorbeeld van hoe neurale netwerken modulair opgebouwd kunnen worden om een ingewikkelde taak uit te voeren, en van de werking van de FGREP-methode.

Linksboven de act parser; linksonder de sentence parser; rechtsboven de sentence generator; rechtsonder de act generator. De dikke pijlen geven conditionele uitvoer/doorvoer van representaties aan. De sentence parser leest pas de uitvoer van de act parser als er een komma gelezen wordt. Als de hele zin gelezen is (punt), dan wordt de representatie van de hele zin naar de generator doorgevoerd. De sentence generator geeft daarna steeds één zinsfragment door aan de act generator. Als de act generator een komma heeft gegenereerd, geeft de sentence generator het volgende fragment door.

Het systeem is opgedeeld in 4 modules, die gebaseerd zijn op het SRN. Het verschil is echter, dat de parsermodules getraind worden om stationaire uitvoer bij sequentiële invoer te geven (sequential input network), en bij de generatormodules de invoer stationair blijft, terwijl ze sequentiële uitvoer moet genereren (sequential output network). Het systeem wordt getraind op eenvoudige zinnen met center embeddings en tail embeddings van (in dit geval) maximaal 3 niveaus diep. Het generatordeel wordt getraind om zinnen te genereren, die qua structuur niet overeen hoeven te komen met de ingevoerde zinnen, maar die wel dezelfde CRV's beschrijven.

De woorden en concepten worden bepaald tijdens het trainen met FGREP. Elk van de modules wordt apart getraind, d.w.z. wel tegelijk, maar alsof de eraan gekoppelde modules al correcte uitvoer geven. Het idee van FGREP is, om een systeem bestaande uit losse modules toch te kunnen integreren, doordat ze met gezamelijke representaties kunnen werken, die door elk van de modules gevormd kan worden, en als het ware aspecten van de taak 'als geheel' representeren. De woorden vormen de verwachtingspatronen die het systeem als geheel heeft gevormd. In de FGREP-representaties die zich gevormd hadden, was moeilijk regelmaat te zien. Ze bleven wel allemaal verschillend, zodat er geen woorden door de war raakten.

Dit systeem kan in principe complexe zinnen verwerken, zolang de recursiediepte beperkt is. Echter, het bleek niet te generaliseren naar nieuwe zinsstructuren. De sentence parser kan alleen eerder geziene sequenties van fragmenten combineren, omdat de SRN in feite met recursieve structuren moet kunnen werken om dit wel goed te kunnen doen.

SPEC [Miikkulainen 93]

SPEC is ontworpen om aan de onvolkomenheden van CLAUSES tegemoet te komen. Het gebruikt een expliciet stapel/segmentersysteem die de bewerkingen met recursieve structuren van het SRN-systeem overneemt. SPEC maakt in principe gebruik van FGREP, maar dit is niet essentieel.


De testconfiguratie van SPEC. De precieze datadoorvoer van de stack is niet aangegeven, omdat de functie van de stack in het geheel vrij voor de hand liggend is. De stack zelf is een eenvoudige variant op een RAAM. De drie condities PUSH, POP en OUTPUT worden direct door de segmenter aangegeven door drie daarvoor aangewezen neuronen (het control-gedeelte).

Het systeem wordt getraind op embedded clauses, en is gebaseerd rond het recurrent input network, analoog aan CLAUSES. Als een zinsfragment onderbroken wordt bij het binnenkomen van een bijzin genereert de segmenter een PUSH-signaal, dat de parser-context van het tot dan toe gelezen zinsfragment op de stapel zet, en deze vervangt door een context, zoals deze eruit zou zien alsof het zinsdeel helemaal aan het begin van de zin gestaan zou hebben. Dit principe om de parser-context steeds te 'resetten' maakt de taak van de parser een stuk gemakkelijker: het hoeft nu alleen zinsfragmenten te bewerken alsof ze aan het begin van de zin voorkwamen, zodat rommel, die nog in de hidden-context stond, niet in de weg staat. Aan het einde van een bijzin genereert de segmenter een POP, die de oude context herstelt. De OUTPUT wordt gegenereerd als een zinsfragment geheel gelezen is, waarna het CRV toegevoegd wordt aan de verzameling uitgevoerde CRV's en weer door het systeem vergeten kan worden.

Dit systeem is inderdaad in staat tot generalisatie naar vrij willekeurige nieuwe zinsstructuren. Echter, ambigue structuren, die men pas kan desambigueren aan het einde van de zin, kan het systeem niet aan. Verder kan informatie in bijzinnen niet gebruikt worden bij het verwerken van hoofdzinnen. De informatie van de bijzinnen gaat, nadat zij eenmaal gelezen zijn, in het systeem geheel verloren. Het systeem gaat dus uit van strikt contextvrije structuur in syntax én de semantiek.

XERIC [Berg 92]

XERIC is opgezet, om neurale netwerken met behulp van de syntactische structuur natuurlijke taal te kunnen verwerken. XERIC is gebaseerd op de X-bar template, die een algemene vorm van productieregels voorstelt, waarmee men natuurlijke taal kan beschrijven. Deze algemene structuur geeft de mogelijkheid, om alle mogelijke syntactische subbomen op een 'natuurlijke' manier in een vast patroon van groepen neuronen weer te geven. Het systeem van boomcompositie is analoog aan het RAAM.

De X-bar template en een voorbeeld van een instantiatie van de X-bar template.


Links: de trainingsconfiguratie, met de uitgevouwen onderste twee lagen. Rechts: de testconfiguratie. Rechtsboven: het SRN-gedeelte leest een zin in. Rechtsonder: De zin wordt gedecodeerd tot er alleen maar terminaalsymbolen overblijven.

Bij het trainen wordt de gehele boom van de zin uitgevouwen, door middel van kopiëren van de synapsgewichten van laag 4 en laag 5, zodat er aan de uitvoer alleen de woordrepresentaties zijn. Nu kan met backpropagation de fout helemaal naar de bovenste laag doorgevoerd worden. De synapsverandering van laag 4 en laag 5 is het gemiddelde van alle berekende veranderingen. De woorden van het systeem worden in ambigue vorm aangeleverd, zoals in het SG-model, en het systeem wordt getraind om deze te desambigueren. Elke keer als het systeem een woord inleest, wordt backpropagation uitgevoerd voor het deel van de boomstructuur, dat tot dan toe van toepasssing is.

Dit systeem kan ambigue woorden desambigueren, en generaliseert ook naar nieuwe zinsstructuren, maar niet zo goed als SPEC. Dit komt waarschijnlijk, omdat de RAAM-methode, welke de basis is van het systeem, voor grotere voorbeelden niet zo goed naar nieuwe structuren generaliseert. SPEC gebruikt deze alleen als stapel, zodat het in dat geval alleen stapelstructuren hoeft te leren.

Conclusies

Het zou interessant zijn, om een systeem zoals SPEC, welke het beste generaliseert en willekeurig veel CRV's kan uitvoeren tijdens het ontleden, met andere recursieve structuren dan alleen bijzinnen te laten werken. Een probleem wat hier echter optreedt is wat voor rol de CRV's gaan spelen: het aantal mogelijke rolvervullingen neemt dan gestadig toe. Verder kan bij ingewikkelde structuren de verzameling uitgevoerde CRV's groot zijn, en het kan dan wel eens noodzakelijk blijken om toch structuur in de betekenisrepresentaties in te brengen, omdat het uitzoeken van de CRV's dan weer een probleem wordt. Het instantiëren van de meerdere versies van een woord in dezelfde zin (zoals bijv. 'de man ziet de man') is bijvoorbeeld een probleem. Men kan daarvoor steeds een random ID-veld (zoals bij FGREP+ID) gebruiken, dat letterlijk doorgesluist moet worden naar de juiste instantiatie, maar dit bleek al een 'bottleneck' te zijn tijdens het trainen.

Dit probleem heeft XERIC niet: deze heeft al structuur in de representaties. Echter, de enige structuur is de syntactische structuur. Betekenissen die niet expliciet uit de syntactische structuur op te maken zijn, bijvoorbeeld verwijzingen zoals 'hij' en 'het' die zelfs over de zinsgrens kunnen gaan, kunnen dus niet weergegeven worden.

Referenties

[Berg 92] Berg, G. (1992), A Connectionist Parser with Recursive Sentence Structure and Lexical Disambiguation, Proceedings of the Tenth National Conference on Artificial Intelligence, blz. 32-37

[Chalmers 92] Chalmers, D.J. (1992), Syntactic Transformations on Distributed Representations, Connectionist Natural Language Processing: Readings from Connection Science, blz. 46-55

[Elman 90] Elman, J.L. (1990), Finding Structure in Time, Cognitive Science 14, blz. 179-221

[Fodor & Pylyshyn 88] Fodor, J.A. & Pylyshyn, Z.W. (1988), Connectionism and Cognitive Architecture: A Critical Analysis, Cognition 28, blz. 3-71

[Van Gelder 90] Gelder, T. van, Compositionality: a Connectionist Variation on a Classical Theme, Cognitive Science 14, blz. 355-384

[Hinton&McClelland&Rumelhart 86] Hinton, G.E. & McClelland, J.L. & Rumelhart, D.E. (1986), Distributed Representations, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations, blz. 77-109

[Lee&Flowers&Dyer] Lee, G. & Flowers, M. & Dyer, M. (1992), Learning Distributed Representations of Conceptual Knowledge and their Application to Script-based Story Processing, Connectionist Natural Language Processing: Readings from Connection Science, blz. 215-247

[McClelland&Kawamoto 86] McClelland, J.L. & Kawamoto, A.H. (1986), Mechanisms of Sentence Processing: Assigning Roles to Constituents of Sentences, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 2: Psychological and Biological Models, blz. 272-325

[Miikkulainen 90] Miikkulainen, R. (1990), A PDP Architecture for Processing Sentences with Relative Clauses, Proceedings of the 13th International Conference on Computational Linguistics (COLING-90)

[Miikkulainen 93] Miikkulainen, R. (1993), Subsymbolic Case-role analysis of Sentences with Embedded Clauses, Technical Report AI93-202

[Miikkulainen 91] Miikkulainen, R. (1991), Parsing Embedded Clauses with Simple Recurrent Networks, Working Notes of the AAAI Spring Symposium in Connectionist Natural Language Processing

[Miikulainen&Dyer 89] Miikkulainen, R. & Dyer, M.G. (1989), Encoding Input/Output representations in connectionist cognitive systems, Proceedings of the 1988 Connectionist Summer School, blz. 347-356

[Miikulainen&Dyer 91] Miikkulainen, R. & Dyer, M.G. (1991), Natural Language Processing with Modular Neural Networks and Distributed Lexicon, Cognitive Science 15, blz. 343-399

[Pollack 90] Pollack, J.B. (1990), Recursive Distributed Representations, Artificial Intelligence 46, blz. 77-105

[Rumelhart&Hinton&Williams 86] Rumelhart, D.E. & Hinton, G.E. & Williams, R.J. (1986), Learning Internal Representations by Error Propagation, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations, blz. 319-362

[Sharkey&Sharkey 92] Sharkey, N.E. & Sharkey, A.J.C. (1992), A Modular Design for Connectionist Parsing, Twente Workshop on Language Technology 3: Connectionism and Natural Language Processing, blz. 87-96

[St.John&McClelland 90] St.John, M.F. & McClelland, J.L. (1990), Learning and Applying Contextual Constraints in Sentence Comprehension, Artificial Intelligence 46, blz. 217-257