Kā Google pārveidoja valodas tulkošanu par vektortelpas matemātikas problēmu

Datorzinātne maina vārdu un teikumu tulkošanas veidu no vienas valodas uz citu. Jebkurš, kurš ir mēģinājis BabelFish vai Google tulkotājs zinās, ka tie sniedz noderīgus tulkošanas pakalpojumus, taču tos, kas nebūt nav perfekti.





Pamatideja ir salīdzināt vārdu korpusu vienā valodā ar tādu pašu vārdu korpusu, kas tulkots citā valodā. Vārdi un frāzes, kuriem ir līdzīgas statistiskās īpašības, tiek uzskatīti par līdzvērtīgiem.

Problēma, protams, ir tā, ka sākotnējie tulkojumi balstās uz vārdnīcām, kuras jāsastāda cilvēku speciālistiem, un tas prasa ievērojamu laiku un pūles.

Tagad Tomass Mikolovs un pāris Google draugi Mauntinvjū ir izstrādājuši paņēmienu, kas automātiski ģenerē vārdnīcas un frāžu tabulas, kas pārvērš vienu valodu citā.



Jaunā tehnika nepaļaujas uz viena un tā paša dokumenta versijām dažādās valodās. Tā vietā tā izmanto datu ieguves metodes, lai modelētu vienas valodas struktūru un pēc tam to salīdzina ar citas valodas struktūru.

Šī metode sniedz maz pieņēmumu par valodām, tāpēc to var izmantot, lai paplašinātu un uzlabotu vārdnīcas un tulkošanas tabulas visiem valodu pāriem, viņi saka.

Jaunā pieeja ir samērā vienkārša. Tas balstās uz priekšstatu, ka katrai valodai ir jāapraksta līdzīga ideju kopa, tāpēc vārdiem, kas to dara, ir jābūt līdzīgiem. Piemēram, lielākajā daļā valodu būs vārdi tādiem izplatītiem dzīvniekiem kā kaķis, suns, govs un tā tālāk. Un šie vārdi, iespējams, tiek lietoti tādā pašā veidā teikumos, piemēram, kaķis ir dzīvnieks, kas ir mazāks par suni.



Tas pats attiecas uz skaitļiem. Augšējā attēlā ir parādīti skaitļu viens līdz pieci vektora attēlojumi angļu un spāņu valodā un parādīts, cik līdzīgi tie ir.

Tas ir svarīgs pavediens. Jaunais triks ir attēlot visu valodu, izmantojot attiecības starp tās vārdiem. Visu attiecību kopu, tā saukto valodas telpu, var uzskatīt par vektoru kopumu, kas katrs norāda no viena vārda uz otru. Un pēdējos gados valodnieki ir atklājuši, ka ar šiem vektoriem ir iespējams rīkoties matemātiski. Piemēram, operācija 'karalis' - 'vīrietis' + 'sieviete' rada vektoru, kas ir līdzīgs 'karalienei'.

Izrādās, ka dažādām valodām šajā vektoru telpā ir daudz līdzību. Tas nozīmē, ka vienas valodas pārvēršanas process citā ir līdzvērtīgs tādas transformācijas atrašanai, kas pārvērš vienu vektortelpu otrā.



Tas pārvērš tulkošanas problēmu no valodniecības par matemātiku. Tātad Google komandas problēma ir atrast veidu, kā precīzi kartēt vienu vektoru telpu uz otru. Šim nolūkam viņi izmanto nelielu bilingvālu vārdnīcu, ko sastādījuši cilvēku eksperti. Salīdzinot vienu un to pašu vārdu korpusu divās dažādās valodās, tiek iegūta gatava lineāra transformācija, kas palīdz.

Pēc šīs kartēšanas noteikšanas to ir vienkārši piemērot lielākām valodu telpām. Mikolovs un kolēģi saka, ka tas darbojas ļoti labi. Neskatoties uz vienkāršību, mūsu metode ir pārsteidzoši efektīva: mēs varam sasniegt gandrīz 90% precizitāti@5, tulkojot vārdus no angļu un spāņu valodas, viņi saka.

Šo metodi var izmantot, lai paplašinātu un pilnveidotu esošās vārdnīcas un pat atklātu tajās kļūdas. Patiešām, Google komanda dara tieši to ar angļu-čehu vārdnīcu, atrodot daudzas kļūdas.



Visbeidzot, komanda norāda, ka, tā kā paņēmienā ir maz pieņēmumu par pašām valodām, to var izmantot argotām, kas ir pilnīgi nesaistītas. Tātad, lai gan spāņu un angļu valodai ir kopīga indoeiropiešu vēsture, Mikolovs un viņa kolēģi parāda, ka jaunais paņēmiens tikpat labi darbojas arī valodu pāros, kas nav tik cieši saistīti, piemēram, angļu un vjetnamiešu valodā.

Tas ir noderīgs solis uz priekšu daudzvalodu saziņas nākotnei. Taču komanda saka, ka tas ir tikai sākums. Skaidrs, ka vēl ir daudz kas jāizpēta, viņi secina.

Atsauce: arxiv.org/abs/1309.4168 : valodu līdzību izmantošana mašīntulkošanai

paslēpties