Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20131022 зобнин

701 views

Published on

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

Published in: Education
  • Be the first to comment

20131022 зобнин

  1. 1. Математические модели в компьютерной лингвистике Алексей Зобнин Яндекс, МГУ 22 октября 2013 г.
  2. 2. Автоматическая обработка текстов (Natural Language Processing)
  3. 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. 4. Типичные задачи – – – – – – – – – – морфологический анализ и синтез синтаксический разбор разрешение неоднозначностей расширение поисковых запросов извлечение фактов соотношения между сущностями в тексте автоматическое реферирование машинный перевод распознавание/синтез речи классификация документов
  5. 5. План на сегодня 1. 2. 3. 4. Морфологический анализ. Регулярные выражения. Марковские модели. Контекстно-свободные грамматики.
  6. 6. Морфологический анализ Основные задачи: 1. Анализ — определение нормальной формы слова (леммы) и грамматических характеристик. 2. Синтез — генерация других форм слова.
  7. 7. Словоформа и парадигма Словоформа: Лемма: Парадигма: чаю кофе потанцуем [ча]й [кофе] [потанц]евать -й -и -ую -уем -я -ев -уй -уемте -ю -ям -уешь -уйте -й -и -ует -уете -ем -ями -евал -уют -е -ях -евала -евали -евало -евать
  8. 8. Добавим грамматические теги ковер [ковер] [ковр]а [ковр]у [ковер] [ковр]ом [ковр]е [ковр]ы [ковр]ов [ковр]ам [ковр]ы [ковр]ами [ковр]ах ... сущ, сущ, сущ, сущ, сущ, сущ, сущ, сущ, сущ, сущ, сущ, сущ, неод, неод, неод, неод, неод, неод, неод, неод, неод, неод, неод, неод, муж, муж, муж, муж, муж, муж, муж, муж, муж, муж, муж, муж, ед, им ед, род ед, дат ед, вин ед, твор ед, пр мн, им мн, род мн, дат мн, вин мн, твор мн, пр
  9. 9. А если слова нет в словаре? я иду {идти} по ковру {ковёр} мы идём {идти} по коврём {коврать?} ты идёшь {идти} по коврёшь {коврать?} вы идёте {идти} по коврёте {коврать?} он идёт {идти} по коврёт {коврать?} они идут {идти} по коврут {коврать?} http://api.yandex.ru/mystem
  10. 10. А если слова нет в словаре? «Глокая куздра штеко будланула бокра и курдячит бокрёнка» Л. В. Щерба. глокая {глокать? глокий?} куздра {куздра?} штеко {штекий? штеко?} будланула {будланул? будланула? будлануть?} бокра {бокр? бокра? бокрый?} и {и} кудрячит {кудрячит? кудрячита? кудрячить?} бокренка {бокренк? бокренка? бокренок?}
  11. 11. Построение гипотез по образцу бокренка: кенгуренка тигренка → бокренок черенка → бокренок буренка сестренка → бокренка керенка шестеренка → бокренка
  12. 12. Построение гипотез по образцу будланула: обманула → будлануть гранула → будланула манула → будланул
  13. 13. Префиксное дерево (бор, trie)
  14. 14. Конечные автоматы Формальное описание: 1. Конечный входной алфавит Σ. 2. Конечное множество состояний Q. 3. Начальное состояние q0 ∈ Q. 4. Множество заключительных состояний F ⊂ Q. 5. Функция переходов δ : Q × V → Q.
  15. 15. Регулярные множества Рекурсивное определение 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(Σ). Регулярные множества (и только они) распознаются конечными автоматами.
  16. 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. 17. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  18. 18. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  19. 19. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  20. 20. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  21. 21. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  22. 22. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  23. 23. Морфологическая омонимия Задача: выбрать правильный морфологический разбор. Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Косил косой косой косой. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  24. 24. Скрытые марковские модели применяются в задачах – расстановки частей речи (и снятия морфологической неоднозначности); – выделения именованных сущностей; – распознавания речи; – распознавания рукописного ввода; – распознавания жестов.
  25. 25. (Обычная) марковская модель задается следующим набором: 1. Q = q1 , q2 , . . . , qN : множество состояний; 2. q0 : начальное состояние; 3. A = (aij ): (N + 1) × (N + 1)-матрица переходных вероятностей;
  26. 26. Скрытые марковские модели 1. Q = q1 , q2 , . . . , qN : множество состояний; 2. q0 : начальное состояние; 3. A = (aij ): (N + 1) × (N + 1)-матрица переходных вероятностей; 4. O = o1 , . . . , oT : последовательность наблюдаемых; 5. B = bi (ot ): набор выходных вероятностей. Наблюдаем внешние события, но не внутреннее состояние модели.
  27. 27. В наших задачах скрытыми состояниями будут последовательности тегов, а наблюдаемыми — слова предложения.
  28. 28. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  29. 29. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  30. 30. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  31. 31. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  32. 32. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  33. 33. Задачи, связанные с HMM 1. Оценка. Найти вероятность данной последовательности состояний. Решается с помощью алгоритма Forward-Backward. 2. Декодирование. Найти наиболее вероятную последовательность тегов. Решается с помощью алгоритма Витерби. 3. Обучение. Подобрать параметры модели для данного выхода. Решается с помощью алгоритма Баума-Велша.
  34. 34. Оценка правдоподобия Дана скрытая марковская модель λ = (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) непосредственно по этой формуле нереально.
  35. 35. Оценка правдоподобия Дана скрытая марковская модель λ = (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) непосредственно по этой формуле нереально.
  36. 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. 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. 38. Алгоритм Forward Определим прямые вероятности αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ). Вычислим их рекурсивно: N αt (j) = αt−1 (i)aij bj (ot ). i=1 Заметим, что P (O) = αT (qF ).
  39. 39. Алгоритм Forward Определим прямые вероятности αt (j) = p(o1 , o2 , . . . , ot , qt = j | λ). Вычислим их рекурсивно: N αt (j) = αt−1 (i)aij bj (ot ). i=1 Заметим, что P (O) = αT (qF ).
  40. 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. 41. Алгоритм 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
  42. 42. Алгоритм Витерби 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 ]
  43. 43. Обучение скрытых марковских моделей Дана последовательность наблюдений O и множество возможных состояний модели. Требуется найти параметры модели A и B. Задача решается алгоритмом Баума-Велша (Baum-Welch), частным случаем метода EM (Expectation-Maximization).
  44. 44. Обучение скрытых марковских моделей Дана последовательность наблюдений O и множество возможных состояний модели. Требуется найти параметры модели A и B. Задача решается алгоритмом Баума-Велша (Baum-Welch), частным случаем метода EM (Expectation-Maximization).
  45. 45. Обратные вероятности Вспомним прямые и определим обратные вероятности: α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
  46. 46. Обратные вероятности Вспомним прямые и определим обратные вероятности: α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
  47. 47. Оценка переходных вероятностей aij Предположим, что состояния марковской модели открыты. Оценим aij : aij = C(i → j) . C(i → q) q∈Q
  48. 48. Оценка переходных вероятностей 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
  49. 49. Оценка переходных вероятностей 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
  50. 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. 51. Оценки вероятностей наблюдаемых Пусть 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)
  52. 52. Оценки вероятностей наблюдаемых Пусть 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)
  53. 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. 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. 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. 56. Алгоритм Баума-Велша 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
  57. 57. Порождающие и дискриминантные модели В порождающих моделях (generative models) задано совместное распределение вероятностей скрытых состояний и наблюдаемых данных p(H, O). Примеры: языковые модели, HMM, наивный байесовский классификатор. В дискриминантных моделях (discriminative models) заданы условные вероятности p(H|O). Примеры: логистическая регрессия, MEMM.
  58. 58. Марковская модель максимальной энтропии В 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
  59. 59. Марковская модель максимальной энтропии В 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
  60. 60. Марковская модель максимальной энтропии В 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
  61. 61. Features Пусть C — конечное множество классов, на которые надо разбить наблюдаемые данные. Свойства — функции f : C × X → R. Обычно это индикаторные функции f : C × X → {0, 1}. Примеры: 1. Слово заканчивается на «-тся», глагол. 2. Предыдущее слово было «в», не глагол. 3. Вероятность данного разбора данного слова. 4. Слово написано с большой буквы, существительное. Пусть у каждого свойства fi (c, x) для каждого класса c ∈ H есть вес wci .
  62. 62. Напоминание: линейная регрессия Зависимость ищется в виде y = w · f, где y ∈ R. Обучение: метод наименьших квадратов: минимизируем ошибку n (yi − w · f (xi ))2 . i=1
  63. 63. Напоминание: линейная регрессия Зависимость ищется в виде y = w · f, где y ∈ R. Обучение: метод наименьших квадратов: минимизируем ошибку n (yi − w · f (xi ))2 . i=1
  64. 64. Логистическая регрессия Бинарный классификатор (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)
  65. 65. Логистическая регрессия Бинарный классификатор (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)
  66. 66. Логистическая регрессия Бинарный классификатор (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)
  67. 67. Логистическая регрессия Бинарный классификатор (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)
  68. 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. 69. Логистическая регрессия: формулы для вероятностей ew·f , 1 + ew·f 1 p(y = false | x) = . 1 + ew·f p(y = true | x) = Логистическая функция: σ(t) = 1 . 1 + e−t
  70. 70. Логистическая регрессия: формулы для вероятностей ew·f , 1 + ew·f 1 p(y = false | x) = . 1 + ew·f p(y = true | x) = Логистическая функция: σ(t) = 1 . 1 + e−t
  71. 71. Логистическая регрессия: обучение Выбираем модель, которая максимизирует условное правдоподобие: 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
  72. 72. Логистическая регрессия: обучение Выбираем модель, которая максимизирует условное правдоподобие: 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
  73. 73. Логистическая регрессия: обучение Выбираем модель, которая максимизирует условное правдоподобие: 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
  74. 74. Обобщение на случай нескольких классов 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 Эта модель также называется моделью максимальной энтропии. Почему?
  75. 75. Обобщение на случай нескольких классов 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 Эта модель также называется моделью максимальной энтропии. Почему?
  76. 76. Простой пример Модель 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
  77. 77. Простой пример Модель 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
  78. 78. Простой пример Модель 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
  79. 79. Добавим ограничение: 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
  80. 80. Добавим ограничение: 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
  81. 81. Добавим еще одно: 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 ` ? ? ? ? Надо выбрать распределение так, чтобы его энтропия была максимальной.
  82. 82. Добавим еще одно: 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 ` ? ? ? ? Надо выбрать распределение так, чтобы его энтропия была максимальной.
  83. 83. Формализуем этот подход Выходное значение 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 ). ˜
  84. 84. Формализуем этот подход Выходное значение 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 ). ˜
  85. 85. Принцип максимальной энтропии Энтропия — мера «равномерности» условного ра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
  86. 86. Принцип максимальной энтропии Энтропия — мера «равномерности» условного ра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
  87. 87. Метод множителей Лагранжа Ищем безусловный максимум функции λ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
  88. 88. Метод множителей Лагранжа Ищем безусловный максимум функции λ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
  89. 89. MEMM: декодирование и обучение Декодирование: аналог алгоритма Витерби для HMM. Обучение: численные методы выпуклой оптимизации (градиентный спуск, метод сопряженных градиетов, квазиньютоновские методы) + метод EM.
  90. 90. MEMM: декодирование и обучение Декодирование: аналог алгоритма Витерби для HMM. Обучение: численные методы выпуклой оптимизации (градиентный спуск, метод сопряженных градиетов, квазиньютоновские методы) + метод EM.
  91. 91. Что еще можно применить? – Conditional random field (CRF); – Support Vector Machines (SVM); – Decision lists, decision trees, ...
  92. 92. Синтаксис Синтаксис — раздел лингвистики, изучающий строение словосочетаний и предложений. Syntax is the study of the principles and processes by which sentences are constructed in particular languages. Wikipedia
  93. 93. Синтаксис как система составляющих Автор — Ноам Хомский (Noam Chomsky). Слова в предложении группируются в составляющие.
  94. 94. Система составляющих Составляющая — независимая синтаксическая единица: — её можно перемещать в пределах предложения: 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].
  95. 95. Система составляющих Составляющая — независимая синтаксическая единица: — её можно перемещать в пределах предложения: 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].
  96. 96. Система составляющих Составляющая — независимая синтаксическая единица: — её можно перемещать в пределах предложения: 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].
  97. 97. Система составляющих Составляющая — независимая синтаксическая единица: — её можно перемещать в пределах предложения: 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].
  98. 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. 99. I saw the man on the hill with a telescope.
  100. 100. I saw the man on the hill with a telescope.
  101. 101. Формальная грамматика Заданы – конечное множество нетерминалов N ; – конечное множество терминалов Σ; – конечное множество продукций P , каждая из которых имеет вид (Σ ∪ N )∗ N (Σ ∪ N )∗ → (Σ ∪ N )∗ ; – начальный нетерминал S.
  102. 102. Примеры S → aSb S → ε язык {an bn }. S → SS S → (S) S → () правильные скобочные выражения.
  103. 103. Примеры S → aSb S → ε язык {an bn }. S → SS S → (S) S → () правильные скобочные выражения.
  104. 104. Арифметические выражения S S S S S S S S → → → → → → → → x y z S+S S−S S∗S S/S (S)
  105. 105. Арифметические выражения II T T T S S S S T S → → → → → → → → → x y z S+T S−T S∗T S/T (S) T
  106. 106. Еще пример S S CB HB HC aB bB bC cC язык {an bn cn | n 1}. → → → → → → → → → aSBC aBC HB HC BC ab bb bc cc
  107. 107. Еще пример S S CB HB HC aB bB bC cC язык {an bn cn | n 1}. → → → → → → → → → aSBC aBC HB HC BC ab bb bc cc
  108. 108. 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
  109. 109. 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
  110. 110. 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
  111. 111. 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
  112. 112. 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
  113. 113. 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
  114. 114. Иерархия грамматик Хомского Тип 0 — неограниченные: α → β. Распознаются машиной Тьюринга. Тип 1 — контекстно-зависимые: αAγ → αβγ. Распознаются линейно ограниченными автоматами. Тип 2 — контекстно-свободные: A → β. Распознаются недетерминированными автоматами с магазинной памятью. Тип 3 — регулярные: A → ε, A → a и A → aB. Распознаются конечными автоматами. Здесь A, B ∈ N , a ∈ Σ, α, β, γ ∈ (N ∪ Σ)∗ .
  115. 115. Контекстно-свободные языки Распознаются недетерминированными конечными автоматами с магазинной памятью (pushdown automaton, PDA). Нисходящий анализ (top-down): правила раскрываются, начиная со стартового символа. Восходящий анализ (bottom-up): построение дерева снизу вверх.
  116. 116. Нормальная форма Хомского Все правила должны иметь вид A → BC, или A → a, или S → ε. Как привести произвольную контекстно-свободную грамматику к нормальной форме Хомского?
  117. 117. Нормальная форма Хомского Все правила должны иметь вид A → BC, или A → a, или S → ε. Как привести произвольную контекстно-свободную грамматику к нормальной форме Хомского?
  118. 118. Алгоритм 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
  119. 119. Другие подходы – LR-парсер (Д. Кнут, 1965): детерминированные контекстно-свободные грамматики; – GLR-парсер (М. Томита, 1985): обобщение на недетерминированные языки. http://api.yandex.ru/tomita
  120. 120. Другие подходы – LR-парсер (Д. Кнут, 1965): детерминированные контекстно-свободные грамматики; – GLR-парсер (М. Томита, 1985): обобщение на недетерминированные языки. http://api.yandex.ru/tomita
  121. 121. Другие подходы – LR-парсер (Д. Кнут, 1965): детерминированные контекстно-свободные грамматики; – GLR-парсер (М. Томита, 1985): обобщение на недетерминированные языки. http://api.yandex.ru/tomita
  122. 122. Дополнительные материалы 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/

×