Om berekeningen te maken hebben computers getallen nodig. Neurale machinevertaling (NMT) gebruikt dus geen woorden maar getallen. Maar hoe zet je woorden om in getallen?

Woorden in cijfers veranderen, het klinkt als science fiction maar het is hoe NMT werkt. In onze vorige blogpost hadden we het over de encoder-decoderarchitectuur van NMT.  Het neurale netwerk van de encoder leest en codeert een bronzin in een “thought vector” of “betekenisvector”, een opeenvolging van getallen die de betekenis van de zin weergeeft. Een decoder voert vervolgens een vertaling van de gecodeerde vector uit.

Van woorden naar getallen

Er zijn verschillende manieren om woorden als getallen voor te stellen. Één daarvan is de one-hot representation. Dit wordt wat complex maar we proberen het zo simpel mogelijk voor te stellen. Bij one-hot encoding geef je elk woord van een bepaalde taal een nummer op basis van “0” en “1”. Op die manier creëer je een vector. Er kan maar één “1” in de vector voorkomen (“one-hot” betekent één “1”)  

De woorden “kat” en “hond” kunnen zo bijvoorbeeld als volgt voorgesteld worden:

Kat: [0, 1, 0 .............0]

Hond: [1, 0, 0 ............. ]

De lengte van de vector hangt af van het totaal aantal woorden in de taal.

NMT gebruikt deze one-hot encoding enkel als startpunt. De reden? one-hot encoding toont geen gelijkenissen of relaties tussen woorden, bijvoorbeeld dat “kat” in verband staat met “katten”, of dat zowel katten als honden dieren zijn. Elk woord bevindt zich even ver van een ander qua betekenis.

Als je de woorden “kat”, “hond” en “blauw” vergelijkt, dan staan die even ver van elkaar, ook al hebben “kat” en “hond” enkele gelijkenissen.

 

 

Word embedding

Hoe kunnen woorden dan op een meer beknopte en betekenisvolle manier voorgesteld worden als getallen? NMT start vanuit de one-hot representation. De technologie schrijft een set van getallen (of vector) toe aan elk woord maar houdt rekening met de eigenschappen van woorden en de relaties tussen woorden. De vector bevat bijgevolg niet enkel “0” en “1” maar decimalen daartussenin. Op die manier worden ook de eigenschappen van en relaties tussen woorden aangeduid.

“Kat” en “hond” zouden bijvoorbeeld zo voorgesteld kunnen worden:  

Kat: [0.33, 0.44, ...........]

Hond: [0.33, 0.45, ...........]

De vector begint gelijkaardig omdat “kat” en “hond” eigenschappen delen. Het zijn, bijvoorbeeld, allebei dieren. De vectors voor “kat” en “blauw” zullen verder van elkaar liggen.

Visueel ziet het er zo uit:

Het spectaculaire hier is dat het neurale netwerk de gelijkenissen tussen de woorden zelf zal berekenen op basis van training data en technieken zoals distributional semantics. Dit is een techniek die woorden karakteriseert op basis van de omringende woorden (hun context). Om dit te doen heeft een neuraal netwerk big data nodig: een grote set data, zoals bijvoorbeeld een groot vertaalgeheugen. 

Thought vectors

Een zin kan gezien worden als een pad van woorden die op hun beurt gereduceerd kunnen worden tot een set van getallen, of thought vector. Dit is waar het echt interessant wordt. Thought vectors zorgen ervoor dat er rekening gehouden wordt met de context van de volledige zin. Waar Statistical Machine Translation (SMT) een zin opdeelt in stukken en stuk per stuk vertaalt (bijvoorbeeld per 3 woorden, onafhankelijk van de context), vertaalt NMT een zin in zijn context. Een homoniem in het Nederlands (bijvoorbeeld "bank") zal bijvoorbeeld correct vertaald worden dankzij de thought vector die de context herkent.

Hieronder vind je een visuele voorstelling van hoe een neuraal netwerk werkt. Een recurrent neural network (RNN) leest een bronzin, de thought vector herkent vervolgens de eigenschappen, betekenis en context van deze bronzin. Daarna decodeert een ander neuraal netwerk de zin en produceert de vertaling. Recurrent neural networks worden gebruikt voor een serie van zinnen of signalen. Gewone neurale netwerken zijn statischer, zonder tijdsinterval.

 

Evolutie

Rapporten over de kwaliteitsverbetering van NMT tegenover SMT variëren van talencombinatie tot talencombinatie. Het is echter duidelijk dat bij NMT de nabewerkingstijd drastisch zal verminderen. Fouten in woordvolgorde en lexicale en morfologische fouten komen immers minder voor. Ondanks het enthousiasme rond NMT is de technologie nog altijd niet perfect. In onze volgende blogpost gaan we na hoe NMT verder evolueert.