Embedding (NLP) (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

Embedding (z angl. embedding — „vložení") — je fundamentální technologie v oblasti strojového učení a zpracování přirozeného jazyka, která převádí diskrétní nebo složité objekty (jako jsou slova, věty, obrázky) na číselné vektorové reprezentace pevné dimenzionality. Tyto vektory, neboli embeddingy, jsou rozmístěny v mnohodimenzionálním prostoru tak, že sémanticky podobné objekty se nacházejí blízko sebe.

Definice a koncepce

Formálně je embedding funkcí zobrazení f:Xod, kde X — výchozí prostor objektů (například slovník slov) a d — mnohodimenzionální vektorový prostor (prostor embeddingů) s dimenzionalitou d. Dimenzionalita d je výrazně menší než dimenzionalita výchozího prostoru, což činí tato představení hustými (dense).

Teoretickým základem pro vektorové reprezentace slov je distribuční sémantika, která tvrdí, že význam slova je určen kontextem jeho použití. To znamená, že slova, která se vyskytují v podobných kontextech, mají podobné významy, a tedy i blízké vektorové reprezentace.

Základní principy embeddingů

  • Pevná dimenzionalita: Všechny objekty jsou zobrazeny do vektorů stejné délky, bez ohledu na velikost vstupních dat (například délku věty).
  • Sémantická blízkost: Vzdálenost mezi vektory (často měřená pomocí kosinové podobnosti) odráží sémantickou blízkost výchozích objektů.
  • Podpora matematických operací: Vektory uchovávají sémantické vztahy, což umožňuje provádět nad nimi algebraické operace. Klasický příklad: Failed to parse (syntax error): {\displaystyle ext{вектор}( ext{«король»}) - ext{вектор}( ext{«мужчина»}) + ext{вектор}( ext{«женщина»}) \approx ext{вектор}( ext{«королева»})} .

Historie a vývoj

Rané přístupy (1980–2000. léta)

První myšlenky vektorových reprezentací se objevily v 80. letech 20. století v rámci výzkumu neuronových sítí. Rané metody vycházely ze statistické analýzy společného výskytu slov.

Éra Word2Vec (2013)

Revoluční moment nastal s vývojem Word2Vec týmem Google pod vedením Tomáše Mikolova v roce 2013. Word2Vec navrhl dvě efektivní a výpočetně nenáročné architektury pro trénování embeddingů slov:

  • CBOW (Continuous Bag of Words): Předpovídá centrální slovo na základě okolního kontextu.
  • Skip-gram: Předpovídá kontextová slova podle centrálního slova.

Word2Vec se stal první populární implementací vektorových reprezentací, zejména díky otevřenému zdrojovému kódu a vysoké rychlosti zpracování.

Vývoj alternativních přístupů

Po Word2Vec se objevily i další významné modely statických embeddingů:

  • GloVe (2014): Model vyvinutý na Stanfordské univerzitě, který využívá globální statistiku společného výskytu slov pro trénování vektorů.
  • FastText (2015): Model od Facebooku, který zohledňuje morfologii slov tím, že každé slovo reprezentuje jako součet vektorů jeho n-gramů znaků. To umožňuje vytvářet embeddingy i pro slova, která nebyla v trénovacím slovníku (slova Out-of-Vocabulary).

Éra transformerů a kontextuálních embeddingů (2018–současnost)

Průlom nastal s příchodem architektury transformerů a modelu BERT (2018). To vedlo ke vzniku kontextuálních embeddingů, kde vektorová reprezentace slova závisí na kontextu jeho použití. Na rozdíl od statických reprezentací, kde by slovo „klíč" mělo stejný vektor ve větách „dveřní klíč" a „houslový klíč", kontextuální modely generují různé embeddingy pro každý případ.

Typy embeddingů

Podle úrovně reprezentace

  • Embeddingy slov: Základní typ, kde každé slovo je reprezentováno samostatným vektorem (Word2Vec, GloVe).
  • Embeddingy vět a dokumentů: Reprezentují celé fráze, věty nebo dokumenty jediným vektorem (PV-DM, PV-DBOW).
  • Embeddingy uživatelů a objektů: Používají se v doporučovacích systémech pro reprezentaci zájmů uživatelů a vlastností produktů.

Podle kontextuality

  • Statické embeddingy: Každému slovu je přiřazen jeden pevný vektor, bez ohledu na kontext (Word2Vec, GloVe, FastText).
  • Kontextuální embeddingy: Generují různé reprezentace pro totéž slovo v závislosti na jeho okolí. Hlavní představitelé:
    • BERT: Obousměrný model na základě transformerů.
    • ELMo: Obousměrný model LSTM.
    • RoBERTa, DistilBERT, ALBERT: Vylepšené varianty BERTu.

Podle modality

  • Textové embeddingy: Nejrozšířenější typ, zahrnující reprezentace slov, vět a dokumentů.
  • Vizuální embeddingy: Reprezentace obrázků pro úlohy počítačového vidění.
  • Multimodální embeddingy: Kombinují různé typy dat (text, obrázky, audio) do jednotného vektorového prostoru. Příkladem je ImageBind, který dokáže propojovat data ze šesti modalit.

Architektury a metody trénování

Klasické metody

  • One-hot kódování: Nejjednodušší metoda, kde každé slovo je kódováno vektorem o velikosti slovníku s jedničkou na odpovídající pozici. Nevýhody: vysoká řídkost a absence sémantické informace.
  • Maticová faktorizace: Metody snížení dimenzionality (například LSA) aplikované na matice společného výskytu slov.

Neuronové architektury

  • Mělké neuronové sítě: Architektury CBOW a Skip-gram ve Word2Vec používají dvouvrstvé neuronové sítě pro efektivní trénování.
  • Transformery: Architektura, která revolucionalizovala obor díky mechanismu pozornosti (attention).

Moderní přístupy

  • Samoučení s maskami: BERT využívá úlohu předpovídání maskovaných slov pro trénování kontextuálních reprezentací.
  • Kontrastivní učení: Metody, které maximalizují podobnost sémanticky blízkých (pozitivních) párů a minimalizují podobnost vzdálených (negativních) párů.

Použití embeddingů

Embeddingy nacházejí široké uplatnění v různých oblastech:

Zpracování přirozeného jazyka

  • Vyhledávání a informační retrieval: Zlepšení kvality sémantického vyhledávání, umožňující nacházet dokumenty podle významu, nikoli podle klíčových slov.
  • Klasifikace textů: Vektorové reprezentace slouží jako vstupní data pro klasifikátory a zvyšují jejich přesnost.
  • Analýza tonality: Určování emocionálního zabarvení textů s ohledem na kontext.
  • Strojový překlad: Zlepšení porozumění sémantice zdrojového a cílového jazyka.

Doporučovací systémy

Embeddingy uživatelů a produktů tvoří základ systémů personalizovaných doporučení, včetně:

  • Kolaborativní filtrování: na základě embeddingů uživatelského chování.
  • Obsahové filtrování: s využitím embeddingů vlastností produktů.

Počítačové vidění

  • Klasifikace a vyhledávání obrázků: Konvoluční neuronové sítě a Vision Transformers vytvářejí embeddingy obrázků pro jejich klasifikaci a vyhledávání vizuálně podobných.

Bioinformatika a medicína

  • Analýza medicínských dat: Analýza klinických záznamů a diagnostiky onemocnění.
  • Molekulární reprezentace: Vytváření embeddingů pro předpovídání vlastností chemických sloučenin.

Technické aspekty a optimalizace

  • Metody optimalizace dimenzionality: Matryoshka Representation Learning (MRL) — inovativní přístup umožňující získávat embeddingy různé dimenzionality z jednoho modelu, přičemž důležité informace jsou soustředěny na začátku vektoru.
  • Kvantizace embeddingů: Snížení přesnosti reprezentace čísel (například na 8 nebo 4 bity) pro urychlení výpočtů a úsporu paměti.
  • Integrace s databázemi: Moderní vektorové databáze (například Milvus, Pinecone) a rozšíření pro tradiční SŘBD (například pgvector pro PostgreSQL) umožňují efektivně ukládat a vyhledávat embeddingy.

Odkazy

  • Vektorová reprezentace slov — Wikipedie
  • Vektorová reprezentace slov — NEERC

Literatura

  • Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
  • Mikolov, T. et al. (2013). Distributed Representations of Words and Phrases and their Compositionality. arXiv:1310.4546.
  • Pennington, J.; Socher, R.; Manning, C. (2014). GloVe: Global Vectors for Word Representation. PDF.
  • Bojanowski, P. et al. (2017). Enriching Word Vectors with Subword Information. arXiv:1607.04606.
  • Joulin, A. et al. (2017). Bag of Tricks for Efficient Text Classification. arXiv:1607.01759.
  • Peters, M. E. et al. (2018). Deep Contextualized Word Representations. ACL Anthology.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Reimers, N.; Gurevych, I. (2019). Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. arXiv:1908.10084.
  • Kusupati, A. et al. (2022). Matryoshka Representation Learning. arXiv:2205.13147.
  • Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. PMLR 139.
  • Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR 2023.