Johan Karlsson Johka490 Statistical machine translation JOHAN KARLSSON
Innehåll Introduktion... 2 Bakgrund... 3 Statistiska maskinöversättningssystem... 3 Hur ett SMT-system fungerar... 4 Motsvarighetsmodell för översättning... 4 Ändlig tillståndsomvandlare... 4 Synkron kontextfri grammatik... 5 Parameterisering... 6 Generativa modeller... 7 Parameteruppskattning... 8 Avkodning... 9 Avkodning i FST-modeller... 9 Avkodning i SCFG-modeller... 9 Diskussion... 10 Litteraturförteckning... 11
Introduktion Sen industriella revolutionen har maskiner tagit över allt mer uppgifter från människan. Allt från att odla vete till kollektivtrafik har blivit automatiserat. Under de senaste årtiondena har även maskiner som löser uppgifter som anses kräva tänkande och intelligens blivit allt vanligare i form av datorer. Uppgifter som kräver många års träning även för människor har blivit gratistjänster på internet. En av dessa tjänster är automatisk översättning (Hädanefter MT från engelskans machine translation). Förr fick man använda sig av lexikon för att översätta en mening ord för ord men idag finns översättningsprogram som gör sak automatiskt. Att översätta en text från ett språk till ett annat är en svår konst. Det finns många utmaningar man ställs inför när man ska göra en översättning. En sådan utmaning är tvetydighet. Syntaktisk, lexikal och semantisk tvetydighet förekommer nästan alltid i någon form vid översättning (Dorr, Jordan, & Benoit, 1998). Syntaktisk tvetydighet innebär att samma fras kan syfta på olika saker. Meningen Jag såg mannen på kullen med kikaren kan ha flera olika innebörder. Lexikal tvetydighet betyder att en och samma stavning kan ha två olika betydelser, som till exempel ordet far. Semantisk tvetydighet innebär att ett källord kan ha flera motsvarigheter i målspråk, exempelvis bo som på engelska kan översättas till live och stay. Dorr, Jordan och Benoit (1998) skriver vidare att det inte finns något facit för hur en översättning ska se ut. Olika texter och sammanhang kräver olika översättningar. Alla dessa problem är något som människor är bra på att avgöra om de är försedda med en kontext. Men det är väldigt svårt att försöka hitta och skriva bra regler för hur översättningar ska gå till. Även om idéerna om en automatisk översättningsmaskin har funnits i flera århundraden är det inte fören det senaste 60 åren som det faktiskt gjorts några framsteg. Under 1950- och det tidiga 60-talet var optimismen att knäcka koden till MT stor. Men 1966 kom Automatic Language Processing Advisory Committee med en dyster rapport. Teknologin ansågs vara för dålig och det visade sig att mänskliga översättare var betydligt billigare och bättre än deras maskinella motsvarigheter (Dorr, Jordan, & Benoit, 1998). Detta gjorde att utvecklingen stannade av. Under de två senaste årtiondena har dock MT åter fått stort genomslag, och fokus har skiftat från att manuellt försöka skriva regler för programmen. Istället har man idag precis som inom andra delområden inom Natural Language Processing (NLP) istället riktat in sig på program som själva kan lära sig själva. Statistisk maskinöversättning (Hädanefter SMT från
engelskans statistical machine translation) bygger på att man låter ett program automatiskt lära sig vilka översättningar som är statistiskt troligast för genom att låta det jämföra samma manuella översatta text på två språk ifrån så kallade inlärningskorpusar. (Koehn, 2012) Bakgrund Statistiska maskinöversättningssystem SMT har på senare år blivit allt mer populärt, framför allt sen man insåg nyttan med program som inte behöver översätta perfekt. I tidig utveckling av MT ställde man höga krav på översättningarna som man ansåg skulle kunna vara på en människas nivå. Idag har fokus skiftats och i och med internets framväxt har efterfrågan på tillräckligt bra översättning ökat (Koehn, 2012). Idag finns det en marknad för översättningar som inte är perfekta men som är tillräckligt bra för att en person ska förstå vad som menas. SMT hanterar översättning som ett maskininlärningsproblem, vilket innebär att man låter ett program lära sig själv från en färdigöversatt text. Genom att applicera en inlärningsalgoritm på två parallella korpusar kan programmet sedan översätta tidigare okända meningar. Den stora fördelen med SMT är därför att det inte kräver manuellt nedskrivna regler för att fungera, istället kan programmet lära sig själv. I och med att programmet lär sig och skapar statistiska sannolikheter från redan översatta korpusar kan det bli väldigt bra inom en begränsad domän. Detta på grund av att språket tenderar att vara sig likt när man pratar om liknande ämnen, och det därmed är en statistiskt större chans att ord och fraser förekommer flera gånger i en text relaterad till en specifik domän. Detta medför dock även att det är svårt att göra program för öppna domäner och att det krävs mycket träningsdata för att utveckla ett bra generellt program. (Bertoldi & Federico, 2009) På senare år har tjänster som Google translate börjat erbjuda nya översättningsmöjligheter, till exempel av hela hemsidor. SMT försöks även implementerats tillsammans med andra tjänster, framför allt i handhållna enheter (Koehn, 2012). Exempel på detta är röst- och bildigenkänningssystem som i realtid översätter språk. I och med det de senare årens större överfrågan förekommer det idag allt mer forskning på utvecklingen av SMT-system.
Hur ett SMT-system fungerar Lopez (2008) delar in översättningsprocessen i ett SMT-system i fyra olika delar. Först måste väljs en motsvarighetsmodell (kallas även bara modell) för hur översättningen ska gå till. En modell är ett antal steg programmet måste göra för att översätta en text. Steg två är att få modellen att göra bra val i de fall det finns tvetydiga översättningar. Detta kallas parameterisering och görs för att modellen ska komma fram till den bästa möjliga översättningen. Varje input och output jämförs och poängsätts. I steg tre gör systemet en parameteruppskattning för att lära sig vilka ord som motsvarar varandra på käll- och målspråket. Till sist måste modellen avkoda översättningen. Detta görs genom att ta fram den översättningen med högst poäng för den givna inputen. De olika stegen förklaras mer ingående nedan, om inget annat anges baseras följande delar på Lopez (2008) beskrivning. Motsvarighetsmodell för översättning En motsvarighetsmodell är en samling regler för hur ett MT-system ska översätta en mening från ett språk till ett annat. Det finns många olika sorters modeller men Lopez skriver att de vanligaste är ändlig tillståndsomvandlare (Finite-state transducers (FST)) och synkron kontextfri grammatik (synchronous context-free grammars (SCFG)). FST kommer ursprungligen från datavetenskapen och bygger på samma koncept som en ändlig automat (finite-state automata (FSA)), som är en beräkningsmodell som har ett ändligt antal tillstånd och övergångar mellan dessa tillstånd. En FSA befinner sig alltid i ett av tillstånden och kan ändra tillstånd med hjälp av extern input. SCFG kommer ursprungligen från språkteori och bygger på grammatiska regler som är kopplade till två språk, en grammatisk regel i källspråket har alltså (i bästa fall) en motsvarande regel i målspråket. Detta gör att ett ord i källspråket kan ersättas (översättas) med noll, ett eller flera ord i målspråket, baserat på dessa regler, oavsett kontext. Ändlig tillståndsomvandlare En ändlig tillståndsomvandlare är en variant av en ändlig automat som kan definieras som en mängd symboler, en mängd tillstånd och en mängd övergångar mellan dessa tillstånd. Övergångarna kan förklaras med grundtillståndet, sluttillståndet och en symbol. Det kan även illustreras med en riktad graf med noder och riktade kanter, varje nod kan endast peka på en annan nod, kanterna mellan noderna visar en övergång (Martin & Jurafsky, 1999). Till skillnad från en FSA har en FST två mängder symboler en från käll- och en från målspråket som motsvarar varandra. En FST kan därför sägas redogöra för relationer mellan ord som till
exempel översättning från två olika språk. Inputen hej skulle i en FST som var tränad på att översätta från svenska till engelska kunna ge outputen hi. En annan skillnad från en FSA är att en FST kan ge flera olika outputs till ett och samma input. Det finns både ordbaserade och frasbaserade FST-modeller. Ordbaserade FST-modeller bygger på tre olika steg. I steg ett räknar modellen ut hur många ord i målspråket som motsvarar källordet. Detta kallas för ett ords fertilitet. Varje ord kan ha en fertilitet på noll, ett eller flera, efter det multipliceras ordet med dess fertilitet. I steg två sker själva översättningen. Varje ord i källspråket översätts separat till målspråket. I steg tre flyttas orden om i en ordning som stämmer bättre överens med målspråkets. Det tredje steget är FST-modellernas största svaghet. I och med att en omvandlare är menad att matcha två symboler, i det här fallet två ord är det svårt att hitta ett bra sätt att jämföra olika ords placering i olika språk eftersom att det inte finns någon kontext på ordnivån. Frasbaserade FST-modeller översätter till skillnad från ordbaserade inte varje ord för sig. Istället delas varje mening in i fraser som översätts som en sekvens. Fertilitet är borta och varje sekvens översätts till exakt en sekvens i målspråket. De översatta fraserna kan dock ha olika längd från källspråket. Fördelen med frasbaserade modeller är att varje fras struktureras för sig, möjligheterna för ordningen på orden är därmed mer begränsad än i ordbaserade modeller. Precis som ordbaserade går frasbaserade modeller genom tre steg. Det första steget är att källmeningen delas in i fraser. Detta baseras på systemets tidigare erfarenheter om vilka ord som ofta förekommer tillsammans. I steg två översätts varje fras. I det tredje steget flyttas fraserna om för att förhoppningsvis bilda en grammatiskt korrekt mening. Omförflyttningen av fraser går till på samma sätt som den gör i ordbaserade modeller. Frasbaserade modeller kräver oftast större träningsdata än ordbaserade för att det är mindre sannolikhet att en hel fras förekommer än ett enskilt ord. Frasbaserade modeller är dock oftast bättre på att hantera hynonymer och sammansatta ord. (Tripathi & Sarkhel, 2010). Synkron kontextfri grammatik En SCFG-modell har flera fördelar jämfört med FST-modell. SCFG-modeller bygger på regler från de båda språken de översätter mellan. Detta gör att det är lättare att representera syntaktiska skillnader och likheter mellan språken. Det gör även att det är lättare att förflytta ord och fraser över långa avstånd i meningar. En SCFG-modell bygger på CFG vilket består av avslutade symboler i detta fall ord, och icke avslutade symboler i detta fall syntaktiska kategorier som till exempel verbfras. Processen börjar med en syntaktisk kategori, till exempel nominalfras, denna ersätts sedan enligt regler med antingen hierarkiskt lägre
syntaktiska kategorier eller genom en avslutad symbol, det vill säga ett ord. Denna process fortsätter fram till dess att alla icke avslutade symboler har ersatts med avslutade. Vilket kan illustreras i ett träddiagram (bild 1). Bild 1. Ett träddiagram från en SCFG-modell Parameterisering FST- och SCFG- modellerna tar fram många möjliga översättningar på ett givet input. Modeller hjälper oss hitta ord eller fraser som matchar varandra i två språk. Problemet med detta är som tidigare nämnts naturliga språks tvetydighet, ett och samma ord eller fras kan ha flera olika betydelser. Vilken av betydelserna som är korrekt kan endast avgöras av kontexten. Systemet behöver därför nåt sätt att välja den rätta betydelsen. Lösningen på detta kallas parameterisering. Parameterisering innebär att varje målmening poängsätts. Parameterisering kommer från maskininlärning och det finns ett antal olika modeller för det. Problemet som ska lösas är att hitta den målmening som bäst motsvarar källmeningen. För att göra detta måste man räkna ut sannolikheten för outputen i målspråket baserat på den givna inputen från källspråket, P(e f). Problemet är dock att det finns ett antal olika målmeningar och lösningen blir därför att summera alla möjliga härledningar till målmeningen, detta görs med funktionen P(e f) = d:y (d,e) P(e, d f). Denna beräkning är exponentiell i dess komplexitet, vilket gör den för beräkningsmässigt komplicerad för att användas i praktiken. Därför används oftast endast P(e, d f), där d är modellen som används, alltså FST eller SCFG. Med andra ord, sannolikheten för att det givna ordet från källspråket motsvarar ett givet ord på målspråket är summan av samtliga fall där dessa matchar varandra i de tvåspråkiga korpusarna, givet förhållanderegeln d. Även detta ställer till problem beräkningsmässigt. Eftersom e och f är meningar från olika språk finns det i princip oändligt många möjligheter att härleda dessa meningar till varandra. Därför görs en parameterisering av funktionen. Det finns ett antal sätt
att genomföra parameterisering men det vanligaste är att man använder generativa modeller, vilket förklaras mer ingående nedan. Generativa modeller Generativa modeller använder sig av kedjeregeln och Bayes regel för att förenkla uttrycket P(e, d f). Kedjeregeln fungerar enligt: P(x, y) = P(x y)p(y), och Bayes regel fungerar enligt: P(y x) = P(x y)p(y). Kedjeregeln och Bayes regel på funktionen P(e, d f) ger därför P(x) P(e, d f) = P(f,d e)p(e). Eftersom nämnaren P(f ) är samma för alla inputs kan den ignoreras. P(f) Kvar blir då P(e, d f) = P(f, d e)p(e). På denna funktion kan man applicera två olika modeller på problemet. Dessa modeller kallas språk- och översättningsmodeller. Genom att applicera två olika modeller får man en mer balanserad uträkning som i bästa fall väger upp för varandras svagheter. De båda modellerna kan ses som stokastiska modeller som bygger på heuristik från inlärningen av korpusar. Språkmodellen som använder sig av P(e) kan ses som en process som genererar stokastiska meningar på målspråket. Medan Översättningsmodellen som använder sig av P(f, d e) kan ses som en stokastisk process som genererar krypterade meningar från källspråket till målspråket. Brown et. al. (1993) skriver att översättningsmodellen ger stora sannolikheter för meningar i målspråket som har rätt ord för att förklara innebörden av källmeningen, oavsett hur välformulerade de är. Språkmodellens sannolikheter å andra sidan är stora för välformulerade meningar i målspråket, men saknar förankring i källspråket. När sannolikheterna från de båda modellerna multipliceras får de meningar som både förklarar innebörden och är välformulerade högst sannolikhet. Hur de båda modellerna fungerar förklaras mer ingående nedan. Språkmodeller Man använder som sagt språkmodellen för att ta fram välformulerade meningar i målspråket, eller med andra ord den mening som har störst sannolikheten att förekomma i målspråket. Detta kan skrivas genom funktionen P(e 1 I ). Om man applicerar kedjeregeln på denna funktion kommer man fram till att den betingade sannolikheten för e 1 I är summan av flera större sannolikheter som motsvarar sannolikheten för översättningen av varje enskilt ord, funktionen för detta ser ut såhär; P(e 1 I ) = I J=1 P (e i e i 1 1 ). Detta förenklar beräkningen något men den är fortfarande komplex. För att underlätta ytterligare kan man använda sig av betingad självständighet, det betyder att varje ord översätts oberoende av de andra orden i meningen. Detta gör dock översättningen mindre tillförlitlig, men det är nödvändigt för att hålla ner komplexiteten på beräkningen. För att hålla nere beräkningskomplexiteten men samtidigt
behålla lite kontext i meningsbyggnaden brukar man ha betingad självständighet för alla ord förutom de närmast föregående. Detta kallas för en n-gram språkmodell. Det vanligaste är att varje ord anses vara oberoende av alla ord förutom det precis innan, n-1, vilket medför lite mer tillförlitlighet men har fortfarande en beräkningsnivå som är möjlig. Detta kallas för en bigram modell och använder sig av funktionen e I 1 I n. En n-gram språkmodell använder sig därför av funktionen P(e 1 I = Översättningsmodeller I J=1 P (e i e i 1 i n ). Man använder sig av en översättningsmodell för att inkludera rätt ord i målmeningen för att förklara innebörden av källmeningen. Uppbyggnaden liknar språkmodellens men istället för att söka efter grammatiskt korrekt mening söker den efter en bra modell för hur den mening fås. Modellerna motsvarar övergångarna i en FST eller en hierarkisk ersättning i en SCFGmodell. För att behålla komplexiteten på en rimlig nivå vill man i en översättningsmodell precis som i en språkmodell ha sannolikheten för mindre enheter än hela meningen. Detta uppnås på samma sätt som i språkmodeller genom att använda sig av kedjeregeln. Vilken gör att varje steg i en FST-modell och varje övergång i en SCFG-modell representeras. Till slut kan man använda sig av betingad självständighet för att få ekvationen P(f 1 I, d 1 m e 1 I = J J=1 P(f j f j 1 1, f j 1 1, e I 1 M m=1 P( d m d m 1 1, e I 1 ). Parameteruppskattning När P(e, d f) har definierats måste det för att uppskatta vilken som är den bästa översättningen tilldelas ett värde till alla parametrar (Lopez, 2008). Detta kallas en parameteruppskattning och är en teknik som kommer från maskininlärning. I ett SMT-system används en parallell korpus för att låta programmet basera sannolikheter på dessa värden. Sannolikheterna måste uppskattas på grund av språks tvetydighet. Ett ord kan ha olika betydelse vilket gör att För att göra det antas att den parallella korpusen är översatt av programmet och att den är korrekt. Målet är att hitta den uppskattning som har maximal sannolikhet. Detta görs genom att anta att träningskorpusen är C (E F ), alla parametrar är Θ och sannolikheten för C under alla parametrar är P Θ (C). Målet är då att hitta alla parametrar som uppfyller funktionen och därefter välja ut den bästa. Om ett ord förekommer ofta i träningskorpusen är det större chans att uppskattningen ligger nära det faktiska värdet. Ju större träningskorpusen är desto bättre blir systemet på att uppskatta.
Avkodning Efter att parameteruppskattning har gjorts är det dags att avkoda den utdata som detta ger. Det är i det här steget man kan få ut nya översättningar. Detta görs genom att lösa maximeringsproblemet i följande ekvation. Funktionen kallas för beslutsregeln, det finns andra alternativ men just den här är den mest använda. Variablerna i ekvationen gör att det är en väldigt stor sökrymd. Det är därför viktigt att söka så effektivt som möjligt. FST och SCFG-modeller använder sig av två olika avkodningssystem. Avkodning i FST-modeller FST-modeller söker i en acyklisk riktat graf. Varje tillstånd i grafen består av: En delmängd med positionerna i källmeningen på de ord som blivit översatta. Vid n-gram modeller memoreras de n-1 föregående orden. Delhypotesen, det vill säga varje genererad nods, kostnad. Den uppskattade kvarvarande kostnaden för att komplettera delhypotesen. Eftersom att sökrymden oftast är väldigt stor och en översättning inte kan vara optimal används nästan aldrig en optimal sökmetod. A* kan räkna ut svaret på ekvationen exakt och därmed generera den översättning som har störst sannolikhet, men det är ett för beräkningskrävande alternativ. Istället används ofta Beam Search vilket är en metod för att begränsa sökningen. I beam search utökas endast de mest troliga noderna för varje tillstånd. Avkodning i SCFG-modeller Målet med avkodning i SCFG-modeller är att räkna ut det träd som har störst sannolikhet. Detta görs genom att hitta det träd som bäst motsvarar grammatiken från källmeningen för att sedan kopiera motsvarande träd för målmeningen. Tillstånden i sökrymden, trädens noder, kallas för spans och består av en del av meningen eller en icke avslutad symbol, samt regler från modellen för att kombinera spans. Sökningen går till genom att utgå från varje källord och generera en span. Sedan används modellens regler för att generera hierarkiskt högre kategorier tillsammans med närliggande spans för att generera nya spans. Detta itereras till dess att källspråksträdet har genererats därefter produceras själva översättningen. SCFG-avkodning är i teorin mindre komplext än FST-avkodning men med bra avgränsningar i den senare är det möjligt att skära ned på komplexiteten. I praktiken är nästan alla dagens FST-system snabbare än SCFG-systemen.
Diskussion Utvecklingen av MT och framför allt SMT har gått framåt mycket under de senaste årtiondena. Internet har efterfrågat en ny sorts översättning som inte behöver vara perfekt. Detta är något som både är en möjlighet och utmaning för SMT-system. I och med att det ett system kan lära sig av sig själv finns det stora möjligheter att utveckla det ytterligare och applicera det på specifika domäner. Utmaningen att översätta ospecifika texter, som ofta förekommer på internet, är därför också stor och kräver därmed vidare forskning. Men forskningsfältet är relativt ungt och det finns idag många olika modeller att använda sig av. Samspel mellan dessa modeller eller framsteg inom ett specifik modell kan tänkas utveckla nya synsätt på området. Många teorier och modeller inom SMT kommer från andra ämnen som natural language processing (NLP), att kunskapen inom dessa områden ökar kommer även SMT-system att tjäna på. Något som i blivit större är också interaktionen mellan SMT och dessa andra områden. I samspelet mellan NLP och SMT finns även problemet med domänlös översättning. Hur man kan lösa är en viktig fråga för vidare forskning.
Litteraturförteckning Bertoldi, N., & Federico, M. (2009). Domain Adaptation for Statistical Machine Translation with Monolingual Resources, 30, 182 189. Brown, P., Della Pietra, V., Della Pietra, S., & Mercer, R. (1993). The Mathematics of Statistical Machine Translation: Parameter Estimation. Computational Linguistics, 19(2), 263 311. Dorr, B. J., Jordan, P. W., & Benoit, J. W. (1998). A Survey in Current Paradigms in Machine Translation. Koehn, P. (2012). Statistical Machine Translation. New York: Cambridge University press. Lopez, A. (2008). Statistical machine translation. Edinburgh: University of Edinburgh. Martin, J. H., & Jurafsky, D. (1999). Speech and Language Processing. New Jersey: Prentice Hall. Tripathi, S., & Sarkhel, J. K. (2010). Approaches to machine translation. Annals of Library and Information Studies, 57, 388 393.