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ředekHmotnostMaximální rychlostPočet kol
čtyřkolka340 kg90 km/h4
horské kolo13,5 kg50 km/h2
motocykl350 kg170 km/h2
motorový člun520 kg45 km/h0
osobní automobil1600 kg200 km/h4
plachetnice1500 kg18 km/h0
vysokozdvižný vozík2000 kg14 km/h4

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ředekHmotnostMaximální rychlostPočet kol
čtyřkolka0,1700,4501,000
horské kolo0,0070,2500,500
motocykl0,1750,8500,500
motorový člun0,2600,2250,000
osobní automobil0,8001,0001,000
plachetnice0,7500,0900,000
vysokozdvižný vozík1,0000,0701,000

Vizualizace

Vektorová reprezentace dopravních prostředků, normalizováno.

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

Tabulka euklidovských vzdáleností objektů:

čtyřkolkahorské kolomotocyklmot. člunautomobilplachetnicevz. vozík
čtyřkolka0,0000,5630,6401,0290,8361,2110,913
horské kolo0,5630,0000,6230,5611,2010,9101,126
motocykl0,6400,6230,0000,8050,8141,0761,241
mot. člun1,0290,5610,8050,0001,3760,5081,254
automobil0,8361,2010,8141,3760,0001,3530,951
plachetnice1,2110,9101,0760,5081,3530,0001,031
vz. vozík0,9131,1261,2411,2540,9511,0310,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.

  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. (anglicky) 
  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. (anglicky) 

Média použitá na této stránce

Vector representation of vehicles non normalized cs.svg
Autor: Josef Plch, Licence: CC0
Vektorová reprezentace dopravních prostředků, nenormalizováno.
Vector representation of vehicles normalized cs.svg
Autor: Josef Plch, Licence: CC0
Vektorová reprezentace dopravních prostředků, normalizováno.