Embedding (NLP) (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

Embedding (az angol embedding – „beágyazás" szóból) — a gépi tanulás és a természetes nyelvfeldolgozás területének egy alapvető technológiája, amely diszkrét vagy összetett objektumokat (például szavakat, mondatokat, képeket) rögzített dimenziójú numerikus vektoros reprezentációkká alakít át. Ezek a vektorok, azaz az embeddingek, egy többdimenziós térben helyezkednek el oly módon, hogy a szemantikailag hasonló objektumok közel kerüljenek egymáshoz.

Meghatározás és koncepció

Formálisan az embedding egy f:Xod leképezési függvény, ahol X az objektumok eredeti tere (például egy szótár), d pedig egy többdimenziós vektortér (az embedding-tér) d dimenzióval. A d dimenzió lényegesen kisebb, mint az eredeti tér dimenziója, ami ezeket a reprezentációkat sűrűvé (dense) teszi.

A szavak vektoros reprezentációinak elméleti alapját a disztribúciós szemantika adja, amely szerint egy szó jelentését a használat kontextusa határozza meg. Vagyis azok a szavak, amelyek hasonló kontextusokban fordulnak elő, hasonló jelentéssel bírnak, és következésképpen közeli vektoros reprezentációval rendelkeznek.

Az embeddingek alapelvei

  • Rögzített dimenzió: Minden objektum azonos hosszúságú vektorra képeződik le, függetlenül az eredeti adat méretétől (például a mondat hosszától).
  • Szemantikai közelség: A vektorok közötti távolság (amelyet gyakran koszinusz-hasonlósággal mérnek) tükrözi az eredeti objektumok szemantikai közelségét.
  • Matematikai műveletek támogatása: A vektorok megőrzik a szemantikai relációkat, ami lehetővé teszi algebrai műveletek elvégzését rajtuk. Klasszikus példa: Failed to parse (syntax error): {\displaystyle ext{вектор}( ext{«король»}) - ext{вектор}( ext{«мужчина»}) + ext{вектор}( ext{«женщина»}) \approx ext{вектор}( ext{«королева»})} .

Történet és fejlődés

Korai megközelítések (1980–2000-es évek)

A vektoros reprezentációk első elgondolásai az 1980-as években jelentek meg a neurális hálózatok kutatásának keretében. A korai módszerek a szavak együttes előfordulásának statisztikai elemzésén alapultak.

A Word2Vec korszaka (2013)

Forradalmi pillanatot jelentett a Word2Vec kifejlesztése a Google csapata által, Tomáš Mikolov vezetésével, 2013-ban. A Word2Vec két hatékony és számításilag olcsó architektúrát javasolt a szó-embeddingek tanítására:

  • CBOW (Continuous Bag of Words): A középső szót jósolja meg a körülötte lévő kontextus alapján.
  • Skip-gram: A kontextuális szavakat jósolja meg a középső szóból kiindulva.

A Word2Vec az első népszerű vektoros reprezentációs megvalósítás lett, nagyrészt a nyílt forráskódnak és a magas feldolgozási sebességnek köszönhetően.

Alternatív megközelítések fejlődése

A Word2Vec után más jelentős statikus embedding-modellek is megjelentek:

  • GloVe (2014): A Stanford Egyetemen fejlesztett modell, amely globális együttes előfordulási statisztikákat használ a vektorok tanításához.
  • FastText (2015): A Facebook modellje, amely figyelembe veszi a szavak morfológiáját azáltal, hogy minden szót az alkotó karakter n-gramok vektorainak összegeként reprezentál. Ez lehetővé teszi embeddingek létrehozását olyan szavakhoz is, amelyek nem szerepeltek a tanítószótárban (Out-of-Vocabulary szavak).

A transformer- és kontextuális embedding-korszak (2018–napjainkig)

Áttörést hozott a transformer architektúra és a BERT modell megjelenése (2018). Ez kontextuális embeddingek kialakulásához vezetett, ahol egy szó vektoros reprezentációja a használat kontextusától függ. A statikus reprezentációkkal ellentétben, ahol a „kulcs" szónak ugyanaz a vektora lenne a „zár kulcsa" és a „hegedűkulcs" mondatokban, a kontextuális modellek minden esethez különböző embeddinget generálnak.

Az embeddingek típusai

Reprezentációs szint szerint

  • Szó-embeddingek: Az alapvető típus, ahol minden szót külön vektor reprezentál (Word2Vec, GloVe).
  • Mondat- és dokumentum-embeddingek: Egész kifejezéseket, mondatokat vagy dokumentumokat egyetlen vektorral ábrázolnak (PV-DM, PV-DBOW).
  • Felhasználói és elem-embeddingek: Ajánlórendszerekben használják a felhasználók érdeklődésének és a termékek jellemzőinek reprezentálására.

Kontextualitás szerint

  • Statikus embeddingek: Minden szóhoz egyetlen rögzített vektor tartozik, kontextustól függetlenül (Word2Vec, GloVe, FastText).
  • Kontextuális embeddingek: Ugyanannak a szónak különböző reprezentációit generálják a környezetétől függően. Főbb képviselők:
    • BERT: Kétirányú transformer-alapú modell.
    • ELMo: Kétirányú LSTM-modell.
    • RoBERTa, DistilBERT, ALBERT: A BERT továbbfejlesztett változatai.

Modalitás szerint

  • Szöveges embeddingek: A legelterjedtebb típus, amely magában foglalja szavak, mondatok és dokumentumok reprezentációit.
  • Vizuális embeddingek: Képek reprezentációi számítógépes látással kapcsolatos feladatokhoz.
  • Multimodális embeddingek: Különböző adattípusokat (szöveg, kép, hang) egyetlen vektortérbe integrálnak. Példa erre az ImageBind, amely hat modalitás adatait képes összekapcsolni.

Architektúrák és tanítási módszerek

Klasszikus módszerek

  • One-hot kódolás: A legegyszerűbb módszer, ahol minden szót egy szótár méretű vektor kódol, amelynek megfelelő pozíciójában egyes áll. Hátrányai: magas ritkaság és szemantikai információ hiánya.
  • Mátrix-faktorizáció: Dimenziócsökkentési módszerek (például LSA), amelyeket szavak együttes előfordulási mátrixaira alkalmaznak.

Neurális hálózati architektúrák

  • Sekély neurális hálózatok: A Word2Vec CBOW és Skip-gram architektúrái kétrétegű neurális hálózatokat használnak a hatékony tanításhoz.
  • Transformerek: Az a architektúra, amely az attention mechanizmusnak köszönhetően forradalmasította a területet.

Modern megközelítések

  • Maszkolással végzett önfelügyelt tanulás: A BERT a maszolt szavak előrejelzésének feladatát használja kontextuális reprezentációk tanításához.
  • Kontraszt-alapú tanulás: Olyan módszerek, amelyek maximalizálják a szemantikailag közeli (pozitív) párok hasonlóságát, és minimalizálják a távolabbi (negatív) párok hasonlóságát.

Az embeddingek alkalmazásai

Az embeddingek számos területen széles körű alkalmazást találnak:

Természetes nyelvfeldolgozás

  • Keresés és információ-visszakeresés: A szemantikai keresés minőségének javítása, lehetővé téve dokumentumok tartalom szerinti – nem kulcsszó alapú – megtalálását.
  • Szövegosztályozás: A vektoros reprezentációk bemeneti adatként szolgálnak az osztályozók számára, növelve azok pontosságát.
  • Érzelemelemzés: Szövegek érzelmi tónusának meghatározása a kontextus figyelembevételével.
  • Gépi fordítás: A forrás- és célnyelv szemantikájának jobb megértése.

Ajánlórendszerek

A felhasználói és termék-embeddingek a személyre szabott ajánlórendszerek alapját képezik, beleértve:

  • Kollaboratív szűrés: a felhasználói viselkedés embeddingjein alapulva.
  • Tartalmi szűrés: a termékjellemzők embeddingjeit felhasználva.

Számítógépes látás

  • Képosztályozás és -keresés: Konvolúciós neurális hálózatok és Vision Transformerek kép-embeddinget hoznak létre képek osztályozásához és vizuálisan hasonló képek kereséséhez.

Bioinformatika és orvostudomány

  • Orvosi adatok elemzése: Klinikai feljegyzések és betegségdiagnosztika elemzése.
  • Molekuláris reprezentációk: Embeddingek létrehozása kémiai vegyületek tulajdonságainak előrejelzéséhez.

Technikai szempontok és optimalizálás

  • Dimenziópoptimalizálási módszerek: Matryoshka Representation Learning (MRL) — egy innovatív megközelítés, amely lehetővé teszi különböző dimenziójú embeddingek előállítását egyetlen modellből, a fontos információt a vektor elejére koncentrálva.
  • Embedding-kvantálás: A számábrázolás pontosságának csökkentése (például 8 vagy 4 bitre) a számítások gyorsítása és a memóriafelhasználás csökkentése érdekében.
  • Integráció adatbázisokkal: A modern vektoros adatbázisok (például Milvus, Pinecone) és a hagyományos adatbázis-kezelő rendszerek bővítményei (például pgvector a PostgreSQL-hez) lehetővé teszik az embeddingek hatékony tárolását és keresését.

Hivatkozások

  • Szavak vektoros reprezentációja — Wikipédia
  • Szavak vektoros reprezentációja — NEERC

Irodalom

  • 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.