Sequence models: het geheim achter Google Translate

Yoeri Nijs  | Deel:  
Artikel-plaatje

Beeld: Google.

Sequence models worden met name gebruikt voor het herkennen van geluidsfragmenten, het omschrijven van videofragmenten, dus wat er op dat moment op het beeld is te zien, en voor het vertalen van teksten. Onder andere Google gebruikt sequence models voor Google Translate.

Sequence models worden vaak in paren ingezet. Bij Google Translate is één sequence model belast met het coderen van de taal die de gebruiker heeft ingevoerd. Stel dat we iets willen vertalen van het Nederlands naar het Engels, dan gaat het hierbij om het Nederlands.

Vertalen naar machinetaal
De sequence model van het Nederlands vertaalt de Nederlandse woorden in stukjes code. Dit noemen ze met een duur woord encoden. In de praktijk komt het er op neer dat een stukje software een woord ‘vertaalt’ naar cijfertjes, zodat een computer het woord kan begrijpen.

Dit kan er zo uitzien:

Nederlands woord Het gecodeerde woord van de computer
Zee 1 0 0 0 0 0
Zout 0 1 0 0 0 0
Is 0 0 1 0 0 0
Een 0 0 0 1 0 0
Groot 0 0 0 0 1 0
Seizoen 0 0 0 0 0 1

Van machinetaal naar menselijke taal
De stukjes code worden doorgezet naar het andere sequence model, dat verantwoordelijk is voor de vertaling in het Engels. Die probeert die brokjes code weer te vertalen naar begrijpelijke, Engelse woorden. Dit heet met een ander duur woord decoden.

Het gecodeerde woord van de computer Het woord in het Engels
1 0 0 0 0 0 Sea
0 1 0 0 0 0 Salt
0 0 1 0 0 0 Is
0 0 0 1 0 0 A
0 0 0 0 1 0 Big
0 0 0 0 0 1 Season

Leren verbeteren
In het begin snapt de decoder, dus het stukje software dat het Nederlands in het Engels vertaalt, niet zo veel van al die eentjes en nulletjes. Waarschijnlijk zullen de eerste vertalingen dan ook niet zo goed zijn.

De software wordt echter steeds beter, doordat hij van zichzelf leert. Dit kan bijvoorbeeld het geval zijn als iemand in Google Translate aangeeft dat een specifieke vertaling beter bij een woord past dan een andere. Google gebruikt hiervoor zogenoemde ‘recurrent neural networks’, maar er zijn verschillende vormen.

Hoe software van zichzelf leert kun je hier zien.

Pro-tip: ben je programmeur en wil je meer weten over sequence models? Bekijk dan eens dit filmpje van Google. Daarin gebruiken ze sequence models in combinatie met TensorFlow.



Wil je deelnemen aan dit gesprek? Log in of meld je aan.