# Strojový preklad

## Štatistický strojový preklad

Strojový preklad je automatický preklad jednej, alebo skupiny viacerých viet jedného jazyka do druhého pomocou počítačov. Jedná sa o dôležitú aplikáciu v oblasti spracovania prirodzeného jazyka a záujem o toto odvetvie je takmer taký starý ako elektronický počítač. Štatistický strojový preklad zaznamenal za necelé dve desaťročia obrovský pokrok a v súčasnosti práve on dominuje v tejto oblasti výskumu. SMT využíva veľké množstvo paralelných korpusov a textov, ktoré už boli predtým preložené, vďaka čomu je stroj preložiť dovtedy nevidené vety. Príkladom pre SMT sú modely IBM, slovné modely, ktoré predstavujú prvú generáciu štatistického strojového prekladu. S použitím rôznych nástrojov a dostatku paralelného textu tak môžeme vytvoriť strojový preklad pre nový jazykový pár vo veľmi krátkom čase, podľa niektorých štúdii dokonca za menej ako deň.

Popularita internetu výrazne ovplyvnila záujem o strojový preklad a šírenie informácii vo viacerých jazykoch. Príkladom sú viacjazyčné vlády, spravodajské agentúry a spoločnosti pôsobiace na globálnom trhu. Vďaka tomuto rozšíreniu sú základným zdrojom vo výskume SMT, pretože sú každodenným produktom bežných ľudských činností. A je to taktiež jeden z dôvodov, prečo Európska únia, či Vláda Spojených štátov zvýšila financovanie výskumu strojového prekladu na podporu svojich záujmov v oblasti politiky. Rýchli a lacný výpočtový hardvér umožnil aplikácie, ktoré závisia od veľkého počtu súborov údajov a miliárd štatistík. Výrazne k tomu prispeli pokroky v rýchlosti procesora, veľkosti a rýchlosti pamäte novších počítačov. Vývoj metrík automatického prekladu taktiež umožnil zrýchliť vývoj systémov strojového prekladu a podporil konkurenciu medzi výskumnými skupinami. [10]

## Neurónový strojový preklad

Sila NMT spočíva v jeho schopnosti učiť sa priamo, end-to-end spôsobom, mapovanie zo vstupného textu na asociovaný výstupný text. End-to-end učenie je typ procesu Deep Learning, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. Neurónový strojový preklad je jedným z novších prístupov v štatistickom strojovom preklade založený čisto na neurónových sieťach, pozostávajú z kódovacieho zariadenia a dekódera. Tento typ strojového prekladu viedol k zlepšeniu najmä v oblasti hodnotenia ľudí, v porovnaní so systémami založenými na štatistickom strojovom preklade. Podľa najnovších štúdií NMT všeobecne produkuje plynulé, ale nedostatočné preklady, čo je v kontraste s konvenčným štatistickým strojovým prekladom, ktorý produkuje adekvátne, ale nie plynulé preklady. Kódovacie zariadenie extrahuje reprezentáciu pevnej dĺžky zo vstupnej vety s premennou dĺžkou a dekóder následne vygeneruje finálny preklad z danej reprezentácie. Neurálny strojový preklad funguje dobre predovšetkým na krátke vety bez neznámych slov, preklad sa však zhoršuje s pribúdajúcou dĺžkou textu a neznámych slov, taktiež slovná zásoba ma veľký vplyv na výkon prekladu. Výhodou neurónového strojového prekladu je, že oproti SMT vyžaduje iba zlomok pamäte pre trénovanie (napr. ak neurónový strojový preklad použije 500 MB pamäte, SMT by na rovnaké trénovanie využil desiatky gigabajtov). Na rozdiel od iných konvenčných prekladových systémov, sa každý komponent modelu neurálneho prekladu trénuje spoločne, aby sa maximalizoval výkon prekladu. [4] [5] [6] [7]

## NMT s SMT výhodami

Vzhľadom na vedomosti, ktoré máme o NMT a SMT je preto prirodzené pokúsiť sa využívať výhody oboch modelov na lepšie preklady. Konkrétne začleniť model SMT do rámca NMT, čo znamená, že v každom kroku SMT odošle ďalšie odporúčania generovaných slov na základe dekódovacích informácii z NMT. Experimentálne výsledky čínsko-anglického prekladu (NMT advised by SMT, 2016) ukazujú, že navrhovaný prístup dosahuje mimoriadne konzistentné vylepšenia oproti najnovším NMT a SMT modelom. Jedným z rozdielov v tomto prístupe je, že tento model nevyberá ďalšie slovo len na základe vektorových reprezentácií (vektory čísel, ktoré predstavujú význam slova), ale umožňuje tiež predikciu na základe odporúčaní z modelu SMT. (Viac informácii na [3] ).

## Recurrent neural network

Rekurentné neurónové siete (RNN) sú najmodernejším algoritmom pre sekvenčné dáta a používajú ich napr. Apple´s Siri alebo Google. Je to prvý algoritmus, ktorý si pamätá svoj vstup a to vďaka vnútornej pamäti, čo ho robí perfektným pre problémy strojového učenia, ktoré zahŕňajú sekvenčné dáta. RNN môžu používať svoj vnútorný stav (pamäť) na spracovanie sekvencií vstupov s premennou dĺžkou. Obojsmerná rekurentná neurónová sieť, známa ako kóder, používa neurónová sieť na kódovanie zdrojovej vety pre druhý RNN, známy ako dekodér, ktorý sa používa na predikciu slov v cieľovom jazyku. Neurónová sieť sa považuje za snahu napodobniť akcie ľudského mozgu zjednodušeným spôsobom. Mechanizmus pozornosti je tiež pokusom o implementáciu rovnakej akcie selektívneho sústredenia sa na niekoľko dôležitých vecí, zatiaľ čo ostatné sú ignorované v hlbokých neurónových sieťach. Rekurentné neurónové siete čelia problémom pri kódovaní dlhých vstupov do jedného vektora. To je možné kompenzovať pomocou tzv. attention mechanisms (mechanizmus pozornosti), ktorý umožňuje dekodéru sústrediť sa na rôzne časti vstupu pri generovaní každého slova výstupu. 

Termín „rekurentná neurónová sieť“ sa používa bez rozdielu na označenie dvoch širokých tried sietí s podobnou všeobecnou štruktúrou, kde jedna je konečný impulz a druhá nekonečný impulz. Obe triedy sietí vykazujú časové dynamické správanie. Konečná impulzná opakujúca sa sieť je filter, ktorého impulzná odozva (alebo odozva na akýkoľvek vstup konečnej dĺžky) má konečnú dobu trvania, pretože sa v konečnom čase usadí na nule, zatiaľ čo nekonečná impulzná odozva (IIR) je vlastnosť vzťahujúca sa na mnoho lineárnych časovo invariantných systémov, ktoré sa vyznačujú tým, že majú impulznú odozvu h (t), ktorá sa nestane presne nulou za určitým bodom, ale pokračuje donekonečna. (Viac informácii na ( [7],[8] ).


## Convolutional Neural Networks

Okrem RNN je ďalším prirodzeným prístupom k riešeniu sekvencií s premennou dĺžkou použitie rekurzívnej konvolučnej neurónovej siete, kde sú parametre na každej úrovni zdieľané cez celú sieť. Konvolučné neurónové siete sú v zásade o niečo lepšie pre dlhé nepretržité sekvencie, ale pôvodne sa nepoužívali kvôli niekoľkým slabinám. Tie boli v roku 2017 úspešne kompenzované pomocou „attention mechanisms“.

Konvolučná neurónová sieť (CNN) je trieda hlbokých neurónových sietí, ktorá sa najčastejšie používa na analýzu vizuálnych snímok. Sú tiež známe ako umelé neurónové siete s invariantným posunom alebo s priestorovým invariantom (SIANN) na základe ich architektúry zdieľaných váh a charakteristík invariantnosti prekladu. CNN používajú v porovnaní s inými algoritmami klasifikácie obrázkov relatívne malé predbežné spracovanie. To znamená, že sa sieť učí filtre, ktoré boli v tradičných algoritmoch vyrobené ručne. Táto nezávislosť od predchádzajúcich znalostí a ľudského úsilia pri navrhovaní funkcií je hlavnou výhodou. 

Konvolučné siete sa inšpirovali biologickými procesmi v tom, že vzorec spojenia medzi neurónmi pripomína organizáciu vizuálnej mozgovej kôry zvieraťa. Jednotlivé kortikálne neuróny (vonkajšia vrstva nervového tkaniva mozgu) reagujú na podnety iba v obmedzenej oblasti zorného poľa známej ako receptívne pole. Vnímavé polia rôznych neurónov sa čiastočne prekrývajú tak, že pokrývajú celé zorné pole.

CNN používajú v porovnaní s inými algoritmami klasifikácie obrázkov relatívne málo predbežného spracovania. To znamená, že sa sieť učí filtre, ktoré boli v tradičných algoritmoch vyrobené ručne. Pri spracovaní signálu je filtrom zariadenie alebo proces, ktorý odstraňuje zo signálu niektoré nežiaduce komponenty alebo vlastnosti. Táto nezávislosť od predchádzajúcich znalostí a ľudského úsilia pri navrhovaní funkcií je hlavnou výhodou. (Viac informácii na [5],[6] ).


## Encoder–Decoder Approach

Architektúra Encoder-Decoder s rekurentnými neurónovými sieťami sa stala efektívnym a štandardným prístupom pre neurónový strojový preklad (NMT) a predikciu Sequence-to-sequence (seq2seq) všeobecne. Seq2seq je trénovanie modelov na prevod sekvencií z jednej domény (napr. vety v angličtine) na sekvencie v inej doméne (napr. rovnaké vety preložené do slovenčiny)

Mnoho úloh strojového učenia sa dá vyjadriť ako transformácia - alebo transdukcia - vstupných sekvencií do výstupných sekvencií (napr. rozpoznávanie reči, strojový preklad, alebo prevod textu na reč. (Alex Graves, 2012)

Strojový preklad je hlavnou problémovou doménou pre modely sekvenčnej transdukcie, ktorých vstup aj výstup sú sekvencie s premennou dĺžkou. Na zvládnutie tohto typu vstupov a výstupov môžeme navrhnúť architektúru s dvoma hlavnými komponentmi. Prvým komponentom je kódovacie zariadenie, ktoré berie ako vstup sekvenciu s premennou dĺžkou a transformuje ju do stavu s pevným tvarom. Druhým komponentom je dekodér, ktorý mapuje kódovaný stav pevného tvaru na sekvenciu s premennou dĺžkou. Toto sa nazýva Encoder-Decoder architektúra.

Aj keď je architektúra Encoder-Decoder efektívna, má problémy s dlhými sekvenciami textu, ktoré sa majú preložiť. Problém pramení z internej reprezentácie pevnej dĺžky, ktorá sa musí použiť na dekódovanie každého slova vo výstupnej sekvencii. Riešením je použitie attention mechanism (mechanizmu pozornosti), ktorý umožňuje modelu naučiť sa, kam má venovať pozornosť vstupnej sekvencii, pretože každé slovo výstupnej sekvencie je dekódované. 

Kľúčovými výhodami tohto prístupu sú schopnosť trénovať jeden end-to-end model priamo na zdrojových a cieľových vetách a schopnosť zvládnuť vstupné a výstupné sekvencie textu s rôznou dĺžkou. Ako dôkaz úspechu metódy je architektúra jadrom prekladateľskej služby Google. Architektúra rekurentnej neurónovej siete Encoder-Decoder s pozornosťou je v súčasnosti najmodernejším riešením niektorých benchmarkových problémov pre strojový preklad. Táto architektúra je použitá v jadre systému Google Neural Machine Translation alebo GNMT, ktorý sa používa v ich službe Google Translate. [8]


|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/commit/5134c49afabbb2e5e8e090b8fa54bb1711dd6160/pages/students/2016/patrik_pavlisin/1.png)| 
|:--:| 
|Obr 1. encoder-decoder architektúra|


## BERT

Bidirectional Encoder Representations from Transformers (BERT) je Transformer-based technika strojového učenia pre spracovanie prirodzeného jazyka vyvinutý spoločnosťou Google. Transformátor je model Deep Learning predstavený v roku 2017, ktorý sa používa predovšetkým v oblasti spracovania prirodzeného jazyka (NLP). Deep Learning je funkcia umelej inteligencie (AI), ktorá napodobňuje činnosť ľudského mozgu pri spracovaní údajov a vytváraní vzorcov pre použitie pri rozhodovaní. Keď bol BERT publikovaný, dosiahol vynikajúcu výkonnosť v mnohých úlohách porozumenia prirodzenému jazyku ako napr. SQuAD (Stanford Question Answering Dataset) a SWAG (Situations With Adversarial Generations). Dôvody spoľahlivého výkonu BERT v týchto úlohách porozumenia prirodzenému jazyku ešte nie sú dobre pochopené. 

BERT využíva Transformátor, attention mechanism (mechanizmus pozornosti), ktorý sa učí kontextové vzťahy medzi slovami v texte. Vo svojej základnej podobe obsahuje Transformer dva samostatné mechanizmy – encoder, ktorý číta text zo vstupu, a dekodér, ktorý vytvára predpoveď pre danú úlohu. Pretože cieľom BERT je vygenerovať jazykový model, je potrebný iba encoder mechanizmus. Na rozdiel od smerových modelov, ktoré čítajú textový vstup postupne (zľava doprava alebo sprava doľava), Transformer encoder číta celú postupnosť slov naraz. Preto sa považuje za obojsmerný, aj keď by bolo presnejšie povedať, že je nesmerový. Táto vlastnosť umožňuje modelu naučiť sa kontext slova na základe celého jeho okolia (vľavo a vpravo od slova). Vstupom je postupnosť tokenov, ktoré sa najskôr vložia do vektorov a potom sa spracujú v neurónovej sieti. Výstupom je postupnosť vektorov veľkosti H, v ktorých každý vektor zodpovedá vstupnému tokenu s rovnakým indexom.

V súčasnosti sú vopred vytrénované jazykové modely BERT považované za dôležité pre širokú škálu úloh NLP, ako sú napríklad Natural Language Inference (NLI je podtémou spracovania prirodzeného jazyka v umelej inteligencii, ktorá sa zaoberá strojovým čítaním s porozumením) a Question Answer (QA je disciplína informatiky v oblasti získavania informácií). Napriek svojmu obrovskému úspechu stále majú limity na reprezentáciu kontextových informácií v korpuse špecifickom pre danú oblasť, pretože sú trénované na všeobecnom korpuse (napr. Anglická Wikipedia). Napríklad Ubuntu Corpus, ktorý je jedným z najpoužívanejších korpusov pri výbere odpovedí, obsahuje množstvo terminológií a príručiek, ktoré sa vo všeobecnom korpuse zvyčajne nevyskytujú (napr. Apt-get, mkdir a grep). Pretože sa korpus zameriava predovšetkým na určitú doménu, existujúce diela majú obmedzenia pri porovnávaní kontextu dialógu a odozvy. Korpus konverzácií, ako napríklad Twitter a Reddits, sa navyše skladá hlavne z hovorových výrazov, ktoré sú zvyčajne gramaticky nesprávne. [1] [2]


## Metódy vyhodnotenia

Ako zistíme či je náš výstup zo systému SMT dobrý ? Na vyhodnotenie strojového prekladu bolo navrhnutých veľa rôznych metód. Zaujímavosťou je že o metódach pre hodnotenie strojového prekladu sa za v posledných rokoch píše viac ako o samotnom strojovom preklade. Vyhodnotenie človekom je vo všeobecnosti veľmi časovo a finančne náročné, pretože vyžaduje zaplatenie odborníka v daných dvoch jazykoch. Z toho dôvodu sa začali vyvíjať automatické metriky, ktoré úzko korelujú s ľudských úsudkom. Čím presnejšie tieto metriky budú tým lepšia bude naša výkonnosť v hodnotením strojového prekladu. Pri vývoji týchto metrík bolo dôležité použiť sady testovacích viet, pre ktoré už existovali ľudské preklady, napríklad z paralelného korpusu. Metódy automatického prekladu sú založené na čiastočnom zosúladení reťazcov medzi výstupným a referenčným prekladom (viz. Obrázok 2).

|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/commit/c3bd7dca0c3305a736ddf42b88e1e35f3c59c9ec/pages/students/2016/patrik_pavlisin/tp20/2.png)| 
|:--:| 
|Obr 2. Príklad čiastočnej zhody reťazcov používaný vo väčšine metód hodnotenia.|


Jednou z metrík na hodnotenie je napríklad známy Levenshtein, známy tiež ako word error rate (WER), ten predstavuje počet vložení, odstránení a substitúcii potrebných na prevedenie výstupnej vety na vetu vstupnú. Táto metrika je však najmenej vhodná, pretože nerozpoznáva nové usporiadanie slov. Slovo, ktoré je správne preložené, ale na zlom mieste bude penalizované ako vymazanie (na výstupe) a vloženie (na správnom mieste). Preto je výhodnejšie použiť position-independent word error rate (PER), ktorá nepenalizuje poradie, pretože výstupné a referenčné vety považuje za neusporiadané. Za posledné roky je však najbežnejšou používanou metrikou BLEU, ktorá berie do úvahy jednoslovné zhody medzi výstupnou a referenčnou vetou ako aj zhody n-gramov. BLEU je zameraná na presnosť, čo znamená, že počet n-gramových zhôd považuje za zlomok počtu celkových n-gramov vo výstupe. Zlomok sa počíta osobitne pre každé n a berie sa geometrický priemer. Presnosť metriky BLEU je upravená tak, aby eliminovala opakovania, ktoré sa vyskytujú vo vetách.

Aj keď sa BLEU pokúša zachytiť povolené rozdiely v preklade, tak tento systém zachádza oveľa ďalej ako by mal. BLEU nekladie žiadne výslovné obmedzenia na hranicu, v ktorej sa vyskytujú zodpovedajúce n-gramy. Pre umožnenie variácie pri výbere slova sa preto v preklade metriky BLEU používajú viacnásobné preklady odkazov, ale taktiež kladie len veľmi málo obmedzení na to ako je možné čerpať gramové zhody z viacerých referenčných prekladov. BLEU je týmito spôsobmi obmedzené, umožňuje obrovské množstvo variácií, ďaleko nad rámec toho, čo by sa dalo považovať za prijateľnú variáciu v strojovom preklade. Ukázalo sa, že pre priemerný preklad hypotéz existuje viac ako milión možných variantov, z ktorých každý získal podobné skóre BLEU. Tvrdíme preto, že počet prekladov, ktoré majú rovnaké skóre, je taký veľký, že je nepravdepodobné, aby všetci z nich boli hodnotené ľudskými prekladateľmi rovnako kvalitne. Z toho vyplýva, že je možné dostať identické skóre po hodnotení metrikou BLEU, ktoré by ale ľudia hodnotili horšie. Je preto tiež možné dosiahnuť vyššie skóre BLEU, bez toho, aby sa v skutočnosti zlepšila samotná kvalita strojového prekladu.

Neschopnosť BLEU rozlišovať medzi náhodne generovanými variáciami prekladu naznačuje, že to v niektorých prípadoch nemusí korelovať s ľudskými úsudkami o kvalite prekladu. S pribúdajúcim počtom identického skóre klesá pravdepodobnosť, že by sa všetky z nich dali považovať za rovnako pravdepodobné. To zdôrazňuje skutočnosť, že BLEU je metrika na meranie hrubej kvality prekladu. K tomuto tvrdeniu prispieva aj niekoľko ďalších faktorov ako napríklad, že so synonymami a parafrázami sa zaobchádza iba vtedy ak sú v skupine viacerých referenčných odkazov. Dalej skóre slov sa počíta rovnako, takže v prípade chýbajúceho obsahového materiálu to neprináša žiadnu penalizáciu. Každá z týchto chýb prispieva k zvýšeniu zle preložených a nezrozumiteľných prekladov. Vzhľadom na to, že BLEU môže teoreticky priradiť rovnaké skóre prekladu dvom textom odlišnej kvality, je logické, že vyššie skóre BLEU nemusí nevyhnutne znamenať skutočne zlepšenie kvality prekladu. [9]

## Zoznam použitej literatúri

[1]. WANG T., LEE D., LEE CH. YANG K., OH D., LIM H.: _Domain Adaptive Training BERT for Response Selection._ [online]. [citované 01-08-2019].

[2]. DEVLIN J., CHANG M., LEE K., TOUTANOVA K.: BERT: _Pre-training of Deep Bi-directional Transformers for Language Understanding._  [online]. [citované 24-05-2019].

[3]. WANG X., LU Z., TU Z., LI H., XIONG D., ZHANG M.: _Neural Machine Translation Advised by Statistical Machine Translation._ [online]. [citované 30-12-2016].

[4]. ZHANG A., LIPTON C. Z., LI M., SMOLA J. A.: _Dive into Deep Learning._ [online]. [citované 06-11-2020].

[5]. O´SHEA K., NASH R.: _An Introduction to Convolutional Neural Networks._ [online]. [citované 02-12-2015].

[6]. KALCHBERNNER N., GREFENSTETTE E., BLUNSOM P.: _A Convolutional Neural Network for Modelling Sentences__._ [online]. [citované 08-08-2014].

[7]. ZAREMBA W., SUTSKEVER I., VINYALS O.: _Recurrent Neural Network Regularization_. [online]. [citované 19-02-2015].

[8]. CHO K., MERRIENBOER vB., BAHDANAU D.: _On the Properties of Neural Machine Translation: Encoder–Decoder Approaches._  [online]. [citované 07-10-2014].

[9]. CALLISON-BURCH C., OSBORNE M., KOEHN P.: _Re-evaluating the Role of BLEU in Machine Translation Research__._ [online]. [citované 2006].

[10]. LOPEZ A.: _A Survey of Statistical Machine Translation._ [online]. [citované 01-04-2007].