Loading AI tools
Из Википедии, свободной энциклопедии
Языкова́я модель — это распределение вероятностей по последовательностям слов[1]. Для любой последовательности слов длины m языковая модель присваивает вероятность всей последовательности. Языковые модели генерируют вероятности путём обучения на корпусе текстов на одном или нескольких языках. Учитывая, что языки могут использоваться для выражения огромного множества верных предложений (так называемая цифровая бесконечность), языковое моделирование сталкивается с проблемой задания ненулевых вероятностей лингвистически верным последовательностям, которые могут никогда не встретиться в обучающих данных. Для преодоления этой проблемы было разработано несколько подходов к моделированию, таких как применение марковских цепей или использование нейронных архитектур, таких как рекуррентные нейронные сети или трансформеры.
Языковые модели полезны для решения множества задач вычислительной лингвистики; от первоначальных применений в распознавании речи[2] для того, чтобы избежать генерации бессмысленных (то есть маловероятных) последовательностей слов, до более широкого использования в машинном переводе[3] (например, оценка переводов-кандидатов), генерации естественного языка (генерация текста, более похожего на человеческий), разметки частей речи, синтаксического анализа[3], оптического распознавания символов, распознавания рукописного ввода[4], грамматических выводов[5], поиска информации[6][7] и других приложений.
Языковые модели используются при поиске информации в вероятностной модели запросов[англ.], где каждому документу в коллекции привязана отдельная языковая модель. Документы ранжируются на основе вероятности запроса Q в языковой модели документа : . Обычно для этой цели используется языковая модель униграмм.
Модель униграммы можно рассматривать как комбинацию нескольких конечных автоматов с одним состоянием[8]. Предполагается, что вероятности маркеров в последовательности независимы, например:
В этой модели вероятность каждого слова зависит только от собственной вероятности нахождения этого слова в документе, поэтому в качестве единиц имеются только конечные автоматы с одним состоянием. Сам автомат имеет распределение вероятностей на всём словаре модели. Ниже приведена иллюстрация униграммной модели документа.
Условия | Вероятность в документе |
---|---|
а | 0,1 |
мир | 0,2 |
нравится | 0,05 |
мы | 0,05 |
делиться | 0,3 |
. . . | . . . |
Вероятность, сгенерированная для конкретного запроса, рассчитывается как
В разных документах есть модели униграмм с разной вероятностью слов в ней. Распределения вероятностей из разных документов используются для генерации вероятностей попаданий для каждого запроса. Документы можно ранжировать для запроса в соответствии с вероятностями. Пример моделей униграмм двух документов:
Условия | Вероятность в Doc1 | Вероятность в Doc2 |
---|---|---|
а | 0,1 | 0,3 |
мир | 0,2 | 0,1 |
нравится | 0,05 | 0,03 |
мы | 0,05 | 0,02 |
делиться | 0,3 | 0,2 |
. . . | . . . | . . . |
В контексте информационного поиска языковые модели униграмм часто сглаживаются, чтобы избежать случаев, когда P(term) = 0. Обычный подход заключается в создании модели максимального правдоподобия для всей коллекции и линейной интерполяции модели коллекции с моделью максимального правдоподобия для каждого документа для сглаживания[9].
В n-граммной модели вероятность наблюдения за предложением аппроксимируется как
Предполагается, что вероятность встретить i-е слово wi в контестной истории предшествующего i − 1 слов можно аппроксимировать вероятностью найти его в укороченной контекстной истории предыдущего n − 1 слова (марковское свойство n-го порядка). Чтобы уточнить, для n = 3 и i = 2 получится .
Условная вероятность рассчитывается на основе частот n-граммовой модели:
Термины биграммные и триграммные языковые модели обозначают n-граммовые модели с n = 2 и n = 3 соответственно[10].
Как правило, вероятности n-граммной модели не выводятся непосредственно из подсчёта частот, потому что модели, полученные таким образом, имеют серьёзные проблемы при столкновении с любыми n-граммами, которые ранее явно не наблюдались. Вместо этого необходима некоторая форма сглаживания, приписывающая часть общей вероятностной массы невидимым словам или n-граммам. Используются различные методы, от простого сглаживания «добавь один» (присваивание числа 1 невидимым n-граммам в качестве неинформативного априорного) до более сложных моделей, таких как модели Гуда — Тьюринга[англ.] или Катца[англ.].
Двунаправленные представления зависят как от пре-, так и от постконтекста (например, слов) на всех уровнях[11].
В биграммной языковый модели, вероятность предложения I saw the red house аппроксимируется как
тогда как в триграммной языковой модели, аппроксимация
Контекст первого n — 1 n-грамм заполняется маркерами начала предложения, обычно обозначаемыми символом <s>.
Кроме того, без маркера конца предложения вероятность неграмматической последовательности *I saw the всегда будет выше, чем вероятность более длинного предложения I saw the red house.
Языковые модели с максимальной энтропией кодируют отношения между словом и историей n-грамм, используя функции признаков. Уравнение
где — статистическая сумма[англ.], — вектор параметров, а — функцией признаков. В простейшем случае функция признаков — это просто индикатор наличия некой n-граммы. Полезно использовать априорную или некоторую форму регуляризации.
Логбилинейная модель — ещё один пример экспоненциальной языковой модели.
Нейронные языковые модели (или языковые модели с непрерывным пространством) используют непрерывные представления или вложения слов для своих прогнозов[12]. Эти модели используют нейронные сети.
Встраивание в непрерывное пространство помогает уменьшить проклятие размерности в языковом моделировании: по мере того, как языковые модели обучаются на всё больших и больших текстах, количество уникальных слов (словарный запас) увеличивается[a]. Количество возможных последовательностей слов экспоненциально увеличивается с размером словаря, вызывая проблему разреженности данных из-за экспоненциально большого количества последовательностей. Таким образом, статистика необходима для правильной оценки вероятностей. Нейронные сети избегают этой проблемы, представляя слова распределённым образом, как нелинейные комбинации весов в нейронной сети[13]. Альтернативное описание состоит в том, что нейронная сеть аппроксимирует языковую функцию. Архитектура нейронной сети может быть прямой или рекуррентной, и хотя первая проще, вторая встречается чаще.
Как правило, нейронносетевые языковые модели строятся и обучаются как вероятностные классификаторы, которые учатся предсказывать распределение вероятностей.
То есть сеть обучена прогнозировать распределение вероятностей по словарю с учётом некоторого лингвистического контекста. Это делается с помощью стандартных алгоритмов обучения нейронных сетей, таких как стохастический градиентный спуск с обратным распространением ошибки[13]. Контекст может быть окном фиксированного размера предыдущих слов, чтобы сеть предсказывала следующее
из вектора признаков, представляющего предыдущие k слов[13]. Другим вариантом является использование «будущих» слов, а также «прошедших» слов в качестве признаков, так что предполагаемая вероятность
Это называется моделью мешка́ слов. Когда векторы признаков для слов в контексте объединяются непрерывной операцией, эта модель называется непрерывной архитектурой набора слов (англ. continuous bag-of-words architecture, CBOW)[14].
Третий вариант, который обучается медленнее, чем CBOW, но работает немного лучше, заключается в том, чтобы инвертировать предыдущую задачу и заставить нейронную сеть изучать контекст по заданному слову[14]. Более формально, учитывая последовательность обучающих слов , максимизируется средняя логарифмическая вероятность
где k — размер обучающего контекста, который может быть функцией центрального слова . Это называется скип-граммовой моделью языка[15]. Модели «мешок слов» и «скип-грамм» лежат в основе программы word2vec[16].
Вместо использования языковых моделей нейронных сетей для получения фактических вероятностей обычно вместо этого используется распределённое представление, закодированное в «скрытых» слоях сети, как представления слов; затем каждое слово отображается в n-мерный вещественный вектор, называемый встраиванием слов, где n — размер слоя непосредственно перед выходным слоем. Представления в скип-граммных моделях имеют отличительную характеристику, заключающуюся в том, что они моделируют семантические отношения между словами как линейные комбинации, фиксируя форму композиционности[англ.]. Например, в некоторых таких моделях, если v — это функция, которая отображает слово w в его n-d векторное представление, то
где ≈ уточнено условием, что его правая часть должна быть ближайшим соседом значения левой части[14][14]
Позиционная языковая модель[17] оценивает вероятность того, что данные слова встречаются в тексте близко друг к другу, не обязательно непосредственно рядом. Точно так же модели мешка́ понятий[18] используют семантику, связанную с многословными выражениями, такими как buy_christmas_present, даже когда они используются в информативных предложениях, таких как «сегодня я купил много очень хороших рождественских подарков».
Несмотря на ограниченные успехи в использовании нейронных сетей[19], авторы признают необходимость других методов при моделировании жестовых языков.
Примеры языковых моделей:
Hugging Face размещает общедоступные языковые модели, с помощью которых разработчики могут создавать приложения с использованием машинного обучения.
Оценка качества языковых моделей в основном проводится путём сравнения с эталонными тестами, созданными людьми на основе типичных языковых задач. Другие, менее известные тесты качества исследуют внутренний характер языковой модели или сравнивают две такие модели. Поскольку языковые модели обычно предназначены для того, чтобы быть динамичными и учиться на основе данных, которые они видят, некоторые предлагаемые модели исследуют скорость обучения, например, путём проверки кривых обучения[32].
Для оценки систем языковой обработки были разработаны различные наборы данных[11]. К ним относятся:
Хотя можно показать, что современные языковые модели, такие как GPT-3, соответствуют способностям человека в некоторых задачах, неясно, являются ли они правдоподобными когнитивными моделями. Например, было показано, что рекуррентные нейронные сети изучают шаблоны, которые люди не изучают, и не могут изучать шаблоны, которые люди изучают[40].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.