Vnoření slov (anglicky word embedding) je způsob číselné reprezentace slov používaný v počítačovém zpracování přirozeného jazyka. Spočívá v převedení slov na vektory (nebo ekvivalentně body) v mnoharozměrném prostoru tak, aby se slova s podobnými vlastnostmi nacházela blízko sebe. Přístup je možné zobecnit i pro slovní spojení či celé věty a dokumenty.

Motivace editovat

Obraz i zvuk je při počítačovém zpracování možné přirozeným způsobem zobrazit do spojitého prostoru (prostoru nad reálnými čísly) – v případě zvuku jde o jednorozměrný popis průběhu signálu (viz digitální audio), v případě obrazu o dvourozměrný popis barev jednotlivých pixelů (viz rastrová grafika).

Pro reprezentaci slov se však ve zpracování přirozeného jazyka tradičně užívá kód 1 z n (prakticky přiřazení náhodných identifikačních čísel), který z principu vytváří velmi řídce obsazené prostory s vysokým počtem dimenzí. To je z mnoha důvodů nepraktické – data jsou prostorově náročná (velikost je lineární vzhledem k velikosti slovníku) a reprezentace nijak nezachycuje vztahy mezi slovy (synonymie, nadřazené a podřazené pojmy a podobně).

Je tedy žádoucí převést všechna slova do spojitého prostoru pevně dané dimenze, která nebude závislá na velikosti slovníku. Jinak řečeno, cílem je převést slova na vektory reálných čísel o pevné délce.

Příklad editovat

Následující příklad pouze ilustruje způsob, jakým mohou být slova převedena na posloupnosti čísel. U skutečně používaných vnoření není zjistitelné, co jednotlivé rozměry znamenají.

Data editovat

Dopravní prostředek Hmotnost Maximální rychlost Počet kol
čtyřkolka 340 kg 90 km/h 4
horské kolo 13,5 kg 50 km/h 2
motocykl 350 kg 170 km/h 2
motorový člun 520 kg 45 km/h 0
osobní automobil 1600 kg 200 km/h 4
plachetnice 1500 kg 18 km/h 0
vysokozdvižný vozík 2000 kg 14 km/h 4

Vizualizace editovat

 

Normalizovaná data editovat

Hodnoty jsou upraveny do rozmezí 0–1, kde 1 představuje 100 %.

Dopravní prostředek Hmotnost Maximální rychlost Počet kol
čtyřkolka 0,170 0,450 1,000
horské kolo 0,007 0,250 0,500
motocykl 0,175 0,850 0,500
motorový člun 0,260 0,225 0,000
osobní automobil 0,800 1,000 1,000
plachetnice 0,750 0,090 0,000
vysokozdvižný vozík 1,000 0,070 1,000

Vizualizace editovat

 

Všechny dopravní prostředky jsou nyní reprezentované vektorem z prostoru  , například čtyřkolku popisuje vektor  .

Tabulka euklidovských vzdáleností objektů:

čtyřkolka horské kolo motocykl mot. člun automobil plachetnice vz. vozík
čtyřkolka 0,000 0,563 0,640 1,029 0,836 1,211 0,913
horské kolo 0,563 0,000 0,623 0,561 1,201 0,910 1,126
motocykl 0,640 0,623 0,000 0,805 0,814 1,076 1,241
mot. člun 1,029 0,561 0,805 0,000 1,376 0,508 1,254
automobil 0,836 1,201 0,814 1,376 0,000 1,353 0,951
plachetnice 1,211 0,910 1,076 0,508 1,353 0,000 1,031
vz. vozík 0,913 1,126 1,241 1,254 0,951 1,031 0,000

Nejbližšími dvojicemi v tomto modelu jsou motorový člun – plachetnice, horské kolo – motorový člun a čtyřkolka – horské kolo. Naopak nejvzdálenější dvojicí je motorový člun – osobní automobil.

Skutečné reprezentace editovat

V praxi se používají vektory nad reálnými čísly o desítkách až stovkách rozměrů. Vnoření jsou vytvářena automaticky, často s použitím strojového učení, a význam jednotlivých rozměrů není interpretovatelný. Vektory mají význam jen ve vztahu k ostatním vektorům, samostatně ne.

Způsoby výpočtu vnoření editovat

Statistické metody editovat

Tyto metody vycházejí z frekvencí kovýskytů slov (současného výskytu dvou slov v jednom kontextu). Frekvence jsou zaneseny do matice, jejíž dimenze je následně redukována. Příkladem takových redukcí jsou latentní sémantická analýza (LSA), analýza hlavních komponent (PCA)[1] nebo nástroj GloVe.

Prediktivní metody editovat

Tyto metody pracují iterativně. Každému slovu je obvykle na počátku přiřazen náhodný vektor a poté jsou reprezentace postupně upravovány tak, aby dosáhly požadovaných vlastností. V každém kroku se porovnává upravované vnoření s vnořeními slov v konkrétním kontextu.

Word2vec editovat

Nástroj Word2vec vyvinutý pod vedením Tomáše Mikolova[2] přinesl významné zefektivnění učení a přispěl k rozšíření techniky vnořování. Reprezentace získané tímto nástrojem umožňují používat vektorovou aritmetiku, tedy provádět s reprezentacemi slov matematické operace. Například výsledek operace   se nachází blízko vektoru  . Tyto vztahy jsou jazykově nezávislé.

Word2vec nabízí dva algoritmy. Algoritmus CBOW (continuous bag-of-words) iterativně prochází slova na vstupu pomocí pohyblivého okénka a snaží se odhadnout aktuální slovo na základě slov okolních. Pořadí slov v kontextu není zohledňováno, odtud také název odkazující k tradičnímu balíku slov.

Pokud bychom například měli větu „když jsem já sloužil to první léto“ a okénko velikosti pět slov, budou se postupně učit tyto vztahy:

  • První iterace:  
  • Druhá iterace:  

Druhým podporovaným algoritmem je skip-gram. Ten stejně jako CBOW využívá pohyblivé okénko, odhad ale probíhá v opačném směru – algoritmus se učí předvídat kontext na základě aktuálního slova.

Implementaci obou algoritmů obsahují také nástroje Deeplearning4j a Gensim.

Využití vnoření editovat

Použití vnoření slov namísto slov samotných, případně společně s nimi, zlepšuje výsledky dalších navazujících úloh, jako jsou analýza sentimentu[3], syntaktická analýza[4] nebo strojový překlad.

Související články editovat

Reference editovat

V tomto článku byl použit překlad textu z článku Word embedding na anglické Wikipedii.

  1. Lebret, Rémi; Collobert, Ronan (2013).
  2. Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado, Greg; Dean, Jeffrey (2013).
  3. SOCHER, Richard; PERELYGIN, Alex; WU, Jean; CHUANG, Jason; MANNING, Chris; NG, Andrew; POTTS, Chris. Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank. Conference on Empirical Methods in Natural Language Processing. Dostupné online. 
  4. SOCHER, Richard; BAUER, John; MANNING, Christopher; NG, Andrew. Parsing with compositional vector grammars. Proceedings of the ACL conference. 2013. Dostupné v archivu pořízeném dne 2016-08-11.