AI kezdőknek · Természetes nyelvfeldolgozás · Lecke 15

Nyelvi modellezés. Saját szóbeágyazások tanítása

Ez a lecke a Microsoft "AI kezdőknek" (AI For Beginners) tananyagának magyar adaptációja, és azt mutatja meg, hogyan lehet magukat a szóbeágyazásokat betanítani, nem csak felhasználni egy kész változatukat.

Vissza a tananyaghoz


A nyelvi modellezés alapötlete

A Word2Vec és a GloVe típusú szemantikus szóbeágyazások valójában az első lépést jelentik egy nagyobb cél felé, amit nyelvi modellezésnek hívunk. A nyelvi modell olyan rendszer, amely valamilyen formában megérti, illetve reprezentálja a nyelv belső szerkezetét, nem csak egyedi szavak jelentését.

A nyelvi modellezés mögötti fő ötlet, hogy a modelleket felcímkézetlen szövegen tanítjuk, felügyelet nélküli módon. Ez azért különösen hasznos, mert felcímkézetlen szövegből rengeteg áll rendelkezésre, míg a kézzel felcímkézett adat mennyisége mindig korlátos, hiszen az emberi munka ráfordítása szab neki határt. A leggyakoribb megközelítés, hogy a modellt arra tanítjuk, hogy a szövegben hiányzó szavakat jósolja meg, mivel egy szó véletlenszerű kitakarása és utólagos "kitalálása" könnyen előállítható tanítási feladat.


Miért érdemes saját beágyazást tanítani

A korábbi leckékben előre betanított szemantikus beágyazásokat használtunk, vagyis olyan modelleket, amelyeket valaki más már megtanított egy nagy, általános szövegkorpuszon. Érdemes viszont tudni, hogy ezek a beágyazások pontosan hogyan jönnek létre, mert ez az ismeret felszabadít egy fontos lehetőséget. Ha egy adott szakterület nyelvezete jelentősen eltér az általános nyelvhasználattól, akár orvosi, jogi vagy egy iparágra jellemző zsargonról van szó, saját beágyazást is taníthatunk kifejezetten arra a szövegkorpuszra.

Egy ilyen, szakterületre szabott beágyazás sokkal pontosabban ragadja meg a benne szereplő szavak közti valódi kapcsolatokat, mint egy általános célú, internetes szövegen tanított modell, hiszen az adott terület saját szóhasználatát és fogalmi viszonyait tükrözi.


N-gram nyelvi modellezés

Az egyik legegyszerűbb megközelítés az N-gram nyelvi modellezés, amelyben egy adott token, vagyis szó vagy szótöredék valószínűségét az előtte álló N darab token alapján jósoljuk meg. A modell tehát a szövegkörnyezetet mindig csak visszafelé, egy rögzített hosszúságú ablakon keresztül nézi, és ebből tanulja meg, hogy egy adott szósorozat után statisztikailag melyik szó a legvalószínűbb folytatás.


Folytonos szózsák és Skip-gram

A szóbeágyazások tanításának két klasszikus, egymással rokon módszere a folytonos szózsák, angol nevén Continuous Bag-of-Words vagy röviden CBoW, és ennek fordítottja, a Skip-gram.

Mindkét módszer lényege, hogy a modell tanítás közben egy rejtett vektorreprezentációt épít fel minden egyes szóhoz, és ezek a vektorok lesznek végül a beágyazások. Azok a szavak, amelyek hasonló szövegkörnyezetekben fordulnak elő, egymáshoz közeli vektorokat kapnak, így a modell megtanulja megragadni a szavak közti szemantikai hasonlóságot, anélkül hogy bárki explicit módon megmondta volna neki, mit jelentenek.


Miért nem bonyolult a beágyazások tanítása

Az előző lecke azt mutatta meg, hogy a kész szóbeágyazások szinte varázslatosan jól működnek, hiszen néhány egyszerű vektorművelettel is értelmes szemantikai kapcsolatokat lehet velük kifejezni. Ez a lecke azonban azt is megvilágítja, hogy a beágyazások betanítása maga nem egy rendkívül bonyolult feladat. Ha valaki egy adott szakterületre optimalizált, pontosabb reprezentációra vágyik, a szükséges módszerek, mint az N-gram, a CBoW vagy a Skip-gram, viszonylag egyszerűen megvalósíthatók, és saját szövegkorpuszon is taníthatók.


Gyakorlati kód. A CBoW modell PyTorch alapú betanítását bemutató jegyzetfüzet elérhető a Microsoft eredeti tananyagában. Megnyitás GitHubon.


Forrás

Ez a lecke a Microsoft nyílt forráskódú, MIT licenc alatt elérhető "AI For Beginners" tananyagának magyar adaptációja. Eredeti angol lecke. GitHub. Felhasznált magyar gépi fordítás. GitHub.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →