A számítógépes szövegértelmezés matematikai alapjai az 1960-as évek vektortér-modelljeire nyúlnak vissza, de az igazi áttörést a mély neurális hálók alkalmazása hozta meg az elmúlt évtizedben. A mai NLP rendszerek rendkívül összetett, többmillió paraméteres modelleket alkalmaznak, amelyek képesek a szöveg jelentésének finomságait is visszaadni.

Szóbeágyazások t-SNE vizualizációja 19. századi irodalomból

Szóbeágyazások t-SNE vizualizációja 19. századi irodalmi szövegekből. A közel elhelyezkedő pontok szemantikailag hasonló szavakat jelölnek. Forrás: Wikimedia Commons (CC BY-SA 4.0).

Vektortér-modellek

A legkorábbi számítógépes szövegértelmezési módszerek a dokumentumokat számos dimenziós vektorokban ábrázolták, ahol minden dimenzió egy szónak felel meg, értéke pedig a szó előfordulásának mértékét tükrözi.

TF-IDF

A Term Frequency–Inverse Document Frequency (TF-IDF) az egyik legelterjedtebb klasszikus szövegreprezentációs módszer. Lényege, hogy egy szó fontosságát nem csak a dokumentumon belüli előfordulási gyakorisága (TF), hanem a dokumentumgyűjteményen belüli ritkaságának fordítottja (IDF) is befolyásolja.

TF(t, d) = (t előfordulásainak száma d-ben) / (d szavainak száma) IDF(t) = log(N / df(t)) ahol N = dokumentumok száma, df(t) = t-t tartalmazó dokumentumok száma TF-IDF(t, d) = TF(t, d) × IDF(t)

A TF-IDF jól működik szövegosztályozásra és keresésre, de nem képes megragadni a szavak közötti szemantikai kapcsolatokat — például azt, hogy az „autó" és a „jármű" rokon értelmű kifejezések.

Szóbeágyazások: Word2Vec

A Word2Vec (Mikolov et al., 2013, Google) módszer sűrű, alacsony dimenziós vektorokat — beágyazásokat — rendel minden szóhoz, amelyek a szavak közötti szemantikai kapcsolatokat kódolják. A kulcsgondolat: a hasonló kontextusban megjelenő szavaknak hasonló vektorokkal kell rendelkezniük.

A Word2Vec két architektúrával dolgozik:

  • CBOW (Continuous Bag of Words): A kontextusszavakból jósolja meg a célszót.
  • Skip-gram: A célszóból jósolja meg a kontextusszavakat.

A Word2Vec beágyazásokkal valóban elvégezhető a közismert vektoros „királyság − király + nő ≈ királynő" analógiaszámítás, ami azt mutatja, hogy a szemantikai kapcsolatok a vektortérben geometriailag is megjelennek.

A Word2Vec egyik korlátja, hogy minden szóhoz egyetlen statikus vektort rendel, függetlenül a kontextustól. A „bank" szó azonos vektort kap a „folyópart" és a „pénzintézet" értelmében is.

Kontextusfüggő reprezentációk

ELMo

Az ELMo (Embeddings from Language Models, Peters et al., 2018, AllenNLP) az első széles körben ismert kontextusfüggő beágyazási módszer. Mélyrétegű kétirányú LSTM-et alkalmaz, amelynek közbenső rétegei különböző szintű kontextuális információkat kódolnak.

BERT

A BERT (Bidirectional Encoder Representations from Transformers, Devlin et al., 2018, Google AI) az NLP terület egyik mérföldköve. Transformer kódolóra épül, és kétirányú kontextust vesz figyelembe — a szó előtt és után megjelenő szövegrészt egyaránt. A BERT előtanítása két feladaton alapul:

  • Masked Language Modeling (MLM): A szöveg szavainak véletlenszerű elfedése, és azok jóslása a kontextusból.
  • Next Sentence Prediction (NSP): Annak megítélése, hogy két mondat egymás után következik-e az eredeti szövegben.

A Transformer architektúra

A Transformer (Vaswani et al., 2017) az önfigyelmi mechanizmusra (self-attention) épül. Az önfigyelem lehetővé teszi, hogy a modell az egész bemeneti szekvencia bármely pozícióját figyelembe vegye, amikor egy adott token reprezentációját számítja — hatékonyan kezelve a hosszú távolságú függőségeket, amelyek az LSTM-ek számára nehézséget jelentetek.

Figyelmi mechanizmus (attention)

Az attention mechanizmus lényege, hogy a szöveg minden szava „rákérdezhet" a többi szóra, és az eredeti bemeneti szekvencia súlyozott kombinációját kapja vissza. Három vektort definiálunk:

Query (Q): mit keres a jelenlegi token? Key (K): mit kínálnak a többi tokenek? Value (V): milyen információt adnak át a tokenek? Attention(Q, K, V) = softmax(QK^T / √d_k) × V

A multi-head attention ennek párhuzamos, több „fejjel" futtatott változata, amely különböző típusú kapcsolatokat tud egyszerre kódolni.

Magyar nyelvű modellek

A magyar NLP közösség az elmúlt években több nyilvánosan elérhető modellt tett közzé:

  • HuBERT — a SZTAKI-HLT által fejlesztett magyar BERT modell, a Hugging Face-en elérhető (SZTAKI-HLT/hubert-base-cc).
  • NYTK-NerKor modellek — névelem-felismerésre és szövegcímkézésre finomhangolt változatok.
  • mBERT — a Google többnyelvű BERT modellje, amely 104 nyelvet kezel, köztük a magyart is, bár a specifikusan magyarral tanított modelleknél gyengébb teljesítménnyel.

Értékelési módszerek

Az NLP modellek teljesítményének mérésére több szabványos metrikát alkalmaznak:

  • Accuracy: A helyesen besorolt minták aránya. Kiegyensúlyozatlan adathalmazon félrevezető lehet.
  • F1-score: A pontosság (precision) és a teljesség (recall) harmonikus közepe. Kiegyensúlyozatlan osztályok esetén megbízhatóbb.
  • BLEU-score: Gépi fordítás értékelésére. Az automatikusan előállított fordítás és a referenciafordítás n-gram egyezését méri.
  • Perplexity: Nyelvmodellek értékelésére. Azt méri, mennyire „meglepő" a teszt szöveg a modell számára — alacsonyabb érték jobb modellt jelöl.

Összegzés

A szövegértelmezési algoritmusok fejlődése a statisztikai vektortér-modellektől a kontextusfüggő, milliárdos paraméteres Transformer modellekig tartott. Minden réteg — TF-IDF, Word2Vec, BERT — a ráépülő alkalmazási réteget is meghatározza: a módszer kiválasztása az adott feladat méretétől, az elérhető tanítóadatoktól és a számítási kapacitástól függ. Magyar nyelven a morfológiai sajátosságok kezelése az algoritmus kiválasztásának is részét képezi.

A cikkben hivatkozott modellek és eredmények nyilvánosan elérhető tudományos munkákon alapulnak. A kutatási terület gyorsan fejlődik; az aktuális eredményekhez javasolt a Papers with Code adatbázisának rendszeres követése.