Təbii dilin emalı - word2vec.

Unitar kod sözlərin vektorizasiyası üçün önəmli üsuldur. Bu üsulda vektorlar mətndəki sözlərin verilən ölçülü lüğətdəki yerinə, yəni intervalında indekslərə uyğun dəyərlərin yazılması ilə əldə edilir. Sözün lüğətdəki yeri -dirsə, həmin sözün ölçülü unitar kod vektorunda indeksinin dəyəri , digər bütün indekslər olacaqdır.

Bu üsul çox asan olsa da, bir çox halda əlverişli üsul deyildir. Ən önəmli problemlərdən biri unitar kod vektorlarlarının sözlər arasında bənzərliyi dəqiq ifadə edə bilməməsidir. Bu bənzərliyi ifadə etmək üçün istifadə olunan üsullardan biri kosinus oxşarlığıdır. Belə ki, iki vektor arasında bucağın kosinusu onlar arasında oxşarlığı ifadə edir. İxtiyari vektorları üçün olan kosinus bənzərliyi belə ifadə olunur:

Əgər unitar vektorların xüsusiyyətinə nəzər salsaq, görə bilərik ki, iki müxtəlif sözün vektorları hər zaman perpendikulyardır (). Deməli, iki müxtəlif sözün vektorları üçün kosinus oxşarlığı onların bir-birinə mənaca nə dərəcə yaxın və ya uzaq olmasından asılı olmayaraq hər zaman -a bərabərdir.

<!–break–>

Sözlər arasında məna və əlaqəni dəqiq ifadə etməməsi unitar vektorların bir çox NLP tapşırıqlarda istifadəsini əlverişsiz edir. Bu yazıda haqqında danışacağım Word2Vec bu problemi həll etmək üçün Mikolov et al., 2013 məqaləsində təklif edilmişdir. Bu üsulda hər bir söz təyin edilmiş ölçülü vektorla ifadə olunur və bu vektorlar sözlər arasında bənzərlikləri və əlaqələri daha geniş ehtiva edir. Word2Vec iki fərqli riyazi model təklif edir.

  • Skip-gram
  • Continuous bag of words (CBOW)

Biz yazının davamıda bu modellərə və onlar öyrətmə metodlarına baxacağıq.

Skip-gram

Model

Skip-gram modeldə token (mərkəzi söz) mətndə ətrafında olan tokenlərin (məzmun/qonşu sözlər) hansı sözlərə uyğun gəldiyini müəyyən etməkdə istifadə olunur. Gəlin bir nümunəyə nəzər yetirək:

Mətn: "O", "oxuduğu", "kitab", "haqqında", "danışırdı"
Mərkəzi söz: "kitab"
Məzmun sözlər: "O", "oxuduğu", "haqqında", "danışırdı"

Bu nümunədə “kitab” sözünün mətndəki məzmun sözləri kimi onun 2 token məsafəsindəki sözlər qəbul edilmişdir (soldakı qonşular - “O”, “oxuduğu”, sağdakı qonşular - “haqqında”, “danışırdı”). Bu məsafə dilçilikdə çərçivə (ing. window size) adlanır.

Skip-gram modelində bu asılılıq şərti ehtimalla ifadə olunur, belə ki verilmiş mərkəzi söz üçün mətndəki qonşu sözlərin işlənmə ehtimalı belədir: Verilmiş mərkəzi söz üçün məzmun sözlərin işlənməsi bir-birindən müstəqil hadisələr kimi qəbul edirik və buna görə də yuxarıdakı ifadəni belə ifadə bilərik:

Bu ehtimalları hesablamaq üçün skip-gram modeldə hər bir söz ölçülü iki fərqli vektorla ifadə olunur, belə ki, verilən lüğətdə indeksi olan söz mərkəzi söz olduqda vektoru ilə, məzmun söz olduqda isə, vektoru ilə ifadə olunur.

Gəlin, bizə lazım olan şərti ehtimalların necə ifadə edildiyinə baxaq. İxtiyari mərkəzi və məzmun sözləri və lüğəti üçün məzmun sözün işlənməsinin mərkəzi sözdən asılılığını ifadə edən şərti ehtimal iki sözün vektorlarının vektoral hasilinin softmax dəyəri ilə ifadə olunur.

Verilən ölçülü mətn üçün yuxarıdakı ifadəni ümumiləşdirmək üçün mətndəki hər bir mərkəzi sözün məzmun sözlərlə olan şərti ehtimalının birgə ehtimalını hesablamalıyıq. Burada hər bir mərkəzi sözə uyğun şərti ehtimalların digər mərkəzi sözlərdən asılı olmadığını qəbul etsək ( mərkəzi sözünə uyğun məzmun sözlərin -dan asılılığı hadisəsi və sözü üçün eyni hadisə müstəqil hadisələrdir), birgə ehimalı aşağıdakı kimi ifadə edə bilərik:

Öyrətmə

Digər maşın öyrənmə alqoritmlərində olduğu kimi bu modeldə də əsas məqsəd öyrətmə zamanı yuxarıda haqqında danışdığımız riyazi modelin nəticəsi olan birgə ehtimalın maksimallaşdırmasıdır. Bu anlayış öyrənmə nəzəriyyəsində maksimal mümkünlük adlanır. Bu mümkünlüyü öyrənmə alqoritmində işlədə bilmək üçün onu minimallaşdırma probleminə çevirməliyik. Loqarifmik funksiya monoton artan funksiya olduğu üçün, loqarifmik mümkünlük funksiyasının əksindən xəta funksiyası olaraq istifadə edə bilərik.

Xəta funsiyasının optimizasiyası üçün stoxastik nöqtəvi meyilli azalma alqoritmini istifadə edə bilərik. Bunun üçün hər iterasiyada verilən mətndən təsadüfi kiçik hissə seçib, nöqtəvi meyilləri hesablayaraq modelin parametrlərini yeniləyəcəyik. Burada ən önəmli əməliyyat loqarifmik şərti ehtimalın nöqtəvi meylinin hesablanmasıdır. İlk olaraq şərti ehtimalı xatırlayaq

Əgər yuxarıdakı ifadə üçün differensial tənliyi həll etsək, üçün nöqtəvi meyil belə olacaqdır.

Öyrətmədən sonra verilən lüğətdəki ixtiyari indeksindəki söz üçün iki fərqli vektor - əldə edirik. NLP tapşırıqlarında əsasən mərkəzi söz vektoru istifadə olunur.

Continuous Bag of Words(CBOW)

Model

word2vec üsulunda təklif olunan digər model isə CBOW modelidir. Bu modelin skip-gram ilə oxşarlıqları olsa da, ondan çox fundamental bir xüsusiyyətlə fərqlənir. Belə ki, skip-gramın əksinə bu modeldə mərkəz sözün işlənməsi məzmun sözlərə əsaslanır. Bu halda şərti ehtimalı belə ifadə edirik.

Çərçivəni qəbul etsək, verilən mərkəzi sözü üçün məzmun sözləri ilə ifadə edə bilərik. Bu modeldə məzmun sözlərin sayı çox olduğundan softmax dəyəri hesablayarkən mərkəzi sözə uyğun gələn vektorla məzmun sözlərin vektorlarının ədədi ortasından istifadə edəcəyik.

Deməli, verilən mərkəzi söz və məzmun sözlər üçün şərti ehtimal aşağıdakı kimi olacaqdır.

və ya, qısaca:

Yuxarıdakı ifadələrdən istifadə edərək modelin mümkünlük funksiyasını skip-gramda olduğu kimi müstəqil hadisələrin hasili ilə hesablamaq mümkündür:

Öyrətmə

CBOW modeli üçün öyrətmə metodu skip-gramdakı ilə demək olar ki, eynidir. Burada da yuxarıda hesabladığımız mümkünlük dəyərini maksimallaşdırmaq elə xəta funksiyasını minimallaşdırmağa ekvivalentdir.

Yuxarıda qeyd etdiyimiz şərti ehtimaldan istifadə etsək, mərkəzi sözü üçün loqarifmik şərti ehtimal belə olacaqdır:

Bu ehtimala əsasən differensial tənliyi həll etsək, məzmun sözlərin ixtiyari biri üçün nöqtəvi meyli aşağıdakı kimi hesablaya bilərik.

Skip-gram modelindən fərqli olaraq NLP tapşırıqlarda əsasən bu modelin məzmun söz vektorlarından istifadə olunur.

Nəticələr və yekun

word2vec modellərində öyrənmə zamanı yuxarıda da danışdığımız kimi yalnızca mətndən istifadə edilir, yəni verilən data işarələnməmişdir. Yəni sözlər arasında əlaqələr, məna yaxınlığı və ya uzaqlığı haqqında əvvəldən heç bir məlumata sahib olmuruq. Bununla belə, word2vec olduqca aydın və maraqlı nəticələr göstərir. Məsələn, elə müəlliflərin mövzu ilə əlaqəli digər məqaləsindən (Mikolov et al. 2013 ) ingilis dilli mətn əsasında yaradılmış 1000 ölçülü word2vec vektorlarının PCA alqoritmi ilə 2 ölçülü müstəvidə proyeksiyasına nəzər yetirək:

Aydın şəkildə görə bilərik ki, “dövlət-paytaxt” əlaqəsi ölkə və şəhər vektorları arasında, demək olar ki, eynidir.

Eyni məqalədən digər bir misala nəzər salaq. Aşağıdakı cədvəl iki sözün vektorlarının cəminə ən çox yaxın olan vektorların hansı sözlərə uyğun gəldiyini göstərir.

Bu misal ilə vektorlar üzərində edilən riyazi əməliyyatların necə effektiv olduğunu və modelin vektorların oxşarlıq əlaqələrini necə ehtiva etdiyini aydın görə bilərik.

word2vec vektorizasiya üsulunun digər üstün cəhətlərindən biri də böyük korpus əsasında öyrədilmiş vektorları formatında ikililərdən ibarət lüğət olaraq saxlayıb fərqli NLP tapşırıqlar üçün istifadə edə bilməyimizdir. Belə lüğətlərə NLP-də embedinqlər deyilir.

Embedinqlərin istifadəsi müasir NLP-nin və hal-hazırda ən önəmli maşın öyrənmə mövzularından olan transfer öyrənmənin əsasını təşkil edir. word2vec müasir embedinqlərin ilk nümunəsi hesab edilir və olduqca önəmli elmi araşdırma mövzularına ilham vermişdir. Hal-hazırda dərin öyrənmənin də sürətli inkişafı ilə çox effektiv nəticələr verən embedinqlər istifadə edilir. Növbəti mövzularda onlar haqqında danışmağa çalışacağam.

Oxuduğunuz üçün təşəkkürlər, salamat qalın!

Ədəbiyyat

April 10, 2020, Mammad Hajili