Upload
yandex
View
292
Download
4
Embed Size (px)
DESCRIPTION
Алексей Зобнин на Я.Студенте в МГУ Математические модели в компьютерной лингвистике, 22 октября
Citation preview
Математические моделив компьютерной лингвистике
Алексей Зобнин
Яндекс, МГУ
22 октября 2013 г.
Автоматическая обработка текстов(Natural Language Processing)
Что это такое?
Обработка естественного языка — общее направлениеискусственного интеллекта и математическойлингвистики. Оно изучает проблемы компьютерногоанализа и синтеза естественных языков. Решение этихпроблем будет означать создание более удобной формывзаимодействия компьютера и человека.
Natural language processing (NLP) is a field of computerscience, artificial intelligence, and linguistics concerned withthe 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(Σ), то PQ ∈ 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(Σ), то PQ ∈ 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) =∑Q
p(O,Q) =∑Q
p(O | Q) p(Q) =
∑Q
T∏t=1
p(ot | qt) ·T∏t=1
p(qt | qt−1).
Вычислять p(O) непосредственно по этой формуленереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (A,B)и последовательность наблюдений O.Определить вероятность p(O | λ).
p(O) =∑Q
p(O,Q) =∑Q
p(O | Q) p(Q) =
∑Q
T∏t=1
p(ot | qt) ·T∏t=1
p(qt | qt−1).
Вычислять p(O) непосредственно по этой формуленереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (A,B)и последовательность наблюдений O.Определить вероятность p(O | λ).
p(O) =∑Q
p(O,Q) =∑Q
p(O | Q) p(Q) =
∑Q
T∏t=1
p(ot | qt) ·T∏t=1
p(qt | qt−1).
Вычислять p(O) непосредственно по этой формуленереально.
Оценка правдоподобия
Дана скрытая марковская модель λ = (A,B)и последовательность наблюдений O.Определить вероятность p(O | λ).
p(O) =∑Q
p(O,Q) =∑Q
p(O | Q) p(Q) =
∑Q
T∏t=1
p(ot | qt) ·T∏t=1
p(qt | qt−1).
Вычислять p(O) непосредственно по этой формуленереально.
Алгоритм Forward
Определим прямые вероятности
αt(j) = p(o1, o2, . . . , ot, qt = j | λ).
Вычислим их рекурсивно:
αt(j) =N∑i=1
αt−1(i)aijbj(ot).
Заметим, чтоP (O) = αT (qF ).
Алгоритм Forward
Определим прямые вероятности
αt(j) = p(o1, o2, . . . , ot, qt = j | λ).
Вычислим их рекурсивно:
αt(j) =N∑i=1
αt−1(i)aijbj(ot).
Заметим, чтоP (O) = αT (qF ).
Алгоритм Forward
Определим прямые вероятности
αt(j) = p(o1, o2, . . . , ot, qt = j | λ).
Вычислим их рекурсивно:
αt(j) =N∑i=1
αt−1(i)aijbj(ot).
Заметим, чтоP (O) = αT (qF ).
Алгоритм Forward
Input: observations of length T , state-graph of length NOutput: 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 dofor each state j from 1 to N doαt(j)←
∑Ni=1 αt−1(i) · ai,j · bj(ot)
returnN∑i=1
αT (i) · ai,qF
Алгоритм Витерби
Input: observations of length T , state-graph of length NOutput: best-path
for each state s from 1 to N doviterbi[s, 1]← a0,s · bs(o1)backpointers[s, 1]← 0
for each time step t from 2 to T dofor each state s from 1 to N doviterbi[s, t]← maxNs′=1 viterbi[s
′, t− 1] · as′,s · bs(ot)backpointer[s, t]← argmaxNs′=1 viterbi[s
′, t− 1] · as′,sviterbi[qF , T ]←
Nmaxs=1
viterbi[s, T ] · as,qFbackpointer[qF , T ]← argmaxNs=1 viterbi[s, T ] · as,qFreturn 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 6 i 6 N,
βt(i) =N∑j=1
aijbj(ot+1)βt+1(j), 1 6 i 6 N, 1 6 t < T,
p(O | λ) = αT (qF ) = β0(q0) =N∑j=1
a0jbj(o1)β1(j).
Обратные вероятности
Вспомним прямые и определим обратные вероятности:
αt(j) := p(o1, o2, . . . , ot, qt = j | λ),
βt(i) := p(ot+1, ot+2, . . . , oT | qt = i, λ).
Обратные вероятности тоже можно найти рекурсивно:
βT (i) = ai,F , 1 6 i 6 N,
βt(i) =N∑j=1
aijbj(ot+1)βt+1(j), 1 6 i 6 N, 1 6 t < T,
p(O | λ) = αT (qF ) = β0(q0) =N∑j=1
a0jbj(o1)β1(j).
Оценка переходных вероятностей aij
Предположим, что состояния марковской моделиоткрыты.
Оценим aij:
aij =C(i→ j)∑
q∈QC(i→ q)
.
Оценка переходных вероятностей aij
ξt(i, j) := p(qt = i, qt+1 = j | O, λ).
ξt(i, j) =αt(i)aijbj(ot+1)βt+1(j)
αT (N).
aij =
∑T−1t=1 ξt(i, j)∑T−1
t=1
∑Nj=1 ξt(i, j)
.
Оценка переходных вероятностей aij
ξt(i, j) := p(qt = i, qt+1 = j | O, λ).
ξt(i, j) =αt(i)aijbj(ot+1)βt+1(j)
αT (N).
aij =
∑T−1t=1 ξt(i, j)∑T−1
t=1
∑Nj=1 ξt(i, j)
.
Оценка переходных вероятностей aij
ξt(i, j) := p(qt = i, qt+1 = j | O, λ).
ξt(i, j) =αt(i)aijbj(ot+1)βt+1(j)
αT (N).
aij =
∑T−1t=1 ξt(i, j)∑T−1
t=1
∑Nj=1 ξt(i, j)
.
Оценки вероятностей наблюдаемыхПусть V — множество значений наблюдаемых величин.
bj(vk) =число пребываний в состоянии j при vk
число пребываний в состоянии j.
γt(j) := p(qt = j | O, λ)
=p(qt = j, O | λ)
p(O | λ)
=αt(j)βt(j)
p(O | λ).
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
.
Оценки вероятностей наблюдаемыхПусть V — множество значений наблюдаемых величин.
bj(vk) =число пребываний в состоянии j при vk
число пребываний в состоянии j.
γt(j) := p(qt = j | O, λ)
=p(qt = j, O | λ)
p(O | λ)
=αt(j)βt(j)
p(O | λ).
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
.
Оценки вероятностей наблюдаемыхПусть V — множество значений наблюдаемых величин.
bj(vk) =число пребываний в состоянии j при vk
число пребываний в состоянии j.
γt(j) := p(qt = j | O, λ)
=p(qt = j, O | λ)
p(O | λ)
=αt(j)βt(j)
p(O | λ).
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
.
Оценки вероятностей наблюдаемыхПусть V — множество значений наблюдаемых величин.
bj(vk) =число пребываний в состоянии j при vk
число пребываний в состоянии j.
γt(j) := p(qt = j | O, λ)
=p(qt = j, O | λ)
p(O | λ)
=αt(j)βt(j)
p(O | λ).
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
.
Оценки вероятностей наблюдаемыхПусть V — множество значений наблюдаемых величин.
bj(vk) =число пребываний в состоянии j при vk
число пребываний в состоянии j.
γt(j) := p(qt = j | O, λ)
=p(qt = j, O | λ)
p(O | λ)
=αt(j)βt(j)
p(O | λ).
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
.
Алгоритм Баума-Велша
Input: observations of length T ,output vocabulary V , hidden state set Q
Output: HMM = (A,B)
initialize A and Biterate until convergence
E-step:γt(j) =
αt(j)βt(j)p(O|λ) ∀ t, j
ξt(i, j) =αt(i)aijbj(ot+1)βt+1(j)
αT (N) ∀ t, i, jM-step:
aij =∑T−1
t=1 ξt(i,j)∑T−1t=1
∑Nj=1 ξt(i,j)
bj(vk) =
∑16t6T, ot=vk
γt(j)∑Tt=1 γt(j)
return A,B
Порождающие и дискриминантные модели
В порождающих моделях (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 сложно.
В марковской модели максимальной энтропии
p(Q|O) =n∏i=1
p(qi|qi−1, oi).
Марковская модель максимальной энтропии
В HMM были вероятности p(tag|tag) и p(word|tag).Учитывать вероятности вида
p(capitalization|tag), p(hyphen|tag), p(suffix|tag)
в HMM сложно.
В марковской модели максимальной энтропии
p(Q|O) =n∏i=1
p(qi|qi−1, oi).
Марковская модель максимальной энтропии
В HMM были вероятности p(tag|tag) и p(word|tag).Учитывать вероятности вида
p(capitalization|tag), p(hyphen|tag), p(suffix|tag)
в HMM сложно.
В марковской модели максимальной энтропии
p(Q|O) =n∏i=1
p(qi|qi−1, oi).
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∑i=1
(yi − w · f(xi))2.
Напоминание: линейная регрессия
Зависимость ищется в виде
y = w · f,
где y ∈ R.
Обучение: метод наименьших квадратов: минимизируемошибку
n∑i=1
(yi − w · f(xi))2.
Логистическая регрессияБинарный классификатор (y ∈ {false, true}).
p(y = true |x) = w · f.
Не годится, так как должно быть 0 6 P 6 1.
p(y = true |x)
1− p(y = true |x)= w · f.
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
lnp(y = true |x)
1− p(y = true |x)= w · f.
Логистическая регрессияБинарный классификатор (y ∈ {false, true}).
p(y = true |x) = w · f.
Не годится, так как должно быть 0 6 P 6 1.
p(y = true |x)
1− p(y = true |x)= w · f.
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
lnp(y = true |x)
1− p(y = true |x)= w · f.
Логистическая регрессияБинарный классификатор (y ∈ {false, true}).
p(y = true |x) = w · f.
Не годится, так как должно быть 0 6 P 6 1.
p(y = true |x)
1− p(y = true |x)= w · f.
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
lnp(y = true |x)
1− p(y = true |x)= w · f.
Логистическая регрессияБинарный классификатор (y ∈ {false, true}).
p(y = true |x) = w · f.
Не годится, так как должно быть 0 6 P 6 1.
p(y = true |x)
1− p(y = true |x)= w · f.
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
lnp(y = true |x)
1− p(y = true |x)= w · f.
Логистическая регрессияБинарный классификатор (y ∈ {false, true}).
p(y = true |x) = w · f.
Не годится, так как должно быть 0 6 P 6 1.
p(y = true |x)
1− p(y = true |x)= w · f.
Уже лучше, левая часть теперь любая неотрицательная.
Возьмем логарифм!
lnp(y = true |x)
1− p(y = true |x)= w · f.
Логистическая регрессия:формулы для вероятностей
p(y = true |x) =ew·f
1 + ew·f,
p(y = false |x) =1
1 + ew·f.
Логистическая функция:
σ(t) =1
1 + e−t.
Логистическая регрессия:формулы для вероятностей
p(y = true |x) =ew·f
1 + ew·f,
p(y = false |x) =1
1 + ew·f.
Логистическая функция:
σ(t) =1
1 + e−t.
Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условноеправдоподобие:
w = arg maxw
p(y|x)
= arg maxw
∏i
p(y(i)|x(i))
= arg maxw
∑i
log p(y(i)|x(i)).
Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условноеправдоподобие:
w = arg maxw
p(y|x)
= arg maxw
∏i
p(y(i)|x(i))
= arg maxw
∑i
log p(y(i)|x(i)).
Логистическая регрессия: обучение
Выбираем модель, которая максимизирует условноеправдоподобие:
w = arg maxw
p(y|x)
= arg maxw
∏i
p(y(i)|x(i))
= arg maxw
∑i
log p(y(i)|x(i)).
Обобщение на случай нескольких классов
Multinomial logistic regression.Предполагаем, что
p(c|x) =1
Zexp
(∑i
wcifi(c, x)
)
=exp (
∑iwcifi(c, x))∑
c′∈C exp (∑
iwc′ifi(c, x)).
c = arg maxc∈C
p(c|x).
Эта модель также называется моделью максимальнойэнтропии. Почему?
Обобщение на случай нескольких классов
Multinomial logistic regression.Предполагаем, что
p(c|x) =1
Zexp
(∑i
wcifi(c, x)
)
=exp (
∑iwcifi(c, x))∑
c′∈C exp (∑
iwc′ifi(c, x)).
c = arg maxc∈C
p(c|x).
Эта модель также называется моделью максимальнойэнтропии. Почему?
Простой пример
Модель p, предсказывающая французский переводанглийского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
Ограничение:
pdans + pen + pa + pau cours de + ppendant = 1.
Как выбрать модель?
dans en a au cours de pendant1/5 1/5 1/5 1/5 1/5
Простой пример
Модель p, предсказывающая французский переводанглийского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
Ограничение:
pdans + pen + pa + pau cours de + ppendant = 1.
Как выбрать модель?
dans en a au cours de pendant1/5 1/5 1/5 1/5 1/5
Простой пример
Модель p, предсказывающая французский переводанглийского слова in. Пусть есть такие варианты:
{dans, en, a, au cours de, pendant}
Ограничение:
pdans + pen + pa + pau cours de + ppendant = 1.
Как выбрать модель?
dans en a au cours de pendant1/5 1/5 1/5 1/5 1/5
Добавим ограничение:
pdans + pen + pa + pau cours de + ppendant = 1,
pdans + pen = 3/10.
dans en a au cours de pendant3/20 3/20 7/30 7/30 7/30
Добавим ограничение:
pdans + pen + pa + pau cours de + ppendant = 1,
pdans + pen = 3/10.
dans en a au cours de pendant3/20 3/20 7/30 7/30 7/30
Добавим еще одно:
pdans + pen + pa + pau cours de + ppendant = 1,
pdans + pen = 3/10,
pdans + pa = 1/2.
dans en a au cours de pendant? ? ? ? ?
Надо выбрать распределение так, чтобы его энтропиябыла максимальной.
Добавим еще одно:
pdans + pen + pa + pau cours de + ppendant = 1,
pdans + pen = 3/10,
pdans + pa = 1/2.
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) :=∑x,y
p(x, y)f(x, y),
p(f) :=∑x,y
p(x)p(y|x)f(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) :=∑x,y
p(x, y)f(x, y),
p(f) :=∑x,y
p(x)p(y|x)f(x, y).
Ограничение:p(f) = p(f).
Принцип максимальной энтропии
Энтропия — мера «равномерности» условногораcпределения p(y|x):
H(p) := −∑x,y
p(x)p(y|x) log p(y|x).
Среди всех моделей, допустимых ограничениями C,выбираем модель с максимальной энтропией:
p∗ = arg maxp∈C
H(p).
Принцип максимальной энтропии
Энтропия — мера «равномерности» условногораcпределения p(y|x):
H(p) := −∑x,y
p(x)p(y|x) log p(y|x).
Среди всех моделей, допустимых ограничениями C,выбираем модель с максимальной энтропией:
p∗ = arg maxp∈C
H(p).
Метод множителей Лагранжа
Ищем безусловный максимум функции
Λ(p, λ) := H(p) +∑i
λi (p(fi)− p(fi)) :
pλ := arg maxp∈P
Λ(p, λ) =1
Zλ(x)exp
(∑i
λifi(x, y)
),
где Zλ(x) — нормирующий множитель
Zλ(x) =∑y
exp
(∑i
λifi(x, y)
).
Метод множителей Лагранжа
Ищем безусловный максимум функции
Λ(p, λ) := H(p) +∑i
λi (p(fi)− p(fi)) :
pλ := arg maxp∈P
Λ(p, λ) =1
Zλ(x)exp
(∑i
λifi(x, y)
),
где Zλ(x) — нормирующий множитель
Zλ(x) =∑y
exp
(∑i
λifi(x, y)
).
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 bywhich 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 → ε
язык {anbn}.
S → SS
S → (S)
S → ()
правильные скобочные выражения.
Примеры
S → aSb
S → ε
язык {anbn}.
S → SS
S → (S)
S → ()
правильные скобочные выражения.
Арифметические выражения
S → x
S → y
S → z
S → S + S
S → S − SS → S ∗ SS → S/S
S → (S)
Арифметические выражения II
T → x
T → y
T → z
S → S + T
S → S − TS → S ∗ TS → S/T
T → (S)
S → T
Еще пример
S → aSBC
S → aBC
CB → HB
HB → HC
HC → BC
aB → ab
bB → bb
bC → bc
cC → cc
язык {anbncn | n > 1}.
Еще пример
S → aSBC
S → aBC
CB → HB
HB → HC
HC → BC
aB → ab
bB → bb
bC → bc
cC → cc
язык {anbncn | n > 1}.
N = {S,NP, V P,N, V,A}Σ = {generate, hate, great, green, ideas, linguists}
S → 〈NP 〉 〈V P 〉〈NP 〉 → A 〈NP 〉〈NP 〉 → N
〈V P 〉 → V 〈NP 〉〈V P 〉 → V
N → ideas | linguistsV → generate | hateA → great | green
great linguists generate great green ideasideas hate great linguists
ideas generate
N = {S,NP, V P,N, V,A}Σ = {generate, hate, great, green, ideas, linguists}
S → 〈NP 〉 〈V P 〉〈NP 〉 → A 〈NP 〉〈NP 〉 → N
〈V P 〉 → V 〈NP 〉〈V P 〉 → V
N → ideas | linguistsV → generate | hateA → great | green
great linguists generate great green ideasideas hate great linguists
ideas generate
N = {S,NP, V P,N, V,A}Σ = {generate, hate, great, green, ideas, linguists}
S → 〈NP 〉 〈V P 〉〈NP 〉 → A 〈NP 〉〈NP 〉 → N
〈V P 〉 → V 〈NP 〉〈V P 〉 → V
N → ideas | linguistsV → generate | hateA → great | green
great linguists generate great green ideasideas hate great linguists
ideas generate
N = {S,NP, V P,N, V,A}Σ = {generate, hate, great, green, ideas, linguists}
S → 〈NP 〉 〈V P 〉〈NP 〉 → A 〈NP 〉〈NP 〉 → N
〈V P 〉 → V 〈NP 〉〈V P 〉 → V
N → ideas | linguistsV → generate | hateA → great | green
great linguists generate great green ideasideas hate great linguists
ideas generate
James while John had had had had had had had had hadhad 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 hadhad 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 ∪ Σ)∗.
Контекстно-свободные языки
Распознаются недетерминированными конечнымиавтоматами с магазинной памятью (pushdownautomaton, 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/