Szemantikai nyelvi modellek

Befejeződött

Megjegyzés:

További részletekért tekintse meg a Szöveg és képek lapot!

Az NLP fejlődése következtében a tokenek szemantikai kapcsolatát beágyazó modellek betanítása erős mélytanulási nyelvi modellek megjelenéséhez vezetett. Ezeknek a modelleknek a középpontjában a nyelvi elemek vektorokként (többértékű számtömbök) való kódolása, más néven beágyazások, áll.

Ez a vektoralapú megközelítés a szöveg modellezéséhez olyan technikákkal vált általánossá, mint a Word2Vec és a GloVe, amelyekben a szöveg jogkivonatai sűrű vektorként jelennek meg több dimenzióval. A modell betanítása során a dimenzióértékek az egyes tokenek szemantikai jellemzőit tükrözik a betanítási szövegben való használatuk alapján. A vektorok közötti matematikai kapcsolatok ezután kihasználhatók a gyakori szövegelemzési feladatok hatékonyabb végrehajtásához, mint a régebbi, tisztán statisztikai technikák. Ennek a megközelítésnek egy újabb előrelépése az, hogy egy olyan technikát használunk, amit "attention"-nek nevezünk, hogy az egyes tokeneket kontextusban vegyük figyelembe, és kiszámítsuk a körülöttük lévő tokenek hatását. Az eredményül kapott környezetfüggő beágyazások, például a GPT modellcsaládban találhatóak, biztosítják a modern generatív AI alapját.

Szöveg vektorként való ábrázolása

A vektorok többdimenziós térben lévő pontokat jelölnek, amelyeket koordináták határoznak meg több tengely mentén. Minden vektor a forrás irányát és távolságát írja le. A szemantikailag hasonló tokéneknek olyan vektorokat kell eredményezniük, amelyek hasonló tájolásúak – más szóval hasonló irányba mutatnak.

Vegyük például a következő háromdimenziós beágyazásokat néhány gyakori szóhoz:

Word Vector
dog [0.8, 0.6, 0.1]
puppy [0.9, 0.7, 0.4]
cat [0.7, 0.5, 0.2]
kitten [0.8, 0.6, 0.5]
young [0.1, 0.1, 0.3]
ball [0.3, 0.9, 0.1]
tree [0.2, 0.1, 0.9]

Ezeket a vektorokat háromdimenziós térben vizualizálhatjuk az itt látható módon:

A szóvektorok térhatású vizualizációjának diagramja.

A vektorok "dog""cat" hasonlóak (mind a háziállatok, mind "puppy""kitten" a fiatal állatok). A "tree", "young" és ball" szavak eltérő vektoros tájolással rendelkeznek, ami tükrözi különböző szemantikai jelentésüket.

A vektorokban kódolt szemantikai jellemzők lehetővé teszik a szavak összehasonlítását és elemzési összehasonlítást lehetővé tevő vektoralapú műveletek használatát.

Mivel a vektorok tájolását a dimenzióértékek határozzák meg, a hasonló szemantikai jelentésű szavak általában hasonló tájolásúak. Ez azt jelenti, hogy olyan számításokat használhat, mint a vektorok közötti koszinusz-hasonlóság , hogy értelmes összehasonlításokat végezhessenek.

Ha például meg szeretné határozni a "páratlant" a kettő között "dog", "cat"és "tree", kiszámíthatja a vektorpárok közötti koszinuszos hasonlóságot. A koszinusz hasonlóságát a következőképpen számítjuk ki:

cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)

Hol A · B van a pont szorzata, és ||A|| az A vektor nagysága.

A három szó közötti hasonlóságok kiszámítása:

  • dog [0,8, 0,6, 0,1] és cat [0,7, 0,5, 0,2]:

    • Pont termék: (0,8 × 0,7) + (0,6 × 0,5) + (0,1 × 0,2) = 0,56 + 0,30 + 0,02 = 0,88
    • dog nagysága: √(0.8² + 0.6² + 0.1²) = √(0.64 + 0.36 + 0.01) = √1.01 ≈ 1.005
    • cat nagysága: √(0,7² + 0,5² + 0,2²) = √(0,49 + 0,25 + 0,04) = √0,78 ≈ 0,883
    • Koszinusz hasonlóság: 0,88 / (1,005 × 0,883) ≈ 0,992 (magas hasonlóság)
  • dog [0.8, 0.6, 0.1] és tree [0.2, 0.1, 0,9]:

    • Pont termék: (0,8 × 0,2) + (0,6 × 0,1) + (0,1 × 0,9) = 0,16 + 0,06 + 0,09 = 0,31
    • A tree vektor nagysága: √(0,2² + 0,1² + 0,9²) = √(0,04 + 0,01 + 0,81) = √0,86 ≈ 0,927
    • Koszinusz hasonlóság: 0,31 / (1,005 × 0,927) ≈ 0,333 (alacsony hasonlóság)
  • cat [0.7, 0.5, 0.2] és tree [0.2, 0.1, 0,9]:

    • Pont termék: (0,7 × 0,2) + (0,5 × 0,1) + (0,2 × 0,9) = 0,14 + 0,05 + 0,18 = 0,37
    • Koszinusz hasonlóság: 0,37 / (0,883 × 0,927) ≈ 0,452 (alacsony hasonlóság)

Kutya-, macska- és favektorokat ábrázoló koszinusz-hasonlósági vizualizáció diagramja.

Az eredmények azt mutatják, hogy "dog" és "cat" nagyon hasonlóak (0,992), míg "tree" kevésbé hasonlít mind "dog"-ra (0,333), mind "cat"-re (0,452). Ezért tree egyértelműen kilóg a sorból.

Vektorfordítás összeadással és kivonással

Új vektoralapú eredmények létrehozásához hozzáadhat vagy kivonhat vektorokat; amely ezután egyező vektorokkal rendelkező tokenek keresésére használható. Ez a technika lehetővé teszi az intuitív aritmetikai alapú logikát a nyelvi kapcsolatokon alapuló megfelelő kifejezések meghatározásához.

Például a korábbi vektorok használatával:

  • dog + young = [0,8, 0,6, 0,1] + [0,1, 0,1, 0,3] = [0,9, 0,7, 0,4] = puppy
  • cat + young = [0,7, 0,5, 0,2] + [0,1, 0,1, 0,3] = [0,8, 0,6, 0,5] = kitten

A vektorok hozzáadásának diagramja, amelyen a kutya + fiatal = kölyök és macska + fiatal = cica látható.

Ezek a műveletek azért működnek, mert a vektor "young" egy felnőtt állat szemantikai transzformációját kódolja a fiatal megfelelőjéhez.

Megjegyzés:

A gyakorlatban a vektor aritmetika ritkán hoz létre pontos egyezéseket; ehelyett arra a szóra keresne rá, amelynek a vektora a legközelebbi (leginkább hasonló) az eredményhez.

Az aritmetika fordítottan is működik:

  • puppy - young = [0,9, 0,7, 0,4] - [0,1, 0,1, 0,3] = [0,8, 0,6, 0,1] = dog
  • kitten - young = [0,8, 0,6, 0,5] - [0,1, 0,1, 0,3] = [0,7, 0,5, 0,2] = cat

Analóg érvelés

A vektoraritmetika analógiai kérdések megválaszolására is képes, például: "puppy úgy van dog-hez, mint kitten".

Ennek megoldásához számítsa ki a következőt: kitten - puppy + dog

  • [0.8, 0.6, 0.5] - [0.9, 0.7, 0.4] + [0.8, 0.6, 0.1]
  • = [-0,1, -0,1, 0,1] + [0,8, 0,6, 0,1]
  • = [0,7, 0,5, 0,2]
  • = cat

Ábra a vektor aritmetikai ábrázolása cica - kiskutya + kutya = macska.

Ezek a példák bemutatják, hogy a vektorműveletek hogyan képesek rögzíteni a nyelvi kapcsolatokat, és hogyan lehet érvelést végezni a szemantikai mintákról.

Szemantikai modellek használata szövegelemzéshez

A vektoralapú szemantikai modellek számos gyakori szövegelemzési feladathoz nyújtanak hatékony képességeket.

Szövegösszesítés

A szemantikai beágyazások lehetővé teszik a kivonatoló összegzést azáltal, hogy a mondatokat olyan vektorokkal azonosítják, amelyek a legreprezentálóbbak a teljes dokumentumra. Az egyes mondatok vektorként való kódolásával (gyakran az alkotó szavak beágyazásának átlagolásával vagy készletezésével) kiszámíthatja, hogy mely mondatok a legfontosabbak a dokumentum jelentésében. Ezek a központi mondatok kinyerhetők úgy, hogy a fő témákat rögzítő összegzést alkotjanak.

Kulcsszó kivonása

A vektoros hasonlóság az egyes szavak beágyazásának és a dokumentum általános szemantikai ábrázolásának összehasonlításával azonosíthatja a dokumentum legfontosabb kifejezéseit. Azok a szavak, amelyek vektorai leginkább a dokumentumvektorhoz hasonlítanak, vagy a dokumentum összes szóvektorának figyelembevételekor a legközpontibbak, valószínűleg a fő témákat képviselő kulcskifejezések.

Elnevezett entitásfelismerés

A szemantikai modellek úgy finomhangolhatók, hogy felismerjék a nevesített entitásokat (személyeket, szervezeteket, helyeket stb.) a hasonló entitástípusokat csoportosító vektorábrázolások tanulásával. A következtetés során a modell megvizsgálja az egyes tokenek embeddingjét és környezetét annak megállapítására, hogy képvisel-e egy elnevezett entitást, és ha igen, milyet.

Szövegbesorolás

Az olyan feladatok esetében, mint a hangulatelemzés vagy a témakör kategorizálása, a dokumentumok összesítő vektorként (például a dokumentumban lévő összes szóbeágyazás középértékének) jelölhetők. Ezek a dokumentumvektorok ezután használhatók a gépi tanulási osztályozók funkcióiként, vagy összehasonlíthatók közvetlenül az osztály prototípusvektoraival kategóriák hozzárendeléséhez. Mivel a szemantikailag hasonló dokumentumok hasonló vektoros tájolással rendelkeznek, ez a megközelítés hatékonyan csoportosítja a kapcsolódó tartalmakat, és megkülönbözteti a különböző kategóriákat.