20131022 зобнин

549 views
402 views

Published on

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

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
549
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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/

×