مدل زبانی

**مدل زبان** آماری یک توزیع احتمال روی دنباله‌ی کلمات است. به طور مثال اگر دنباله‌ای به طول  داشته باشیم، این مدل احتمال P(w_1,\ldots,w_m) را به کل دنباله می‌دهد.

مدل زبان بافتی (زبان‌شناسی) را برای تمایز بین کلمات و عباراتی که به نظر مشابه می‌رسند فراهم می‌کند. به عنوان مثال، در انگلیسی آمریکایی، عبارات "recognize speech" و "wreck a nice beach" شبیه به هم هستند، اما معانی مختلفی دارند.

پراکندگی داده‌ها یک مشکل اساسی در ساخت مدل‌های زبان است. بیشتر توالی‌های ممکن کلمات در آموزش مشاهده نمی‌شوند. یک راه حل این است که فرض کنیم احتمال کلمه فقط به *n* کلمه قبلی بستگی دارد. این مدل به عنوان مدل ان-گرام شناخته می‌شود و زمانی که n برابر با ۱ باشد مدل به عنوان یونیگرام شناخته می‌شود. مدل یونیگرام به عنوان مدل مدل بسته کلمات نیز شناخته می شود.

تخمین احتمال نسبی عبارات مختلف در بسیاری از کاربردهای پردازش زبان طبیعی، به ویژه مواردی که متن را به عنوان خروجی تولید می کنند، مفید است. از مدل سازی زبان در تشخیص گفتار ،  ترجمه ماشینی ، برچسب‌گذاری کلمات، تجزیه ،  نویسه‌خوان نوری ، تشخیص دست خط ،  بازیابی اطلاعات و سایر برنامه ها استفاده می شود.

در تشخیص گفتار، اصوات با توالی کلمات مطابقت دارند. ابهامات هنگامی که شهودهایی از مدل زبان با یک مدل تلفظ و یک مدل صوتی ادغام شده است، آسان‌تر حل خواهند شد.

مدل‌های زبانی در بازیابی اطلاعات در مدل احتمال پرسشی استفاده می‌شود. در آنجا، یک مدل زبان جداگانه با هر مستند در یک مجموعه مرتبط است. مستندها بر اساس احتمال پرسش *Q* در مدل زبان مستند رتبه‌بندی می‌شوند. M_d : P(Q\mid M_d) . معمولاً برای این منظور از مدل زبان یونیگرام استفاده می شود.

## انواع مدل

### یونیگرام
یک مدل یونیگرام را می توان ترکیبی از چندین ماشین حالات متناهی یک حالته دانست.  این مدل احتمالات کلمات مختلف در یک متن را از هم جدا می‌کند، به عنوان مثال از

: P(t_1t_2t_3)=P(t_1)P(t_2\mid t_1)P(t_3\mid t_1t_2)

به

: P_\text{uni}(t_1t_2t_3)=P(t_1)P(t_2)P(t_3).

در این مدل، احتمال هر کلمه فقط به احتمال خود آن کلمه در مستند بستگی دارد ، بنابراین ما فقط ماشین حالت یک حالته را به عنوان واحدها داریم. ماشین حالت توزیع احتمال در کل واژگان مدل را دارد و مجموع آن‌ها برابر ۱ می‌شود. در زیر تصویر مدل یونیگرام یک مستند را می‌بینیم.

: \sum_{\text{term in doc}} P(\text{term}) = 1

احتمال ایجاد شده برای یک پرسش خاص به صورت زیر محاسبه می‌شود

: P(\text{query}) = \prod_{\text{term in query}} P(\text{term})

مستندهای مختلف دارای مدل‌های یونیگرام هستند که احتمال مختلف کلمات در آن وجود دارد. توزیع احتمال از مستندهای مختلف استفاده می‌شود تا احتمال وجود کلمه برای هر جستجو را تولید شود. مستندها را می‌توان برای یک پرسش با توجه به احتمالات رتبه‌بندی کرد. نمونه ای از مدل‌های یونیگرام دو مستند:

در زمینه‌های بازیابی اطلاعات، برای جلوگیری از مواردی که احتمال کلمه در آن صفر شود، آن را smooth می‌کنند. یک رویکرد معمول، ایجاد مدل حداکثر احتمال برای کل مجموعه و درون‌یابی خطی مدل مجموعه با یک مدل حداکثر احتمال برای هر مستند برای smooth کردن مدل است. 

### ان-گرام
در مدل *ان-گرام*، احتمال P(w_1,\ldots,w_m) از مشاهده جمله w_1,\ldots,w_m به صورت زیر محاسبه می‌شود

: P(w_1,\ldots,w_m) = \prod^m_{i=1} P(w_i\mid w_1,\ldots,w_{i-1})\approx \prod^m_{i=1} P(w_i\mid w_{i-(n-1)},\ldots,w_{i-1})

فرض بر این است که احتمال مشاهده‌ی iامین کلمه (*w<sub>i</sub>*) در i-1 کلمه قبل را می توان با احتمال مشاهده آن 10 کلمه قبلی تقریب زد. (کلمه nام خاصیت مارکوف).

احتمال شرطی را می‌توان از تعداد کلمه در مدل *ان-گرام* محاسبه کرد:

: P(w_i\mid w_{i-(n-1)},\ldots,w_{i-1}) = \frac{\mathrm{count}(w_{i-(n-1)},\ldots,w_{i-1},w_i)}{\mathrm{count}(w_{i-(n-1)},\ldots,w_{i-1})}

مدل‌های **bigram** و **trigram**، مدل *ان-گرام* با *n*&nbsp;=&nbsp;2 و *n*&nbsp;=&nbsp;3 هستند.

به طور معمول، احتمالات مدل ان-گرام مستقیماً از تعداد فرکانس ها بدست نمی‌آیند، زیرا مدل‌هایی که از این طریق بدست آمده‌اند هنگام مواجهه با هر ان-گرامی که قبلاً به طور صریح دیده نشده است، مشکلات جدی دارند. در عوض، نوعی smoothing نیاز است تا مقداری از کل احتمال را به کلمات یا ان-گرامهای دیده نشده اختصاص دهد. از روش های مختلفی استفاده می‌شود ، از روش ساده "add-one" (اختصاص عدد 1 به n-gram مشاهده نشده، به عنوان یک توزیع پیشین) تا مدل‌های پیچیده‌تر، مانند Good-Turing discounting یا مدل‌های back-off.

#### دو طرفه
بازنمایی های دو طرفه هم در قبل و هم در بعد متن (به عنوان مثال ، کلمات) در همه لایه‌ها شرط هستند. 

#### مثال
در یک مدل زبان bigram (n =&nbsp;2)، احتمال *I saw the red house* *به* طور تقریبی به صورت زیر محاسبه می‌شود

: P(\text{I, saw, the, red, house}) \approx P(\text{I}\mid\langle s\rangle) P(\text{saw}\mid \text{I}) P(\text{the}\mid\text{saw}) P(\text{red}\mid\text{the}) P(\text{house}\mid\text{red}) P(\langle /s\rangle\mid \text{house})

در حالی که در یک مدل زبان trigram ( *n*&nbsp;=&nbsp;3)، *به* طور تقریبی به صورت زیر محاسبه می‌شود

: P(\text{I, saw, the, red, house}) \approx P(\text{I}\mid \langle s\rangle,\langle s\rangle) P(\text{saw}\mid\langle s\rangle,I) P(\text{the}\mid\text{I, saw}) P(\text{red}\mid\text{saw, the}) P(\text{house}\mid\text{the, red}) P(\langle /s\rangle\mid\text{red, house})

توجه داشته باشید که در متن n-1 ان-گرام اول با نشانگرهای شروع جمله پر می‌شود ، که به طور معمول  نشان داده می‌شود.

علاوه بر این، بدون نشانگر پایان جمله، احتمال دنباله ای بدون گرامر ** I saw the* بیشتر از جمله طولانی‌تر *I saw the red house* است.

### نمایی
مدل‌های زبان اصل حداکثر آنتروپی با استفاده از توابع ویژگی، رابطه بین کلمه و تاریخچه ان-گرام را رمزگذاری می‌کنند. معادله‌ی آن به صورت زیر است

:  P(w_m | w_1,\ldots,w_{m-1}) = \frac{1}{Z(w_1,\ldots,w_{m-1})} \exp (a^T f(w_1,\ldots,w_m))

که Z(w_1,\ldots,w_{m-1}) تابع partition، a بردار پارامتر و f(w_1,\ldots,w_m) تابع ویژگی هستند. در ساده ترین حالت، تابع ویژگی فقط نشانگر وجود یک ان-گرام خاص است. استفاده از پیش‌فرض روی a یا منظم‌ساز مفید خواهد بود.

مدل log-bilinear نمونه دیگری از مدل‌های زبانی نمایی است.

### شبکه عصبی
مدل‌های زبانی عصبی (یا *مدل های زبان فضایی پیوسته*) برای ارائه پیش‌بینی‌های خود از نمایش‌های پیوسته یا نمایش کلمات استفاده می‌کنند.  این مدل ها از شبکه‌های عصبی استفاده می‌کنند.

نمایانگر پیوسته فضا به کاهش نفرین ابعاد در مدل سازی زبان کمک می‌کند: با آموزش مدل‌های زبان بر روی متن های بزرگتر و بزرگتر ، تعداد کلمات منحصر به فرد (واژگان) افزایش می‌یابد. تعداد توالی‌های احتمالی کلمات با اندازه واژگان به طور تصاعدی افزایش می‌یابد و به دلیل تعداد زیاد توالی‌ها، باعث ایجاد مشکل پراکندگی داده‌ها می‌شود. بنابراین ، برای برآورد صحیح احتمالات، به آمار نیاز است. شبکه‌های عصبی با نمایش کلمات به صورت توزیع شده، به عنوان ترکیب‌های غیرخطی وزن‌ها در یک شبکه عصبی، از این مشکل جلوگیری می‌کنند.  یک توصیف جایگزین این است که یک شبکه عصبی عملکرد زبان را تقریبی می‌زند. معماری شبکه عصبی ممکن است پیشخور یا بازگشتی باشد، و گرچه اولی ساده تر است دومی بیشتر مورد استفاده قرار می‌گیرد.

به طور معمول، مدل‌های زبان شبکه عصبی به عنوان طبقه‌بندی کننده‌های احتمالی ساخته می شوند و آموزش می‌بینند که توزیع احتمال را پیش‌بینی کنند

: P(w_t | \mathrm{context}) \, \forall t \in V .

یعنی شبکه آموزش دیده است تا با توجه به متن زبان، توزیع احتمال بر روی واژگان را پیش‌بینی کند. این کار با استفاده از الگوریتم های استاندارد آموزش عصبی عصبی مانند گرادیان کاهشی تصادفی همراه با پس‌انتشار انجام می‌شود.  متن ممکن است یک پنجره با اندازه ثابت کلمات قبلی باشد، شبکه، احتمال زیر را پیش‌بینی می‌کند

: P(w_t | w_{t-k}, \dots, w_{t-1})

از بردار ویژگی که نشان‌دهنده  کلمه‌ی قبلی است.  گزینه دیگر استفاده از کلمات "بعدی" علاوه بر کلمات "قبلی" به عنوان ویژگی است، احتمال تخمین زده شده برابر است با

: P(w_t | w_{t-k}, \dots, w_{t-1}, w_{t+1}, \dots, w_{t+k}) .

به این مدل بسته کلمات گفته می‌شود. وقتی بردارهای مشخصه کلمات در متن با یک عمل پیوسته ترکیب میaوند، از این مدل به عنوان معماری پیوسته کلمات (CBOW) یاد می‌شود. 

گزینه سوم که با سرعت کمتری نسبت به CBOW آموزش داده می‌شود اما عملکرد کمی بهتر دارد، معکوس کردن مشکل قبلی و ایجاد یک شبکه عصبی برای یادگیری متن می‌باشد.  به صورت رسمی‌تر، با داشتن دنباله‌ای از کلمات آموزشی w_1, w_2, w_3, \dots, w_T ، تابعی که متوسط احتمال را به حداکثر می رساند برابر است با

: \frac{1}{T}\sum_{t=1}^T \sum_{-k \leq j \leq k, j \neq 0} \log P(w_{t+j} | w_t)

که ، اندازه متن آموزش، می‌تواند تابعی از کلمه وسط (w_t) باشد. به این مدل زبان skip-gram می‌گویند.  مدل‌های مدل بسته کلمات و skip-gram پایه‌های word2vec هستند. 

به جای استفاده از مدل‌های زبانی شبکه عصبی برای تولید احتمالات واقعی، معمولاً از نمایش توزیع شده در لایه های "پنهان" شبکه به عنوان نمایش کلمات استفاده می‌شود. سپس هر کلمه بر روی یک بردار واقعی  بعدی قرار می گیرد که word embedding نامیده می‌شود، به طوری که  اندازه لایه قبل از لایه خروجی است. نمایش‌ها در مدل‌های skip-gram دارای مشخصه متمایزی است که آنها روابط معنایی بین کلمات را به صورت ترکیب‌های خطی مدل‌سازی می‌کنند و نوعی ترکیب‌بندی را بدست می‌آورند. به عنوان مثال، در برخی از این مدل‌ها، اگر  تابعی باشد که یک کلمه  را به نمایش -بعدی تبدیل کند، داریم:

: v(\mathrm{king}) - v(\mathrm{male}) + v(\mathrm{female}) \approx v(\mathrm{queen})

که ≈ با این شرط که سمت راست آن باید نزدیکترین همسایه مقدار سمت چپ باشد، دقیق‌تر می‌شود.  

### سایر
یک مدل زبان موقعیتی  احتمال وقوع کلمات معین نزدیک به یکدیگر که لزوماً بلافاصله مجاور نیستند را در یک متن ارزیابی می‌کند. به همین ترتیب، مدلهای بسته بندی مفاهیمی  از معانی معنایی مرتبط با عبارات چند کلمه‌ای مانند *buy_christmas_present استفاده می‌کنند*، حتی وقتی از آن‌ها در جملات غنی از اطلاعات مانند "today I bought a lot of very nice Christmas presents" استفاده می شود.

علیرغم موفقیت‌های محدود در استفاده از شبکه های عصبی،  نویسندگان نیاز به تکنیک‌های دیگر را هنگام مدل‌سازی زبان اشاره تأیید می‌کنند.

## معیارها
مجموعه داده‌های مختلفی برای استفاده برای ارزیابی سیستم‌های پردازش زبان ساخته شده است.  که شامل موارد زیر می‌شود:
* Corpus of Linguistic Acceptability 
* GLUE benchmark 
* Microsoft Research Paraphrase Corpus 
* Multi-Genre Natural Language Inference
* Question Natural Language Inference
* Quora Question Pairs 
* Recognizing Textual Entailment 
* Semantic Textual Similarity Benchmark
* SQuAD question answering Test 
* Stanford Sentiment Treebank
* Winograd NLI

## جستارهای وابسته
* Statistical model
* Factored language model
* Cache language model
* Katz's back-off model
* Transformer
* BERT
* GPT
* GPT-3

## یادداشت

## منابع

### استناد


### منابع

* 
* 
* 

## پیوند به بیرون

### نرم‌افزار
* - نمایشگرهای رمزگذار دو طرفه از ترانسفورماتورها
* CSLM - جعبه ابزار رایگان برای مدل‌های زبان شبکه عصبی پیشخور
* - نرم‌افزار سریع و رایگان برای queryهای زبان
* ترانسفورماتور آموزش دیده از قبل
*  - نرم‌افزار رایگان برای مدل سازی زبان
* Kylm (جعبه ابزار مدل سازی زبان کیوتو) - جعبه ابزار رایگان مدل سازی زبان در جاوا
* KenLM - نرم‌افزار سریع و رایگان برای مدل سازی زبان
* - جعبه ابزار مدل زبان رایگان برای مدل های *n* -gram صاف Kneser – Ney و مدل های شبکه عصبی باگشتی
* - مجموعه ابزار مدل سازی زبان MIT. نرم‌افزار رایگان
* NPLM - جعبه ابزار رایگان برای مدل‌های زبان عصشبکه عصبی پیشخور
* OpenGrm NGram library - نرم‌افزار رایگان برای مدل سازی زبان. ساخته شده در OpenFst.
* - جعبه ابزار رایگان برای مدل‌های زبان شبکه عصبی پیشخور
* مدل زبان موقعیتی
*  - نرم‌افزار رایگان برای مدل‌سازی تصادفی زبان
* RNNLM - مجموعه ابزارهای مدل زبان شبکه عصبی بازگشتی رایگان
* SRILM - نرم‌افزار اختصاصی برای مدل‌سازی زبان
* VariKN - نرم‌افزار رایگان برای ایجاد ، رشد و هرس مدل های ان-گرام صاف Kneser-Ney.
* مدل های زبانی که روی داده های شبکه خبری آموزش داده شده اند

رده:پردازش آماری زبان طبیعی
رده:مدل‌سازی زبان
رده:مدل‌های مارکوف
رده:نگهداری یادکرد:استفاده از پارامتر نویسندگان