20131022 зобнин
Upcoming SlideShare
Loading in...5
×
 

20131022 зобнин

on

  • 351 views

Алексей Зобнин на Я.Студенте в МГУ

Алексей Зобнин на Я.Студенте в МГУ
Математические модели в компьютерной лингвистике, 22 октября

Statistics

Views

Total Views
351
Views on SlideShare
266
Embed Views
85

Actions

Likes
1
Downloads
5
Comments
0

3 Embeds 85

http://tech.yandex.ru 62
https://tech.yandex.ru 20
http://admin-ru.tech.yandex-team.ru 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

20131022 зобнин 20131022 зобнин Presentation Transcript

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