Skip to content

7. Embeddingy

Definice

  • Embedding je způsob reprezentování dat v nějakém vyšším prostoru, který umožňuje lépe vyjádřit vlastnosti a vztahy mezi daty.
  • Embedding je reprezentace nízké dimenze, kterou lze převést zpět na data vyšší dimenze.
  • Embeddingy umožňují učit ML modely na datech jako slovní vektory, které jsou jinak velmi řídké.

Použiti

  • Natural language processing

Otázky

Bag of Words

  • Dokument reprezentován vektorem, kde každé slovo má svůj binární flag, který značí zda je slovo v dokumentu přítomné.

Count vector

  • Stejný jako Bag of Words ale místo binárního flagu je četnost slova.

TF-IDF

  1. Term Frequency (TF): Vyjadřuje, jak často se slovo vyskytuje v dokumentu. Obvykle se počítá jako poměr počtu výskytů slova v dokumentu a celkového počtu slov v dokumentu.
  2. Inverse Document Frequency (IDF): Vyjadřuje, jak vzácné je slovo v rámci celého korpusu dokumentů. Obvykle se počítá jako poměr celkového počtu dokumentů v korpusu a počtu dokumentů, ve kterých se slovo vyskytuje.
  3. TF-IDF se obvykle počítá jako součin TF a IDF

Jaký je princip word2vec?

Word2Vec

  • Embedding slov se vytvoří podobně jako u autoenkoderů. Slova se zakódují 1-hot encodingem na vstupu neuronové sítě, která pak vektory prožene bottleneckem a pak opět zvětšuje na velikost původního vstupu. Síť se tak má naučit reprezentaci slov v nižší dimenzi skrytých vrstev.
  • Sítě bývají mělké a zakódování má dimenzi v řádu několika stovek. Prostor je sestaven tak, že slova, která sdílí nějaký kontext, jsou v prostoru blízko sebe (cosinová vzdálenost).
  • Používá word subsampling k odstranění příliš častých slov z trénovací sady (stop words jako the, and,...). Velmi častá slova mají tedy větší pravděpodobnost, že ony a jejich kontext budou při trénování odstraněny.
  • Reprezentace je vylepšena s využitím kontextu slov, přičemž je možné použít jeden ze dvou přístupů – CBOW a Skip-gram.
  • Continuous Bag of Words (CBOW) určuje jaká slova definují použití specifického slova, tedy modeluje pravděpodobnost nějakého slova, za podmínky nějakých konkrétních slov v jeho okolí.
  • Skip-gram naopak modeluje pravděpodobnost typických slov použitých v kontextu nějakého konkrétního slova.
    • Používá hierarchicky soft-max

Jak pracuje FastText?

FastText

  • FastText je takové rozšíření, které přichází s myšlenkou zakódování sub-slovních struktur.
  • Každé slovo je bag of n-grams. Začátek a konec slova je značen speciálními znaky.
  • Mějme slovo: where
    • Prvni pridame oddelujiuci znaky: ¡where¿
    • 3-gram reprezentace: ¡wh, whe, her, ere, re¿
  • FastText se učí reprezentace pro všechny n-gramy i kompletní slova.
  • Při trénování se update vah projevuje ve všech vektorech n-gamů, které ovlivnily výstupní slovo.
  • Výhodou je, že model pak může narazit na slovo co nezná, ale podle nějakého jeho n-gramu bude schopen určit jeho kontext (např. bude obsahovat známý kontext).
  • N-gramy se hashují aby se daly rychleji hledat a aby jejich počet byl omezený.
  • Opět to funguje tak, že n-gramy podobného kontextu a slova jsou v prostoru blíže.
  • Lze použít pro klasifikaci dokumentů, kde se celý dokument zakóduje do n-gramů, vektory se zprůměrují a klasifikace se provede na základě průměrných embeddingů.

Jaké jsou rozdíly GloVe oproti Word2vec a FastText?

GloVe

  • GloVe využívá globálních statistik z celého dokumentu a modeluje pravděpodobnost současného výskytu dvou slov.
  • Modeluje co-occurance matici dvojic slov, tedy pravděpodobnost jejich současného výskytu, jelikož předpokládá, že slova co často spadají do stejného kontextu budou mít sémantickou podobnost.
  • Count-based alternativa Word2Vec a FastText, které embedding vytvářejí neuronovou sítí na základě lokálního kontextu.

Co to je graf embedding a na co je dobrý?

Graph Embedding

  • Graph embeddings jsou metody pro reprezentování grafů v nějakém nižším nebo vyšším prostoru, které umožňují lépe vyjádřit vztahy mezi vrcholy nebo hrany grafu.
  • Graph embeddings se často používají pro úlohy, jako je klasifikace grafů, predikce vztahů mezi vrcholy nebo detekce anomálií v grafech.
  • Předkládat ML modelům graf je složité, je otázkou jak ten graf reprezentovat. Matice sousedů není na reprezentaci vhodná, je příliš velká a neobsahuje hodnoty uzlů.
  • Graph embdedings se tento problém pokouší řešit tím, že se vrcholy nebo celý graf embeddují do vektorového prostoru.
  • Node embedding - každý vrchol je převeden na vektor, což může být vhodné pro node-level ML úkoly (node classification, link prediction).
  • Graph embedding - celý graf je převeden na vektor, což se hodí na graph-level problémy (klasifikace grafů – popsání grafu nějakou charakteristikou, graph clustering, community detection).
  • DeepWalk - používá náhodné procházky po okolí vrcholů a sekvenci vrcholů reprezentuje jako sekvenci slov, na které používá Word2Vec.