Data Science Simplified: что такое языковое моделирование для NLP?

Data Science Simplified Изучение

Обработка естественного языка может выполнять широкий спектр задач, таких как суммирование текста, создание совершенно новых фрагментов текста и предсказание слов, среди прочего. Все эти задачи основаны на языковых моделях.

Языковые модели — важный компонент в любом путешествии по НЛП. Эти языковые модели поддерживают все популярные приложения НЛП: распознавание речи, машинный перевод, тегирование части речи, синтаксический анализ, поиск информации и другие приложения.

Сегодня мы познакомим вас с языковыми моделями, начав с базовых моделей, а затем перейдя к современным языковым моделям, которые обучаются с использованием принципов больших данных.

Что такое языковое моделирование?

Моделирование языка (LM) анализирует тела в текст, чтобы обеспечить основу для предсказания слов. Эти модели используют статистические и вероятностные методы для определения вероятности того, что определенная последовательность слов встречается в предложении.

Языковое моделирование используется в методах НЛП, которые на выходе генерируют письменный текст.

Приложения и программы с концепциями НЛП полагаются на языковые модели для таких задач, как преобразование звука в текст, анализ тональности, распознавание речи и исправление орфографии.

Языковые модели работают, определяя вероятности слов в анализируемом фрагменте текстовых данных

Языковые модели работают, определяя вероятности слов в анализируемом фрагменте текстовых данных. Данные интерпретируются после передачи в алгоритм машинного обучения, который ищет контекстные правила на данном естественном языке (например, английском, японском, испанском).

Затем модель применяет эти правила к задачам языка ввода для генерации прогнозов. Он даже может создавать новые последовательности или предложения на основе того, что он узнал.

Языковые модели полезны как для классификации текста и генерации текста. При классификации текста мы можем использовать вероятностные вычисления языковой модели для разделения текстов на разные категории.

Например, если бы мы обучили языковую модель заголовкам тем спам-писем, модель, скорее всего, даст теме «НАЖМИТЕ ЗДЕСЬ ДЛЯ БЕСПЛАТНЫХ ЛЕГКИХ ДЕНЕГ» относительно высокую вероятность того, что это спам.

При генерации текста языковая модель завершает предложение, генерируя текст на основе неполного входного предложения. Это идея функции автозаполнения при отправке текстовых сообщений на телефон или при вводе текста в поисковой системе. Модель предложит дополнить предложение на основе слов, которые она предсказывает с наибольшей вероятностью.

Типы языковых моделей

Есть две категории, к которым относятся языковые модели:

Статистические языковые модели: в этих моделях используются традиционные статистические методы, такие как N-граммы, скрытые марковские модели (HMM) и установленные лингвистические правила для изучения вероятностного распределения слов. Статистическое моделирование языка включает в себя разработку вероятностных моделей, которые могут предсказать следующее слово в последовательности, учитывая слова, которые ему предшествуют.

Модели нейронного языка: эти модели являются новыми игроками в мире НЛП и превзошли статистические языковые модели по своей эффективности. Они используют разные типы нейронных сетей для моделирования языка. Использование нейронных сетей при разработке языковых моделей стало настолько популярным. Что теперь это предпочтительный подход для решения сложных задач, таких как распознавание речи и машинный перевод.

Примечание. GPT-3 является примером модели нейронного языка. BERT от Google — еще одна популярная модель нейронного языка, используемая в алгоритме поисковой системы для предсказания следующего слова нашего поискового запроса.

Введение в статистические языковые модели

Давайте глубже погрузимся в концепцию статистических языковых моделей. Языковая модель изучает вероятность появления слова на основе примеров текста. Более простые модели могут рассматривать контекст короткой последовательности слов, тогда как более крупные модели могут работать на уровне предложений или абзацев. Чаще всего языковые модели работают на уровне слов.

N-gram Language Models

N-gram Language Models

Модель n-грамм — это вероятностная языковая модель, которая может предсказывать следующий элемент в последовательности, используя (n — 1) -порядковую модель Маркова. Давайте лучше поймем это на примере. Рассмотрим следующее предложение:

«Я люблю читать блоги об образовании, чтобы изучать новые концепции»

1-грамм (или униграмма) — это последовательность из одного слова. Для приведенного выше предложения униграммы будут просто: «Я», «люблю», «чтение», «блоги», «в», «поучительно», «и», «учиться», «новое», «концепции»..

2 грамма (или биграмма) — это последовательность слов, состоящая из двух слов, например «я люблю», «люблю читать», «по вопросам образования» или «новые концепции».

И, наконец, 3-грамма (или триграмма) — это последовательность слов из трех слов, например «Я люблю читать», «Блоги по образовательным вопросам» или «изучайте новые концепции».

Модель языка N-граммов предсказывает вероятность данной N-граммы в любой последовательности слов на языке. Если у нас есть хорошая модель N-грамма, мы можем предсказатьр (ш | ч)п ( ш ∣ ч ), или вероятность увидеть слово w с учетом истории предыдущих слов h, где история содержит n-1 слово.

Пример: «Я люблю читать ___». Здесь мы хотим предсказать, какое слово заполнит черту, на основе вероятностей предыдущих слов.

Мы должны оценить эту вероятность, чтобы построить модель N-грамм. Мы вычисляем эту вероятность в два этапа:

  1. Примените цепное правило вероятности
  2. Затем мы применяем очень сильное упрощение, позволяющее легко вычислить p (w1… ws).

Цепное правило вероятности:

p(w1...ws)=p(w1).p(w2w1).p(w3w1w2).p(w4w1w2w3).....p(wnw1...wn1)

Определение: что такое цепное правило? Он говорит нам, как вычислить совместную вероятность последовательности, используя условную вероятность слова с учетом предыдущих слов.

Здесь у нас нет доступа к этим условным вероятностям со сложными условиями до n-1 слов. Итак, как мы будем действовать? Здесь мы вводим упрощающее предположение. Мы можем предположить для всех условий, что:

p(wkw1...wk1)=p(wkwk1)

Здесь мы приближаем историю (контекст) слова wk, глядя только на последнее слово контекста. Это предположение называется предположением Маркова. Это пример модели биграммы. Эту же концепцию можно расширить, например, для модели триграммы формула будет выглядеть следующим образом:

У этих моделей есть основная проблема: они дают нулевую вероятность, если видно неизвестное слово, поэтому используется концепция сглаживания. При сглаживании мы присваиваем некоторую вероятность невидимым словам. Существуют различные типы методов сглаживания, такие как сглаживание Лапласа, хорошее сглаживание Тьюринга и сглаживание Кнезернея.

Введение в нейронные языковые модели

Модели нейронного языка имеют некоторые преимущества перед вероятностными моделями. Например, им не нужно сглаживание, они могут обрабатывать гораздо более длинные истории и могут делать обобщения по контекстам похожих слов.

Для обучающей выборки заданного размера нейронная языковая модель имеет гораздо более высокую точность прогнозов, чем языковая модель n-грамм.

С другой стороны, это повышение производительности связано с издержками: языковые модели нейронных сетей обучаются значительно медленнее, чем традиционные языковые модели, и поэтому для многих задач языковая модель N-граммы по-прежнему является правильным инструментом.

В нейронных языковых моделях предшествующий контекст представлен вложениями предыдущих слов. Это позволяет моделям нейронного языка обобщать невидимые данные намного лучше, чем языковые модели N-грамм.

 

Это позволяет моделям нейронного языка обобщать невидимые данные намного лучше

Вложения слов — это тип представления слов, который позволяет словам с похожим значением иметь аналогичное представление. По сути, встраивание слов — это класс методов, при которых отдельные слова представляются как векторы с действительными значениями в заранее определенном векторном пространстве.

Каждое слово сопоставляется с одним вектором, и значения вектора изучаются способом, напоминающим нейронную сеть. Каждое слово представлено вектором с действительными значениями, часто в десятках или сотнях измерений.

Примечание. Некоторые из техник внедрения слов — Word2Vec и GloVe.

Модели нейронного языка сначала были основаны на RNN и вложениях слов. Затем появилась концепция LSTM, GRU и кодировщика-декодера. Недавним достижением стало открытие трансформеров, которые коренным образом изменили сферу языкового моделирования.

Некоторые из самых известных языковых моделей, такие как BERT, ERNIE, GPT-2 и GPT-3, RoBERTa, основаны на Transformers.

Затем RNN складывались в стек и использовались двунаправленно, но они не могли улавливать долгосрочные зависимости. Для устранения этого недостатка были введены LSTM и ГРУ.

Трансформаторы образуют основные строительные блоки новых моделей нейронного языка. Представлена ​​концепция трансферного обучения, которая стала большим прорывом. Модели были предварительно обучены с использованием больших наборов данных.

Например, BERT обучен на всей английской Википедии. Для обучения моделей использовалось обучение без учителя. GPT-2 обучен на наборе из 8 миллионов веб-страниц. Затем эти модели настраиваются для выполнения различных задач НЛП.

Что учить дальше

Отличная работа! Теперь вы должны хорошо понимать языковые модели НЛП. Эти знания будут полезны в вашем путешествии по машинному обучению, когда вы научитесь самостоятельно реализовывать эти модели.

Еще многое предстоит узнать об обработке естественного языка. Я рекомендую изучить следующие концепции, чтобы расширить свои знания:

  • TensorFlow with Python
  • Skip-gram for word embeddings
  • Tensor indexing
  • Text classification
  • Seq2Seq Models
Читайте также:  Объединение каналов (объединение сетевых карт) в CentOS
Оцените статью
bestprogrammer.ru
Добавить комментарий