Языковая модель - Language model
Статистический языковая модель это распределение вероятностей над последовательностями слов. Учитывая такую последовательность, скажем, длины м, он присваивает вероятность ко всей последовательности.
Языковая модель обеспечивает контекст чтобы различать слова и фразы, которые звучат одинаково. Например, в Американский английский, фразы «распознавать речь» и «разрушить хороший пляж» звучат одинаково, но означают разные вещи.
Редкость данных - серьезная проблема при построении языковых моделей. При обучении не наблюдаются наиболее возможные последовательности слов. Одно из решений - сделать предположение, что вероятность слова зависит только от предыдущего п слова. Это известно как п-грамма модель или модель юниграммы, когда п = 1. Модель униграммы также известна как мешок слов модель.
Оценка относительная вероятность разных фраз полезно во многих обработка естественного языка приложения, особенно те, которые генерируют текст в качестве вывода. Языковое моделирование используется в распознавание речи,[1] машинный перевод,[2] тегирование части речи, разбор,[2] Оптическое распознавание символов, распознавание почерка,[3] поиск информации и другие приложения.
При распознавании речи звуки сопоставляются с последовательностями слов. Неясности легче разрешить, если данные из языковой модели интегрированы с моделью произношения и акустическая модель.
Языковые модели используются при поиске информации в модель вероятности запроса. Там с каждым документ в коллекции. Документы ранжируются по вероятности запроса. Q в языковой модели документа : . Обычно униграмма Для этого используется языковая модель.
Типы моделей
Юниграмма
Модель униграммы можно рассматривать как комбинацию нескольких однозначных конечные автоматы.[4] Он разделяет вероятности различных терминов в контексте, например из
к
В этой модели вероятность каждого слова зависит только от собственной вероятности этого слова в документе, поэтому в качестве единиц у нас есть только конечные автоматы с одним состоянием. Сам автомат имеет распределение вероятностей по всему словарю модели, в сумме равное 1. Ниже приведена иллюстрация униграммы модели документа.
Условия | Вероятность в документе |
---|---|
а | 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 |
... | ... | ... |
В контексте поиска информации модели языка униграммы часто сглаживаются, чтобы избежать случаев, когда п(term) = 0. Общий подход заключается в создании модели максимального правдоподобия для всей коллекции и линейно интерполировать модель сбора с моделью максимального правдоподобия для каждого документа для сглаживания модели.[5]
п-грамма
В п-грамма, вероятность соблюдения приговора аппроксимируется как
Предполагается, что вероятность наблюдения яth слово шя в контексте истории предыдущего я - 1 слово может быть приблизительно выражено вероятностью его наблюдения в сокращенной контекстной истории предыдущего п - 1 слово (пth порядок Марковская собственность ).
Условную вероятность можно рассчитать из п-грамма модели частота подсчетов:
Условия биграмма и триграмма языковые модели обозначают п-грамма модели с п = 2 и п = 3 соответственно.[6]
Обычно пВероятности модели -грамма не выводятся непосредственно из подсчета частот, потому что модели, полученные таким образом, имеют серьезные проблемы при столкновении с любыми п-граммы, которые раньше явно не видели. Вместо этого необходима некоторая форма сглаживания, приписывающая часть полной вероятностной массы невидимым словам или п-граммы. Используются различные методы, от простого сглаживания "добавить один" (присвоить счетчику 1 невидимому п-граммы, как малоинформативный приор ) к более сложным моделям, таким как Дисконтирование Гуд-Тьюринга или же отстающие модели.
Двунаправленный
Двунаправленное представление зависит как от пре-, так и от пост-контекста (например, слов) на всех уровнях.[7]
Пример
В биграмме (п = 2) языковая модель, вероятность предложения Я видел красный дом аппроксимируется как
тогда как в триграмме (п = 3) языковая модель, приближение
Обратите внимание, что контекст первого п – 1 п-gram заполнен маркерами начала предложения, обычно обозначаемыми .
Кроме того, без маркера конца предложения вероятность грамматической последовательности *Я видел всегда будет выше, чем в более длинном предложении Я видел красный дом.
Экспоненциальный
Максимальная энтропия языковые модели кодируют отношения между словом и историей n-граммов с помощью функций функций. Уравнение
куда это функция распределения, - вектор параметров, а это функция функции. В простейшем случае функция признака - это просто индикатор наличия определенной n-граммы. Полезно использовать предварительный или некоторая форма регуляризации.
Лог-билинейная модель - еще один пример экспоненциальной языковой модели.
Нейронная сеть
Модели нейронного языка (или модели языка непрерывного пространства) использовать непрерывные представления или вложения слов делать свои прогнозы.[8] В этих моделях используются Нейронные сети.
Вложения в непрерывное пространство помогают уменьшить проклятие размерности в языковом моделировании: по мере обучения языковых моделей на все более крупных текстах количество уникальных слов (словарный запас) увеличивается.[а] Количество возможных последовательностей слов увеличивается экспоненциально с размером словаря, вызывая проблему разреженности данных из-за экспоненциально большого количества последовательностей. Таким образом, статистика необходима для правильной оценки вероятностей. Нейронные сети избегают этой проблемы, представляя слова в распределен способом, как нелинейные комбинации весов в нейронной сети.[9] Альтернативное описание состоит в том, что нейронная сеть приближает функцию языка. Архитектура нейронной сети может быть прямая связь или же повторяющийся, и хотя первое проще, второе более распространено.[пример необходим ][нужна цитата ]
Обычно языковые модели нейронных сетей конструируются и обучаются как вероятностные классификаторы которые учатся предсказывать распределение вероятностей
- .
То есть сеть обучена предсказывать распределение вероятностей по словарю с учетом некоторого лингвистического контекста. Это делается с использованием стандартных алгоритмов обучения нейронной сети, таких как стохастический градиентный спуск с обратное распространение.[9] Контекст может быть окном фиксированного размера из предыдущих слов, чтобы сеть предсказывала
из вектор признаков представляющий предыдущий k слова.[9] Другой вариант - использовать «будущие» слова, а также «прошлые» слова в качестве признаков, чтобы предполагаемая вероятность
- .
Это называется мешок слов модель. Когда векторы признаков поскольку слова в контексте объединяются посредством непрерывной операции, эта модель называется архитектурой непрерывного мешка слов (CBOW).[10]
Третий вариант, который тренируется медленнее, чем CBOW, но работает немного лучше, - это обратить предыдущую проблему и заставить нейронную сеть изучать контекст по заданному слову.[10] Более формально, учитывая последовательность обучающих слов , можно максимизировать среднюю логарифмическую вероятность
куда k, размер обучающего контекста, может быть функцией центрального слова . Это называется скип-грамм языковая модель.[11] Модели мешков слов и скипграмм являются основой word2vec программа.[12]
Вместо использования языковых моделей нейронных сетей для получения фактических вероятностей обычно вместо этого используют распределенное представление, закодированное в «скрытых» слоях сети, в качестве представления слов; каждое слово затем отображается на п-мерный действительный вектор, называемый вложение слов, куда п - это размер слоя непосредственно перед выходным слоем. Репрезентации в моделях скип-грамм имеют отличительную особенность, состоящую в том, что они моделируют семантические отношения между словами как линейные комбинации, захватив форму композиционность. Например, в некоторых таких моделях, если v это функция, которая отображает слово ш к его п-d векторное представление, тогда
где ≈ уточняется за счет того, что его правая часть должна быть ближайший сосед значения левой части.[10][11]
Другой
Позиционная языковая модель[13] оценивает вероятность того, что заданные слова встречаются в тексте рядом друг с другом, не обязательно непосредственно рядом. Точно так же и модели-мешки с концепциями[14] использовать семантику, связанную с выражениями из нескольких слов, такими как buy_christmas_present, даже когда они используются в насыщенных информацией предложениях вроде «сегодня я купил много очень хороших рождественских подарков».
Несмотря на ограниченные успехи в использовании нейронных сетей,[15] авторы признают потребность в других методах моделирования жестовых языков.
Контрольные точки
Для оценки систем языковой обработки были разработаны различные наборы данных.[7] К ним относятся:
- Корпус языковой приемлемости[16]
- Тест GLUE[17]
- Корпорация Microsoft Research Paraphrase Corpus[18]
- Многожанровый вывод на естественном языке
- Вопрос к логическому выводу на естественном языке
- Пары вопросов Quora[19]
- Распознавание текстовых искажений[20]
- Тест семантического текстового сходства
- Тест на ответы на вопросы SQuAD[21]
- Стэнфордское мнение Treebank[22]
- Виноград НЛИ
Смотрите также
Примечания
- ^ Видеть Закон кучи.
Рекомендации
Цитаты
- ^ Кун, Роланд и Ренато Де Мори. "Модель естественного языка на основе кеша для распознавания речи. "Транзакции IEEE по анализу образов и машинному интеллекту 12.6 (1990): 570-583.
- ^ а б Андреас, Джейкоб, Андреас Влахос и Стивен Кларк. "Семантический анализ как машинный перевод. "Труды 51-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 2: Краткие статьи). 2013.
- ^ Pham, Vu, et al. "Dropout улучшает повторяющиеся нейронные сети для распознавания почерка. »14-я Международная конференция« Границы распознавания рукописного ввода », 2014 г. IEEE, 2014 г.
- ^ Кристофер Д. Мэннинг, Прабхакар Рагхаван, Хинрих Шютце: Введение в поиск информации, страницы 237–240. Издательство Кембриджского университета, 2009 г.
- ^ Батчер, Кларк и Кормак. Поиск информации: внедрение и оценка поисковых систем. стр. 289–291. MIT Press.
- ^ Крейг Трим, Что такое языковое моделирование?, 26 апреля 2013 г.
- ^ а б Девлин, Джейкоб; Чанг, Мин-Вэй; Ли, Кентон; Тутанова, Кристина (10.10.2018). «BERT: предварительная подготовка глубоких двунаправленных преобразователей для понимания языка». arXiv:1810.04805 [cs.CL ].
- ^ Карпаты, Андрей. «Неоправданная эффективность рекуррентных нейронных сетей».
- ^ а б c Бенжио, Йошуа (2008). «Нейросетевые языковые модели». Scholarpedia. 3. п. 3881. Bibcode:2008SchpJ ... 3.3881B. Дои:10.4249 / scholarpedia.3881.
- ^ а б c Миколов, Томас; Чен, Кай; Коррадо, Грег; Дин, Джеффри (2013). «Эффективная оценка представлений слов в векторном пространстве». arXiv:1301.3781 [cs.CL ].
- ^ а б Миколов, Томас; Суцкевер Илья; Чен, Кай; Corrado irst4 = Greg S .; Дин, Джефф (2013). Распределенные представления слов и фраз и их композиционность (PDF). Достижения в системах обработки нейронной информации. С. 3111–3119.
- ^ Харрис, Деррик (16 августа 2013 г.). «Мы находимся на пороге глубокого обучения для масс. Вы можете поблагодарить Google позже». Гигаом.
- ^ Lv, Юаньхуа; Чжай, Чэнсян (2009). "Позиционные языковые модели для поиска информации в" (PDF). Труды. 32-я международная конференция ACM SIGIR по исследованиям и разработкам в области информационного поиска (SIGIR).
- ^ Камбрия, Эрик; Хуссейн, Амир (28.07.2012). Sentic Computing: методы, инструменты и приложения. Springer Нидерланды. ISBN 978-94-007-5069-2.
- ^ Моциалов, Борис; Хасти, Хелен; Тернер, Грэм (август 2018). «Трансферное обучение для моделирования британского жестового языка». Труды Пятого семинара по НЛП для похожих языков, разновидностей и диалектов (VarDial 2018). Получено 14 марта 2020.
- ^ "Корпус лингвистической приемлемости (CoLA)". nyu-mll.github.io. Получено 2019-02-25.
- ^ «КЛЕЙ Benchmark». gluebenchmark.com. Получено 2019-02-25.
- ^ "Корпорация Microsoft Research Paraphrase Corpus". Центр загрузок Microsoft. Получено 2019-02-25.
- ^ Агаэбрагимян, Ахмад (2017), «Набор данных ответов на вопросы Quora», Текст, речь и диалог, Конспект лекций по информатике, 10415, Springer International Publishing, стр. 66–73, Дои:10.1007/978-3-319-64206-2_8, ISBN 9783319642055
- ^ Саммонс, В.Г. Винод Видисваран, Дэн Рот, Марк; Выдисваран, В.Г .; Рот, Дэн. «Распознавание текстовых искажений» (PDF). Получено 24 февраля, 2019.CS1 maint: несколько имен: список авторов (связь)
- ^ "Стэнфордский набор данных с ответами на вопросы". rajpurkar.github.io. Получено 2019-02-25.
- ^ «Рекурсивные глубинные модели для семантической композиционности по банку дерева настроений». nlp.stanford.edu. Получено 2019-02-25.
Источники
- Дж. М. Понте и В. Б. Крофт (1998). "Подход моделирования языка к поиску информации". Исследования и разработки в области информационного поиска. С. 275–281. CiteSeerX 10.1.1.117.4237.CS1 maint: использует параметр авторов (связь)
- Ф Сонг и У. Б. Крофт (1999). «Общая языковая модель для поиска информации». Исследования и разработки в области информационного поиска. С. 279–280. CiteSeerX 10.1.1.21.6467.CS1 maint: использует параметр авторов (связь)
- Чен, Стэнли; Джошуа Гудман (1998). Эмпирическое исследование методов сглаживания для языкового моделирования (Технический отчет). Гарвардский университет. CiteSeerX 10.1.1.131.5458.
внешняя ссылка
Программного обеспечения
- БЕРТ - Представления двунаправленного кодера от трансформаторов
- CSLM - Бесплатный набор инструментов для нейронная связь с прямой связью языковые модели
- ДАЛЬМ - Быстрое бесплатное программное обеспечение для запросов языковых моделей
- Генеративный предварительно обученный трансформатор
- IRSTLM на SourceForge.net - Бесплатное программное обеспечение для языкового моделирования
- Kylm (Kyoto Language Modeling Toolkit) - Бесплатный набор инструментов моделирования языка на Java
- KenLM - Быстрое бесплатное программное обеспечение для языкового моделирования
- LMSharp - Бесплатный набор инструментов языковой модели для Кнезер – Ней-сглаженный п-граммы модели и рекуррентная нейронная сеть модели
- MITLM - Набор инструментов MIT Language Modeling. Бесплатно программное обеспечение
- NPLM - Бесплатный набор инструментов для нейронная связь с прямой связью языковые модели
- OpenGrm NGram библиотека - Бесплатное программное обеспечение для языкового моделирования. Построен на OpenFst.
- OxLM - Бесплатный набор инструментов для нейронная связь с прямой связью языковые модели
- Позиционная языковая модель
- RandLM на SourceForge.net - Бесплатное программное обеспечение для рандомизированного языкового моделирования
- RNNLM - Свободный рекуррентная нейронная сеть инструментарий языковой модели
- SRILM - Фирменное ПО для языкового моделирования
- ВариКН - Бесплатное программное обеспечение для создания, выращивания и обрезки Kneser-Ney smoothhed п-граммовые модели.
- Языковые модели, обученные на данных новостной ленты