Модель мови
Статистична моде́ль мо́ви (англ. language model) — це розподіл імовірності над послідовностями слів. Заданій такій послідовності, скажімо, довжини m, вона призначує ймовірність усієї цієї послідовності.
Модель мови забезпечує контекст для розрізнювання слів та фраз, які звучать схоже. Наприклад, в американській англійській фрази «recognize speech» (розпізнавати мовлення) та «wreck a nice beach» (вбити гарний пляж) звучать схоже, але означають різні речі.
У побудові моделей мов основною проблемою є розрідженість даних. Більшість можливих послідовностей слів під час тренування не спостерігаються. Одним з розв'язків цієї проблеми є припустити, що ймовірність слова залежить лише від попередніх n слів. Це є відомим як n-грамна модель, або уніграмна модель, коли n = 1. Уніграмна модель є також відомою як модель «торба слів».
Оцінювання відносної правдоподібності різних фраз є корисним у багатьох застосуваннях обробки природної мови, особливо в тих, що породжують текст як вихід. Моделювання мов використовують у розпізнаванні мовлення,[1] машиннім перекладі,[2] розмічуванні частин мови, синтаксичнім аналізі,[2] оптичнім розпізнаванні символів, розпізнаванні рукописного введення,[3] інформаційнім пошуку та інших застосуваннях.
У розпізнаванні мовлення звуки зіставляють з послідовностями слів. Неоднозначності розв'язувати легше, коли свідчення від моделі мови поєднують з моделлю вимови та акустичною моделлю.
Моделі мови використовують в інформаційнім пошуку в моделі правдоподібності запитів. Там окрему модель мови пов'язують з кожним документом сукупності. Документи ранжують на основі ймовірності запиту 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-gram model) ймовірність спостерігання речення наближують як
Виходять з того, що ймовірність спостерігання i-того слова wi в контексті історії попередніх i − 1 слів може бути наближено ймовірністю спостерігання його у скороченій історії контексту з попередніх n − 1 слів (марковська властивість n-того порядку).
Цю умовну ймовірність можливо обчислювати з частотних кількостей n-грамної моделі:
Терміни бігра́мна (англ. bigram) та тригра́мна (англ. trigram) мовні моделі позначують n-грамні моделі з n = 2 та n = 3 відповідно[6].
Як правило, ймовірності n-грамних моделей не виводять із частотних кількостей напряму, оскільки моделі, що виводять таким чином, мають серйозні проблеми, коли вони стикаються з будь-якими не баченими раніше явно n-грамами. Натомість необхідним є згладжування якогось вигляду, що призначує якусь частину загальної маси ймовірності небаченим словам або n-грамам. Використовують різні методи, від згладжування «плюс один» (призначування небаченим n-грамам кількості 1, як неінформативного апріорного), і до витонченіших моделей, таких як дисконтування Ґуда — Тюрігна та моделі відступання.
Двоспрямована
Двоспрямовані представлення (англ. bidirectional representations) обумовлюються як попереднім, так і наступним контекстом (наприклад, словами) в усіх шарах[7].
Приклад
У біграмній (n = 2) моделі мови ймовірність речення «I saw the red house» наближують як
тоді як у триграмній (n = 3) моделі мови цим наближенням є
Зауважте, що контекст перших n – 1 n-грамів заповнено маркерами початку речення, які зазвичай позначують через <s>.
Крім того, без маркера кінця речення ймовірність неграматичної послідовності «*I saw the» буде завжди вищою за ймовірність довшого речення «I saw the red house».
Експоненційна
Максимально-ентропійні моделі мови (англ. maximum entropy language models) кодують взаємозв'язок між словом та n-грамною історією із застосуванням функцій ознак. Цим рівнянням є
- ,
де є статистичною сумою, є вектором параметрів, а є функцією ознак. У найпростішому випадку функція ознак є просто індикатором наявності певного n-граму. Корисно використовувати апріорне на , або регуляризацію якогось вигляду.
Іншим прикладом експоненційної моделі мови є логарифмічно-білінійна модель.
Нейромережна
Нейромережні моделі мов (англ. neural language models, або неперервно-просторові моделі мови, англ. continuous space language models) щоби робити свої передбачування використовують неперервні представлення або вкладення слів[8]. Ці моделі використовують нейронні мережі.
Неперервно-просторові вкладення допомагають пом'якшувати прокляття розмірності в моделюванні мов: що на більших і більших текстах тренуються моделі мов, то дедалі більшим стає число унікальних слів (словник).[lower-alpha 1] Число можливих послідовностей слів зростає експоненційно з розміром словника, спричинюючи проблему розрідженості даних через експоненційно велику кількість послідовностей. Таким чином, для належного оцінювання ймовірностей потрібні статистики. Нейронні мережі уникають цієї проблеми, представляючи слова розподіленим чином, як нелінійні комбінації ваг у нейронній мережі[9]. Альтернативним описом є те, що нейронна мережа наближує функцію мови. Нейронна мережа може мати архітектуру прямого поширення або рекурентну, і тоді як перша є простішою, остання є поширенішою.[джерело?]
Як правило, нейромережні моделі мов будують та тренують як імовірнісні класифікатори, що вчаться передбачувати розподіл імовірності
- .
Тобто, мережа тренується передбачувати розподіл імовірності над словником за якогось заданого лінгвістичного контексту. Це здійснюють застосуванням стандартних алгоритмів тренування нейронних мереж, таких як стохастичний градієнтний спуск зі зворотним поширенням.[9] Контекст може бути вікном попередніх слів фіксованої ширини, так, що мережа передбачує
з вектору ознак, що представляє попередні k слів.[9] Іншим варіантом є використовувати як ознаки «майбутні» слова, так само як і «минулі», так, що оцінюваною ймовірністю є
- .
Це називають моделлю торби слів. Коли вектори ознак для слів контексту поєднують неперервною операцією, цю модель називають архітектурою неперервної торби слів (НТС, англ. continuous bag-of-words, CBOW)[10].
Третім варіантом, який тренується повільніше за НТС, але працює дещо краще, є обернути попередню задачу, і зробити так, щоби нейронна мережа вчилася контексту за заданого слова.[10] Формальніше, за заданої послідовності слів максимізують усереднену логарифмічну ймовірність
- ,
де k, розмір тренованого контексту, може бути функцією від центрального слова . Це називають пропуск-грамною (англ. skip-gram) моделлю мови[11]. Моделі торби слів та пропуск-грамна є основою програми word2vec[12].
Замість використовувати нейромережні моделі мови, щоби виробляти фактичні ймовірності, поширеним є натомість використання розподіленого представлення, закодованого в «прихованих» шарах мережі, як представлення слів. Тоді кожне слово відображують в n-вимірний дійсний вектор, званий вкладенням слова, де n є розміром шару безпосередньо перед шаром виходу. Представлення в пропуск-грамних моделях мають таку виразну характеристику, що вони моделюють семантичні відношення між словами як лінійні комбінації, вловлюючи свого роду композиційність. Наприклад, у деяких таких моделях, якщо 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[22]
- Winograd NLI
Див. також
- Статистична модель
- Факторизована модель мови
- Кешувальна модель мови
- Модель відступання Каца
- Трансформер
- BERT
- GPT
- GPT-3
Виноски
- Див. Закон Гіпса.
Примітки
- 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. (англ.)
- Andreas, Jacob, Andreas Vlachos, and Stephen Clark. "Semantic parsing as machine translation." Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2013. (англ.)
- Pham, Vu, et al. "Dropout improves recurrent neural networks for handwriting recognition." 2014 14th International Conference on Frontiers in Handwriting Recognition. IEEE, 2014. (англ.)
- Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: An Introduction to Information Retrieval, pages 237–240. Cambridge University Press, 2009 (англ.)
- Buttcher, Clarke, and Cormack. Information Retrieval: Implementing and Evaluating Search Engines. pg. 289–291. MIT Press. (англ.)
- Craig Trim, What is Language Modeling?, April 26th, 2013. (англ.)
- 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]. (англ.)
- Karpathy, Andrej. The Unreasonable Effectiveness of Recurrent Neural Networks. (англ.)
- Bengio, Yoshua (2008). «Neural net language models». Scholarpedia. 3. p. 3881. doi:10.4249/scholarpedia.3881. http://www.scholarpedia.org/article/Neural_net_language_models. (англ.)
- Mikolov, Tomas; Chen, Kai; Corrado, Greg; Dean, Jeffrey (2013). «Efficient estimation of word representations in vector space». arXiv:1301.3781 [cs.CL]. (англ.)
- Mikolov, Tomas; Sutskever, Ilya; Chen, Kai; Corrado irst4=Greg S.; Dean, Jeff (2013). Distributed Representations of Words and Phrases and their Compositionality Advances in Neural Information Processing Systems. с. 3111–3119. (англ.)
- Harris, Derrick (16 серпня 2013). We're on the cusp of deep learning for the masses. You can thank Google later. Gigaom. (англ.)
- Lv, Yuanhua; Zhai, ChengXiang (2009). Positional Language Models for Information Retrieval in. Proceedings 32nd international ACM SIGIR conference on Research and development in information retrieval (SIGIR). (англ.)
- Cambria, Erik; Hussain, Amir (28 липня 2012). Sentic Computing: Techniques, Tools, and Applications (англ.). Springer Netherlands. ISBN 978-94-007-5069-2. (англ.)
- 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). Процитовано 14 березня 2020. (англ.)
- The Corpus of Linguistic Acceptability (CoLA). nyu-mll.github.io. Процитовано 25 лютого 2019. (англ.)
- GLUE Benchmark. gluebenchmark.com (англ.). Процитовано 25 лютого 2019. (англ.)
- Microsoft Research Paraphrase Corpus. Microsoft Download Center (en-us). Процитовано 25 лютого 2019. (англ.)
- Aghaebrahimian, Ahmad (2017). Quora Question Answer Dataset. Text, Speech, and Dialogue. Lecture Notes in Computer Science. 10415. Springer International Publishing. с. 66–73. ISBN 9783319642055. doi:10.1007/978-3-319-64206-2_8. (англ.)
- Sammons, V.G.Vinod Vydiswaran, Dan Roth, Mark; Vydiswaran, V.G.; Roth, Dan. Recognizing Textual Entailment. Процитовано 24 лютого 2019. (англ.)
- The Stanford Question Answering Dataset. rajpurkar.github.io. Процитовано 25 лютого 2019. (англ.)
- Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank. nlp.stanford.edu. Процитовано 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=
(довідка) (англ.) - F Song and W B Croft (1999). A General Language Model for Information Retrieval. Research and Development in Information Retrieval. с. 279–280. Проігноровано невідомий параметр
|citeseerx=
(довідка) (англ.) - Chen, Stanley; Joshua Goodman (1998). An Empirical Study of Smoothing Techniques for Language Modeling. Проігноровано невідомий параметр
|citeseerx=
(довідка); Проігноровано невідомий параметр|institution=
(довідка) (англ.)
Посилання
Програмне забезпечення
- BERT на GitHub – Bidirectional Encoder Representations from Transformers
- CSLM – вільний інструментарій для моделей мови на нейронних мережах прямого поширення
- DALM на GitHub – швидке вільне програмне забезпечення для запитів до моделей мови
- Generative Pre-trained Transformer
- IRSTLM – вільне програмне забезпечення для моделювання мов
- Kylm (Kyoto Language Modeling Toolkit) – вільний інструментарій моделювання мов мовою Java
- KenLM – швидке вільне програмне забезпечення для моделювання мов
- LMSharp на GitHub – вільний інструментарій моделювання мов для n-грамних моделей зі згладжуванням Кнесера — Нея та рекурентно-нейромережних моделей
- MITLM на GitHub – інструментарій моделювання мов МТІ. Вільне програмне забезпечення
- NPLM – вільний інструментарій для моделей мови на нейронних мережах прямого поширення
- OpenGrm NGram library – вільне програмне забезпечення для моделювання мов. Побудовано на OpenFst.
- OxLM на GitHub – вільний інструментарій для моделей мови на нейронних мережах прямого поширення
- Positional Language Model
- RandLM – вільне програмне забезпечення для увипадковленого моделювання мов
- RNNLM – вільний інструментарій для рекурентно-нейромережних моделей мови
- SRILM – власницьке програмне забезпечення для моделювання мов
- VariKN – вільне програмне забезпечення для створювання, вирощування та обрізання n-грамних моделей зі згладжуванням Кнесера — Нея
- Моделі мови, натреновані на даних newswire