Математические модели в компьютерной лингвистике Алексей Зобнин Яндекс, МГУ 22 октября 2013 г.
Математические моделив компьютерной лингвистике
Алексей Зобнин
Яндекс, МГУ
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/