Google Translate wordt onbegrijpelijker (en beter)
Marc van Oostendorp*
Het is al een tijdje geleden dat Google Translate in het nieuws was. Een paar jaar geleden hoorde je regelmatig over deze online-vertaalmachine: steeds weer werden nieuwe talen toegevoegd aan het systeem, en je kreeg ook het gevoel dat vertalingen inderdaad steeds beter werden. Maar op zeker moment stagneerde het: er kwamen nauwelijks talen bij, en de kwaliteit van de vertalingen tussen bestaande taalparen werd ook niet meer verbeterd.
Moduletje
Maar deze week – toevallig (?) vlak voor International Translation Day (30 september) – kwam Google met een blogpost en een wetenschappelijk artikel waarin een nieuwe doorbraak werd aangekondigd: een geheel nieuwe manier van vertalen, die ‘Neural Machine Translation’ genoemd wordt, en die gebruikmaakt van technieken die de laatste jaren populair zijn geworden in de wereld van de kunstmatige intelligentie. De computer die een tijdje geleden de wereldkampioen go versloeg (wat tot voor kort ondenkbaar was, want go is het ingewikkeldste van alle bordspelen) maakt ook gebruik van dergelijke techieken.
De term neural in de nieuwe naam komt natuurlijk voort uit een metafoor. Zoals de meest ingewikkelde gedachten in ons hoofd volgens sommige neurowetenschappers uiteindelijk voortkomen uit patronen die ontstaan tussen hoeveelheden kleine hersencellen, neuronen, die een eenvoudig signaaltje sturen naar andere neuronen als ze zelf een eenvoudig signaaltje krijgen, zo kun je een computerprogramma maken dat bestaat uit honderdduizenden heel kleine, heel simpele moduletjes die niet veel meer doen dan even oplichten als ze voldoende worden aangestuurd door andere moduletjes – en met dat oplichten weer andere moduletjes doen oplichten.
Gaandeweg groeien dan de verbindingen: als je neuron A aanraakt, begint neuron B ook al op te lichten, omdat A en B in het verleden meestal samenwerkten en de verbinding tussen die twee daardoor is gegroeid.
Op die wijze leert de computer dus patronen herkennen. Je geeft hem een positie in het go-spel die hij nooit eerder heeft gezien, maar hij herkent wel dat de linkerbenedenhoek eruitziet als ooit in spelletje X, en de rechterbovenhoek overeenkomsten vertoont met spelletjes Y en Z, en kan dan zijn conclusies trekken door die bekende spelbeelden te combineren.
Belangrijk hierbij is dat de computer min of meer zichzelf leert wat de patronen zijn. De computerprogrammeur creëert al die kleine computerneuronen en hun verbindingen, en voert de computer dan duizenden (of tienduizenden, of honderdduizenden) eerdere spelletjes go, op basis waarvan het computerprogramma ‘getraind’ wordt. Met taal kun je ook zo te werk gaan, door het programma Chinese en Engelse teksten te voeren.
Instructies
Deze manier van werken staat tegenover traditionele computerprogramma’s, die vooral instructies uitvoeren: als je dít bepaalde Chinese woord ziet, vervang je het door precies dát ene Engelse woord. Het oude Google Translate werkt min of meer op die manier. De instructies zijn heel algemeen, en gebruiken een heleboel door de computer ter plekke uitgevoerde statistiek ('als ik dit ene bepaalde Engelse woord zie, is dát Chinese woord de waarschijnlijkste vertaling').
Neurale netwerken zijn als techniek allang bekend, maar voor ingewikkelde problemen als het spelen van go of het vertalen van teksten konden ze nog niet worden ingezet. Je hebt er gigantische netwerken voor nodig die je met héél veel gegevens moet voeden om ze een beetje te trainen, en dan werken ze vervolgens ook nog eens langzamer dan traditionele programma’s die een lijst met instructies afwerken.
Maar kennelijk zijn er op dat vlak de afgelopen jaren de nodige barrières geslecht. Misschien zijn de computers sneller, of de algoritmes om zo’n neuraal netwerk te bouwen efficiënter.
Demonstratie
In hun artikel leggen de taalingenieurs van Google uit dat ze ook nog wel wat technieken hebben bedacht waardoor de netwerken beter met taal kunnen omgaan. Een probleem met alle op statistiek gebaseerde software is: wat doe je met woorden die maar heel zelden voorkomen en dus als het ware onder de statistische radar vallen? Google hakt zo’n woord (zeg treitervlogger) voortaan op in stukjes (zeg treiter en vlogger), die elk afzonderlijk vaker voorkomen dan de samenstelling als geheel, en die het programma wél herkent, om dan te proberen in de andere taal ook weer de juiste manier te vinden om die begrippen aan elkaar te verbinden.
De auteurs van artikel zelf zijn ervan overtuigd dat deze nieuwe techniek een verbetering van 60% geeft op de resultaten van de oude Google. Ik kan het helaas niet controleren, want het systeem werkt vooralsnog alleen voor vertalingen tussen het Chinees en het Engels en die eerste taal beheers ik niet. Wel vond ik elders op internet deze demonstratie van de universiteit van Montréal die werkt tussen het Engels en het Frans, en die werkt behoorlijk goed, zij het een beetje langzaam en alleen voor bepaalde gebieden van de maatschappij (de internationale politiek).
Hulpmiddel
Er is ook reden om een beetje verontrust te zijn over dit succes. Een van de doelen van de computertaalkunde is altijd geweest: begrijpen hoe menselijke taal werkt. Door die na te bouwen, zou je beter inzicht krijgen in de manier waarop de mens het doet.
Maar dat doel moet je met dit soort toepassingen eigenlijk verlaten: de computer leert zichzelf het systeem en legt op basis daarvan dus een netwerk van verbindingen aan tussen alle interne ‘neuronen’, dat wel werkt maar zo groots en ingewikkeld is dat we het net zomin begrijpen als onze eigen hersens. We hebben dan dadelijk een veel beter hulpmiddel – maar we snappen er nog steeds niks van.
* Dit artikel staat in een iets andere versie ook op Neerlandistiek.nl.