Chapter 1. NLP: A Primer
Bu gündən etibarən, aşağıda şəklini yerləşdirdiyim kitabın hər bölməsini azərbaycan dilində izah edərək məqalə şəklində paylaşacam.
O zaman başlayaq…🚀
İlk olaraq, kitab haqqında ümumi məlumat verim: Sensible Pure Language Processing actual dünyada NLP sistemlərinin yaradılmasına dair ətraflı və praktiki məlumat təqdim edir. Bu kitab mətn analizi, dərin öyrənmə və dil modelləri kimi əsas NLP anlayışlarını izah edərək, tətbiqi nümunələr və sənaye səviyyəsində həllər təqdim edir.
İndi isə gəlin ilk bölmə haqqında danışaq — NLP: İlkin Giriş
Siz yəqin ki, Amazon Alexa, Google House və ya Apple Siri kimi ağıllı köməkçilərdən (assistants) oxşar işləri yerinə yetirmək üçün istifadə etmisiniz. Biz bu köməkçilərlə proqramlaşdırma dili ilə deyil, təbii dilimizdə — insanların bir-biri ilə ünsiyyət qurduğu dildə danışırıq. Lakin kompüterlər yalnız 0 və 1-lərdən ibarət olan ikili formatda məlumat emal edə bilirlər. Dil məlumatlarını ikili formatda təqdim edə bilsək də, kompüterlərə dilimizi anlamağı necə öyrədə bilərik? Məhz burada təbii dilin emalı (NLP) dövrəyə girir. NLP, insan dilini təhlil etmək, modelləşdirmək və anlamaq üçün istifadə olunur.
Actual Dünyada NLP, gündəlik həyatımızda istifadə etdiyimiz bir çox proqram təminatının vacib bir hissəsidir.
Əsas tətbiq sahələri:
- E-poçt platformaları — Gmail, Outlook və digər e-poçt xidmətləri spam filtrləmə, prioritet qutusu (precedence inbox), təqvim hadisələrinin çıxarılması, avtomatik tamamlanma kimi funksiyaları təmin etmək üçün geniş şəkildə NLP-dən istifadə edirlər.
- Səs əsaslı köməkçilər (Voice-based assistants) — Apple Siri, Google Assistant, Microsoft Cortana və Amazon Alexa kimi assistantlar istifadəçilərlə qarşılıqlı əlaqə qurmaq, komandaları başa düşmək və müvafiq cavablar vermək üçün müxtəlif NLP texnikalarına güvənirlər.
- Müasir axtarış sistemləri (serps) — Google və Bing kimi internetin təməl daşları olan axtarış sistemləri NLP-dən sual-cavab, informasiya axtarışı, sorğunu genişləndirmə, nəticələrin sıralanması və qruplaşdırılması kimi müxtəlif alt tapşırıqlar üçün istifadə edirlər.
- Maşın tərcümə xidmətləri — Google Translate, Bing Microsoft Translator və Amazon Translate kimi xidmətlər bu gün müxtəlif ssenarilər və biznes case’lər üçün geniş şəkildə istifadə olunur. Bu xidmətlər NLP-nin birbaşa tətbiqlərindən biridir.
Və bu siyahı daha da genişləndirilə bilər.
💡Bəs, ümumiyyətlə “Dil” nədir ?
NLP-ni öyrənmək üçün ilk növbədə dilin necə qurulduğu barədə bəzi anlayışlarını anlamaq vacibdir. Dil — simvollardan, sözlərdən, cümlələrdən və digər tərkib hissələrindən ibarət olan mürəkkəb kombinasiyalara əsaslanan strukturlaşdırılmış ünsiyyət sistemidir.
İnsan dilini dörd əsas qurucu elementdən ibarət kimi təsəvvür edə bilərik:
- Fonemlər — Dilin ən kiçik səs vahidləri
- Morfemlər və leksik vahidlər — Sözlər və onların mənalı hissələri
- Sintaksis — Sözlərin və cümlələrin quruluş qaydaları
- Kontekst — Söz və cümlələrin mənasının müəyyən edildiyi ümumi məna çərçivəsi
Hər bir səviyyə müxtəlif NLP tətbiqlərində istifadə olunur:
- Fonemlər dilin ən kiçik səs vahidləridir. Onlar təkbaşına heç bir mənaya malik olmaya bilər, lakin digər fonemlərlə birləşdikdə mənalar yarada bilərlər. Fonemlər xüsusilə nitqin anlaşılması ilə bağlı tətbiqlərdə, məsələn, nitqin tanınması, nitqdən (səsdən) mətnə çevrilmə və mətnin səsə çevrilməsi kimi sahələrdə mühüm rol oynayır.
- Morfem mənaya malik olan dilin ən kiçik vahididir və fonemlərin birləşməsindən əmələ gəlir. Bütün morfemlər söz olmasa da, bütün prefikslər və suffikslər morfem hesab olunur. Məsələn, “multimedia” sözündə “multi-” təkbaşına söz deyil, lakin “media” ilə birləşdikdə mənanı dəyişən prefiksdir. Bu səbəbdən “multi-” bir morfemdir.
Leksik vahidlər (leksiklər) isə bir-biri ilə mənaca bağlı olan morfemlərin struktur variasiyalarıdır. Məsələn, “getmək” və “gedir” eyni leksik forma daxilindədir.
Morfoloji analiz, sözlərin strukturunu onların morfem və leksik vahidlərinə görə öyrənən bir sahədir və bir çox NLP tapşırıqları üçün əsas rol oynayır. Bu tapşırıqlara tokenizasiya (tokenization), kök forma çıxarışı (stemming), söz vektorlarının öyrədilməsi (phrase embeddings) və nitq hissələrinin təyini (POS tagging) kimi proseslər daxildir. - Sintaksis dilin sözlər və ifadələr əsasında qrammatik cəhətdən düzgün cümlələr qurulmasını təmin edən qaydalar toplusudur. NLP tətbiqlərinə misal olaraq, sintaktik analiz (parsing), obyektlərin çıxarılması (entity extraction), əlaqələrin çıxarılması (relation extraction)
- Kontekst, dilin müxtəlif hissələrinin bir araya gələrək müəyyən bir mənanı ifadə etmə tərzidir. Kontekst yalnız sözlərin və ifadələrin birbaşa mənasını deyil, həm də uzunmüddətli istinadlar, dünya biliyi və ümumi məntiqi özündə birləşdirir. Bir cümlənin mənası kontekstdən asılı olaraq dəyişə bilər, çünki bəzi sözlər və ifadələr bir neçə fərqli mənaya malik ola bilər.
💡Machine Studying və ya Deep Studying ?
Actual dünya NLP layihələrində tez-tez yarımnəzarətli öyrənmə (semi-supervised studying) yanaşmasına rast gəlinir. Bu halda, kiçik həcmdə label olunmuş məlumat dəsti və böyük həcmdə label olunmamış məlumat dəsti mövcuddur. Yarımnəzarətli öyrənmə texnikaları hər iki məlumat dəstindən istifadə edərək verilmiş tapşırığı öyrənməyi hədəfləyir.
NLP problemlərini həll etmək üçün istifadə olunan yanaşmalar ümumiyyətlə üç kateqoriyaya bölünür: heuristik metodlar, maşın öyrənməsi və dərin öyrənmə.
🔍Heuristik metodlar
Digər ilkin süni intellekt sistemlərinə bənzər olaraq, NLP sistemlərinin ilkin dizayn cəhdləri müəyyən tapşırıqlar üçün qaydalar yaratmağa əsaslanırdı. Bu yanaşma, proqramda tətbiq edilə bilən qaydalar formalaşdırmaq üçün müəyyən sahə üzrə ekspert biliklərinin olmasını tələb edirdi. Belə sistemlər həmçinin lüğətlər (dictionaries) və sinonim lüğətləri (thesauruses) kimi resurslara ehtiyac duyurdu. Bu resurslar zamanla tərtib edilərək rəqəmsallaşdırılırdı. Leksikon əsaslı duyğu analizi (lexicon-based sentiment evaluation) belə qaydalara əsaslanan NLP həllərinə misal ola bilər. Bu metod mətn daxilində müsbət və mənfi sözlərin sayını hesablayaraq, mətnin ümumi duyğusunu təyin etməyə çalışır.
Müntəzəm ifadələr (Regex) qayda əsaslı (rule-base) sistemlər qurmaq üçün çox populyar bir yanaşmadır. Regexlər, mətnlərdə müəyyən nümunələri tanımaq və çıxarmaq üçün istifadə olunur:
# E-poçt ünvanlarını tapan nümunə regex ifadəsi
sample = [a-zA-Z0–9._%+-]+@[a-zA-Z0–9.-]+.[a-zA-Z]{2,}
NLP-də regexlər mətn təmizləmə, tokenizasiya, xüsusi açar sözlərin tapılması və məlumat çıxarışı kimi müxtəlif tapşırıqlarda tətbiq oluna bilər. Lakin regex əsaslı sistemlər mürəkkəb və uzun mətnlər üçün məhdudiyyətlərə malikdir, çünki onlar kontekst anlayışına malik deyil və məna əlaqələrini dərk etmir (Əlavə olaraq ‘TokensRegex’, ‘JAPE’ araşdıra bilərsiniz).
Qaydalar (Guidelines) və heuristik metodlar, maşın öyrənmə əsaslı NLP sistemləri üçün function kimi də faydalı ola bilər. Bu cür qaydalar və heuristiklər modelin öyrənmə keyfiyyətini artıraraq daha dəqiq nəticələr əldə etməsinə kömək edir.
🔍Machine Studying
Maşın öyrənməsi mətn emalı (NLP) sahəsində təsnifat, reqressiya və klasterləşdirmə kimi müxtəlif metodlarla tətbiq olunur. Xəbərləri kateqoriyalara ayırmaq, səhm qiymətlərini proqnozlaşdırmaq və sənədləri oxşarlıq əsasında qruplaşdırmaq NLP-də geniş istifadə edilən yanaşmalardır. Hər bir NLP modeli mətnin xüsusiyyətlərinin çıxarılması, modelin öyrədilməsi və qiymətləndirilməsi mərhələlərindən keçir. Nəzarətli (Supervised) və nəzarətsiz (unsupervised) metodlar birləşdirilərək daha güclü və dəqiq NLP sistemləri qurula bilər (daha detallı növbəti bölmələrdə).
İndi isə bir neçə tez-tez istifadə olunan ML modellər haqqında danışaq:
Naive Bayes təsnifat (classification) üçün geniş istifadə olunan sadə, lakin effektiv bir alqoritmdir və Bayes teoreminə əsaslanır. O, hər bir xüsusiyyətin (function) bir-birindən asılı olmadığı fərziyyəsinə əsaslanaraq kategoriyanın ehtimalını hesablayır. Bu metod xüsusilə mətn təsnifatında (məsələn, xəbərlərin idman və ya siyasət kateqoriyasına assist olduğunu müəyyən etmək üçün) tez-tez istifadə olunur, çünki sürətli və asan tətbiq edilə biləndir.
Help Vector Machine (SVM) isə təsnifatı optimum qərar sərhədləri quraraq həyata keçirir. O, xəbərləri və ya digər mətnləri fərqli kateqoriyalara ayırmaq üçün xətti və qeyri-xətti qərar sərhədlərini öyrənə bilir. SVM-in ən güclü tərəfi məlumatdakı dəyişikliklərə və qərəzliyi dataya qarşı dayanıqlı olmasıdır, lakin böyük həcmdə verilənlər üçün practice müddəti uzun ola bilər və miqyaslandırılması çətindir.
Gizli Markov modeli (The Hidden Markov mannequin), müşahidə edilə bilməyən gizli vəziyyətlərə (hidden states) malik statistik bir modeldir və bu vəziyyətlərin müşahidə olunan verilənləri yaratdığını fərz edir. Məsələn, POS tagging (nitq hissələrinin təyini) tapşırığında HMM-lər cümlənin qrammatik quruluşunu müəyyən edərək sözlərə uyğun nitq hissələrini (isim, fel və s.) təyin etmək üçün istifadə olunur. Bu mannequin Markov fərziyyəsinə əsaslanır, yəni hər bir gizli vəziyyət əvvəlki vəziyyətlərdən asılıdır. Dil ardıcıllıq quruluşuna malik olduğu üçün HMM-lər mətnin qrammatik strukturlarını modelləşdirmək üçün güclü bir vasitədir.
Şərti Təsadüfi Sahə (The conditional random subject) ardıcıl verilənlər üzərində işləyən bir digər güclü alqoritmdir və əsasən ardıcıl verilənlərdə hər bir elementi təsnif etmək üçün istifadə olunur. POS tagging nümunəsində CRF, hər bir sözü analiz edərək uyğun nitq hissəsini təyin edir və konteksti nəzərə aldığı üçün daha ifadəli və dəqiq nəticələr verir. HMM-lərlə müqayisədə, CRF ardıcıllıq və kontekst əlaqələrini daha yaxşı modelləşdirir, bu səbəbdən də POS tagging kimi NLP tapşırıqlarında daha yaxşı nəticələr göstərir. HMM kimi modellər sadece keçid ehtimallarına əsaslanır, lakin CRF cümlənin və ya verilənlərin tam strukturunu nəzərə alaraq qlobal olaraq ən yaxşı etiketi təyin etməyə çalışır. Ancaq hesablama baxımından daha ağır olduğu üçün diger modellərlə müqayisədə daha çətin tətbiq oluna bilər.
🔍Deep Studying
Ənənəvi maşın öyrənmə metodları NLP-də faydalı olsa da, dərin öyrənmə metodları daha mürəkkəb və strukturlaşdırılmamış mətnlər üçün daha effektivdir. Dil çox mürəkkəb olduğu üçün onu daha yaxşı modelləşdirən və daha dərin kontekst anlayışına malik neyron şəbəkələrə ehtiyac var. Son illərdə transformer əsaslı modellər, xüsusilə BERT və GPT, NLP-nin əsas standartlarına çevrilib.
Daha əvvəl qeyd etdiyim kimi, dil təbiətcə ardıcıldır. Hər hansı bir dildə cümlə müəyyən bir istiqamətdə oxunur (məsələn, ingilis dili soldan sağa oxunur). Buna görə də, mətni ardıcıl şəkildə oxuyaraq başa düşən bir mannequin, dilin emalı üçün çox faydalı ola bilər. Təkrarlanan Neyron Şəbəkələr (Recurrent Neural Networks), məhz belə ardıcıl emal və öyrənmə mexanizmi nəzərə alınaraq dizayn edilmişdir. RNN-lər, bütün mətnin eyni anda işlənməsinə ehtiyac duymadan, onu addım-addım oxuyaraq yadda saxlayır və öyrənir. Bu yaddaş müvəqqətidir və hər bir yeni girişlə yenilənir. Bu “yaddaş” sayəsində, RNN-lər mətnin əvvəlki hissələrindən öyrənərək, konteksti anlayır və gələcək sözləri daha yaxşı proqnozlaşdıra bilir. Bu xüsusiyyət onları maşın tərcüməsi, mətn təsnifatı və mətn generasiyası kimi tapşırıqlarda çox güclü edir.
RNN-lərin ən böyük üstünlüyü onların ardıcıllığı nəzərə alaraq öyrənməsidir, lakin uzun cümlələrdə “unuda bilmə” problemi (vanishing gradient) səbəbindən bəzi məhdudiyyətlərə malikdirlər. Bunun üçün daha inkişaf etmiş modellər, məsələn, LSTM və GRU kimi alternativlər yaradılmışdır.
Uzun-qısa müddətli yaddaş şəbəkələri (Lengthy Brief-Time period Reminiscence), yaddaş problemini həll etmək üçün hazırlanmış xüsusi RNN tipli şəbəkələrdir. LSTM-lər vacib konteksti yadda saxlayaraq, lazımsız məlumatları filtr edir, beləliklə, çox uzun mətnlərdə də düzgün nəticələr verir. Bu, uzun kontekstin yalnız bir vektorla təmsil olunması problemindən xilas olmağa kömək edir. Bu üstünlüklərinə görə, LSTM-lər RNN-lərin əksər tətbiqlərində yerini almışdır. Gated Recurrent Models (GRUs) isə RNN-lərin başqa bir variantıdır və əsasən dil generasiyası (textual content technology) tapşırıqlarında istifadə olunur.
Convolutional Neural Networks əsasən kompüter görmə (pc imaginative and prescient) tapşırıqlarında, məsələn, şəkil təsnifatı və video tanınması üçün geniş istifadə edilir. Lakin CNN-lər NLP sahəsində də, xüsusilə mətn təsnifatı (textual content classification) kimi tapşırıqlarda da istifadə olunur. CNN-ləri mətnlərdə tətbiq etmək üçün cümlədəki hər bir sözü müvafiq söz vektoru ilə əvəz edirik və bütün vektorların ölçüsü eyni olur (d ölçüsündə). Nəticədə cümlədəki sözlər bir-birinin üzərinə yığılıb bir matris və ya 2D massivi yaradır. Bu matrisin ölçüsü n ✕ d olacaq (n → cümlədəki sözlərin sayı, d → söz vektorlarının ölçüsü).
CNN-lərin NLP-də əsas üstünlüyü müəyyən söz qruplarını birlikdə analiz edə bilməsidir. Məsələn, duyğu analizi (sentiment evaluation) zamanı “Bu filmin afişası çox gözəldir, amma özü çox darıxdırıcıdır” cümləsini başa düşmək üçün tək sözlərə deyil, bir neçə sözlük frazalara da baxmaq lazımdır. CNN-lər bunu “kontekst pəncərəsi” (context window) yanaşması ilə avtomatik həyata keçirə bilir.
Transformerlər, dərin öyrənmənin NLP sahəsindəki ən son və ən güclü modellərindən biridir. Son illərdə NLP sahəsində demək olar ki, bütün əsas tapşırıqlarda ən yaxşı nəticələr əldə etmişdir. Transformerlər mətn kontekstini ardıcıl qaydada yox, daha geniş şəkildə analiz edirlər. Bir sözü dəyərləndirərkən yalnız əvvəlki və sonrakı sözlərə deyil, bütün cümləyə baxaraq (self-attention) onun kontekstdəki yerini müəyyən edirlər.
Son zamanlarda böyük transformer modelləri switch studying üçün istifadə olunur. Bu texnika, bir tapşırıq üçün öyrənilən biliklərin digər əlaqəli tapşırıqlara tətbiq edilməsini təmin edir.
Transformerlər əvvəlcə unsupervised şəkildə böyük həcmdə mətnlər üzərində öyrədilir (pre-training) və sonra daha spesifik NLP tapşırıqları üçün tənzimlənir (fine-tuning). Bunun ən məşhur nümunələrindən biri Google tərəfindən yaradılmış və açıq mənbə kimi yayımlanmış BERT (Bidirectional Encoder Representations from Transformers) modelidir. BERT öncədən böyük verilənlər üzərində öyrədilir və daha sonra mətn təsnifatı, obyektin çıxarılması (entity extraction), sual-cavab sistemləri kimi tapşırıqlara uyğunlaşdırılır. Bu, BERT-in əvvəlcədən öyrədilmiş bilikləri kiçik tapşırıqlara effektiv şəkildə ötürməsinə və yüksək nəticələr əldə etməsinə imkan yaradır.
Diger bir DL modeli Autoencoder, əsasən giriş məlumatlarını sıxılmış vektor formasında təmsil etmək üçün istifadə edilən xüsusi bir neyron şəbəkə növüdür. Məsələn, bir mətnin vektor şəklində təmsil olunmasını istəyiriksə, bunu necə edə bilərik? Bunun üçün mətn inputu vektora çeviren bir mapping funksiyası öyrənirik. Bu prosesin faydalı olması üçün, autoencoder həmin vektordan ilkin mətn inputu yenidən qurmağa çalışır. Bu proses unsupervised studying formasıdır, çünki etiketlənmiş verilənlər olmadan öyrədilə bilər. Mannequin öyrədildikdən sonra sıxılmış vektor nümunəsi əldə edilir və bu vektor mətnin sıxılmış, lakin mənalı formasıdır.
NLP-də autoencoder-lər əsasən mətnləri sıxılmış vektorlara çevirmək və bu vektorları müxtəlif mətn emalı tapşırıqlarında istifadə etmək üçün tətbiq edilir.
💡Bəs, niyə Deep Studying hələ də NLP üçün ideally suited həll deyil?
Dərin öyrənmə (DL) NLP sahəsində böyük irəliləyişlər əldə etsə də, sənaye tətbiqlərində hələ də bəzi ciddi məhdudiyyətlərə malikdir.
📉 Kiçik verilənlər toplusunda həddindən artıq öyrənmə (overfitting) problemi yaranır və DL modelləri çox sayda parametrlərə sahib olduğu üçün onların ümumiləşdirmə qabiliyyəti zəifləyə bilər.
🌍 Domen uyğunlaşması (area adaptation) çətinliyi var — müəyyən sahələrdə (məsələn, sosial media, hüquq və səhiyyə) öyrədilməmiş DL modelləri zəif nəticə verir.
🔍 İzah edilə bilməyən modellər problemi — DL əsaslı NLP sistemləri “qara qutu” (black field) kimi işləyir və bizneslər üçün şərh edilə bilən nəticələr təqdim etmək çətindir.
🧠 Mövcud DL modelləri ümumi məntiq və dünya biliklərini tam qavraya bilmir, çünki insan düşüncəsindəki məntiqi əlaqələri başa düşməkdə məhdudiyyətlərə malikdir.
💰 Maliyyət və resurs tələbatı yüksəkdir — böyük DL modellərinin öyrədilməsi və saxlanması bahalıdır, həmçinin actual vaxt tətbiqlərində gecikmələr yarada bilər.
Bu səbəblərə görə, sənaye səviyyəsində NLP layihələrində DL modelləri hər zaman ən optimum həll olmur və bəzən ənənəvi ML və qayda əsaslı sistemlər daha effektiv ola bilər.
Ardı tezliklə chapter 2-də …..