RNNLM, Word2vec, GloVe va fastText. To'rtta tabiiy tilni qayta ishlash modellarining yaratilish tarixi, foydalanish holatlari, afzalliklari va kamchiliklari.
Muhokama qiling13
Tilni modellashtirishning vazifalaridan biri oldingi matnni bilish asosida keyingi so'zni bashorat qilishdir. Bu matn terish xatolarini tuzatish, avtomatik toʻldirish, chatbotlar va hokazolar uchun foydalidir. Internetda tabiiy tilni qayta ishlash modellari haqida juda koʻp tarqoq maʼlumotlar mavjud. Biz bir joyda to'rtta mashhur NLP modelini to'pladik va ularni hujjatlar va ilmiy manbalar asosida solishtirdik.
Ta'riflangan to'rtta modelni ta'kidlagan vaqt jadvali
1. Takrorlanuvchi neyron tarmoq tili modeli (RNNLM)
2001 yilda paydo bo'lgan g'oya birinchi o'rnatish modellaridan biri tug'ilishiga olib keldi.
O'rnatishlar
Tilni modellashtirishda alohida so'zlar va so'zlar guruhlari semantik aloqani saqlab qolgan holda vektorlar - ba'zi sonli tasvirlar bilan taqqoslanadi. So'zning siqilgan vektor ko'rinishi embedding deb ataladi.
Model oldingi so'zlarning vektor ko'rinishlarini kirish sifatida qabul qiladi nva jumlaning semantikasini "tushunishi" mumkin. Model ta'lim so'zlar algoritmi uzluksiz xalta asoslangan . Kontekstli (qo'shni) so'zlar markaziy so'zni bashorat qiladigan neyron tarmoqning kirishiga beriladi.
so'zlar sumkasi
So'zlar sumkasi - bu matnni vektor (so'zlar to'plami) sifatida ifodalash uchun model. Matndagi har bir so'zga uning takrorlanish soni beriladi.
Siqilgan vektorlar birlashtirilib, yashirin qatlamga o'tkaziladi, u erda softmax faollashtirish funksiyasi ishga tushiriladi , bu qaysi signallar o'tishini aniqlaydi (agar bu mavzu qiyin bo'lsa, bizning neyron tarmoqlarga illyustrativ kirishimizni o'qing ).
Neyron uzatish tili modelining diagrammasi
Asl versiya oldinga uzatiladigan neyron tarmoqlarga asoslangan edi - signal kirish qatlamidan chiqish darajasiga o'tdi. Keyinchalik, takroriy neyron tarmoqlari (RNN) ko'rinishida muqobil taklif qilindi - u boshqariladigan takroriy bloklarda (GRU) yoki uzoq qisqa muddatli xotirada (LSTM) emas, balki "vanil" RNNda edi .
Takroriy neyron tarmoqlari (RNN)
Elementlar orasidagi yo'naltirilgan aloqalarga ega neyron tarmoqlar. Neyronning chiqishi kirishga qaytarilishi mumkin. Bunday tuzilma sizga o'ziga xos "xotira" ga ega bo'lish va ma'lumotlar ketma-ketligini, masalan, tabiiy til matnlarini qayta ishlash imkonini beradi.
Tayyor modellar
Google ko'pgina tillar uchun oldindan o'qitilgan ochiq manba modellariga ega ( inglizcha versiya ). Model oldinga uzatiladigan neyron tarmog'ining uchta yashirin qatlamidan foydalanadi, inglizcha Google News 200B korpusida o'qitiladi va 128 o'lchovli o'rnatishni yaratadi.
Afzalliklar
Oddiylik. Model tezda o'rganadi va o'rnatishlarni yaratadi, bu ko'pchilik oddiy ilovalar uchun etarli.
Oldindan tayyorlangan versiyalar ko'p tillarda mavjud.
Kamchiliklar
Uzoq muddatli qaramliklarni hisobga olmaydi.
Oddiylik foydalanish imkoniyatlarini cheklaydi.
Yangi o'rnatish modellari ancha kuchliroq.
Manba: Yoshua Bengio, Rejan Ducharme, Paskal Vinsent, Kristian Jauvin, Neyron ehtimoliy til modeli (2003), Mashina o'rganish tadqiqotlari jurnali
2. Word2vec
2013 yilda Google kompaniyasidan Tomas Mikolov vektorli so'zlarni ko'rsatish uchun yanada samarali o'rganish modelini taklif qildi, Word2vec . Usul ko'pincha bir xil kontekstda uchraydigan so'zlar o'xshash ma'noga ega degan taxminga asoslangan edi. O'zgarishlar oddiy edi - yashirin qatlamni olib tashlash va maqsadni yaqinlashtirish (soddalashtirish) - lekin NLP til modellarini ishlab chiqishda burilish nuqtasi bo'ldi.
Word2Vec modelida uzluksiz so‘zlar algoritmi o‘rniga Skip-gram (o‘tkazib yuborish iborasi) dan foydalaniladi. Ushbu modelning maqsadi avvalgi modelga mutlaqo ziddir - markaziy so'zlarga asoslanib, atrofdagi so'zlarni bashorat qilish.
Gramni o'tkazib yuboring
"Kontekst oynasi" hosil bo'ladi - matndagi k so'zlar ketma-ketligi. Ushbu so'zlardan biri o'tkazib yuboriladi va neyron tarmoq buni bashorat qilishga harakat qiladi. Shunday qilib, ko'pincha o'xshash kontekstda uchraydigan so'zlar o'xshash vektorlarga ega bo'ladi.
Doimiy so'zlar va Skip-gram arxitekturalari
O'rganishni samaraliroq qilish uchun Negativ Sampling qo'llaniladi : model kontekstli qo'shni bo'lmagan so'zlar bilan ta'minlangan.
Salbiy namuna olish
Matnlardagi ko'p so'zlar birgalikda uchramaydi, shuning uchun model juda ko'p keraksiz hisob-kitoblarni amalga oshiradi. Softmaxni hisoblash hisoblash qimmat operatsiya hisoblanadi. Salbiy namuna olish yondashuvi kerakli so'zni unga xos bo'lgan kontekstda uchratish ehtimolini maksimal darajada oshirishga va uni kamdan-kam / atipik kontekstda minimallashtirishga imkon beradi.
Vektor sehr
Word2vec modeli tadqiqotchilarni o‘zining “talqin etilishi” bilan hayratda qoldirdi. Katta hajmdagi matnlarni o'rganish so'z shakllari o'rtasidagi chuqur munosabatlarni aniqlashga imkon beradi, masalan, jins. Agar Erkak (Erkak) so'ziga mos vektordan Ayol vektorini ayirsak, natija King (Qirol) va Qirolicha (Qirolicha) vektorlari orasidagi farqga juda o'xshash bo'ladi.
Bir vaqtlar so'zlar va ularning vektorlari o'rtasidagi bunday munosabat deyarli sehrli tuyulardi. Vektor arifmetikasining yana qiziqarli misollarini "Sevgisiz hayot nimaga aylanadi" maqolasida topishingiz mumkin . Model NLP ga katta hissa qo'shganiga qaramay, hozir u deyarli qo'llanilmaydi - munosib merosxo'rlar uni almashtirdilar.
Tayyor modellar
Oldindan tayyorlangan modelni Internetda osongina topish mumkin. Gensim kutubxonasi yordamida uni Python loyihasiga import qilish mumkin .
Afzalliklar
Oddiy arxitektura: oldinga uzatish, 1 kirish, 1 yashirin qatlam, 1 chiqish.
Model tezda o'rganadi va o'rnatishlarni yaratadi (hatto o'zingiz ham).
O'rnatishlar ma'noga ega, bahsli fikrlarni hal qilish mumkin.
Metodologiya boshqa ko'plab sohalarga/muammolarga kengaytirilishi mumkin (masalan, Lda2vec ).
Kamchiliklar
So'z darajasida o'rganish: gap yoki so'z ishlatilgan kontekst haqida ma'lumot yo'q.
Birgalikda yuzaga kelishi e'tiborga olinmaydi. Model so'zning qo'llanish kontekstiga qarab turli xil ma'noga ega bo'lishi mumkinligini hisobga olmaydi. Bu GloVe-ni Word2Vec-dan afzal ko'rishining asosiy sababidir.
Noma'lum va kam uchraydigan so'zlarni juda yaxshi ishlatmaydi.
Manba: Tomas Mikolov, Kai Chen, Greg Korrado, Jeffri Din, Vektor fazosida so'z tasvirlarini samarali baholash (2013), o'rganish bo'yicha xalqaro konferentsiya
3. GloVe (Global vektorlar)
GloVe Word2Vec bilan chambarchas bog'liq: algoritmlar bir vaqtning o'zida paydo bo'lgan va so'z vektorlarining talqin qilinishiga tayanadi. GloVe modeli hit statistikasidan samarali foydalanish muammosini hal qilishga harakat qiladi. GloVe stokastik gradient tushishi yordamida so'z vektorlari mahsuloti va ularning birgalikda paydo bo'lish log ehtimoli o'rtasidagi farqni minimallashtiradi . Olingan tasvirlar so'zlarning vektor fazosining muhim chiziqli pastki tuzilmalarini aks ettiradi: u bitta sayyoraning turli xil sun'iy yo'ldoshlarini yoki shaharning pochta indeksini uning nomi bilan bog'laydi.
Shahar nomi va uning pochta indeksi o'rtasidagi munosabat
Word2Vec-da so'zlarning birgalikda paydo bo'lishi juda muhim emas, u ko'proq o'quv namunalarini yaratishga yordam beradi. GloVe faqat kontekst statistik ma'lumotlariga tayanishdan ko'ra, birgalikda yuzaga kelishini ko'rib chiqadi. So'z vektorlari global o'xshashlik asosida guruhlangan.
Tayyor modellar
GloVe o'rnatishlarni Stenford universiteti veb-saytidan osongina olish mumkin .
Afzalliklar
Neyron tarmog'isiz oddiy arxitektura.
Model tez va bu oddiy ilovalar uchun etarli bo'lishi mumkin.
GloVe Word2Vec-da yaxshilanadi. U so'z chastotasini qo'shadi va ko'pgina mezonlarda Word2Vec-dan ustun turadi.
Ma'noli qo'shimchalar.
Kamchiliklar
Birgalikda sodir bo'lish matritsasi global ma'lumotni taqdim etsa-da, GloVe so'z darajasida o'qitilgan bo'lib qoladi va jumla va so'z ishlatiladigan kontekst haqida kam ma'lumot beradi.
Noma'lum va kam uchraydigan so'zlarni yomon ishlatadi.
Manba: Jeffri Pennington, Richard Socher va Christopher D. Manning, GloVe: So'zlarni ifodalash uchun global vektorlar (2014), Tabiiy tilni qayta ishlashda empirik usullar
4.tezkor matn
Facebook tomonidan yaratilgan fastText kutubxonasi tabiiy til modellarini ishlab chiqishda yana bir muhim qadamdir. Uni ishlab chiqishda bizga Word2Vec-dan tanish bo'lgan Tomas Mikolov ishtirok etdi. So'zlarni vektorlashtirish uchun bir vaqtning o'zida skip-gramm, salbiy namuna olish va uzluksiz sumka algoritmidan foydalaniladi.
Asosiy Word2Vec modeliga n-gramm belgisi qo'shildi. Har bir so'z ma'lum uzunlikdagi bir nechta belgilar ketma-ketligidan iborat kompozitsiya bilan ifodalanadi. Masalan, theygiperparametrlarga qarab so'z "th", "he", "ey", "the", "hey" dan iborat bo'lishi mumkin. Aslida, so'z vektori uning barcha n-grammlarining yig'indisidir.
Tasniflagichning natijalari kam uchraydigan so'zlar uchun juda mos keladi, chunki ular n-grammga bo'lingan. Word2Vec va Glove-dan farqli o'laroq, model noma'lum so'zlar uchun qo'shimchalar yaratishga qodir.
Tayyor modellar
157 ta til (shu jumladan rus) uchun tayyorlangan model onlaynda mavjud .
Afzalliklar
Nisbatan oddiy arxitektura: oldinga o'tish, 1 kirish, 1 yashirin qatlam, bitta chiqish (garchi n-gramm o'rnatishni yaratishga murakkablik kiritsa ham).
N-grammlar tufayli u noyob va eskirgan so'zlarda yaxshi ishlaydi.
Kamchiliklar
So'z darajasida o'rganish: gap yoki so'z ishlatilgan kontekst haqida ma'lumot yo'q.
Birgalikda paydo bo'lishni e'tiborsiz qoldiradi, ya'ni model turli kontekstlarda so'zning turli ma'nosini hisobga olmaydi (shuning uchun GloVe afzalroq bo'lishi mumkin).
Manba: Armand Joulin, Eduard Grave, Piotr Bojanowski va Tomas Mikolov, Matnni samarali tasniflash uchun hiylalar sumkasi (2016), Hisoblash tilshunosligi assotsiatsiyasining Evropa bo'limi
***
To'rtta modelning umumiy jihatlari juda ko'p, ammo ularning har biri to'g'ri kontekstda ishlatilishi kerak. Afsuski, bu nuqta ko'pincha e'tiborga olinmaydi, natijada suboptimal natijalarga olib keladi.
Agar siz tabiiy tilni qayta ishlash mavzusiga qiziqsangiz, bizda yana bir nechta materiallar mavjud:
Tabiiy tilni qayta ishlash: qaerdan boshlash kerak va keyin nimani o'rganish kerak
NLP qiziqarli! Pythonda tabiiy tilni qayta ishlash