Vnoření slov
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
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
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
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 | 1 600 kg | 200 km/h | 4 |
plachetnice | 1 500 kg | 18 km/h | 0 |
vysokozdvižný vozík | 2000 kg | 14 km/h | 4 |
Vizualizace
Normalizovaná data
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
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
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í
Statistické metody
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
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
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í
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
- Brownovo klastrování
Reference
V tomto článku byl použit překlad textu z článku Word embedding na anglické Wikipedii.
- Lebret, Rémi; Collobert, Ronan (2013).
- Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado, Greg; Dean, Jeffrey (2013).
- 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. (anglicky)
- 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. (anglicky)