perplexity

advertisement
N-граммы
Докладчик:
Федоренко Денис, 327 гр.
Содержание




Определение
Примеры прикладных задач
Создание языковой модели n-грамм
• Подсчет вероятности n-грамм
• Устранение разреженности обучающего корпуса
o Add-one Smoothing
o Witten-Bell Discounting
o Good-Turing Discounting
o Katz’s Backoff
o Deleted Interpolation
Оценка языковой модели n-грамм с помощью энтропии
Определение
N-грамма (англ. N-gram) —
подпоследовательность из N элементов
некоторой последовательности.
Рассмотрим последовательности слов.

Юниграммы
cat, dog, horse, ...

Биграммы
little cat, big dog, strong horse, ...

Триграммы
little cat eats, big dog barks, strong horse runs, ...
Примеры прикладных задач

Распознавание речи.
Некоторые различные по написанию слова произносятся
одинаково. Задача — выбрать в контексте правильное
слово.

Генерация текстов заданной тематики.
Пример: Яндекс.Рефераты.

Поиск семантических ошибок.
He is trying to fine out - с точки зрения синтаксиса верно, с
точки зрения семантики — нет.
He is trying to find out – верно.
trying to find out встречается в английских текстах гораздо чаще, чем
trying to fine out, значит при наличии статистики можно найти и
устранить ошибку подобного рода
Создание языковой модели nграмм
•
Для решения перечисленных прикладных
задач, нужно создать языковую модель Nграмм.
• Для создания модели необходимо:
1. Посчитать вероятности n-грамм в
обучающем корпусе.
2. Устранить проблему разреженности
корпуса с помощью одного из методов
сглаживания.
3. Оценить качество полученной языковой
модели n-грамм с помощью энтропии.
Подсчет вероятности N-грамм (1)
•
•
•
В обучающем корпусе те или иные nграммы встречаются с разной частотой.
Для каждой n-граммы мы можем посчитать,
сколько раз она встретилась в корпусе.
На основе полученных данных можно
построить вероятностную модель, которая
затем может быть использована для
оценки вероятности n-грамм в некотором
тестовом корпусе.
Подсчет вероятности N-грамм (2)
Рассмотрим пример.
Пусть корпус состоит из одного предложения:
They picnicked by the pool, then lay back on the grass and looked
at the stars
Выделим n-граммы.
•
Юниграммы:
They, picknicked, by, …
•
Биграммы:
They picnicked, picknicked by, by the, …
•
Триграммы
They picknicked by, picknicked by the, by the pool, …
Подсчет вероятности N-грамм (3)
•
•
•
•
Теперь можно посчитать n-граммы.
Все выделенные би- и три- граммы встречаются в корпусе по одному
разу. Все юниграммы, за исключением слова the, также встречаются
единожды. Слово the встречается трижды.
Теперь, когда известно, сколько раз встречается каждая n-грамма,
можно построить вероятностную модель n-грамм.
В случае юниграмм, вероятность слова u может быть вычислена по
формуле:
Число вхождений слова u
C (u )
P(u ) 
1
в обучающем корпусе
wordCorpus
•
Например, для слова the вероятность будет равна 3/16 (т.к. в корпусе 16
слов, 3 из которых – слово the).
They picnicked by the pool, then lay back on the
grass and looked at the stars
Подсчет вероятности N-грамм (4)
• Для n-грамм, где n>1, вероятность считается несколько
иначе.
• Рассмотрим случай биграмм: пусть необходимо вычислить
вероятность биграммы the pool. Если рассматривать каждое
слово биграммы как некоторое событие, то вероятность
совокупности событий может быть вычислена по формуле:
P(the pool )  P(the) P( pool | the)
, где
C (the pool )
P( pool | the) 
C (the)
• Таким образом, вероятность биграммы the pool:
3 1
1
* 
16 3 16
Подсчет вероятности N-грамм (5)
• Теперь рассмотрим подсчет вероятности произвольной nграммы (или предложения длины n).
• Расширяя случай биграмм, получаем формулу вероятности
для n-грамм:
P ( w1n )  P ( w1 ) P ( w2 | w1 ) P ( w3 | w12 )...P ( wn | w1n 1 )
• Вычислить вероятность по такой формуле непросто,
поэтому вводится упрощение – использовать историю
фиксированной длины, т.е.
P ( wn | w1n 1 )  P ( wn | wnn1N 1 )
• Таким образом, вычисление вероятности предложения
сводится к вычислению условной вероятности N-грамм, из
которых состоит это предложение:
n 1
n  N 1
P ( wn | w
C ( wnn1N 1wn )
)
C ( wnn1N 1 )
Подсчет вероятности N-грамм (6)
Пример: посчитать вероятность предложения I want
to eat British food.
Устранение разреженности
корпуса (1)
Проблема простой (unsmoothed) языковой модели nграмм: у некоторых n-грамм вероятность может быть
сильно занижена (либо вовсе равна нулю), хотя в
действительности (в тестовом корпусе) эти n-граммы
могут встречаться довольно часто.
Причина: ограниченность обучающего корпуса и его
специфика.
Решение: за счет понижения вероятности некоторых
n-грамм, повысить вероятность тех n-грамм, которые
не встречались (либо встречались достаточно редко)
в обучающем корпусе.
Устранение разреженности
корпуса (2)
В докладе рассмотрены следующие методы
устранения разреженности:
• Add-One Smoothing (Laplace Smoothing)
• Witten-Bell Discounting
• Good-Turing Discounting
• Backoff
• Deleted Interpolation
Устранение разреженности
корпуса (3)
В алгоритмах устранения разреженности
используются следующие понятия:
• Типы (types) – различные слова
(последовательности слов) в тексте.
• Токены (tokens) – все слова
(последовательности слов) в тексте.
They picnicked by the pool, then lay back on the grass
and looked at the stars – 14 типов, 16 токенов
Add-one smoothing (1)
Baseline: прибавить к количеству n-грамм
единицу.
N
c  (ci  1)
N V
*
i
ci  1
p 
N V
*
i
Ci – кол-во n-грамм типа i, N – число токенов
в корпусе, V – число типов в корпусе
Тогда в случае биграмм:
C ( wn 1wn )  1
*
p ( wn | wn 1 ) 
C ( wn 1 )  V
Add-one smoothing (2)
Add-one smoothing (3)
*
c
dc 
c
discounting value – используется
для оценки сглаживания
Уменьшение в 8 раз!
/
=
Add-one smoothing (4)
• Метод провоцирует сильную погрешность в
вычислениях (так, на предыдущем слайде
было показано, что для слова Chinese кол-во
биграмм сократилось в 8 раз).
• Тесты показали, что unsmoothed-модель
часто показывает более точные результаты.
• Следовательно, метод интересен только с
теоретической точки зрения.
Witten-Bell Discounting (1)
• Основан на простой идее: использовать данные об nграммах, встречающихся в обучающем корпусе, для оценки
вероятности отсутствующих n-грамм.
• Идея метода взята из алгоритмов сжатия: рассматриваются
два типа событий - “встретили новый символ (тип)” и
“встретили символ (токен)”.
• Формула вероятности для всех отсутствующих n-грамм (т.е.
вероятность встретить в тестовом корпусе n-грамму, которой
не было в обучающем корпусе):
T
p 

N T
i:ci 0
*
i
N – число токенов в обучающем корпусе, T –
число типов, которые уже встречались в
обучающем корпусе
Witten-Bell Discounting (2)
Для случая биграмм справедливы формулы:
T ( wx )
p ( wi | wx ) 

N ( wx )  T ( wx )
i:c ( wx wi ) 0
*
T ( wx )
p ( wi | wx ) 
, c( wx wi )  0
Z ( wx )( N ( wx )  T ( wx ))
*
, где
Z ( wx ) 
1
i:c ( wx wi ) 0
c( wx wi )
p ( wi | wx ) 
, c( wx wi )  0
c( wx )  T ( wx )
*
Witten-Bell Discounting (3)
Вычисление Z (размер словаря V равен 1616):
T (w) :
Z ( w)  V  T ( w) :
Witten-Bell Discounting (4)
T N
, ci  0

Z N T
*
=>
ci  
c N , c  0
 i N  T i
Witten-Bell Discounting (5)
*
c
Discounting value c (значения в
таблицах округлены):
/
=
Good-Turing Discounting (1)
• Идея: для n-грамм, которые встретились ноль раз (с раз),
оценка пропорциональна кол-ву n-грамм, встретившихся один
раз (с + 1 раз).
N c 1 N 
1
c  (c  1)
,

c
b:count ( b )  c
Nc
*
• Рассмотрим пример: Пусть было поймано 18 рыб. Всего
поймано разных видов – 6, причем у трех видов поймано лишь
по одному представителю. Нужно найти вероятность того, что
следующая рыба будет принадлежать новому виду. Всего
возможных видов – 7 (6 видов уже поймано).
c*
N1
N1 3 1
P   {c  0}  1
 {N 0  7  6  1} 
 
N
N0  N
N 18 6
Good-Turing Discounting (2)
• Возможна ситуация, когда Nc=0, из-за чего
становится невозможно воспользоваться
формулой c* для n-грамм встречающихся с-1 и
с раз.
• В этом случае Nc считается по формуле:
log( N c )  a  b log( c)
a, b - параметры
Good-Turing Discounting (3)
Katz’s Backoff (1)
• Основная идея: можно оценивать вероятности Nграмм с помощью вероятностей (N-k)-грамм (0<k<N).
• Особенность: метод можно сочетать со smoothingалгоритмами (Witten-Bell, Good-Turing etc.)
• Оценка вероятности в случае триграмм:
~
P (wi | wi 2 wi 1 ), C (wi 2 wi 1wi )  0
Pˆ ( wi | wi 2 wi 1 )  
 ( wnn12 ) Pˆ (wi | wi 1 ), overwise
 ( wnn12 )
- коэффициент распределения остаточной
вероятности
Katz’s Backoff (2)
• Коэффициент α необходим для корректного
распределения остаточной вероятности Nграмм в соответствии с распределением
вероятности (N-1)-грамм.
• Если не вводить α, оценка будет ошибочной,
т.к. не будет выполняться равенство:
 P( w
n
i, j
| wi w j )  1
• Вычисление α приведено в конце доклада.
Deleted Interpolation
Оценка вероятности вычисляется как линейная
комбинация вероятностей всех (N-k)-грамм
(0<=k<N), т.е.
Pˆ ( wn | wn  2 wn 1 ) 
n 1 ~
1 ( wn  2 ) P ( wn | wn 2 wn 1 )
n 1 ~
 2 ( wn  2 ) P ( wn | wn 1 )
n 1 ~
 3 ( wn  2 ) P ( wn )
Оценка языковой модели с
помощью энтропии (1)
• Энтропия – мера неопределенности.
• При помощи энтропии можно определить наиболее
подходящую языковую модель N-грамм для данной
прикладной задачи.
• Формула двоичной энтропии:
H ( X )    p( x) log 2 p( x)
xX
• Пример: посчитать энтропию испытания,
заключающегося в бросании монеты. Ответ: 1 бит,
при условии, что результаты опыта равновероятны
(любая сторона выпадает с вероятностью 1/2).
Оценка языковой модели с
помощью энтропии (2)
• Энтропия цепочек слов длины n в языке L:
H ( w1 ,..., wn )    p(W1n ) log 2 p(W1n )
W1n L
1
1
H ( w1 ,..., wn )    p(W1n ) log 2 p(W1n )
n
n W1n L
• При подсчете энтропии всего языка L, число n
(длина цепочки) стремится к бесконечности, т.е.
1
H ( L)  lim  p(w1n ) log p(w1n )
n
n  
• По теореме Шеннона-Макмиллана-Бреймана, можно
упростить формулу:
1
H ( L)  lim log p( w1n )
n
n  
Оценка языковой модели с
помощью энтропии (3)
• Для сравнения различных языковых моделей используется
кросс-энтропия:
1
H ( p, m)   lim  p( w1n ) log m( w1n )
n   n
m(w) – языковая модель (например,
модель N-грамм)
• Чем ближе значение кросс-энтропии H(p,m) к реальной
энтропии H(p), тем лучше языковая модель:
1
H ( p)  H ( p, m)  lim log m(w1n )
n
n  
• В нашем случае H(p) – энтропия тестового корпуса.
Оценка языковой модели с
помощью энтропии (4)
• Есть другой метод оценки качества языковой модели,
основанный на т.н. показателе связности (perplexity).
• Идея: посчитать вероятность всего тестового корпуса. Более
качественная модель покажет большую вероятность.
• Формула perplexity:
1
PP( w )  P( w )
N
1
N
1

N
• Таким образом, чем меньше perplexity, тем лучше модель.
• Можно трактовать perplexity как среднее кол-во слов, которые
могут идти после некоторого слова (т.е. чем больше perplexity,
тем выше неоднозначность, и следовательно, тем хуже
языковая модель).
• Связь perplexity и двоичной энтропии:
PP  2 H
Оценка языковой модели с
помощью энтропии (5)
• В качестве примера рассмотрим значения perplexity для
некоторого корпуса, полученные с помощью обученных
моделей юниграмм, биграмм и триграмм:
Perplexity
Unigram
Bigram
Trigram
962
170
109
• В случае триграмм perplexity наименьшее, т.к. устранению
неоднозначности способствует самая большая из всех
моделей длина истории (равная 2) при вычислении условных
вероятностей триграмм.
Дополнение: Формулы Katz’s
Backoff
~
n 1
n

P ( wn | wn  N 1 ), C ( wn  N 1 )  0

n

1
Pˆ ( wn | wn  N 1 )  
n 1
n 1
ˆ

 ( wn  N 1 ) P( wn | wn  N  2 ), overwise
~
n 1
1

P
(
w
|
w

n
n  N 1 )
w :c ( w
) 0
n 1
 ( wn N 1 ) 
n 1
ˆ
P
(
w
|
w
w :c( w )0 n n N 2 )
n
n
n
n N 1
n
n N 1
*
n
c
(
w
~
n 1
n  N 1 )
P ( wn | wn  N 1 ) 
c( wnn1N 1 )
c* - smoothed-значение
Download