Модель мови

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Моделювання мов)
Перейти до навігації Перейти до пошуку

Статистична моде́ль мо́ви (англ. language model) — це розподіл імовірності над послідовностями слів. Заданій такій послідовності, скажімо, довжини m, вона призначує ймовірність усієї цієї послідовності.

Модель мови забезпечує контекст для розрізнювання слів та фраз, які звучать схоже. Наприклад, в американській англійській фрази «recognize speech» (розпізнавати мовлення) та «wreck a nice beach» (вбити гарний пляж) звучать схоже, але означають різні речі.

У побудові моделей мов основною проблемою є розрідженість даних. Більшість можливих послідовностей слів під час тренування не спостерігаються. Одним з розв'язків цієї проблеми є припустити, що ймовірність слова залежить лише від попередніх n слів. Це є відомим як n-грамна модель, або уніграмна модель, коли n = 1. Уніграмна модель є також відомою як модель «торба слів».

Оцінювання відносної правдоподібності різних фраз є корисним у багатьох застосуваннях обробки природної мови, особливо в тих, що породжують текст як вихід. Моделювання мов використовують у розпізнаванні мовлення,[1] машиннім перекладі,[2] розмічуванні частин мови, синтаксичнім аналізі,[2] оптичнім розпізнаванні символів, розпізнаванні рукописного введення,[3] інформаційнім пошуку та інших застосуваннях.

У розпізнаванні мовлення звуки зіставляють з послідовностями слів. Неоднозначності розв'язувати легше, коли свідчення від моделі мови поєднують з моделлю вимови та акустичною моделлю[en].

Моделі мови використовують в інформаційнім пошуку в моделі правдоподібності запитів[en]. Там окрему модель мови пов'язують з кожним документом сукупності. Документи ранжують на основі ймовірності запиту Q в моделі мови документа : . Для цього зазвичай використовують уніграмну модель.

Типи моделей[ред. | ред. код]

Уніграмна[ред. | ред. код]

Уніграмну модель (англ. unigram model) можливо розглядати як комбінацію декількох одностанових скінченних автоматів[4]. Вона розділює ймовірності різних лексем (англ. term) у контексті, наприклад, з

до

У цій моделі ймовірність кожного зі слів залежить лише від ймовірності цього слова в документі, тож як вузли ми маємо лише одностановий скінченний автомат. Сам цей автомат має розподіл імовірності над усім словником цієї моделі, що підсумовується до 1. Далі наведено ілюстрацію уніграмної моделі документа.

Лексеми Ймовірність у документі
a 0.1
world 0.2
likes 0.05
we 0.05
share 0.3

Ймовірність, яку формують для конкретного запиту (англ. query), обчислюють як

Різні документи мають уніграмні моделі з різними ймовірностями влучання для слів у них. Розподіли ймовірностей з різних документів використовують для формування ймовірностей влучання для кожного запиту. Документи може бути ранжовано для запиту відповідно до цих імовірностей. Приклад уніграмних моделей двох документів:

Лексеми Ймовірність у документі 1 Ймовірність у документі 2
a 0.1 0.3
world 0.2 0.1
likes 0.05 0.03
we 0.05 0.02
share 0.3 0.2

У контексті інформаційного пошуку уніграмні моделі мови часто згладжують, щоби уникати випадків, коли P(лексема) = 0. Одним з поширених підходів є формувати модель максимальної правдоподібності для всієї сукупності, й лінійно інтерполювати цю модель сукупності з моделлю максимальної правдоподібності для кожного з документів, щоби згладити її[5].

n-грамна[ред. | ред. код]

Докладніше: n-грам

У n-грамній моделі (англ. n-gram model) ймовірність спостерігання речення наближують як

Виходять з того, що ймовірність спостерігання i-того слова wi в контексті історії попередніх i − 1 слів може бути наближено ймовірністю спостерігання його у скороченій історії контексту з попередніх n − 1 слів (марковська властивість n-того порядку).

Цю умовну ймовірність можливо обчислювати з частотних кількостей n-грамної моделі:

Терміни бігра́мна (англ. bigram) та тригра́мна (англ. trigram) мовні моделі позначують n-грамні моделі з n = 2 та n = 3 відповідно[6].

Як правило, ймовірності n-грамних моделей не виводять із частотних кількостей напряму, оскільки моделі, що виводять таким чином, мають серйозні проблеми, коли вони стикаються з будь-якими не баченими раніше явно n-грамами. Натомість необхідним є згладжування якогось вигляду, що призначує якусь частину загальної маси ймовірності небаченим словам або n-грамам. Використовують різні методи, від згладжування «плюс один» (призначування небаченим n-грамам кількості 1, як неінформативного апріорного), і до витонченіших моделей, таких як дисконтування Ґуда — Тюрігна[en] та моделі відступання[en].

Двоспрямована[ред. | ред. код]

Двоспрямовані представлення (англ. bidirectional representations) обумовлюються як попереднім, так і наступним контекстом (наприклад, словами) в усіх шарах[7].

Приклад[ред. | ред. код]

У біграмній (n = 2) моделі мови ймовірність речення «I saw the red house» наближують як

тоді як у триграмній (n = 3) моделі мови цим наближенням є

Зауважте, що контекст перших n – 1 n-грамів заповнено маркерами початку речення, які зазвичай позначують через <s>.

Крім того, без маркера кінця речення ймовірність неграматичної послідовності «*I saw the» буде завжди вищою за ймовірність довшого речення «I saw the red house».

Експоненційна[ред. | ред. код]

Максимально-ентропійні[en] моделі мови (англ. maximum entropy language models) кодують взаємозв'язок між словом та n-грамною історією із застосуванням функцій ознак. Цим рівнянням є

,

де є статистичною сумою[en], є вектором параметрів, а є функцією ознак. У найпростішому випадку функція ознак є просто індикатором наявності певного n-граму. Корисно використовувати апріорне на , або регуляризацію якогось вигляду.

Іншим прикладом експоненційної моделі мови є логарифмічно-білінійна модель.

Нейромережна[ред. | ред. код]

Нейромережні моделі мов (англ. neural language models, або неперервно-просторові моделі мови, англ. continuous space language models) щоби робити свої передбачування використовують неперервні представлення або вкладення слів[8]. Ці моделі використовують нейронні мережі.

Неперервно-просторові вкладення допомагають пом'якшувати прокляття розмірності в моделюванні мов: що на більших і більших текстах тренуються моделі мов, то дедалі більшим стає число унікальних слів (словник).[a] Число можливих послідовностей слів зростає експоненційно з розміром словника, спричинюючи проблему розрідженості даних через експоненційно велику кількість послідовностей. Таким чином, для належного оцінювання ймовірностей потрібні статистики. Нейронні мережі уникають цієї проблеми, представляючи слова розподіленим чином, як нелінійні комбінації ваг у нейронній мережі[9]. Альтернативним описом є те, що нейронна мережа наближує функцію мови. Нейронна мережа може мати архітектуру прямого поширення або рекурентну, і тоді як перша є простішою, остання є поширенішою.[потрібні приклади][джерело?]

Як правило, нейромережні моделі мов будують та тренують як імовірнісні класифікатори, що вчаться передбачувати розподіл імовірності

.

Тобто, мережа тренується передбачувати розподіл імовірності над словником за якогось заданого лінгвістичного контексту. Це здійснюють застосуванням стандартних алгоритмів тренування нейронних мереж, таких як стохастичний градієнтний спуск зі зворотним поширенням.[9] Контекст може бути вікном попередніх слів фіксованої ширини, так, що мережа передбачує

з вектору ознак, що представляє попередні k слів.[9] Іншим варіантом є використовувати як ознаки «майбутні» слова, так само як і «минулі», так, що оцінюваною ймовірністю є

.

Це називають моделлю торби слів. Коли вектори ознак для слів контексту поєднують неперервною операцією, цю модель називають архітектурою неперервної торби слів (НТС, англ. continuous bag-of-words, CBOW)[10].

Третім варіантом, який тренується повільніше за НТС, але працює дещо краще, є обернути попередню задачу, і зробити так, щоби нейронна мережа вчилася контексту за заданого слова.[10] Формальніше, за заданої послідовності слів максимізують усереднену логарифмічну ймовірність

,

де k, розмір тренованого контексту, може бути функцією від центрального слова . Це називають пропуск-грамною (англ. skip-gram) моделлю мови[11]. Моделі торби слів та пропуск-грамна є основою програми word2vec[12].

Замість використовувати нейромережні моделі мови, щоби виробляти фактичні ймовірності, поширеним є натомість використання розподіленого представлення, закодованого в «прихованих» шарах мережі, як представлення слів. Тоді кожне слово відображують в n-вимірний дійсний вектор, званий вкладенням слова, де n є розміром шару безпосередньо перед шаром виходу. Представлення в пропуск-грамних моделях мають таку виразну характеристику, що вони моделюють семантичні відношення між словами як лінійні комбінації, вловлюючи свого роду композиційність[en]. Наприклад, у деяких таких моделях, якщо v є функцією, що відображує слово w до його n-вимірного векторного представлення, то

,

де ≈ роблять точним, ставлячи умову, що його права частина мусить бути найближчим сусідом значення лівої частини.[10][11]

Інші[ред. | ред. код]

Позиційна модель мови (англ. positional language model)[13] оцінює ймовірність трапляння заданих слів близько в тексті одне до одного, не обов'язково безпосередньо суміжними. Подібним чином, моделі концепції торби слів[14] використовують семантику, пов'язану з багатослівними виразами, такими як «buy_christmas_present», навіть якщо вони використовуються в інформаційно насичених реченнях на кшталт «today I bought a lot of very nice Christmas presents».

Незважаючи на обмежений успіх використання нейронних мереж[15], автори визнають необхідність інших методів при моделюванні мов жестів.

Еталони[ред. | ред. код]

Для оцінювання систем обробки мови було розроблено різноманітні наборі даних[7]. До них належать:

  • Corpus of Linguistic Acceptability[16]
  • GLUE benchmark[17]
  • Microsoft Research Paraphrase Corpus[18]
  • Multi-Genre Natural Language Inference
  • Question Natural Language Inference
  • Quora Question Pairs[19]
  • Recognizing Textual Entailment[20]
  • Semantic Textual Similarity Benchmark
  • SQuAD question answering Test[21]
  • Stanford Sentiment Treebank[en][22]
  • Winograd NLI

Див. також[ред. | ред. код]

Виноски[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Kuhn, Roland, and Renato De Mori. "A cache-based natural language model for speech recognition." IEEE transactions on pattern analysis and machine intelligence 12.6 (1990): 570-583. (англ.)
  2. а б Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation [Архівовано 15 серпня 2020 у Wayback Machine.]." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013. (англ.)
  3. Pham, Vu, et al. "Dropout improves recurrent neural networks for handwriting recognition [Архівовано 11 листопада 2020 у Wayback Machine.]." 2014 14th International Conference on Frontiers in Handwriting Recognition. IEEE, 2014. (англ.)
  4. Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: An Introduction to Information Retrieval, pages 237–240. Cambridge University Press, 2009 (англ.)
  5. Buttcher, Clarke, and Cormack. Information Retrieval: Implementing and Evaluating Search Engines. pg. 289–291. MIT Press. (англ.)
  6. Craig Trim, What is Language Modeling? [Архівовано 5 грудня 2020 у Wayback Machine.], April 26th, 2013. (англ.)
  7. а б Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (2018-10-10). «BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding». arXiv:1810.04805 [cs.CL].  (англ.)
  8. Karpathy, Andrej. The Unreasonable Effectiveness of Recurrent Neural Networks. Архів оригіналу за 1 листопада 2020. Процитовано 1 листопада 2020. (англ.)
  9. а б в Bengio, Yoshua (2008). Neural net language models. Scholarpedia. Т. 3, № 1. с. 3881. Bibcode:2008SchpJ...3.3881B. doi:10.4249/scholarpedia.3881. Архів оригіналу за 26 жовтня 2020. Процитовано 1 листопада 2020. (англ.)
  10. а б в Mikolov, Tomas; Chen, Kai; Corrado, Greg; Dean, Jeffrey (2013). «Efficient estimation of word representations in vector space». arXiv:1301.3781 [cs.CL].  (англ.)
  11. а б Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado irst4=Greg S.; Dean, Jeff (2013). Distributed Representations of Words and Phrases and their Compositionality (PDF). Advances in Neural Information Processing Systems[en]. с. 3111—3119. Архів оригіналу (PDF) за 29 жовтня 2020. Процитовано 1 листопада 2020. (англ.)
  12. Harris, Derrick (16 серпня 2013). We're on the cusp of deep learning for the masses. You can thank Google later. Gigaom. Архів оригіналу за 11 листопада 2020. Процитовано 1 листопада 2020. (англ.)
  13. Lv, Yuanhua; Zhai, ChengXiang (2009). Positional Language Models for Information Retrieval in (PDF). Proceedings. 32nd international ACM SIGIR conference on Research and development in information retrieval (SIGIR). Архів оригіналу (PDF) за 24 листопада 2020. Процитовано 1 листопада 2020. (англ.)
  14. Cambria, Erik; Hussain, Amir (28 липня 2012). Sentic Computing: Techniques, Tools, and Applications (англ.). Springer Netherlands. ISBN 978-94-007-5069-2. (англ.)
  15. Mocialov, Boris; Hastie, Helen; Turner, Graham (August 2018). Transfer Learning for British Sign Language Modelling. Proceedings of the Fifth Workshop on NLP for Similar Languages, Varieties and Dialects (VarDial 2018). Архів оригіналу за 5 грудня 2020. Процитовано 14 березня 2020. (англ.)
  16. The Corpus of Linguistic Acceptability (CoLA). nyu-mll.github.io. Архів оригіналу за 7 грудня 2020. Процитовано 25 лютого 2019. (англ.)
  17. GLUE Benchmark. gluebenchmark.com (англ.). Архів оригіналу за 4 листопада 2020. Процитовано 25 лютого 2019. (англ.)
  18. Microsoft Research Paraphrase Corpus. Microsoft Download Center (en-us) . Архів оригіналу за 25 жовтня 2020. Процитовано 25 лютого 2019. (англ.)
  19. Aghaebrahimian, Ahmad (2017), Quora Question Answer Dataset, Text, Speech, and Dialogue, Lecture Notes in Computer Science, т. 10415, Springer International Publishing, с. 66—73, doi:10.1007/978-3-319-64206-2_8, ISBN 9783319642055 (англ.)
  20. Sammons, V.G.Vinod Vydiswaran, Dan Roth, Mark; Vydiswaran, V.G.; Roth, Dan. Recognizing Textual Entailment (PDF). Архів оригіналу (PDF) за 9 серпня 2017. Процитовано 24 лютого 2019. (англ.)
  21. The Stanford Question Answering Dataset. rajpurkar.github.io. Архів оригіналу за 30 жовтня 2020. Процитовано 25 лютого 2019. (англ.)
  22. Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank. nlp.stanford.edu. Архів оригіналу за 27 жовтня 2020. Процитовано 25 лютого 2019. (англ.)

Джерела[ред. | ред. код]

  • J M Ponte and W B Croft (1998). A Language Modeling Approach to Information Retrieval. Research and Development in Information Retrieval. с. 275—281. CiteSeerX 10.1.1.117.4237. (англ.)
  • F Song and W B Croft (1999). A General Language Model for Information Retrieval. Research and Development in Information Retrieval. с. 279—280. CiteSeerX 10.1.1.21.6467. (англ.)
  • Chen, Stanley; Joshua Goodman (1998). An Empirical Study of Smoothing Techniques for Language Modeling (Технічний звіт). Harvard University. CiteSeerX 10.1.1.131.5458. (англ.)

Посилання[ред. | ред. код]

Програмне забезпечення[ред. | ред. код]