Языковая модель

редактировать
Статистическая модель структуры языка

Статистическая языковая модель - это распределение вероятностей по последовательностям слов. Для такой последовательности, скажем длины m, ей присваивается вероятность P (w 1,…, wm) {\ displaystyle P (w_ {1}, \ ldots, w_ {m})}P (w_ {1}, \ ldots, w_ {m}) на всю последовательность.

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

Редкость данных - главная проблема при построении языковых моделей. При обучении не наблюдаются наиболее возможные последовательности слов. Одно из решений - сделать предположение, что вероятность слова зависит только от предыдущих n слов. Это известно как модель n-грамма или модель униграммы, когда n = 1. Модель униграммы также известна как модель пакета слов.

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

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

Языковые модели используются при поиске информации в модели вероятности запроса. Там с каждым документом в коллекции связана отдельная языковая модель. Документы ранжируются на основе вероятности запроса Q в языковой модели документа M d {\ displaystyle M_ {d}}M_d : P (Q ∣ M d) {\ displaystyle P (Q \ mid M_ {d })}P (Q \ mid M_ {d}) . Обычно для этой цели используется языковая модель unigram.

Содержание
  • 1 Типы моделей
    • 1.1 Униграмма
    • 1.2 н-грамм
      • 1.2.1 Двунаправленная
      • 1.2.2 Пример
    • 1.3 Экспоненциальная
    • 1.4 Нейронная сеть
    • 1.5 Другое
  • 2 Тесты
  • 3 См. Также
  • 4 Примечания
  • 5 Ссылки
    • 5.1 Ссылки
    • 5.2 Источники
  • 6 Внешние ссылки
    • 6.1 Программное обеспечение
Типы моделей

Униграмма

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

P (t 1 t 2 t 3) = P (t 1) P (t 2 ∣ t 1) P (t 3 ∣ t 1 t 2) {\ displaystyle P (t_ {1} t_ {2}) t_ {3}) = P (t_ {1}) P (t_ {2} \ mid t_ {1}) P (t_ {3} \ mid t_ {1} t_ {2})} отP (t_ {1} t_ { 2} t_ {3}) = P (t_ {1}) P (t_ {2} \ mid t_ {1}) P (t_ {3} \ mid t_ {1} t_ {2})

до

P uni (t 1 t 2 t 3) = P (t 1) P (t 2) P (t 3). {\ displaystyle P _ {\ text {uni}} (t_ {1} t_ {2} t_ {3}) = P (t_ {1}) P (t_ {2}) P (t_ {3}).}{\ displaystyle P _ {\ text {uni}} (t_ {1} t_ {2} t_ {3}) = P (t_ {1}) P (t_ {2}) P (t_ {3}).}

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

УсловияВероятность в документе
a0,1
мир0,2
лайков0,05
we0,05
доля0,3
......
∑ термин в документе P (термин) = 1 {\ displaystyle \ sum _ {\ text {term in doc}} P ({ \ text {term}}) = 1}{\ displaystyle \ sum _ {\ text {term in doc}} P ({\ text {term}}) = 1}

Вероятность, сгенерированная для конкретного запроса, вычисляется как

P (query) = ∏ term в запросе P (term) {\ displaystyle P ({\ text {query} }) = \ prod _ {\ text {термин в запросе}} P ({\ text {term}})}P ({\ text {que ry}}) = \ prod _ {{{\ text {термин в запросе}}}} P ({\ text {term}})

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

TermsВероятность в Doc1Вероятность в Doc2
a0.10,3
мир0,20,1
лайков0,050,03
we0,050,02
поделиться0,30,2
.........

В контексте поиска информации модели языка униграммы часто сглаживаются, чтобы избежать случаев, когда P ( term) = 0. Общий подход состоит в том, чтобы сгенерировать модель максимального правдоподобия для всей коллекции и линейно интерполировать модель коллекции с моделью максимального правдоподобия для каждого документа, чтобы сгладить модель.

n-грамм

В n-граммовой модели вероятность P (w 1,…, wm) {\ displaystyle P (w_ {1}, \ ldots, w_ {m}) }P (w_ {1}, \ ldots, w_ {m}) наблюдения за предложением w 1,…, wm {\ displaystyle w_ {1}, \ ldots, w_ {m}}w_ {1}, \ ldots, w_ {m} аппроксимируется как

P ( w 1,…, wm) = ∏ i = 1 m P (wi ∣ w 1,…, wi - 1) ≈ ∏ i = 1 m P (wi ∣ wi - (n - 1),…, wi - 1) {\ Displaystyle P (w_ {1}, \ ldots, w_ {m}) = \ prod _ {i = 1} ^ {m} P (w_ {i} \ mid w_ {1}, \ ldots, w_ { i-1}) \ приблизительно \ prod _ {i = 1} ^ {m} P (w_ {i} \ mid w_ {i- (n-1)}, \ ldots, w_ {i-1})}{\ displaystyle P (w_ {1}, \ ldots, w_ {m}) = \ prod _ {i = 1} ^ {m} P (w_ {i} \ mid w_ {1}, \ ldots, w_ {i-1}) \ приблизительно \ prod _ {i = 1} ^ {m} P (w_ {i} \ mid w_ {i- (n-1)}, \ ldots, w_ {i-1})}

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

Условная вероятность может быть рассчитана на основе подсчета частот n-граммовой модели:

P (wi ∣ wi - (n - 1),…, wi - 1) = count (wi - (n - 1),…, Wi - 1, wi) count (wi - (n - 1),…, wi - 1) {\ displaystyle 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})}}}{\ displaystyle 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})}}}

Термины биграмма и триграмма языковые модели обозначают n-граммовые модели с n = 2 и n = 3 соответственно.

Как правило, вероятности n-граммовой модели не выводятся непосредственно из подсчета частот, потому что модели, полученные таким образом, имеют серьезные проблемы при столкновении с любыми n -граммы, которые раньше явно не видели. Вместо этого необходима некоторая форма сглаживания, приписывающая часть полной вероятностной массы невидимым словам или n-граммам. Используются различные методы, от простого сглаживания "добавить один" (присвоить счет 1 невидимым n-граммам, как неинформативный предшествующий ) до более сложных моделей, таких как дисконтирование по Гуд-Тьюрингу или модели возврата.

Двунаправленное

Двунаправленное представление обусловлено как пре-, так и пост-контекстом (например, слова) на всех уровнях.

Пример

В языковой модели биграмм (n = 2) вероятность предложения, которое я увидел красный дом, приблизительно равна

P (я, видел, красный, дом) ≈ P (I ∣ ⟨s ⟩) P (пила ∣ I) P (пила) P (красный ∣ the) P (дом ∣ красный) P (⟨/ s⟩ ∣ дом) {\ displaystyle P ({\ text {I, увидел, the, красный, дом}}) \ приблизительно 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}})}{\ displaystyle P ({\ text {I, saw, the, red, house}}) \ приблизительно 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}})}

тогда как в языковой модели триграммы (n = 3) приближение составляет

P (I, увидел, красный, дом) ≈ P (I ∣ ⟨s⟩, ⟨s⟩) P (пила ∣ ⟨s⟩, I) P (∣ I, пила) P (красная ∣ пила) P (дом ∣ the, красный) P (⟨/ s⟩ ∣ красный, дом) {\ displaystyle P ({\ text {I, пила, красный, дом}}) \ приблизительно 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}})}{\ displaystyle P ({\ text {I, пила, красный, дом}}) \ ок. 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 {, красный}}) P (\ langle / s \ rangle \ mid {\ text {red, house}})}

Обратите внимание, что контекст первых n - 1 n-граммов заполнен маркерами начала предложения, обычно обозначаемыми .

. Кроме того, без маркера конца предложения вероятность грамматической последовательности * Я видел, что всегда будет выше, чем в более длинном предложении, которое я видел в красном доме.

Экспоненциальная

Максимальная энтропия языковые модели кодируют отношения между словом и n-граммовой историей с использованием функций функций. Уравнение

P (wm | w 1,…, wm - 1) = 1 Z (w 1,…, wm - 1) exp ⁡ (a T f (w 1,…, wm)) {\ displaystyle 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}))}{\ displaystyle 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,…, wm - 1) {\ displaystyle Z (w_ {1 }, \ ldots, w_ {m-1})}{\ Displaystyle Z (w_ {1}, \ ldots, w_ {m-1})} - это функция распределения, a {\ displaystyle a}a - вектор параметров, и f (w 1,…, wm) {\ displaystyle f (w_ {1}, \ ldots, w_ {m})}{\ displaystyle f (w_ {1}, \ ldots, w_ {m})} - функция функции. В простейшем случае функция признака - это просто индикатор наличия определенной n-граммы. Полезно использовать априор на a {\ displaystyle a}a или в какой-либо форме регуляризации.

Лог-билинейная модель - еще один пример экспоненциальной языковой модели.

Нейронная сеть

Модели нейронного языка (или модели языка непрерывного пространства) используют непрерывное представление или встраивание слов для своих прогнозов. В этих моделях используются нейронные сети.

, встраивания в непрерывное пространство помогают смягчить проклятие размерности в языковом моделировании: поскольку языковые модели обучаются на больших и больших текстах, количество уникальных слов ( словарный запас) увеличивается. Количество возможных последовательностей слов увеличивается экспоненциально с размером словаря, вызывая проблему разреженности данных из-за экспоненциально большого количества последовательностей. Таким образом, статистика необходима для правильной оценки вероятностей. Нейронные сети избегают этой проблемы, представляя слова в виде распределенного как нелинейные комбинации весов в нейронной сети. Альтернативное описание состоит в том, что нейронная сеть приближает функцию языка. Архитектура нейронной сети может быть прямой или рекуррентной, и хотя первая проще, вторая более распространена.

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

P (wt | context) ∀ t ∈ V {\ displaystyle P (w_ {t} | \ mathrm {context}) \, \ forall t \ in V}P (w_ {t} | {\ mathrm {контекст }}) \, \ forall t \ in V .

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

P (wt | wt - k,…, wt - 1) {\ displaystyle P (w_ {t} | w_ {tk}, \ dots, w_ {t-1})}P (w_ {t} | w _ {{tk}}, \ dots, w _ {{t-1}})

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

P (wt | wt - k,…, wt - 1, wt + 1,…, wt + k) {\ displaystyle P (w_ {t} | w_ {tk}, \ dots, w_ {t-1}, w_ {t + 1}, \ dots, w_ {t + k})}P (w_ {t} | w _ {{tk}}, \ dots, w _ {{t-1}}, w _ {{t + 1}}, \ dots, w _ {{t + k}}) .

Это назвал модель мешка слов. Когда векторы признаков для слов в контексте комбинируются с помощью непрерывной операции, эта модель упоминается как непрерывная архитектура пакета слов (CBOW).

Третий вариант который обучается медленнее, чем CBOW, но работает немного лучше, - это обратить предыдущую проблему и заставить нейронную сеть изучать контекст по заданному слову. Более формально, учитывая последовательность обучающих слов w 1, w 2, w 3,…, w T {\ displaystyle w_ {1}, w_ {2}, w_ {3}, \ dots, w_ {T} }{\ displaystyle w_ {1}, w_ {2}, w_ {3}, \ dots, w_ {T}} , максимальная средняя логарифмическая вероятность

1 T ∑ t = 1 T ∑ - k ≤ j ≤ k, j ≠ 0 log ⁡ P (wt + j | wt) {\ displaystyle { \ frac {1} {T}} \ sum _ {t = 1} ^ {T} \ sum _ {- k \ leq j \ leq k, j \ neq 0} \ log P (w_ {t + j} | w_ {t})}{\ displaystyle {\ frac {1} {T}} \ sum _ {t = 1} ^ {T} \ sum _ {- k \ leq j \ leq k, j \ neq 0} \ log P (w_ {t + j} | w_ {t})}

где k, размер обучающего контекста, может быть функцией центрального слова wt {\ displaystyle w_ {t}}w_ {t} . Это называется языковой моделью skip-gram. Модели мешка слов и пропуска грамм являются основой программы word2vec.

Вместо использования языковых моделей нейронных сетей для получения фактических вероятностей обычно используют распределенные представление, закодированное в "скрытых" слоях сетей как представления слов; каждое слово затем отображается на n-мерный действительный вектор, называемый вложением слов, где n - размер слоя непосредственно перед выходным слоем. Представления в моделях скип-грамм имеют отличительную особенность, состоящую в том, что они моделируют семантические отношения между словами как линейные комбинации, захватывая форму композиционности. Например, в некоторых таких моделях, если v - функция, которая отображает слово w в его nd-векторное представление, то

v (король) - v (мужской) + v (женский) ≈ v (королева) {\ displaystyle v (\ mathrm {king}) -v (\ mathrm {male}) + v (\ mathrm {female}) \ приблизительно v (\ mathrm {queen})}v ({\ mathrm {king}}) - v ({\ mathrm {male}}) + v ({\ mathrm {female}}) \ приблизительно v ({\ mathrm {queen}})

где ≈ уточняется, оговаривая, что его право -ручная сторона должна быть ближайшим соседом значения левой части.

Другое

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

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

Тесты

Для оценки систем языковой обработки были разработаны различные наборы данных. К ним относятся:

  • Corpus of Linguistic Acceptance
  • Тест GLUE
  • Microsoft Research Paraphrase Corpus
  • Multi-Genre Natural Language Inference
  • Question Natural Language Inference
  • Пары вопросов Quora
  • Распознавание текстовых примесей
  • Тест семантического текстового сходства
  • Тест с ответами на вопросы SQuAD
  • Stanford Sentiment Treebank
  • Winograd NLI
См. Также
Примечания
Ссылки

Цитаты

Источники

Внешние ссылки

Программное обеспечение

Последняя правка сделана 2021-05-26 13:09:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте