# 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. Neurónový strojový preklad je jedným z novších prístupov k štatistickej strojovej translácii založenej č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 štatistických pravidlách a štatistickým strojovým prekladom. Posledné štúdie však ukazujú, že 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óder 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álneho 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í, ale umožňuje tiež predikciu na základe odporúčaní z modelu SMT. (Viac informácii na [3] ).

## Recurrent neural network

Rekurentná neurónová sieť (RNN) je trieda umelých neurónových sietí, kde spojenia medzi uzlami vytvárajú usmernený graf pozdĺž časovej postupnosti. To mu umožňuje vykazovať časové dynamické správanie. 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ódovač, 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.  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, ktorý umožňuje dekodéru sústrediť sa na rôzne časti vstupu pri generovaní každého slova výstupu.  Existujú ďalšie modely pokrytia, ktoré sa zaoberajú problémami v takýchto mechanizmoch pozornosti, napríklad ignorovanie informácií o minulom zosúladení vedúcich k nadmernému prekladu a nedostatočnému prekladu.

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 usmernený acyklický graf, ktorý je možné rozvinúť a nahradiť ho striktne doprednou neurálnou sieťou, zatiaľ čo nekonečná impulzná opakujúca sa sieť je usmernený cyklický graf, ktorý sa nedá rozvinúť. Konečné impulzné aj nekonečné impulzné opakujúce sa siete môžu mať ďalšie uložené stavy a úložisko môže byť pod priamou kontrolou neurónovej siete. Úložisko je tiež možné nahradiť inou sieťou alebo grafom, ak obsahuje časové oneskorenia alebo má spätnoväzbové slučky. (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 posunom invariantu alebo s priestorovým invariantom (SIANN) na základe ich architektúry zdieľaných váh a charakteristík invariantnosti translácie. 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.

CNN sú legalizované verzie viacvrstvových perceptrónov. Viacvrstvové perceptróny zvyčajne znamenajú plne spojené siete, to znamená, že každý neurón v jednej vrstve je spojený so všetkými neurónmi v nasledujúcej vrstve. Vďaka „úplnému prepojeniu“ týchto sietí sú náchylné na preplnenie údajov. Typické spôsoby regularizácie zahŕňajú pridanie určitej formy merania hmotnosti k stratovej funkcii. CNN používajú odlišný prístup k regularizácii: využívajú hierarchický vzorec v dátach a zhromažďujú zložitejšie vzory pomocou menších a jednoduchších vzorov. Z hľadiska rozsahu prepojenosti a zložitosti sú teda CNN na dolnej extrému.  (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álnu strojovú transláciu (NMT) a predikciu sekvencie za sekvenciou (seq2seq) všeobecne.

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ódovač, 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 architektúra dekodér-dekodér.

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 strojové školenie zamerané na techniku strojového učenia na spracovanie prirodzeného jazyka (NLP) vyvinuté spoločnosťou Google. 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 - kódovač, ktorý číta textový vstup, a dekodér, ktorý vytvára predikciu úlohy. Pretože cieľom BERT je vygenerovať jazykový model, je potrebný iba mechanizmus kódovacieho zariadenia. Na rozdiel od smerových modelov, ktoré čítajú textový vstup postupne (zľava doprava alebo sprava doľava), čítací transformátor čí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). Nasledujúca tabuľka obsahuje podrobný popis kódovacieho zariadenia Transformer. 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) a Question Answer (QA). 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 najpoužívanejším korpusom 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 1).

|![](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].