Это 12-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления
N-Gram (модель N-грамм) — очень важная концепция обработки естественного языка.Обычно в NLP люди могут использовать N-Gram, чтобы оценить, является ли предложение разумным на основе определенного корпуса. Еще одной функцией N-Gram является оценка степени различия между двумя строками, что является широко используемым методом нечеткого сопоставления. Эта статья начнется отсюда, а затем покажет читателям различные мощные приложения N-Gram для обработки естественного языка.
- Расстояние между строками, определенное на основе модели N-Gram
- Используйте модель N-Gram, чтобы оценить, являются ли предложения разумными
- Алгоритм сглаживания данных при использовании модели N-Gram
Расстояние между строками, определенное на основе модели N-Gram
В обработке естественного языка одной из наиболее распространенных и основных операций является «сопоставление с образцом» или «поиск строки». И сопоставление с образцом делится наточное совпадениеинечеткое соответствиедва
Точное соответствие знакомо всем, например, мы хотим посчитать ключевые слова в статье.infomation
Количество вхождений, метод, используемый в настоящее время, является точным соответствием. В этой области также существует множество алгоритмов, таких как алгоритм KMP, алгоритм BM и т. д.
Нечеткое сопоставление, его применение везде. Обычное программное обеспечение для обработки текстов (Word и т. д.) обеспечивает функцию проверки орфографии, когда вы вводите неправильное слово, напримерinformtaion
, система подскажет, действительно ли введенное вами словоinformation
. Техника, используемая для сопоставления слова с возможной ошибкой с предполагаемым правильным написанием, представляет собой нечеткое сопоставление.
Ключом к нечеткому сопоставлению является то, как измерить «разницу» между двумя похожими словами (или строками). Эту разницу часто называют «расстоянием». Алгоритмов в этой области много, и даже есть вопрос по LeetCodeNo.72 Edit Distance
Во-первых, давайте представим, как использовать N-Gram для определения расстояния между строками. Предположим, есть строка, то N-грамма строки представляет собой отрезок, полученный делением исходного слова на длину N, то естьВсе подстроки длины N в . Представьте, что если есть две строки, а затем найти их N-грамм соответственно, то расстояние N-грамм между двумя строками можно определить с точки зрения количества их общих строк. Однако простого подсчета общих подстрок явно недостаточно, эта схема явно игнорирует проблемы, которые могут быть вызваны разницей в длине двух строк. Например, для строк girl и girlfriend количество общих подстрок, которыми владеют эти двое, очевидно, равно количеству общих подстрок, которыми владеют girl и она сама, но мы не можем думать, что girl и girl являются двумя одинаковыми совпадениями.
Чтобы решить эту проблему, некоторые ученые предложили определить понятие расстояния N-грамм на основе неповторяющейся сегментации слов N-грамм Конкретная формула выглядит следующим образом:
в,Указывает количество элементов в наборе N-грамм строки s, а значение N обычно равно 2 или 3. Возьмем N=2 в качестве примера для сегментации строк Горбачев и Горбечев. Получены следующие результаты (общие подстроки подчеркнуты)
Комбинируя приведенную выше формулу, расстояние между двумя строками можно рассчитать как 8 + 9-2 * 4 = 9. Очевидно, что чем ближе расстояние между строками, тем меньше значение. Когда две строки точно равны, расстояние между ними равно 0
Используйте модель N-Gram, чтобы оценить, являются ли предложения разумными
Отныне обсуждаемая нами модель N-Gram сильно отличается от упомянутой ранее модели N-Gram, но, пожалуйста, обратите внимание на их внутреннюю связь (или по сути единую концепцию)
Чтобы представить применение N-Gram, мы сначала начнем с нескольких примеров.
Во-первых, со статистической точки зрения предложение на естественном языкеможет состоять из любой цепочки слов, но вероятностьЕсть большие и маленькие. Например:
- я только что поужинал
- я только что пообедал
Очевидно, для китайцевПо сравнению сявляется более беглым и осмысленным, поэтому
Во-вторых, еще один пример: если бы нам дали отрывок из предложения, мы могли бы действительно догадаться, каким должно быть следующее слово, например.
- the large green ___.
- Kate swallowed the large green ___.
Очевидно, мы получили бы более точный ответ, если бы знали больше о предшествующем содержании фрагмента предложения. Это говорит нам о том, что чем больше исторической информации, тем сильнее ограничения на неизвестную информацию, стоящую за
если естьПоследовательность слов (или предложение), мы хотим вычислить вероятность, по формуле умножения условной вероятности можно получить
Эту вероятность, очевидно, нелегко вычислить.Мы могли бы также использовать предположение о цепи Маркова, то есть текущее слово связано только с предыдущими ограниченными словами, поэтому нет необходимости прослеживать обратно к первому слову, которое может значительно сократить формулу апелляции. который
В частности, для случая, когда n принимает малые значения
когда, модель униграммы
когда, модель биграммы
когда, модель триграммы
Следующая идея относительно ясна: вы можете использовать метод оценки максимального правдоподобия, чтобы найти набор параметров, чтобы вероятность обучающей выборки могла достигать максимального значения.
-
Для модели униграммыОбозначает N-граммКоличество вхождений в обучающий корпус (Count),общее количество слов в корпусе (например, для да нет нет нет да,)
-
Для биграммной модели
-
Для модели N-грамм
Давайте рассмотрим конкретный пример, предположив, что сейчасКорпус, где — начало предложения, — конец предложения.
<s> I am Sam </s>
<s> Sam I am </s>
<s> I do not like green eggs and ham </s>
Часть результатов расчета модели биграммы выглядит следующим образом:
В качестве другого примера, есть корпус, в которомследующее
При этом в качестве известного условия задается следующая вероятность:
следующее:
Первая строка и второй столбец показывают, что когда предыдущее слово — «i», текущее слово — «want», которое встречается в общей сложности 827 раз. Соответственно, мы можем вычислить соответствующее распределение биграмм как
Потому что из первой таблицы мы знаем, что «я» встречается в общей сложности 2533 раза, а затем «хочу» встречается в общей сложности 827 раз, поэтому
Затем, предложение<s> I want chinese food </s>
Биграммная вероятность
Чтобы избежать переполнения данных и повысить производительность, обычно используется логирование, а затем преобразование его в операцию сложения вместо операции умножения.
Алгоритм сглаживания данных при использовании модели N-Gram
Некоторые исследователи использовали обучающий корпус из 1,5 млн слов для обучения триграммной модели, а затем использовали тестовый корпус из того же источника для проверки и обнаружили, что 23% триграмм не появлялись в обучающем корпусе. Это означает, что некоторые вероятности равны 0, что приводит к возможности разреженных данных, и действительно есть некоторые случаи 0 в третьей таблице выше. Для языка из-за наличия разреженных данных метод оценки максимального правдоподобия не является хорошим методом оценки параметров.
В настоящее время решением является то, что мы называем «Сглаживание». Основная идея состоит в том, чтобы «уменьшить условное распределение вероятностей N-грамм, которые уже появились, так, чтобы условные распределения вероятностей N-грамм, которые не появляются, были ненулевыми, а сумма вероятностей должна быть гарантированно равна 1 после сглаживание данных.
1. Add-one (Laplace) Smoothing
Метод сглаживания плюс один, также известный как закон Лапласа, гарантирует, что каждая N-грамма появляется по крайней мере одно слово в обучающем корпусе, Взяв биграмму в качестве примера, формула выглядит следующим образом:
- Оценка Add-1:, где V — количество всех биграмм
Следуя приведенному выше примеру, после добавления одного сглаживания,Следующее:
Тогда биграмма:
Другой пример, для предложения<s> the rat ate the cheese </s>
, можно попробовать вычислить сглаженный Add-oneа также,Сейчас
Подводя итог сглаживанию Add-one:
- Вероятность того, что N-кортеж не появится в обучающем корпусе, больше не равна 0, а меньшее значение вероятности больше 0
- Поскольку в обучающем корпусе слишком много N-кортежей, после сглаживания все не встречающиеся N-кортежи занимают большую долю всего распределения вероятностей. Поэтому в НЛП Add-one отводит слишком много вероятностного пространства N-кортежам, которые не ожидались при обучении.
- Те N-кортежи, которые появляются в обучающем корпусе, увеличиваются с одинаковой частотой, что несправедливо. После сглаживания все невстречающиеся N-кортежи имеют одинаковую вероятность, что также неразумно.
2.Good-Turing Smoothing
Основная идея: использовать количество N-грамм с более высоким количеством наблюдений, чтобы переоценить размер величины вероятности и присвоить ее тем N-граммам с нулевым или меньшим количеством
В общем, мы выбираем вероятность одного события, то есть концепцию вещей, увиденных один раз:
Things seen once: Используйте количество вещей, которые только что видели один раз, чтобы оценить количество вещей, которые никогда не видели. Например, предположим, что вы рыбачите и поймали 18 рыб следующих видов: 10 карпов, 3 окуня, 2 сига, 1 форель, 1 лосось, 1 угорь, тогда
** Какова вероятность ФОРЕЛЬ? ** очень просто, мы думаем, что это 1/18
** Какова вероятность того, что следующей рыбой будет новый вид? ** Если не учитывать ничего другого, то вероятность равна 0, но для оценки новых вещей на основе вещей, увиденных однажды, вероятность составляет 3/18.
** Какова вероятность того, что следующей рыбой будет форель? **Согласно Good Turing, для каждой частоты, мы делаем корректировку, чтобы стать, формула выглядит следующим образом, гдеговорят, что это произошлоN-грамм
затем вычислить
Для этого примера,, поэтому вероятность того, что следующей рыбой окажется форель, равна
Улучшения, сделанные Кацем: Кац утверждает, что на практике не для всех частотплавная частотанадежен, считается надежным для больших частот (для некоторого порога), он рекомендует приниматьравно 5, то есть:
3.Backoff
Обычно мы думаем, что модели более высокого порядка более надежны.Когда доступно больше исторической информации, на самом деле получается больше ограничений на текущие предположения, что облегчает получение правильных выводов. Поэтому, когда модель высокого порядка надежна, используйте модель высокого порядка как можно чаще. Но иногда результат подсчета модели высокого порядка может быть равен 0, тогда мы обращаемся к модели низкого порядка, чтобы избежать проблемы разреженных данных. Формула выглядит следующим образом:
ви– нормировочный коэффициент, обеспечивающий
4.Interpolation Smoothing
Будь то технология сглаживания Add-one или Good Turing, N-граммы, которые не появляются, обрабатываются одинаково, что неизбежно необоснованно (существуют различия в вероятности возникновения событий), так что вот еще одна технология сглаживания линейной интерполяцией. Основная идея заключается в том, что модель высокого уровня и модель низкого уровня линейно комбинируются, а модель низкого уровня N-грамм используется для выполнения линейной интерполяции на модели высокого уровня N-грамм, потому что, когда не хватает данные для оценки вероятности высокоуровневой модели N-грамм, низкоуровневая модель N-грамм-модели часто могут предоставить полезную информацию.
Представьте, что для триграммной модели мы хотим посчитать корпус вlike chinese food
Количество вхождений, а получается, что не появилось, значит кол-во 0
Формула выглядит следующим образом:
в.Его можно установить эмпирически на основе экспериментов или определить с помощью некоторых алгоритмов, например алгоритма ЭМ.
5.Absolute Discounting
Думая о предыдущем алгоритме Add-one, на самом деле это часть вероятности некоторых N-грамм, которые появляются часто, и распределяет их между теми N-граммами, которые не появляются. Поскольку сумма вероятностей всех возможностей равна 1, мы можем перемещать эти вероятности друг вокруг друга только между возможными ситуациями.
Поскольку мы планируем разделить вероятность получения часто встречающихся N-грамм крови, это фактически эквивалентно вычитанию (скидки) части количества их появления.На сколько изменить скидку? Church & Gale (1991) разработали очень оригинальный метод. Сначала они проверили количество биграмм из 4 слов в тренировочном наборе в протянутом корпусе. В частности, они сначала извлекли все биграммы (например, китайская еда, хороший мальчик, хочу и т. д.), которые встречались 4 раза в сохраненном корпусе, который также содержит 22 миллиона слов, а затем извлекли их из корпуса, в котором также было 22 миллиона слов. , В обучающем наборе подсчитайте количество вхождений этих биграмм по отдельности (при условии, что). В конечном итоге они обнаружили, что в среднем биграммы, встречавшиеся 4 раза в первом корпусе из 22 миллионов слов, появлялись 3,23 раза во втором корпусе из 22 миллионов слов. В следующей таблице показано количество вхождений статистических биграмм в удерживаемом наборе и обучающем наборе, когда c находится в диапазоне от 0 до 9 (то есть c раз).
Найти закономерность несложно: за исключением биграмм со счетами 0 и 1, среднее значение частоты в удерживаемом наборе примерно равно значению счета в обучающем наборе минус 0,75.
Основываясь на прямоте, вызванной приведенными выше экспериментальными результатами, Абсолютное дискутирование вычитает (абсолютное) значение из каждой частоты.. Причина этого в том, что мы уже получили относительно хорошую оценку частоты с большим количеством вхождений, поэтому, когда мы вычитаем меньшее значение из этого значения счетчикаПосле этого должно быть мало эффекта. Из приведенных выше экспериментальных результатов следует, что на практике мы обычно имеем дело с частотами от 2 до 9
6.Kneser-Ney Smoothing
Этот алгоритм в настоящее время является стандартным, очень продвинутым алгоритмом сглаживания. Из-за сложности этого алгоритма мы начнем с интуитивно понятного примера.
Предположим, мы используем интерполяционную модель биграммы и униграммы, чтобы предсказать, что должно быть заполнено пустым словом в следующем предложении.
- I used to eat Chinese food with ___ instead of knife and fork
Интуитивно можно догадаться, что это место должно быть заполнено палочками. Но бывает ситуация, когда слово Зеландия очень часто встречается в учебном корпусе, потому что Новая Зеландия является высокочастотным словом в корпусе. Если взять стандартную модель униграммы, то, очевидно, Зеландия будет иметь больший вес, чем палочки для еды, поэтому в конце концов компьютер выберет слово Зеландия вместо палочек для еды, чтобы заполнить пространство выше, хотя этот результат кажется довольно необоснованным. Но это на самом деле означает, что мы должны скорректировать стратегию, Лучше всего тогда и только тогда, когда предыдущее слово Новое, мы присвоим Зеландии более высокий вес, в противном случае, хотя Зеландия также является высокочастотным словом в корпусе, мы делаем не намерен использовать его в одиночку
если мы предположимизмеренныйвероятность появления слова, то теперь мы хотим создать новую модель униграммы, называемую, что означает, чтоСлово как возможность нового продолжения. Обратите внимание, что это на самом деле означает для меня, что мы должны учитывать влияние предыдущего слова (т.е. история). Или для оценки(Обратите внимание, что это модель unigra), нам действительно нужно исследовать использованиеКоличество различных биграмм, сгенерированных этим словом. Обратите внимание, что использованиеКоличество различных типов биграмм, сгенерированных этим словом, означает, что текущее слово, а когда предыдущее слово отличается, создаются разные типы. Например:, то разные типы биграмм могут включать «китайскую еду», «английскую еду», «японскую еду» и т. д. Каждый тип биграммы, когда мы сталкиваемся с ним впервые, рассматривается как новое продолжение.
то естьОн должен быть пропорционален потенциалу множества всех новых продолжений. Итак, можно увидеть
Если вы все еще не уверены в этом, позвольте мне объяснить, что означает приведенная выше формула. текущее слово, таких как пища, различные типы биграмм, образованных из них,,вУказывает на предыдущее слово. Очевидно, всеПотенциал сформированного множества фактически зависит ототличается от прежнегоколичество
Затем, чтобы превратить приведенное выше число в вероятность, нам нужно разделить его на значение, которое является количеством всех типов биграмм, т.е., где больше 0 означает "появился". Так что есть
Конечно, мы также можем использовать следующую эквивалентную форму
то есть количество всех различных биграмм, равное количеству вхождений в слововсе разные слова передколичество
В результате высокочастотное слово Zealand, которое появляется только после New, может получить только более низкую вероятность продолжения. Следовательно, в сочетании с формулой расчета вероятности абсолютного дисконтирования, приведенной выше, можно получить интерполяционную формулу сглаживания Кнезера-Нея, то есть
в,означает, что конечная частота вычитается на единицуПосле этого он не станет отрицательным. Во-вторых, мы будемзаменяется. также,это константа регуляризации, используемая для присвоения значения вероятности предыдущей скидки (то есть значение вероятности, вычтенное из высокочастотных слов, готовое для присвоения тем низкочастотным словам, которые не появляются)
Если более общую формулу обобщения можно переписать рекурсивно, то:
в
Из-за описанного выше метода рекурсивной записи нам нужно определить функцию подсчета, который зависит от того, на каком уровне находится N-GRAm каждого порядка в комбинации интерполяции. Например, если предположить, что модель интерполяции, которую мы используем сейчас, представляет собой комбинацию триграммы, биграммы и униграммы, то для триграммы высшего порядка нам не нужно использовать непрерывный счет (можно использовать обычный счет) при счете, в то время как другие триграммы низкого порядка, а именно биграммы и униграммы, требуют использования счетчиков продолжения. Это потому, что в униграмме мы сталкиваемся с Зеландией и можем сослаться на ее биграмму Аналогично, в биграмме мы также можем сослаться на ее триграмму, но если наивысший порядок в нашей интерполяционной комбинации — триграмма, то нет 4- грамм, чтобы сделать счетчик продолжения для меня. Формула выражается как:
О сглаживании рассказывается здесь, заинтересованные читатели могут обратиться к соответствующим материалам, чтобы узнать больше.
Рекомендуемое чтение:An Empirical Study of Smoothing Techniques for Language Modeling