SlideShare una empresa de Scribd logo
1 de 127
Descargar para leer sin conexión
Математические модели
в компьютерной лингвистике
Алексей Зобнин
Яндекс, МГУ

22 октября 2013 г.
Автоматическая обработка текстов
(Natural Language Processing)
Что это такое?
Обработка естественного языка — общее направление
искусственного интеллекта и математической
лингвистики. Оно изучает проблемы компьютерного
анализа и синтеза естественных языков. Решение этих
проблем будет означать создание более удобной формы
взаимодействия компьютера и человека.
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
Типичные задачи
–
–
–
–
–
–
–
–
–
–

морфологический анализ и синтез
синтаксический разбор
разрешение неоднозначностей
расширение поисковых запросов
извлечение фактов
соотношения между сущностями в тексте
автоматическое реферирование
машинный перевод
распознавание/синтез речи
классификация документов
План на сегодня

1.
2.
3.
4.

Морфологический анализ.
Регулярные выражения.
Марковские модели.
Контекстно-свободные грамматики.
Морфологический анализ

Основные задачи:
1. Анализ — определение нормальной формы слова
(леммы) и грамматических характеристик.
2. Синтез — генерация других форм слова.
Словоформа и парадигма

Словоформа:
Лемма:
Парадигма:

чаю
кофе
потанцуем
[ча]й
[кофе] [потанц]евать
-й
-и
-ую
-уем
-я
-ев
-уй
-уемте
-ю -ям
-уешь -уйте
-й
-и
-ует
-уете
-ем -ями
-евал
-уют
-е
-ях
-евала -евали
-евало -евать
Добавим грамматические теги
ковер
[ковер]
[ковр]а
[ковр]у
[ковер]
[ковр]ом
[ковр]е
[ковр]ы
[ковр]ов
[ковр]ам
[ковр]ы
[ковр]ами
[ковр]ах
...

сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,
сущ,

неод,
неод,
неод,
неод,
неод,
неод,
неод,
неод,
неод,
неод,
неод,
неод,

муж,
муж,
муж,
муж,
муж,
муж,
муж,
муж,
муж,
муж,
муж,
муж,

ед, им
ед, род
ед, дат
ед, вин
ед, твор
ед, пр
мн, им
мн, род
мн, дат
мн, вин
мн, твор
мн, пр
А если слова нет в словаре?

я иду {идти} по ковру {ковёр}
мы идём {идти} по коврём {коврать?}
ты идёшь {идти} по коврёшь {коврать?}
вы идёте {идти} по коврёте {коврать?}
он идёт {идти} по коврёт {коврать?}
они идут {идти} по коврут {коврать?}
http://api.yandex.ru/mystem
А если слова нет в словаре?
«Глокая куздра штеко будланула бокра
и курдячит бокрёнка»
Л. В. Щерба.
глокая {глокать? глокий?}
куздра {куздра?}
штеко {штекий? штеко?}
будланула {будланул? будланула? будлануть?}
бокра {бокр? бокра? бокрый?}
и {и}
кудрячит {кудрячит? кудрячита? кудрячить?}
бокренка {бокренк? бокренка? бокренок?}
Построение гипотез по образцу
бокренка:
кенгуренка
тигренка
→ бокренок
черенка
→ бокренок
буренка
сестренка
→ бокренка
керенка
шестеренка
→ бокренка
Построение гипотез по образцу

будланула:
обманула
→ будлануть
гранула
→ будланула
манула
→ будланул
Префиксное дерево (бор, trie)
Конечные автоматы

Формальное описание:
1. Конечный входной алфавит Σ.
2. Конечное множество состояний Q.
3. Начальное состояние q0 ∈ Q.
4. Множество заключительных состояний F ⊂ Q.
5. Функция переходов δ : Q × V → Q.
Регулярные множества
Рекурсивное определение 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(Σ).
Регулярные множества (и только они) распознаются
конечными автоматами.
Регулярные множества
Рекурсивное определение 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(Σ).
Регулярные множества (и только они) распознаются
конечными автоматами.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Морфологическая омонимия

Задача: выбрать правильный морфологический разбор.
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Косил косой косой косой.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
Скрытые марковские модели

применяются в задачах
– расстановки частей речи (и снятия
морфологической неоднозначности);
– выделения именованных сущностей;
– распознавания речи;
– распознавания рукописного ввода;
– распознавания жестов.
(Обычная) марковская модель

задается следующим набором:
1. Q = q1 , q2 , . . . , qN : множество состояний;
2. q0 : начальное состояние;
3. A = (aij ): (N + 1) × (N + 1)-матрица переходных
вероятностей;
Скрытые марковские модели

1. Q = q1 , q2 , . . . , qN : множество состояний;
2. q0 : начальное состояние;
3. A = (aij ): (N + 1) × (N + 1)-матрица переходных
вероятностей;
4. O = o1 , . . . , oT : последовательность наблюдаемых;
5. B = bi (ot ): набор выходных вероятностей.
Наблюдаем внешние события, но не внутреннее
состояние модели.
В наших задачах скрытыми состояниями
будут последовательности тегов,
а наблюдаемыми — слова предложения.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Задачи, связанные с HMM

1. Оценка. Найти вероятность данной
последовательности состояний.
Решается с помощью алгоритма Forward-Backward.
2. Декодирование. Найти наиболее вероятную
последовательность тегов.
Решается с помощью алгоритма Витерби.
3. Обучение. Подобрать параметры модели для
данного выхода.
Решается с помощью алгоритма Баума-Велша.
Оценка правдоподобия
Дана скрытая марковская модель λ = (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) непосредственно по этой формуле
нереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (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) непосредственно по этой формуле
нереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (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) непосредственно по этой формуле
нереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (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) непосредственно по этой формуле
нереально.
Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N

αt (j) =

αt−1 (i)aij bj (ot ).
i=1

Заметим, что
P (O) = αT (qF ).
Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N

αt (j) =

αt−1 (i)aij bj (ot ).
i=1

Заметим, что
P (O) = αT (qF ).
Алгоритм Forward
Определим прямые вероятности
αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ).
Вычислим их рекурсивно:
N

αt (j) =

αt−1 (i)aij bj (ot ).
i=1

Заметим, что
P (O) = αT (qF ).
Алгоритм 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
Алгоритм Витерби
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 ]
Обучение скрытых марковских моделей

Дана последовательность наблюдений O и множество
возможных состояний модели. Требуется найти
параметры модели A и B.
Задача решается алгоритмом Баума-Велша
(Baum-Welch), частным случаем метода EM
(Expectation-Maximization).
Обучение скрытых марковских моделей

Дана последовательность наблюдений O и множество
возможных состояний модели. Требуется найти
параметры модели A и B.
Задача решается алгоритмом Баума-Велша
(Baum-Welch), частным случаем метода EM
(Expectation-Maximization).
Обратные вероятности
Вспомним прямые и определим обратные вероятности:
α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
Обратные вероятности
Вспомним прямые и определим обратные вероятности:
α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
Оценка переходных вероятностей aij

Предположим, что состояния марковской модели
открыты.
Оценим aij :
aij =

C(i → j)
.
C(i → q)
q∈Q
Оценка переходных вероятностей 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
Оценка переходных вероятностей 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
Оценка переходных вероятностей 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
Оценки вероятностей наблюдаемых
Пусть 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)
Оценки вероятностей наблюдаемых
Пусть 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)
Оценки вероятностей наблюдаемых
Пусть 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)
Оценки вероятностей наблюдаемых
Пусть 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)
Оценки вероятностей наблюдаемых
Пусть 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)
Алгоритм Баума-Велша
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
Порождающие и дискриминантные модели

В порождающих моделях (generative models) задано
совместное распределение вероятностей скрытых
состояний и наблюдаемых данных p(H, O).
Примеры: языковые модели, HMM, наивный
байесовский классификатор.
В дискриминантных моделях (discriminative models)
заданы условные вероятности p(H|O).
Примеры: логистическая регрессия, MEMM.
Марковская модель максимальной энтропии
В 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
Марковская модель максимальной энтропии
В 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
Марковская модель максимальной энтропии
В 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
Features
Пусть C — конечное множество классов, на которые
надо разбить наблюдаемые данные.
Свойства — функции f : C × X → R.
Обычно это индикаторные функции f : C × X → {0, 1}.
Примеры:
1. Слово заканчивается на «-тся», глагол.
2. Предыдущее слово было «в», не глагол.
3. Вероятность данного разбора данного слова.
4. Слово написано с большой буквы, существительное.
Пусть у каждого свойства fi (c, x) для каждого класса
c ∈ H есть вес wci .
Напоминание: линейная регрессия
Зависимость ищется в виде
y = w · f,
где y ∈ R.
Обучение: метод наименьших квадратов: минимизируем
ошибку
n

(yi − w · f (xi ))2 .
i=1
Напоминание: линейная регрессия
Зависимость ищется в виде
y = w · f,
где y ∈ R.
Обучение: метод наименьших квадратов: минимизируем
ошибку
n

(yi − w · f (xi ))2 .
i=1
Логистическая регрессия
Бинарный классификатор (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)
Логистическая регрессия
Бинарный классификатор (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)
Логистическая регрессия
Бинарный классификатор (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)
Логистическая регрессия
Бинарный классификатор (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)
Логистическая регрессия
Бинарный классификатор (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)
Логистическая регрессия:
формулы для вероятностей

ew·f
,
1 + ew·f
1
p(y = false | x) =
.
1 + ew·f
p(y = true | x) =

Логистическая функция:
σ(t) =

1
.
1 + e−t
Логистическая регрессия:
формулы для вероятностей

ew·f
,
1 + ew·f
1
p(y = false | x) =
.
1 + ew·f
p(y = true | x) =

Логистическая функция:
σ(t) =

1
.
1 + e−t
Логистическая регрессия: обучение

Выбираем модель, которая максимизирует условное
правдоподобие:
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
Логистическая регрессия: обучение

Выбираем модель, которая максимизирует условное
правдоподобие:
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
Логистическая регрессия: обучение

Выбираем модель, которая максимизирует условное
правдоподобие:
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
Обобщение на случай нескольких классов
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

Эта модель также называется моделью максимальной
энтропии. Почему?
Обобщение на случай нескольких классов
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

Эта модель также называется моделью максимальной
энтропии. Почему?
Простой пример
Модель 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
Простой пример
Модель 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
Простой пример
Модель 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
Добавим ограничение:

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
Добавим ограничение:

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
Добавим еще одно:

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
`
? ?
?
?

Надо выбрать распределение так, чтобы его энтропия
была максимальной.
Добавим еще одно:

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
`
? ?
?
?

Надо выбрать распределение так, чтобы его энтропия
была максимальной.
Формализуем этот подход
Выходное значение 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 ).
˜
Формализуем этот подход
Выходное значение 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 ).
˜
Принцип максимальной энтропии
Энтропия — мера «равномерности» условного
ра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
Принцип максимальной энтропии
Энтропия — мера «равномерности» условного
ра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
Метод множителей Лагранжа
Ищем безусловный максимум функции
λ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
Метод множителей Лагранжа
Ищем безусловный максимум функции
λ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
MEMM: декодирование и обучение

Декодирование: аналог алгоритма Витерби для HMM.
Обучение: численные методы выпуклой оптимизации
(градиентный спуск, метод сопряженных градиетов,
квазиньютоновские методы) + метод EM.
MEMM: декодирование и обучение

Декодирование: аналог алгоритма Витерби для HMM.
Обучение: численные методы выпуклой оптимизации
(градиентный спуск, метод сопряженных градиетов,
квазиньютоновские методы) + метод EM.
Что еще можно применить?

– Conditional random field (CRF);
– Support Vector Machines (SVM);
– Decision lists, decision trees, ...
Синтаксис

Синтаксис — раздел лингвистики, изучающий строение
словосочетаний и предложений.
Syntax is the study of the principles and processes by
which sentences are constructed in particular languages.
Wikipedia
Синтаксис как система составляющих
Автор — Ноам Хомский (Noam Chomsky).
Слова в предложении группируются в составляющие.
Система составляющих

Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
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].
Система составляющих

Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
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].
Система составляющих

Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
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].
Система составляющих

Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
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].
Система составляющих

Составляющая — независимая синтаксическая единица:
— её можно перемещать в пределах предложения:
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].
I saw the man on the hill with a telescope.
I saw the man on the hill with a telescope.
Формальная грамматика

Заданы
– конечное множество нетерминалов N ;
– конечное множество терминалов Σ;
– конечное множество продукций P , каждая из
которых имеет вид
(Σ ∪ N )∗ N (Σ ∪ N )∗ → (Σ ∪ N )∗ ;
– начальный нетерминал S.
Примеры

S → aSb
S → ε
язык {an bn }.

S → SS
S → (S)
S → ()
правильные скобочные выражения.
Примеры

S → aSb
S → ε
язык {an bn }.

S → SS
S → (S)
S → ()
правильные скобочные выражения.
Арифметические выражения

S
S
S
S
S
S
S
S

→
→
→
→
→
→
→
→

x
y
z
S+S
S−S
S∗S
S/S
(S)
Арифметические выражения II

T
T
T
S
S
S
S
T
S

→
→
→
→
→
→
→
→
→

x
y
z
S+T
S−T
S∗T
S/T
(S)
T
Еще пример

S
S
CB
HB
HC
aB
bB
bC
cC
язык {an bn cn | n

1}.

→
→
→
→
→
→
→
→
→

aSBC
aBC
HB
HC
BC
ab
bb
bc
cc
Еще пример

S
S
CB
HB
HC
aB
bB
bC
cC
язык {an bn cn | n

1}.

→
→
→
→
→
→
→
→
→

aSBC
aBC
HB
HC
BC
ab
bb
bc
cc
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
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
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
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
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
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
Иерархия грамматик Хомского
Тип 0 — неограниченные: α → β.
Распознаются машиной Тьюринга.
Тип 1 — контекстно-зависимые: αAγ → αβγ.
Распознаются линейно ограниченными автоматами.
Тип 2 — контекстно-свободные: A → β.
Распознаются недетерминированными автоматами с
магазинной памятью.
Тип 3 — регулярные: A → ε, A → a и A → aB.
Распознаются конечными автоматами.
Здесь A, B ∈ N , a ∈ Σ, α, β, γ ∈ (N ∪ Σ)∗ .
Контекстно-свободные языки

Распознаются недетерминированными конечными
автоматами с магазинной памятью (pushdown
automaton, PDA).
Нисходящий анализ (top-down): правила раскрываются,
начиная со стартового символа.
Восходящий анализ (bottom-up): построение дерева
снизу вверх.
Нормальная форма Хомского

Все правила должны иметь вид
A → BC, или
A → a, или
S → ε.
Как привести произвольную контекстно-свободную
грамматику к нормальной форме Хомского?
Нормальная форма Хомского

Все правила должны иметь вид
A → BC, или
A → a, или
S → ε.
Как привести произвольную контекстно-свободную
грамматику к нормальной форме Хомского?
Алгоритм 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
Другие подходы

– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.

http://api.yandex.ru/tomita
Другие подходы

– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.

http://api.yandex.ru/tomita
Другие подходы

– LR-парсер (Д. Кнут, 1965): детерминированные
контекстно-свободные грамматики;
– GLR-парсер (М. Томита, 1985): обобщение на
недетерминированные языки.

http://api.yandex.ru/tomita
Дополнительные материалы
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/

Más contenido relacionado

Similar a 20131022 зобнин

651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособиеivanov1566353422
 
651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособиеefwd2ws2qws2qsdw
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13Computer Science Club
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13Computer Science Club
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1Noobie312
 
Lecture 05 Вероятность и риск
Lecture 05 Вероятность и рискLecture 05 Вероятность и риск
Lecture 05 Вероятность и рискVladimir Tcherniak
 
минимум олимпиадника
минимум олимпиадникаминимум олимпиадника
минимум олимпиадникаliz_f
 
Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...Mikhail Kurnosov
 
Логические алгоритмы классификации
Логические алгоритмы классификацииЛогические алгоритмы классификации
Логические алгоритмы классификацииyaevents
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
 
Deep Learning and Convolutional Networks
Deep Learning and Convolutional NetworksDeep Learning and Convolutional Networks
Deep Learning and Convolutional NetworksAlignedResearch
 
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Mikhail Kurnosov
 
word2vec (part 1)
word2vec (part 1)word2vec (part 1)
word2vec (part 1)Denis Dus
 
Доклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУДоклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУFedor Tsarev
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...Iosif Itkin
 
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Alex Dainiak
 
20071125 efficientalgorithms kulikov_lecture10
20071125 efficientalgorithms kulikov_lecture1020071125 efficientalgorithms kulikov_lecture10
20071125 efficientalgorithms kulikov_lecture10Computer Science Club
 
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаAlex Dainiak
 

Similar a 20131022 зобнин (20)

651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие
 
651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие651.локальные методы анализа динамических систем учебное пособие
651.локальные методы анализа динамических систем учебное пособие
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13
 
20080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture1320080217 efficientalgorithms kulikov_lecture13
20080217 efficientalgorithms kulikov_lecture13
 
лекции 3 4 тема 1
лекции 3 4 тема 1лекции 3 4 тема 1
лекции 3 4 тема 1
 
Lecture 05 Вероятность и риск
Lecture 05 Вероятность и рискLecture 05 Вероятность и риск
Lecture 05 Вероятность и риск
 
минимум олимпиадника
минимум олимпиадникаминимум олимпиадника
минимум олимпиадника
 
Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...Распределенные мультикластерные вычислительные системы и параллельное мультип...
Распределенные мультикластерные вычислительные системы и параллельное мультип...
 
Логические алгоритмы классификации
Логические алгоритмы классификацииЛогические алгоритмы классификации
Логические алгоритмы классификации
 
Logacheva
LogachevaLogacheva
Logacheva
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
Deep Learning and Convolutional Networks
Deep Learning and Convolutional NetworksDeep Learning and Convolutional Networks
Deep Learning and Convolutional Networks
 
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
Лекция 12: Методы разработки алгоритмов. Динамическое программирование. Жадны...
 
word2vec (part 1)
word2vec (part 1)word2vec (part 1)
word2vec (part 1)
 
2020 03-31-lection
2020 03-31-lection2020 03-31-lection
2020 03-31-lection
 
Доклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУДоклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУ
 
A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...
 
Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.Коды Адамара. Каскадные коды Форни.
Коды Адамара. Каскадные коды Форни.
 
20071125 efficientalgorithms kulikov_lecture10
20071125 efficientalgorithms kulikov_lecture1020071125 efficientalgorithms kulikov_lecture10
20071125 efficientalgorithms kulikov_lecture10
 
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—ШпильманаЗадача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
Задача о ближайшем кодовом слове. Коды Галлагера—Сипсера—Шпильмана
 

Más de Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

Más de Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

20131022 зобнин

  • 1. Математические модели в компьютерной лингвистике Алексей Зобнин Яндекс, МГУ 22 октября 2013 г.
  • 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. Типичные задачи – – – – – – – – – – морфологический анализ и синтез синтаксический разбор разрешение неоднозначностей расширение поисковых запросов извлечение фактов соотношения между сущностями в тексте автоматическое реферирование машинный перевод распознавание/синтез речи классификация документов
  • 5. План на сегодня 1. 2. 3. 4. Морфологический анализ. Регулярные выражения. Марковские модели. Контекстно-свободные грамматики.
  • 6. Морфологический анализ Основные задачи: 1. Анализ — определение нормальной формы слова (леммы) и грамматических характеристик. 2. Синтез — генерация других форм слова.
  • 7. Словоформа и парадигма Словоформа: Лемма: Парадигма: чаю кофе потанцуем [ча]й [кофе] [потанц]евать -й -и -ую -уем -я -ев -уй -уемте -ю -ям -уешь -уйте -й -и -ует -уете -ем -ями -евал -уют -е -ях -евала -евали -евало -евать
  • 9. А если слова нет в словаре? я иду {идти} по ковру {ковёр} мы идём {идти} по коврём {коврать?} ты идёшь {идти} по коврёшь {коврать?} вы идёте {идти} по коврёте {коврать?} он идёт {идти} по коврёт {коврать?} они идут {идти} по коврут {коврать?} http://api.yandex.ru/mystem
  • 10. А если слова нет в словаре? «Глокая куздра штеко будланула бокра и курдячит бокрёнка» Л. В. Щерба. глокая {глокать? глокий?} куздра {куздра?} штеко {штекий? штеко?} будланула {будланул? будланула? будлануть?} бокра {бокр? бокра? бокрый?} и {и} кудрячит {кудрячит? кудрячита? кудрячить?} бокренка {бокренк? бокренка? бокренок?}
  • 11. Построение гипотез по образцу бокренка: кенгуренка тигренка → бокренок черенка → бокренок буренка сестренка → бокренка керенка шестеренка → бокренка
  • 12. Построение гипотез по образцу будланула: обманула → будлануть гранула → будланула манула → будланул
  • 13.
  • 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. Скрытые марковские модели применяются в задачах – расстановки частей речи (и снятия морфологической неоднозначности); – выделения именованных сущностей; – распознавания речи; – распознавания рукописного ввода; – распознавания жестов.
  • 26. (Обычная) марковская модель задается следующим набором: 1. Q = q1 , q2 , . . . , qN : множество состояний; 2. q0 : начальное состояние; 3. A = (aij ): (N + 1) × (N + 1)-матрица переходных вероятностей;
  • 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 .
  • 66. Напоминание: линейная регрессия Зависимость ищется в виде y = w · f, где y ∈ R. Обучение: метод наименьших квадратов: минимизируем ошибку n (yi − w · f (xi ))2 . i=1
  • 67. Напоминание: линейная регрессия Зависимость ищется в виде y = w · f, где y ∈ R. Обучение: метод наименьших квадратов: минимизируем ошибку n (yi − w · f (xi ))2 . i=1
  • 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)
  • 73. Логистическая регрессия: формулы для вероятностей ew·f , 1 + ew·f 1 p(y = false | x) = . 1 + ew·f p(y = true | x) = Логистическая функция: σ(t) = 1 . 1 + e−t
  • 74. Логистическая регрессия: формулы для вероятностей ew·f , 1 + ew·f 1 p(y = false | x) = . 1 + ew·f p(y = true | x) = Логистическая функция: σ(t) = 1 . 1 + e−t
  • 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].
  • 103. I saw the man on the hill with a telescope.
  • 104. I saw the man on the hill with a telescope.
  • 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 → () правильные скобочные выражения.
  • 110. Еще пример S S CB HB HC aB bB bC cC язык {an bn cn | n 1}. → → → → → → → → → aSBC aBC HB HC BC ab bb bc cc
  • 111. Еще пример S S CB HB HC aB bB bC cC язык {an bn cn | n 1}. → → → → → → → → → aSBC aBC HB HC BC ab bb bc cc
  • 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/