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.
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.
1. Time flies like an arrow Goed: Noun Verb Prep. Det Noun Fout: Adj. Noun Verb Det Noun 2. Fruit flies like a banana Fout: Noun Verb Prep. Det Noun Goed: Adj. Noun Verb Det Noun
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]):
1 The boy broke the window with the hammer. Case-roles: broke AGENT boy broke PATIENT window broke INSTRUMENT hammer 2 The rock broke the window with the curtain. Case-roles: broke PATIENT window broke INSTRUMENT rock window MODIFIER curtain 3 The window broke. Case-roles: broke PATIENT windowDit 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.
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.
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.
[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.

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.

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.

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.

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.

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.


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.
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.
[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