3. Что это такое?
Обработка естественного языка — общее направление
искусственного интеллекта и математической
лингвистики. Оно изучает проблемы компьютерного
анализа и синтеза естественных языков. Решение этих
проблем будет означать создание более удобной формы
взаимодействия компьютера и человека.
Natural language processing (NLP) is a field of computer
science, artificial intelligence, and linguistics concerned with
the interactions between computers and human (natural)
languages.
Wikipedia
4. Типичные задачи
–
–
–
–
–
–
–
–
–
–
морфологический анализ и синтез
синтаксический разбор
разрешение неоднозначностей
расширение поисковых запросов
извлечение фактов
соотношения между сущностями в тексте
автоматическое реферирование
машинный перевод
распознавание/синтез речи
классификация документов
9. А если слова нет в словаре?
я иду {идти} по ковру {ковёр}
мы идём {идти} по коврём {коврать?}
ты идёшь {идти} по коврёшь {коврать?}
вы идёте {идти} по коврёте {коврать?}
он идёт {идти} по коврёт {коврать?}
они идут {идти} по коврут {коврать?}
http://api.yandex.ru/mystem
10. А если слова нет в словаре?
«Глокая куздра штеко будланула бокра
и курдячит бокрёнка»
Л. В. Щерба.
глокая {глокать? глокий?}
куздра {куздра?}
штеко {штекий? штеко?}
будланула {будланул? будланула? будлануть?}
бокра {бокр? бокра? бокрый?}
и {и}
кудрячит {кудрячит? кудрячита? кудрячить?}
бокренка {бокренк? бокренка? бокренок?}
15. Конечные автоматы
Формальное описание:
1. Конечный входной алфавит Σ.
2. Конечное множество состояний Q.
3. Начальное состояние q0 ∈ Q.
4. Множество заключительных состояний F ⊂ Q.
5. Функция переходов δ : Q × V → Q.
16. Регулярные множества
Рекурсивное определение R(Σ) ⊂ Σ∗ :
1. ∅ ∈ R(Σ).
2. {ε} ∈ R(Σ).
3. ∀ a ∈ Σ : {a} ∈ R(Σ).
4. Если P, Q ∈ R(Σ), то P ∪ Q ∈ R(Σ).
5. Если P, Q ∈ R(Σ), то P Q ∈ R(Σ).
6. Если P ∈ R(Σ), то P ∗ ∈ R(Σ).
Регулярные множества (и только они) распознаются
конечными автоматами.
17. Регулярные множества
Рекурсивное определение R(Σ) ⊂ Σ∗ :
1. ∅ ∈ R(Σ).
2. {ε} ∈ R(Σ).
3. ∀ a ∈ Σ : {a} ∈ R(Σ).
4. Если P, Q ∈ R(Σ), то P ∪ Q ∈ R(Σ).
5. Если P, Q ∈ R(Σ), то P Q ∈ R(Σ).
6. Если P ∈ R(Σ), то P ∗ ∈ R(Σ).
Регулярные множества (и только они) распознаются
конечными автоматами.
18. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
19. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
20. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
21. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
22. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
23. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
24. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
25. Скрытые марковские модели
применяются в задачах
– расстановки частей речи (и снятия
морфологической неоднозначности);
– выделения именованных сущностей;
– распознавания речи;
– распознавания рукописного ввода;
– распознавания жестов.
27. Скрытые марковские модели
1. Q = q1 , q2 , . . . , qN : множество состояний;
2. q0 : начальное состояние;
3. A = (aij ): (N + 1) × (N + 1)-матрица переходных
вероятностей;
4. O = o1 , . . . , oT : последовательность наблюдаемых;
5. B = bi (ot ): набор выходных вероятностей.
Наблюдаем внешние события, но не внутреннее
состояние модели.
28.
29. В наших задачах скрытыми состояниями
будут последовательности тегов,
а наблюдаемыми — слова предложения.
30. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
31. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
32. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
33. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
34. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
35. Задачи, связанные с HMM
1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
36. Оценка правдоподобия
Дана скрытая марковская модель λ = (A, B)
и последовательность наблюдений O.
Определить вероятность p(O | λ).
p(O) =
p(O | Q) p(Q) =
p(O, Q) =
Q
Q
T
T
p(ot | qt ) ·
Q
t=1
p(qt | qt−1 ).
t=1
Вычислять p(O) непосредственно по этой формуле
нереально.
37. Оценка правдоподобия
Дана скрытая марковская модель λ = (A, B)
и последовательность наблюдений O.
Определить вероятность p(O | λ).
p(O) =
p(O | Q) p(Q) =
p(O, Q) =
Q
Q
T
T
p(ot | qt ) ·
Q
t=1
p(qt | qt−1 ).
t=1
Вычислять p(O) непосредственно по этой формуле
нереально.
38. Оценка правдоподобия
Дана скрытая марковская модель λ = (A, B)
и последовательность наблюдений O.
Определить вероятность p(O | λ).
p(O) =
p(O | Q) p(Q) =
p(O, Q) =
Q
Q
T
T
p(ot | qt ) ·
Q
t=1
p(qt | qt−1 ).
t=1
Вычислять p(O) непосредственно по этой формуле
нереально.
39. Оценка правдоподобия
Дана скрытая марковская модель λ = (A, B)
и последовательность наблюдений O.
Определить вероятность p(O | λ).
p(O) =
p(O | Q) p(Q) =
p(O, Q) =
Q
Q
T
T
p(ot | qt ) ·
Q
t=1
p(qt | qt−1 ).
t=1
Вычислять p(O) непосредственно по этой формуле
нереально.
40. Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N
αt (j) =
αt−1 (i)aij bj (ot ).
i=1
Заметим, что
P (O) = αT (qF ).
41. Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N
αt (j) =
αt−1 (i)aij bj (ot ).
i=1
Заметим, что
P (O) = αT (qF ).
42. Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N
αt (j) =
αt−1 (i)aij bj (ot ).
i=1
Заметим, что
P (O) = αT (qF ).
43. Алгоритм Forward
Input: observations of length T , state-graph of length N
Output: forward probability αT (qF )
create a matrix α[T, N ]
for each state j from 1 to N do
α1 (j) ← a0,j · bj (o1 )
for each time step t from 2 to T do
for each state j from 1 to N do
αt (j) ← N αt−1 (i) · ai,j · bj (ot )
i=1
N
αT (i) · ai,qF
return
i=1
44. Алгоритм Витерби
Input: observations of length T , state-graph of length N
Output: best-path
for each state s from 1 to N do
viterbi[s, 1] ← a0,s · bs (o1 )
backpointers[s, 1] ← 0
for each time step t from 2 to T do
for each state s from 1 to N do
viterbi[s, t] ← maxN=1 viterbi[s , t − 1] · as ,s · bs (ot )
s
backpointer[s, t] ← argmaxN=1 viterbi[s , t − 1] · as ,s
s
N
viterbi[qF , T ] ← max viterbi[s, T ] · as,qF
s=1
backpointer[qF , T ] ← argmaxN viterbi[s, T ] · as,qF
s=1
return the backtrace path from backpointer[qF , T ]
45. Обучение скрытых марковских моделей
Дана последовательность наблюдений O и множество
возможных состояний модели. Требуется найти
параметры модели A и B.
Задача решается алгоритмом Баума-Велша
(Baum-Welch), частным случаем метода EM
(Expectation-Maximization).
46. Обучение скрытых марковских моделей
Дана последовательность наблюдений O и множество
возможных состояний модели. Требуется найти
параметры модели A и B.
Задача решается алгоритмом Баума-Велша
(Baum-Welch), частным случаем метода EM
(Expectation-Maximization).
47. Обратные вероятности
Вспомним прямые и определим обратные вероятности:
αt (j) := p(o1 , o2 , . . . , ot , qt = j | λ),
βt (i) := p(ot+1 , ot+2 , . . . , oT | qt = i, λ).
Обратные вероятности тоже можно найти рекурсивно:
βT (i) = ai,F ,
1
i
N,
N
βt (i) =
aij bj (ot+1 )βt+1 (j),
1
i
N, 1
t < T,
j=1
N
p(O | λ) = αT (qF ) = β0 (q0 ) =
a0j bj (o1 )β1 (j).
j=1
48. Обратные вероятности
Вспомним прямые и определим обратные вероятности:
αt (j) := p(o1 , o2 , . . . , ot , qt = j | λ),
βt (i) := p(ot+1 , ot+2 , . . . , oT | qt = i, λ).
Обратные вероятности тоже можно найти рекурсивно:
βT (i) = ai,F ,
1
i
N,
N
βt (i) =
aij bj (ot+1 )βt+1 (j),
1
i
N, 1
t < T,
j=1
N
p(O | λ) = αT (qF ) = β0 (q0 ) =
a0j bj (o1 )β1 (j).
j=1
49. Оценка переходных вероятностей aij
Предположим, что состояния марковской модели
открыты.
Оценим aij :
aij =
C(i → j)
.
C(i → q)
q∈Q
50. Оценка переходных вероятностей aij
ξt (i, j) := p(qt = i, qt+1 = j | O, λ).
ξt (i, j) =
aij =
ˆ
αt (i)aij bj (ot+1 )βt+1 (j)
.
αT (N )
T −1
t=1 ξt (i, j)
.
N
T −1
ξt (i, j)
t=1
j=1
51. Оценка переходных вероятностей aij
ξt (i, j) := p(qt = i, qt+1 = j | O, λ).
ξt (i, j) =
aij =
ˆ
αt (i)aij bj (ot+1 )βt+1 (j)
.
αT (N )
T −1
t=1 ξt (i, j)
.
N
T −1
ξt (i, j)
t=1
j=1
52. Оценка переходных вероятностей aij
ξt (i, j) := p(qt = i, qt+1 = j | O, λ).
ξt (i, j) =
aij =
ˆ
αt (i)aij bj (ot+1 )βt+1 (j)
.
αT (N )
T −1
t=1 ξt (i, j)
.
N
T −1
ξt (i, j)
t=1
j=1
53. Оценки вероятностей наблюдаемых
Пусть V — множество значений наблюдаемых величин.
ˆj (vk ) = число пребываний в состоянии j при vk .
b
число пребываний в состоянии j
γt (j) := p(qt = j | O, λ)
p(qt = j, O | λ)
=
p(O | λ)
αt (j)βt (j)
=
.
p(O | λ)
ˆj (vk ) =
b
1 t T, ot =vk γt (j)
.
T
t=1 γt (j)
54. Оценки вероятностей наблюдаемых
Пусть V — множество значений наблюдаемых величин.
ˆj (vk ) = число пребываний в состоянии j при vk .
b
число пребываний в состоянии j
γt (j) := p(qt = j | O, λ)
p(qt = j, O | λ)
=
p(O | λ)
αt (j)βt (j)
=
.
p(O | λ)
ˆj (vk ) =
b
1 t T, ot =vk γt (j)
.
T
t=1 γt (j)
55. Оценки вероятностей наблюдаемых
Пусть V — множество значений наблюдаемых величин.
ˆj (vk ) = число пребываний в состоянии j при vk .
b
число пребываний в состоянии j
γt (j) := p(qt = j | O, λ)
p(qt = j, O | λ)
=
p(O | λ)
αt (j)βt (j)
=
.
p(O | λ)
ˆj (vk ) =
b
1 t T, ot =vk γt (j)
.
T
t=1 γt (j)
56. Оценки вероятностей наблюдаемых
Пусть V — множество значений наблюдаемых величин.
ˆj (vk ) = число пребываний в состоянии j при vk .
b
число пребываний в состоянии j
γt (j) := p(qt = j | O, λ)
p(qt = j, O | λ)
=
p(O | λ)
αt (j)βt (j)
=
.
p(O | λ)
ˆj (vk ) =
b
1 t T, ot =vk γt (j)
.
T
t=1 γt (j)
57. Оценки вероятностей наблюдаемых
Пусть V — множество значений наблюдаемых величин.
ˆj (vk ) = число пребываний в состоянии j при vk .
b
число пребываний в состоянии j
γt (j) := p(qt = j | O, λ)
p(qt = j, O | λ)
=
p(O | λ)
αt (j)βt (j)
=
.
p(O | λ)
ˆj (vk ) =
b
1 t T, ot =vk γt (j)
.
T
t=1 γt (j)
58. Алгоритм Баума-Велша
Input: observations of length T ,
output vocabulary V , hidden state set Q
Output: HM M = (A, B)
initialize A and B
iterate until convergence
E-step:
(j)βt (j)
γt (j) = αtp(O|λ) ∀ t, j
ξt (i, j) =
M-step:
aij =
ˆ
αt (i)aij bj (ot+1 )βt+1 (j)
αT (N )
T −1
t=1 ξt (i,j)
T −1
N
j=1 ξt (i,j)
t=1
ˆj (vk ) =
b
return A, B
1 t T, ot =vk γt (j)
T
t=1 γt (j)
∀ t, i, j
59. Порождающие и дискриминантные модели
В порождающих моделях (generative models) задано
совместное распределение вероятностей скрытых
состояний и наблюдаемых данных p(H, O).
Примеры: языковые модели, HMM, наивный
байесовский классификатор.
В дискриминантных моделях (discriminative models)
заданы условные вероятности p(H|O).
Примеры: логистическая регрессия, MEMM.
60.
61. Марковская модель максимальной энтропии
В HMM были вероятности p(tag|tag) и p(word|tag).
Учитывать вероятности вида
p(capitalization|tag), p(hyphen|tag), p(suffix|tag)
в HMM сложно.
В марковской модели максимальной энтропии
n
p(qi |qi−1 , oi ).
p(Q|O) =
i=1
62. Марковская модель максимальной энтропии
В HMM были вероятности p(tag|tag) и p(word|tag).
Учитывать вероятности вида
p(capitalization|tag), p(hyphen|tag), p(suffix|tag)
в HMM сложно.
В марковской модели максимальной энтропии
n
p(qi |qi−1 , oi ).
p(Q|O) =
i=1
63. Марковская модель максимальной энтропии
В HMM были вероятности p(tag|tag) и p(word|tag).
Учитывать вероятности вида
p(capitalization|tag), p(hyphen|tag), p(suffix|tag)
в HMM сложно.
В марковской модели максимальной энтропии
n
p(qi |qi−1 , oi ).
p(Q|O) =
i=1
64.
65. Features
Пусть C — конечное множество классов, на которые
надо разбить наблюдаемые данные.
Свойства — функции f : C × X → R.
Обычно это индикаторные функции f : C × X → {0, 1}.
Примеры:
1. Слово заканчивается на «-тся», глагол.
2. Предыдущее слово было «в», не глагол.
3. Вероятность данного разбора данного слова.
4. Слово написано с большой буквы, существительное.
Пусть у каждого свойства fi (c, x) для каждого класса
c ∈ H есть вес wci .
68. Логистическая регрессия
Бинарный классификатор (y ∈ {false, true}).
p(y = true | x) = w · f.
Не годится, так как должно быть 0
P
1.
p(y = true | x)
= w · f.
1 − p(y = true | x)
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
ln
p(y = true | x)
= w · f.
1 − p(y = true | x)
69. Логистическая регрессия
Бинарный классификатор (y ∈ {false, true}).
p(y = true | x) = w · f.
Не годится, так как должно быть 0
P
1.
p(y = true | x)
= w · f.
1 − p(y = true | x)
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
ln
p(y = true | x)
= w · f.
1 − p(y = true | x)
70. Логистическая регрессия
Бинарный классификатор (y ∈ {false, true}).
p(y = true | x) = w · f.
Не годится, так как должно быть 0
P
1.
p(y = true | x)
= w · f.
1 − p(y = true | x)
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
ln
p(y = true | x)
= w · f.
1 − p(y = true | x)
71. Логистическая регрессия
Бинарный классификатор (y ∈ {false, true}).
p(y = true | x) = w · f.
Не годится, так как должно быть 0
P
1.
p(y = true | x)
= w · f.
1 − p(y = true | x)
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
ln
p(y = true | x)
= w · f.
1 − p(y = true | x)
72. Логистическая регрессия
Бинарный классификатор (y ∈ {false, true}).
p(y = true | x) = w · f.
Не годится, так как должно быть 0
P
1.
p(y = true | x)
= w · f.
1 − p(y = true | x)
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
ln
p(y = true | x)
= w · f.
1 − p(y = true | x)
75. Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условное
правдоподобие:
w = arg max p(y|x)
ˆ
w
p(y (i) |x(i) )
= arg max
w
i
log p(y (i) |x(i) ).
= arg max
w
i
76. Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условное
правдоподобие:
w = arg max p(y|x)
ˆ
w
p(y (i) |x(i) )
= arg max
w
i
log p(y (i) |x(i) ).
= arg max
w
i
77. Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условное
правдоподобие:
w = arg max p(y|x)
ˆ
w
p(y (i) |x(i) )
= arg max
w
i
log p(y (i) |x(i) ).
= arg max
w
i
78. Обобщение на случай нескольких классов
Multinomial logistic regression.
Предполагаем, что
p(c|x) =
=
1
exp
Z
wci fi (c, x)
i
exp ( i wci fi (c, x))
.
c ∈C exp (
i wc i fi (c, x))
c = arg max p(c|x).
ˆ
c∈C
Эта модель также называется моделью максимальной
энтропии. Почему?
79. Обобщение на случай нескольких классов
Multinomial logistic regression.
Предполагаем, что
p(c|x) =
=
1
exp
Z
wci fi (c, x)
i
exp ( i wci fi (c, x))
.
c ∈C exp (
i wc i fi (c, x))
c = arg max p(c|x).
ˆ
c∈C
Эта модель также называется моделью максимальной
энтропии. Почему?
80. Простой пример
Модель p, предсказывающая французский перевод
английского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
`
Ограничение:
pdans + pen + p` + pau cours de + ppendant = 1.
a
Как выбрать модель?
dans
1/5
en
` au cours de pendant
a
1/5 1/5
1/5
1/5
81. Простой пример
Модель p, предсказывающая французский перевод
английского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
`
Ограничение:
pdans + pen + p` + pau cours de + ppendant = 1.
a
Как выбрать модель?
dans
1/5
en
` au cours de pendant
a
1/5 1/5
1/5
1/5
82. Простой пример
Модель p, предсказывающая французский перевод
английского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
`
Ограничение:
pdans + pen + p` + pau cours de + ppendant = 1.
a
Как выбрать модель?
dans
1/5
en
` au cours de pendant
a
1/5 1/5
1/5
1/5
83. Добавим ограничение:
pdans + pen + p` + pau cours de + ppendant = 1,
a
pdans + pen = 3/10.
dans
3/20
en
`
a
au cours de pendant
3/20 7/30
7/30
7/30
84. Добавим ограничение:
pdans + pen + p` + pau cours de + ppendant = 1,
a
pdans + pen = 3/10.
dans
3/20
en
`
a
au cours de pendant
3/20 7/30
7/30
7/30
85. Добавим еще одно:
pdans + pen + p` + pau cours de + ppendant = 1,
a
pdans + pen = 3/10,
pdans + p` = 1/2.
a
dans
?
en a au cours de pendant
`
? ?
?
?
Надо выбрать распределение так, чтобы его энтропия
была максимальной.
86. Добавим еще одно:
pdans + pen + p` + pau cours de + ppendant = 1,
a
pdans + pen = 3/10,
pdans + p` = 1/2.
a
dans
?
en a au cours de pendant
`
? ?
?
?
Надо выбрать распределение так, чтобы его энтропия
была максимальной.
87. Формализуем этот подход
Выходное значение y зависит от контекста наблюдаемых
величин x. Модель p ∈ P будет предсказывать p(y|x).
Дана обучающая выборка (x1 , y1 ), . . . , (xN , yN ).
Определим выборочные распределения p(x, y) и p(x).
˜
˜
Подберем свойства f (x, y).
Вычислим матожидание f и его оценку согласно модели:
p(f ) :=
˜
p(x, y)f (x, y),
˜
x,y
p(f ) :=
p(x)p(y|x)f (x, y).
˜
x,y
Ограничение:
p(f ) = p(f ).
˜
88. Формализуем этот подход
Выходное значение y зависит от контекста наблюдаемых
величин x. Модель p ∈ P будет предсказывать p(y|x).
Дана обучающая выборка (x1 , y1 ), . . . , (xN , yN ).
Определим выборочные распределения p(x, y) и p(x).
˜
˜
Подберем свойства f (x, y).
Вычислим матожидание f и его оценку согласно модели:
p(f ) :=
˜
p(x, y)f (x, y),
˜
x,y
p(f ) :=
p(x)p(y|x)f (x, y).
˜
x,y
Ограничение:
p(f ) = p(f ).
˜
89. Принцип максимальной энтропии
Энтропия — мера «равномерности» условного
раcпределения p(y|x):
H(p) := −
p(x)p(y|x) log p(y|x).
˜
x,y
Среди всех моделей, допустимых ограничениями C,
выбираем модель с максимальной энтропией:
p∗ = arg max H(p).
p∈C
90. Принцип максимальной энтропии
Энтропия — мера «равномерности» условного
раcпределения p(y|x):
H(p) := −
p(x)p(y|x) log p(y|x).
˜
x,y
Среди всех моделей, допустимых ограничениями C,
выбираем модель с максимальной энтропией:
p∗ = arg max H(p).
p∈C
91. Метод множителей Лагранжа
Ищем безусловный максимум функции
λi (p(fi ) − p(fi )) :
˜
Λ(p, λ) := H(p) +
i
pλ := arg max Λ(p, λ) =
p∈P
1
exp
Zλ (x)
λi fi (x, y) ,
i
где Zλ (x) — нормирующий множитель
Zλ (x) =
exp
y
λi fi (x, y) .
i
92. Метод множителей Лагранжа
Ищем безусловный максимум функции
λi (p(fi ) − p(fi )) :
˜
Λ(p, λ) := H(p) +
i
pλ := arg max Λ(p, λ) =
p∈P
1
exp
Zλ (x)
λi fi (x, y) ,
i
где Zλ (x) — нормирующий множитель
Zλ (x) =
exp
y
λi fi (x, y) .
i
93. MEMM: декодирование и обучение
Декодирование: аналог алгоритма Витерби для HMM.
Обучение: численные методы выпуклой оптимизации
(градиентный спуск, метод сопряженных градиетов,
квазиньютоновские методы) + метод EM.
94. MEMM: декодирование и обучение
Декодирование: аналог алгоритма Витерби для HMM.
Обучение: численные методы выпуклой оптимизации
(градиентный спуск, метод сопряженных градиетов,
квазиньютоновские методы) + метод EM.
95. Что еще можно применить?
– Conditional random field (CRF);
– Support Vector Machines (SVM);
– Decision lists, decision trees, ...
96. Синтаксис
Синтаксис — раздел лингвистики, изучающий строение
словосочетаний и предложений.
Syntax is the study of the principles and processes by
which sentences are constructed in particular languages.
Wikipedia
97. Синтаксис как система составляющих
Автор — Ноам Хомский (Noam Chomsky).
Слова в предложении группируются в составляющие.
98. Система составляющих
Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
John talked [to the children] [about rules].
John talked [about rules] [to the children].
*John talked rules to the children about.
— её можно заменять на грамматически похожие:
I sat [on the box / on top of the box / in front of you].
99. Система составляющих
Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
John talked [to the children] [about rules].
John talked [about rules] [to the children].
*John talked rules to the children about.
— её можно заменять на грамматически похожие:
I sat [on the box / on top of the box / in front of you].
100. Система составляющих
Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
John talked [to the children] [about rules].
John talked [about rules] [to the children].
*John talked rules to the children about.
— её можно заменять на грамматически похожие:
I sat [on the box / on top of the box / in front of you].
101. Система составляющих
Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
John talked [to the children] [about rules].
John talked [about rules] [to the children].
*John talked rules to the children about.
— её можно заменять на грамматически похожие:
I sat [on the box / on top of the box / in front of you].
102. Система составляющих
Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
John talked [to the children] [about rules].
John talked [about rules] [to the children].
*John talked rules to the children about.
— её можно заменять на грамматически похожие:
I sat [on the box / on top of the box / in front of you].
105. Формальная грамматика
Заданы
– конечное множество нетерминалов N ;
– конечное множество терминалов Σ;
– конечное множество продукций P , каждая из
которых имеет вид
(Σ ∪ N )∗ N (Σ ∪ N )∗ → (Σ ∪ N )∗ ;
– начальный нетерминал S.
106. Примеры
S → aSb
S → ε
язык {an bn }.
S → SS
S → (S)
S → ()
правильные скобочные выражения.
107. Примеры
S → aSb
S → ε
язык {an bn }.
S → SS
S → (S)
S → ()
правильные скобочные выражения.
112. N = {S, N P, V P, N, V, A}
Σ = {generate, hate, great, green, ideas, linguists}
S
NP
NP
VP
VP
N
V
A
→
→
→
→
→
→
→
→
NP V P
A NP
N
V NP
V
ideas | linguists
generate | hate
great | green
great linguists generate great green ideas
ideas hate great linguists
ideas generate
113. N = {S, N P, V P, N, V, A}
Σ = {generate, hate, great, green, ideas, linguists}
S
NP
NP
VP
VP
N
V
A
→
→
→
→
→
→
→
→
NP V P
A NP
N
V NP
V
ideas | linguists
generate | hate
great | green
great linguists generate great green ideas
ideas hate great linguists
ideas generate
114. N = {S, N P, V P, N, V, A}
Σ = {generate, hate, great, green, ideas, linguists}
S
NP
NP
VP
VP
N
V
A
→
→
→
→
→
→
→
→
NP V P
A NP
N
V NP
V
ideas | linguists
generate | hate
great | green
great linguists generate great green ideas
ideas hate great linguists
ideas generate
115. N = {S, N P, V P, N, V, A}
Σ = {generate, hate, great, green, ideas, linguists}
S
NP
NP
VP
VP
N
V
A
→
→
→
→
→
→
→
→
NP V P
A NP
N
V NP
V
ideas | linguists
generate | hate
great | green
great linguists generate great green ideas
ideas hate great linguists
ideas generate
116. James while John had had had had had had had had had
had had a better effect on the teacher
James, while John had had «had», had had «had had»;
«had had» had had a better effect on the teacher
117. James while John had had had had had had had had had
had had a better effect on the teacher
James, while John had had «had», had had «had had»;
«had had» had had a better effect on the teacher
118.
119. Иерархия грамматик Хомского
Тип 0 — неограниченные: α → β.
Распознаются машиной Тьюринга.
Тип 1 — контекстно-зависимые: αAγ → αβγ.
Распознаются линейно ограниченными автоматами.
Тип 2 — контекстно-свободные: A → β.
Распознаются недетерминированными автоматами с
магазинной памятью.
Тип 3 — регулярные: A → ε, A → a и A → aB.
Распознаются конечными автоматами.
Здесь A, B ∈ N , a ∈ Σ, α, β, γ ∈ (N ∪ Σ)∗ .
120. Контекстно-свободные языки
Распознаются недетерминированными конечными
автоматами с магазинной памятью (pushdown
automaton, PDA).
Нисходящий анализ (top-down): правила раскрываются,
начиная со стартового символа.
Восходящий анализ (bottom-up): построение дерева
снизу вверх.
121. Нормальная форма Хомского
Все правила должны иметь вид
A → BC, или
A → a, или
S → ε.
Как привести произвольную контекстно-свободную
грамматику к нормальной форме Хомского?
122. Нормальная форма Хомского
Все правила должны иметь вид
A → BC, или
A → a, или
S → ε.
Как привести произвольную контекстно-свободную
грамматику к нормальной форме Хомского?
123. Алгоритм Cocke-Younger-Kasami
c[i, j] — список правил, из которых можно вывести часть
предложения words[i : j].
for j from 1 to len(words):
c[j − 1, j] ← {A | A → words[j] ∈ grammar}
for i from j − 2 downto 0:
for k from i + 1 to j − 1:
c[i, j] ← c[i, j] ∪
{A | A → BC ∈ grammar, B ∈ c[i, k], C ∈ c[k, j]}
return table
124. Другие подходы
– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.
http://api.yandex.ru/tomita
125. Другие подходы
– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.
http://api.yandex.ru/tomita
126. Другие подходы
– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.
http://api.yandex.ru/tomita
127. Дополнительные материалы
1. D. Jurafsky, J. Martin.
Speech and Language Processing.
2. К. Маннинг, П. Рагван, Х. Шютце.
Введение в информационный поиск.
3. Искусство понимать с полуслова. Расширение
запроса в Яндексе.
http://habrahabr.ru/company/yandex/blog/187404/
4. Распознавание речи от Яндекса. Под капотом
у Yandex.Speechkit.
http://habrahabr.ru/company/yandex/blog/198556/