Vnoření slov
Author
Albert FloresVnoř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 | 1600 kg | 200 km/h | 4 |
plachetnice | 1500 kg | 18 km/h | 0 |
vysokozdvižný vozík | 2000 kg | 14 km/h | 4 |
Vizualizace
Vektorová reprezentace dopravních prostředků, nenormalizováno.
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
Vektorová reprezentace dopravních prostředků, normalizováno.
Všechny dopravní prostředky jsou nyní reprezentované vektorem z prostoru \mathbb{R}^3, například čtyřkolku popisuje vektor (0{,}17; 0{,}45; 1).
Tabulka euklidovských vzdáleností objektů:
čtyřkolka | horské kolo | motocykl | mot. člun | automobil | plachetnice | vz. +more 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.
Important
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ý. +more 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. +more Příkladem takových redukcí jsou latentní sémantická analýza (LSA), analýza hlavních komponent (PCA) 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í. +more 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 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. +more Například výsledek operace V_{otec} - V_{mu\check{z}} + V_{\check{z}ena} se nachází blízko vektoru V_{matka}. 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. +more 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: \{V_{kdy\check{z}}, V_{jsem}, V_{slou\check{z}il}, V_{to}\} \to V_{j\acute{a}} * Druhá iterace: \{V_{jsem}, V_{j\acute{a}}, V_{to}, V_{prvni}\} \to V_{slou\check{z}il}
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, syntaktická analýza nebo strojový překlad.