Een geschiedenis van machinevertaling van de Koude Oorlog tot diep leren

Foto door Ant Rozetsky op Unsplash

Ik open Google Translate twee keer zo vaak als Facebook, en de onmiddellijke vertaling van de prijskaartjes is voor mij geen cyberpunk meer. Dat is wat we realiteit noemen. Het is moeilijk voor te stellen dat dit het resultaat is van een honderdjarig gevecht om de algoritmen van machinevertaling te bouwen en dat er gedurende de helft van die periode geen zichtbaar succes is geweest.

De precieze ontwikkelingen die ik in dit artikel zal bespreken, hebben de basis gelegd voor alle moderne taalverwerkingssystemen - van zoekmachines tot spraakgestuurde magnetrons. Ik heb het vandaag over de evolutie en de structuur van online vertalen.

De vertaalmachine van P. P. Troyanskii (afbeelding gemaakt op basis van beschrijvingen. Helaas geen foto's meer)

In het begin

Het verhaal begint in 1933. Sovjetwetenschapper Peter Troyanskii presenteerde 'de machine voor het selecteren en afdrukken van woorden bij het vertalen van de ene taal naar de andere' aan de Academie van Wetenschappen van de USSR. De uitvinding was supereenvoudig - het had kaarten in vier verschillende talen, een typemachine en een ouderwetse filmcamera.

De operator nam het eerste woord uit de tekst, vond een bijbehorende kaart, nam een ​​foto en typte de morfologische kenmerken (zelfstandig naamwoord, meervoud, genitief) op de typemachine. De toetsen van de typemachine codeerden voor een van de functies. De tape en de film van de camera werden tegelijkertijd gebruikt en maakten een reeks frames met woorden en hun morfologie.

Ondanks dit alles, zoals vaak gebeurde in de USSR, werd de uitvinding als "nutteloos" beschouwd. Troyanskii stierf aan Stenocardia na 20 jaar geprobeerd te hebben zijn uitvinding te voltooien. Niemand ter wereld kende de machine totdat twee Sovjetwetenschappers zijn patenten vonden in 1956.

Het was aan het begin van de Koude Oorlog. Op 7 januari 1954, op het IBM-hoofdkantoor in New York, begon het Georgetown-IBM-experiment. De IBM 701-computer vertaalde voor het eerst in de geschiedenis automatisch 60 Russische zinnen in het Engels.

"Een meisje dat geen woord van de taal van de Sovjets begreep, sloeg de Russische berichten op IBM-kaarten uit. Het "brein" sloeg van zijn Engelse vertalingen op een automatische printer met een razendsnelle snelheid van twee en een halve lijn per seconde, "- meldde het persbericht van IBM.
IBM 701

De triomfantelijke koppen verborg echter een klein detail. Niemand vermeldde dat de vertaalde voorbeelden zorgvuldig werden geselecteerd en getest om elke dubbelzinnigheid uit te sluiten. Voor dagelijks gebruik was dat systeem niet beter dan een pocket taalgids. Desalniettemin werd dit soort wapenwedloop gelanceerd: Canada, Duitsland, Frankrijk en vooral Japan, deden allemaal mee aan de race voor machinevertaling.

De race om machinevertaling

De ijdele strijd om de machinevertaling te verbeteren duurde veertig jaar. In 1966 noemde het Amerikaanse ALPAC-comité in zijn beroemde rapport automatische vertaling duur, onnauwkeurig en weinig belovend. In plaats daarvan bevelen ze aan zich te concentreren op de ontwikkeling van woordenboeken, waardoor Amerikaanse onderzoekers bijna een decennium lang uit de race verdwenen.

Toch werd de basis voor moderne natuurlijke taalverwerking alleen gecreëerd door de wetenschappers en hun pogingen, onderzoek en ontwikkelingen. Alle zoekmachines, spamfilters en persoonlijke assistenten van vandaag zijn verschenen dankzij een aantal landen die elkaar bespioneren.

Op regels gebaseerde machinevertaling (RBMT)

De eerste ideeën over op regels gebaseerde machinevertaling verschenen in de jaren '70. De wetenschappers tuurden over het werk van de tolken en probeerden de enorm trage computers te dwingen die acties te herhalen. Deze systemen bestonden uit:

  • Tweetalig woordenboek (RU -> EN)
  • Een set taalregels voor elke taal (bijvoorbeeld zelfstandige naamwoorden die eindigen op bepaalde achtervoegsels zoals -heit, -keit, -ung zijn vrouwelijk)

Dat is het. Indien nodig kunnen systemen worden aangevuld met hacks, zoals namenlijsten, spellingcorrectoren en transliterators.

PROMPT en Systran zijn de bekendste voorbeelden van RBMT-systemen. Kijk maar eens naar de AliExpress om de zachte adem van deze gouden eeuw te voelen.

Maar zelfs zij hadden enkele nuances en ondersoorten.

Directe machinevertaling

Dit is het meest eenvoudige type machinevertaling. Het verdeelt de tekst in woorden, vertaalt ze, corrigeert de morfologie enigszins en harmoniseert de syntaxis om het geheel min of meer goed te laten klinken. Wanneer de zon ondergaat, schrijven getrainde taalkundigen de regels voor elk woord.

De uitvoer retourneert een soort vertaling. Meestal is het nogal waardeloos. Het lijkt erop dat de taalkundigen hun tijd voor niets hebben verspild.

Moderne systemen gebruiken deze aanpak helemaal niet, en moderne taalkundigen zijn dankbaar.

Op overdracht gebaseerde machinevertaling

In tegenstelling tot directe vertaling, bereiden we ons eerst voor door de grammaticale structuur van de zin te bepalen, zoals we op school hebben geleerd. Daarna manipuleren we achteraf hele constructies, geen woorden. Dit helpt om een ​​behoorlijke conversie van de woordvolgorde in de vertaling te krijgen. In theorie.

In de praktijk resulteerde het nog steeds in woordelijke vertaling en uitgeputte taalkundigen. Enerzijds bracht het vereenvoudigde algemene grammaticaregels. Maar anderzijds werd het gecompliceerder vanwege het toegenomen aantal woordconstructies in vergelijking met afzonderlijke woorden.

Interlinguale machinevertaling

Bij deze methode wordt de brontekst omgezet in de tussenliggende weergave en verenigd voor alle talen van de wereld (interlingua). Het is dezelfde interlingua waar Descartes van droomde: een metataal, die de universele regels volgt en de vertaling omzet in een eenvoudige "heen en weer" -taak. Vervolgens zou interlingua converteren naar elke doeltaal, en hier was de singulariteit!

Vanwege de conversie wordt Interlingua vaak verward met op overdracht gebaseerde systemen. Het verschil is de taalkundige regels die specifiek zijn voor elke taal en interlingua, en niet de taalparen. Dit betekent dat we een derde taal aan het interlingua-systeem kunnen toevoegen en tussen alle drie kunnen vertalen. We kunnen dit niet doen in op overdracht gebaseerde systemen.

Het ziet er perfect uit, maar in het echt niet. Het was buitengewoon moeilijk om zo'n universele interlingua te creëren - veel wetenschappers hebben er hun hele leven aan gewerkt. Ze zijn niet geslaagd, maar dankzij hen hebben we nu morfologische, syntactische en zelfs semantische representatieniveaus. Maar de enige betekenis-teksttheorie kost een fortuin!

Het idee van intermediaire taal komt terug. Laten we even wachten.

Zoals je kunt zien, zijn alle RBMT dom en angstaanjagend, en dat is de reden dat ze zelden worden gebruikt, behalve voor specifieke gevallen (zoals de vertaling van het weerbericht, enzovoort). Een van de voordelen van RBMT, vaak genoemd, zijn de morfologische nauwkeurigheid (het verwart de woorden niet), reproduceerbaarheid van resultaten (alle vertalers krijgen hetzelfde resultaat) en de mogelijkheid om het af te stemmen op het vakgebied (om economen of termen te onderwijzen) specifiek voor programmeurs bijvoorbeeld).

Zelfs als iemand erin slaagt om een ​​ideale RBMT te maken, en taalkundigen het met alle spellingsregels hebben verbeterd, zijn er altijd enkele uitzonderingen: alle onregelmatige werkwoorden in het Engels, scheidbare voorvoegsels in het Duits, achtervoegsels in het Russisch en situaties waarin mensen gewoon anders zeggen. Elke poging om rekening te houden met alle nuances zou miljoenen manuren verspillen.

En vergeet homoniemen niet. Hetzelfde woord kan een andere betekenis hebben in een andere context, wat leidt tot een verscheidenheid aan vertalingen. Hoeveel betekenissen heb je hier: ik zag een man op een heuvel met een telescoop?

Talen ontwikkelden zich niet op basis van een vaste set regels - een feit waar taalkundigen van houden. Ze werden veel meer beïnvloed door de geschiedenis van invasies in de afgelopen driehonderd jaar. Hoe kun je dat aan een machine verklaren?

Veertig jaar van de Koude Oorlog hielp niet bij het vinden van een afzonderlijke oplossing. RBMT was dood.

Op voorbeelden gebaseerde machinevertaling (EBMT)

Japan was vooral geïnteresseerd in vechten voor machinevertaling. Er was geen Koude Oorlog, maar er waren redenen: heel weinig mensen in het land kenden Engels. Het beloofde een behoorlijk probleem te worden op de komende globaliseringspartij. Dus de Japanners waren uiterst gemotiveerd om een ​​manier van machinevertaling te vinden.

Op regels gebaseerde Engels-Japanse vertaling is uiterst ingewikkeld. De taalstructuur is compleet anders, en bijna alle woorden moeten worden herschikt en nieuwe worden toegevoegd. In 1984 kwam Makoto Nagao van de Universiteit van Kyoto op het idee om kant-en-klare zinnen te gebruiken in plaats van herhaalde vertaling.

Laten we ons voorstellen dat we een eenvoudige zin moeten vertalen - "Ik ga naar de bioscoop." En laten we zeggen dat we al een soortgelijke zin hebben vertaald - "Ik ga naar het theater" - en we kunnen het woord vinden " cinema 'in het woordenboek.

Het enige dat we nodig hebben, is het verschil tussen de twee zinnen te achterhalen, het ontbrekende woord te vertalen en het dan niet te verknallen. Hoe meer voorbeelden we hebben, hoe beter de vertaling.

Ik maak zinnen op dezelfde manier in onbekende talen!

EBMT toonde wetenschappers het daglicht: het blijkt dat je de machine gewoon kunt voeden met bestaande vertalingen en geen jaren hoeft te besteden aan het opstellen van regels en uitzonderingen. Nog geen revolutie, maar duidelijk de eerste stap ernaar toe. De revolutionaire uitvinding van statistische vertaling zou over slechts vijf jaar gebeuren.

Statistische machinevertaling (SMT)

Begin 1990 werd in het IBM Research Center eerst een automatisch vertaalsysteem getoond dat niets wist van regels en taalkunde als geheel. Het analyseerde vergelijkbare teksten in twee talen en probeerde de patronen te begrijpen.

Het idee was eenvoudig maar mooi. Een identieke zin in twee talen opgesplitst in woorden, die naderhand werden geëvenaard. Deze operatie werd ongeveer 500 miljoen keer herhaald om bijvoorbeeld te tellen hoe vaak het woord "Das Haus" werd vertaald als "huis" versus "gebouw" versus "constructie", enzovoort.

Als het bronwoord meestal werd vertaald als "huis", gebruikte de machine dit. Merk op dat we geen regels hebben ingesteld of woordenboeken hebben gebruikt - alle conclusies zijn machinaal gedaan, op basis van statistieken en de logica dat "als mensen op die manier vertalen, ik ook." En zo ontstond een statistische vertaling.

De methode was veel efficiënter en nauwkeuriger dan alle voorgaande. En er waren geen taalkundigen nodig. Hoe meer teksten we gebruikten, des te beter de vertaling.

Google's statistische vertaling van binnenuit. Het toont niet alleen de kansen, maar telt ook de omgekeerde statistieken.

Er was nog één vraag over: hoe zou de machine het woord "Das Haus" en het woord "bouwen" correleren - en hoe zouden we weten dat dit de juiste vertalingen waren?

Het antwoord was dat we het niet zouden weten. In het begin ging de machine ervan uit dat het woord "Das Haus" evenveel correleerde met elk woord uit de vertaalde zin. Vervolgens, toen "Das Haus" in andere zinnen verscheen, zou het aantal correlaties met het "huis" toenemen. Dat is het 'woordalgoritme', een typische taak voor machinaal leren op universitair niveau.

De machine had miljoenen en miljoenen zinnen in twee talen nodig om de relevante statistieken voor elk woord te verzamelen. Hoe hebben we ze gekregen? Welnu, we hebben besloten om de samenvattingen van de vergaderingen van het Europees Parlement en de Veiligheidsraad van de Verenigde Naties te nemen - ze waren beschikbaar in de talen van alle lidstaten en konden nu worden gedownload bij UN Corpora en Europarl Corpora.

Word-gebaseerde SMT

In het begin werkten de eerste statistische vertaalsystemen door de zin in woorden op te splitsen, omdat deze benadering eenvoudig en logisch was. Het eerste statistische vertaalmodel van IBM heette Model één. Heel elegant, toch? Raad eens hoe ze de tweede noemden?

Model 1: "de zak met woorden"

Model één gebruikte een klassieke benadering - om in woorden te splitsen en statistieken te tellen. Er is geen rekening gehouden met de woordvolgorde. De enige truc was het vertalen van één woord in meerdere woorden. "Der Staubsauger" kan bijvoorbeeld veranderen in "Stofzuiger", maar dat betekende niet dat het andersom zou zijn.

Hier zijn enkele eenvoudige implementaties in Python: shawa / IBM-Model-1.

Model 2: rekening houden met de woordvolgorde in zinnen

Het gebrek aan kennis over de woordvolgorde van talen werd een probleem voor Model 1 en in sommige gevallen is het erg belangrijk.

Model 2 behandelde dat: het onthoudde de gebruikelijke plaats die het woord inneemt bij de uitvoerzin en schudde de woorden voor het meer natuurlijke geluid in de tussenstap. Het werd beter, maar ze waren nog steeds een beetje waardeloos.

Model 3: extra vruchtbaarheid

Nieuwe woorden verschenen vrij vaak in de vertaling, zoals artikelen in het Duits of het gebruik van "do" bij ontkenning in het Engels. “Ich will keine Persimonen” → “Ik wil geen dadelpruimen.” Om dit aan te pakken, zijn nog twee stappen toegevoegd aan Model 3.

  • De NULL-tokeninvoeging, als de machine de noodzaak van een nieuw woord overweegt
  • Het juiste grammaticale deeltje of woord kiezen voor elke token-woorduitlijning

Model 4: woorduitlijning

Model 2 overwoog de woorduitlijning, maar wist niets over de herschikking. Bijvoeglijke naamwoorden wisselen bijvoorbeeld vaak van plaats met het zelfstandig naamwoord en het maakt de uitvoer niet uit, hoe goed de volgorde ook werd onthouden. Daarom hield Model 4 rekening met de zogenaamde "relatieve volgorde" - het model leerde of twee woorden altijd van plaats wisselden.

Model 5: bugfixes

Niets nieuws hier. Model 5 kreeg wat meer parameters voor het leren en loste het probleem op met tegenstrijdige woordposities.

Ondanks hun revolutionaire aard, konden woordgebaseerde systemen nog steeds niet omgaan met gevallen, geslacht en homonymie. Elk woord werd volgens de machine op een enkele echte manier vertaald. Dergelijke systemen worden niet meer gebruikt, omdat ze zijn vervangen door de meer geavanceerde, op zinnen gebaseerde methoden.

Op zinnen gebaseerde SMT

Deze methode is gebaseerd op alle op woorden gebaseerde vertaalprincipes: statistieken, herschikken en lexicale hacks. Hoewel het voor het leren de tekst niet alleen in woorden maar ook in zinnen opsplitste. Dit waren de n-grammen, om precies te zijn, die een opeenvolgende reeks van n woorden op een rij waren.

Zo leerde de machine om stabiele woordcombinaties te vertalen, wat de nauwkeurigheid merkbaar verbeterde.

De truc was, de zinnen waren niet altijd eenvoudige syntaxconstructies, en de kwaliteit van de vertaling daalde aanzienlijk als iemand die op de hoogte was van de taalkunde en de structuur van de zinnen interfereerde. Frederick Jelinek, de pionier van de computerlinguïstiek, maakte er eens een grapje over: "Telkens wanneer ik een taalkundige ontsla, gaat de uitvoering van de spraakherkenner omhoog."

Naast het verbeteren van de nauwkeurigheid, bood de op zinnen gebaseerde vertaling meer opties bij het kiezen van de tweetalige teksten om te leren. Voor de op woorden gebaseerde vertaling was de exacte overeenkomst van de bronnen van cruciaal belang, waardoor elke literaire of gratis vertaling werd uitgesloten. De op zinnen gebaseerde vertaling kon zonder problemen van hen leren. Om de vertaling te verbeteren, begonnen onderzoekers daarvoor zelfs de nieuwswebsites in verschillende talen te parseren.

Vanaf 2006 begon iedereen deze aanpak te gebruiken. Google Translate, Yandex, Bing en andere spraakmakende online vertalers werkten tot 2016 op zinsbasis. Ieder van jullie kan zich waarschijnlijk de momenten herinneren waarop Google de zin foutloos vertaalde of resulteerde in complete onzin, toch? De onzin kwam van op zin gebaseerde functies.

De goede, oude, op regels gebaseerde aanpak leverde consequent een voorspelbaar maar vreselijk resultaat op. De statistische methoden waren verrassend en raadselachtig. Google Translate maakt van "driehonderd" zonder enige aarzeling "300". Dat wordt een statistische afwijking genoemd.

Op zinnen gebaseerde vertaling is zo populair geworden, dat wanneer u "statistische machinevertaling" hoort, dat eigenlijk bedoeld is. Tot 2016 loofden alle onderzoeken op zinnen gebaseerde vertaling als de nieuwste techniek. Destijds dacht niemand zelfs dat Google al aan het stoken was en zich klaar maakte om ons hele beeld van machinevertaling te veranderen.

Op syntaxis gebaseerde SMT

Deze methode moet ook kort worden vermeld. Vele jaren vóór de opkomst van neurale netwerken werd op syntaxis gebaseerde vertaling beschouwd als "de toekomst of vertaling", maar het idee kwam niet op gang.

De voorstanders van op syntaxis gebaseerde vertaling geloofden dat het mogelijk was om het samen te voegen met de op regels gebaseerde methode. Het is noodzakelijk om een ​​vrij nauwkeurige syntaxisanalyse van de zin te maken - om het onderwerp, het predicaat en andere delen van de zin te bepalen en vervolgens een zinsboom te bouwen. Met behulp hiervan leert de machine syntactische eenheden om te zetten tussen talen en vertaalt de rest door woorden of zinnen. Dat zou het probleem van woorduitlijning voor eens en voor altijd hebben opgelost.

Voorbeeld uit de Yamada en Knight [2001] en deze geweldige diavoorstelling.

Het probleem is dat de syntactische parsing vreselijk werkt, ondanks het feit dat we het een tijdje geleden als opgelost beschouwen (omdat we de kant-en-klare bibliotheken voor veel talen hebben). Ik probeerde syntactische bomen te gebruiken voor taken die iets gecompliceerder waren dan het onderwerp en het predicaat te ontleden. En elke keer gaf ik het op en gebruikte ik een andere methode.

Laat het me in de reacties weten als je het minstens één keer gebruikt.

Neurale machinevertaling (NMT)

Een heel grappig artikel over het gebruik van neurale netwerken bij machinevertaling werd gepubliceerd in 2014. Internet merkte het helemaal niet, behalve Google - ze haalden hun schoppen eruit en begonnen te graven. Twee jaar later, in november 2016, deed Google een baanbrekende aankondiging.

Het idee lag dicht bij het overbrengen van de stijl tussen foto's. Herinner je apps zoals Prisma, die foto's in de stijl van een beroemde kunstenaar hebben verbeterd? Er was geen magie. Het neurale netwerk werd geleerd de schilderijen van de kunstenaar te herkennen. Vervolgens werden de laatste lagen met de beslissing van het netwerk verwijderd. De resulterende gestileerde afbeelding was slechts de tussenliggende afbeelding die het netwerk kreeg. Dat is de fantasie van het netwerk en we vinden het mooi.

Als we de stijl naar de foto kunnen overbrengen, wat als we proberen een andere taal aan een brontekst op te leggen? De tekst zou die precieze 'stijl van de kunstenaar' zijn en we zouden proberen deze over te dragen met behoud van de essentie van de afbeelding (met andere woorden, de essentie van de tekst).

Stel je voor dat ik mijn hond probeer te beschrijven - gemiddelde grootte, scherpe neus, korte staart, altijd blaft. Als ik je deze set functies van de hond gaf, en als de beschrijving precies was, zou je het kunnen tekenen, ook al heb je het nog nooit gezien.

Stel je nu voor dat de brontekst de set specifieke functies is. Kort gezegd betekent het dat je het codeert en het andere neurale netwerk het terug naar de tekst laat decoderen, maar dan in een andere taal. De decoder kent alleen zijn taal. Het heeft geen idee van de oorsprong van de functies, maar het kan ze bijvoorbeeld uitdrukken in het Spaans. Als je de analogie voortzet, maakt het niet uit hoe je de hond tekent - met kleurpotloden, waterverf of je vinger. Je schildert het zoals je kunt.

Nogmaals - een neuraal netwerk kan de zin alleen coderen voor de specifieke set functies, en een ander kan ze alleen terug naar de tekst decoderen. Beide hebben geen idee van elkaar, en elk van hen kent alleen zijn eigen taal. Iets herinneren? Interlingua is terug. Ta-da.

De vraag is, hoe vinden we die functies? Het is duidelijk wanneer we het over de hond hebben, maar hoe om te gaan met de tekst? Dertig jaar geleden probeerden wetenschappers al de universele taalcode te maken en deze eindigde in een totale mislukking.

Niettemin hebben we nu een diepgaande kennis. En dat is zijn essentiële taak! Het primaire onderscheid tussen diep leren en klassieke neurale netwerken ligt precies in het vermogen om naar die specifieke kenmerken te zoeken, zonder enig idee van hun aard. Als het neurale netwerk groot genoeg is en er een paar duizend videokaarten bij de hand zijn, is het mogelijk om die functies ook in de tekst te vinden.

Theoretisch kunnen we de functies die we van de neurale netwerken hebben gekregen doorgeven aan de taalkundigen, zodat ze nieuwe, nieuwe horizonten kunnen openen.

De vraag is, welk type neuraal netwerk moet worden gebruikt voor codering en decodering? Convolutional Neural Networks (CNN) passen perfect bij afbeeldingen, omdat ze werken met onafhankelijke blokken pixels.

Maar er zijn geen onafhankelijke blokken in de tekst - elk woord hangt af van zijn omgeving. Tekst, spraak en muziek zijn altijd consistent. Dus terugkerende neurale netwerken (RNN) zouden de beste keuze zijn om ermee om te gaan, omdat ze zich het vorige resultaat herinneren - in ons geval het vorige woord.

Nu worden RNN's overal gebruikt - Siri's spraakherkenning (het parseert de volgorde van geluiden, waarbij de volgende van de vorige afhangt), tips van het toetsenbord (de vorige onthouden, de volgende raden), muziekgeneratie en zelfs chatbots.

Voor de nerds zoals ik: in feite varieert de architectuur van de neurale vertalers enorm. De normale RNN werd in het begin gebruikt en vervolgens opgewaardeerd naar bidirectioneel, waarbij de vertaler niet alleen woorden voor het bronwoord in overweging nam, maar ook het volgende woord. Dat was veel effectiever. Daarna volgde het met de hardcore meerlagige RNN met LSTM-eenheden voor het langdurig opslaan van de vertaalcontext.

In twee jaar overtroffen neurale netwerken alles wat in de afgelopen 20 jaar van vertaling was verschenen. Neurale vertaling bevat 50% minder fouten in de woordvolgorde, 17% minder lexicale fouten en 19% minder grammaticafouten. De neurale netwerken hebben zelfs geleerd om geslacht en case in verschillende talen te harmoniseren. En niemand heeft hen dat geleerd.

De meest opvallende verbeteringen deden zich voor op velden waar nooit directe vertaling werd gebruikt. Statistische machinevertalingsmethoden werkten altijd met Engels als belangrijkste bron. Als u dus van Russisch naar Duits vertaalde, vertaalde de machine eerst de tekst naar het Engels en vervolgens van het Engels naar het Duits, wat tot een dubbel verlies leidde.

Neurale vertaling heeft dat niet nodig - alleen een decoder is vereist, zodat deze kan werken. Dat was de eerste keer dat directe vertaling tussen talen zonder gemeenschappelijk woordenboek mogelijk werd.

Google Translate (sinds 2016)

In 2016 heeft Google neurale vertaling voor negen talen ingeschakeld. Ze ontwikkelden hun systeem genaamd Google Neural Machine Translation (GNMT). Het bestaat uit 8 encoder- en 8 decoderlagen van RNN's, evenals aandachtsverbindingen van het decoder-netwerk.

Ze verdeelden niet alleen zinnen, maar ook woorden. Zo gingen ze om met een van de belangrijkste NMT-problemen - zeldzame woorden. NMT's zijn hulpeloos als het woord niet in hun lexicon voorkomt. Laten we zeggen: "Vas3k". Ik betwijfel of iemand het neurale netwerk heeft geleerd mijn bijnaam te vertalen. In dat geval probeert GMNT woorden in woordstukken op te splitsen en de vertaling ervan te herstellen. Slim.

Hint: Google Translate gebruikt voor website-vertaling in de browser maakt nog steeds gebruik van het oude op zinnen gebaseerde algoritme. Op de een of andere manier heeft Google het niet geüpgraded en zijn de verschillen behoorlijk merkbaar in vergelijking met de online versie.

Google gebruikt een crowdsourcing-mechanisme in de online versie. Mensen kunnen de versie kiezen die ze het meest correct vinden, en als veel gebruikers het leuk vinden, zal Google deze zin altijd op die manier vertalen en markeren met een speciale badge. Dit werkt fantastisch voor korte alledaagse zinnen zoals: "Laten we naar de bioscoop gaan" of "Ik wacht op je." Google kent conversatie-Engels beter dan ik :(

Microsoft's Bing werkt precies zoals Google Translate. Maar Yandex is anders.

Yandex Translate (sinds 2017)

Yandex lanceerde zijn neurale vertaalsysteem in 2017. Het belangrijkste kenmerk, zoals verklaard, was hybride. Yandex combineert neurale en statistische benaderingen om de zin te vertalen en kiest vervolgens de beste met zijn favoriete CatBoost-algoritme.

Het ding is, neurale vertaling mislukt vaak bij het vertalen van korte zinnen, omdat het context gebruikt om het juiste woord te kiezen. Het zou moeilijk zijn als het woord heel weinig voorkomt in trainingsgegevens. In dergelijke gevallen vindt een eenvoudige statistische vertaling snel en eenvoudig het juiste woord.

Yandex deelt de details niet. Het weert ons af met marketingpersberichten. OKE.

Het lijkt erop dat Google SMT gebruikt voor de vertaling van woorden en korte zinnen. Ze vermelden dat in geen enkel artikel, maar het is behoorlijk merkbaar als je kijkt naar het verschil tussen de vertaling van korte en lange uitdrukkingen. Bovendien wordt SMT gebruikt voor het weergeven van de statistieken van het woord.

De conclusie en de toekomst

Iedereen is nog steeds enthousiast over het idee van "Babel fish" - onmiddellijke spraakvertaling. Google heeft er stappen voor gezet met zijn Pixel Buds, maar in feite is het nog steeds niet waar we van droomden. De directe spraakvertaling is anders dan de gebruikelijke vertaling. Je moet weten wanneer je moet beginnen met vertalen en wanneer je moet zwijgen en luisteren. Ik heb nog geen geschikte aanpak gezien om dit op te lossen. Tenzij, misschien, Skype ...

En hier is nog een leeg gebied: al het leren is beperkt tot de set van parallelle tekstblokken. De diepste neurale netwerken leren nog steeds bij parallelle teksten. We kunnen het neurale netwerk niet onderwijzen zonder het een bron te bieden. In plaats daarvan kunnen mensen hun lexicon aanvullen met het lezen van boeken of artikelen, zelfs als ze deze niet vertalen naar hun moedertaal.

Als mensen het kunnen, kan het neurale netwerk het ook, in theorie. Ik vond slechts één prototype dat probeerde het netwerk, dat de ene taal kent, aan te zetten om de teksten in een andere taal te lezen om ervaring op te doen. Ik zou het zelf proberen, maar ik ben dom. Oke dat was het.

Dit verhaal is oorspronkelijk in het Russisch geschreven en vervolgens door Vasily Zubarev in het Engels vertaald op Vas3k.com. Hij is mijn pen-vriend en ik ben er vrij zeker van dat zijn blog verspreid moet worden.

Handige links

  • Philipp Koehn: Statistische machinevertaling. Meest complete verzameling van de methoden die ik heb gevonden.
  • Moses - populaire bibliotheek voor het maken van eigen statistische vertalingen
  • OpenNMT - nog een bibliotheek, maar voor de neurale vertalers
  • Het artikel van een van mijn favoriete bloggers waarin RNN en LSTM worden uitgelegd
  • Een video "Hoe maak je een taalvertaler", grappige kerel, nette uitleg. Nog steeds niet genoeg.
  • Tekstgids van TensorFlow over het maken van uw eigen neurale vertaler, voor degenen die meer voorbeelden willen en de code willen proberen.

Anderen artikelen van Vas3k.com

Nog een ding…

Als je dit artikel leuk vond, klik dan op de hieronder en deel het met andere mensen zodat zij er ook van kunnen genieten.