Естественные языки: от наивного Байеса к...

103
естественные языки: от наивного байеса к тематическому моделированию Сергей Николенко СПбГУ Санкт-Петербург 29 марта 2019 г. Random facts: 29 марта 1848 г. Ниагарский водопад остановился более чем на 30 часов, потому что на реке Ниагара образовались ледяные пробки 29 марта 1886 г. Вильгельм Стейниц, победив Иоганна Цукерторта, стал первым официальным чемпионом мира по шахматам 29 марта 1955 г. защитил кандидатскую диссертацию (сразу признанную докторской) Юрий Кнорозов, расшифровавший письменность майя 29 марта 1974 г. жители окрестностей города Сиань случайно обнаружили «Терракотовую армию»

Upload: others

Post on 29-Feb-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

естественные языки: от наивного байеса ктематическому моделированию

Сергей Николенко

СПбГУ − Санкт-Петербург29 марта 2019 г.

Random facts:

• 29 марта 1848 г. Ниагарский водопад остановился более чем на 30 часов, потому что нареке Ниагара образовались ледяные пробки

• 29 марта 1886 г. Вильгельм Стейниц, победив Иоганна Цукерторта, стал первымофициальным чемпионом мира по шахматам

• 29 марта 1955 г. защитил кандидатскую диссертацию (сразу признанную докторской)Юрий Кнорозов, расшифровавший письменность майя

• 29 марта 1974 г. жители окрестностей города Сиань случайно обнаружили«Терракотовую армию»

Page 2: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи обработкиестественного языка

Page 3: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Я вгрызаюсь в тело текста

• Работы, связанные с естественным языком, — это одна изключевых задач для создания искусственного интеллекта.

• А.А. Марков-старший, 1913: численные эксперименты стекстом «Евгения Онегина», языковые модели черезмарковские цепи

• Ранний оптимизм: 1950-е, Ноам Хомский, Дартмутскийсеминар.

• Georgetown-IBM experiment, 1954: «через 3-5 лет машинныйперевод будет решён».

• Но оказалось, что всё сложно; первая зима нейронных сетей— это отчасти fail проекта по машинному переводу.

• И до сих пор мы, хотя умеем решать связанные с языкомзадачи всё лучше и лучше, очень далеки от истинногопонимания.

3

Page 4: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Я вгрызаюсь в тело текста

• Почему сложно? Во многом из-за модели окружающегомира, commonsense reasoning.

• Пример — разрешение анафоры:• мама вымыла раму, и теперь она блестит;• мама вымыла раму, и теперь она устала.

• Это пример хорошо определённой задачи, фактическизадачи классификации, для которой легко набрать датасет,но она в нетривиальных случаях всё равно очень, оченьсложная.

• Какие ещё бывают задачи в обработке естественного языка?

3

Page 5: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging): разметить взаданном тексте слова по частям речи (существительное,глагол, прилагательное...) и, возможно, по морфологическимпризнакам (род, падеж...);

4

Page 6: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation):разделить слова в заданном тексте на морфемы, т.е.синтаксические единицы вроде приставок, суффиксов иокончаний; для некоторых языков (например, английского) этоне очень актуально, но в русском языке морфологии оченьмного;

4

Page 7: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• другой вариант задачи о морфологии отдельных слов —стемминг (stemming), в котором требуется выделить основыслов, или лемматизация (lemmatization), в которой словонужно привести к базовой форме (например, формеединственного числа мужского рода);

4

Page 8: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming)• выделение границ предложения (sentence boundarydisambiguation): разбить заданный текст на предложения;задача непростая даже в русском и английском, а в языкахвроде китайского весьма нетривиальной становится дажезадача пословной сегментации (word segmentation), потомучто поток иероглифов без пробелов может делиться на словапо-разному;

4

Page 9: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming)• выделение границ слов и предложений;• распознавание именованных сущностей (named entityrecognition): найти в тексте собственные имена людей,географических и прочих объектов, разметив их по типамсущностей (люди, места, названия компаний и т.п.);

4

Page 10: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming)• выделение границ слов и предложений;• распознавание именованных сущностей (named entityrecognition);

• разрешение смысла слов (word sense disambiguation): выбрать,какой из омонимов, какой из разных смыслов одного и того жеслова используется в данном отрывке текста;

4

Page 11: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming)• выделение границ слов и предложений;• распознавание именованных сущностей (named entityrecognition);

• разрешение смысла слов (word sense disambiguation);• синтаксический парсинг (syntactic parsing): по заданномупредложению (и, возможно, его контексту) построить егосинтаксическое дерево, прямо по Хомскому;

4

Page 12: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи:• частеречная разметка (part-of-speech tagging);• морфологическая сегментация (morphological segmentation);• стемминг (stemming)• выделение границ слов и предложений;• распознавание именованных сущностей (named entityrecognition);

• разрешение смысла слов (word sense disambiguation);• синтаксический парсинг (syntactic parsing);• разрешение кореференций (coreference resolution):определить, к каким объектам или другим частям текстаотносятся те или иные слова и обороты; частный случай этойзадачи — то самое разрешение анафоры, которое мыобсуждали выше.

4

Page 13: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи:

• языковые модели (language models): по заданному отрывкутекста предсказать следующее слово или следующий символ;эта задача очень важна, например, для распознавания речи;

4

Page 14: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи:

• языковые модели (language models);• анализ тональности (sentiment analysis): определить потексту его тональность, т.е. позитивное ли отношение несётэтот текст или негативное;

4

Page 15: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи:

• языковые модели (language models);• анализ тональности (sentiment analysis);• выделение отношений или фактов (relationship extraction,fact extraction): выделить из текста хорошо определённыеотношения или факты об упоминающихся там сущностях;например, кто с кем находится в родственных отношениях, вкаком году основана упоминающаяся в тексте компания и т.д.;

4

Page 16: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи:

• языковые модели (language models);• анализ тональности (sentiment analysis);• выделение отношений или фактов (relationship extraction,fact extraction);

• ответы на вопросы (question answering): дать ответ назаданный вопрос; в зависимости от постановки это может бытьили чистая классификация (выбор из вариантов ответа, как втесте), или классификация с очень большим числом классов(ответы на фактологические вопросы вроде «кто» или «вкаком году»), или даже порождение текста (если отвечать навопросы нужно в рамках естественного диалога).

4

Page 17: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи.(3) Хуже определённые семантические задачи:

• собственно порождение текста (text generation);

4

Page 18: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи.(3) Хуже определённые семантические задачи:

• собственно порождение текста (text generation);• автоматическое реферирование (automatic summarization):по тексту породить его краткое содержание, abstract, таксказать; это можно рассмотреть как задачу классификации,если просить модель выбрать из текста готовые предложения,лучше всего отражающие смысл всего текста, а можно какзадачу порождения, если краткое содержание нужно написатьс нуля;

4

Page 19: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи.(3) Хуже определённые семантические задачи:

• собственно порождение текста (text generation);• автоматическое реферирование (automatic summarization);• машинный перевод (machine translation): по тексту на одномязыке породить соответствующий текст на другом языке;

4

Page 20: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Задачи NLP

(1) Синтаксические задачи.(2) Хорошо определённые семантические задачи.(3) Хуже определённые семантические задачи:

• собственно порождение текста (text generation);• автоматическое реферирование (automatic summarization);• машинный перевод (machine translation);• диалоговые модели (dialog and conversational models):поддержать разговор с человеком.

4

Page 21: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Поиск дубликатов

• Есть и другие задачи, менее специфичные именно для NLP.• Например, поиск дубликатов: как найти похожие тексты?Классический ответ довольно простой:

• сначала представим текст как множество (слов? или чего?)• выберем для них представление (хешем)• найдём похожесть между множествами чисел (как это?)

5

Page 22: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Кстати, об n-граммах

• 𝑛-граммы (шинглы) попадаются в NLP часто. Например, дляязыковых моделей:

• предсказываем следующее слово по нескольким предыдущим• оцениваем через перплексию:

𝑃𝑃(𝑆) = 𝑝(𝑤1, … , 𝑤𝑁)− 1𝑁 = 𝑁√

1∏𝑁

𝑖=1 𝑝(𝑤𝑖 ∣ 𝑤1, … , 𝑤𝑖−1)= 2𝐻(𝑆)

• надо сглаживать:• лапласовское сглаживание;• откат (backoff) и интерполяция;• Kneser-Ney smoothing:

𝑝𝐾𝑁 (𝑤𝑖 ∣ 𝑤𝑖−1) = max(𝑐(𝑤𝑖−1𝑤𝑖) − 𝑑)𝑐(𝑤𝑖−1) + 𝜆(𝑤𝑖−1)𝑝𝐶𝑂𝑁𝑇 (𝑤𝑖),

где 𝑑 – константная (!) разница между числом биграмм в trainingset и validation set, 𝜆(𝑤𝑖−1) = 𝑑|{𝑤∶𝑐(𝑤𝑖−1𝑤)>0}|

∑𝑤 𝑐(𝑤𝑖−1𝑤) – вес

интерполяции, 𝑝𝐶𝑂𝑁𝑇 (𝑤𝑖) = |{𝑤𝑖−1∶𝑐(𝑤𝑖−1𝑤)>0}||{(𝑤𝑗−1,𝑤𝑗)∶𝑐(𝑤𝑗−1𝑤𝑗)>0}| .

6

Page 23: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Кстати, об n-граммах

• А ещё 𝑛-граммами разумно расширять набор токенов:Криштиану_Роналду, Евгений_Онегин...

• Но добавлять все пары слов было бы странно иконтрпродуктивно.

• Какие нужно добавлять биграммы?..

7

Page 24: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Кстати, об n-граммах

• А ещё 𝑛-граммами разумно расширять набор токенов:Криштиану_Роналду, Евгений_Онегин...

• Но добавлять все пары слов было бы странно иконтрпродуктивно.

• Какие нужно добавлять биграммы?..• ...неожиданные! То есть сильно выбивающиеся изпредположения независимости:

𝑝(Евгений_Онегин) ≫ 𝑝(Евгений)𝑝(Онегин)

7

Page 25: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Общие замечания

• Часто задачу можно выразить как задачу классификации(категоризации текстов) или регрессии.

• В таких случаях можно использовать обычныеклассификаторы: логистическую регрессию, SVM и т.п.

• Вопрос: что давать им на вход?• Можно просто считать каждое слово своей размерностью идавать векторы документов как счётчики слов (bag of words).

• Почему это может быть плохо?

8

Page 26: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Общие замечания

• Одна причина – всё будет сильно зависеть от слов, которыекак раз ничего не определяют, и стоп-листами это не решить.

• Вариант – tf-idf веса:

tf(𝑡, 𝑑) = 𝑛𝑡|𝑑| , idf(𝑡, 𝐷) = log |𝐷|

|{𝑑 ∈ 𝐷 ∣ 𝑡 ∈ 𝑑}| .

• Обычно результат улучшается, если заменить просто числовхождений на tf-idf веса.

• А сейчас чаще всего используют word embeddings, о нихпозже...

8

Page 27: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Наивный байесовскийклассификатор

Page 28: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Категоризация текстов

• Классическая задача машинного обучения и informationretrieval – категоризация текстов.

• Дан набор текстов, разделённый на категории. Нужнообучить модель и потом уметь категоризовать новые тексты.

• Атрибуты 𝑎1, 𝑎2, … , 𝑎𝑛 – это слова, 𝑣 – тема текста (илиатрибут вроде «спам / не спам»).

• Bag-of-words model: забываем про порядок слов, составляемсловарь. Теперь документ – это вектор, показывающий,сколько раз каждое слово из словаря в нём встречается.

10

Page 29: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Naive Bayes

• Заметим, что даже это – сильно упрощённый взгляд: для словещё довольно-таки важен порядок, в котором они идут...

• Но и это ещё не всё: получается, что 𝑝(𝑎1, 𝑎2, … , 𝑎𝑛|𝑥 = 𝑣) –это вероятность в точности такого набора слов всообщениях на разные темы. Очевидно, такой статистикивзять неоткуда.

• Значит, надо дальше делать упрощающие предположения.• Наивный байесовский классификатор – самая простая такаямодель: давайте предположим, что все слова в словареусловно независимы при условии данной категории.

11

Page 30: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Naive Bayes

• Иначе говоря:

𝑝(𝑎1, 𝑎2, … , 𝑎𝑛|𝑥 = 𝑣) = 𝑝(𝑎1|𝑥 = 𝑣)𝑝(𝑎2|𝑥 = 𝑣) … 𝑝(𝑎𝑛|𝑥 = 𝑣).

• Итак, наивный байесовский классификатор выбирает 𝑣 как

𝑣𝑁𝐵(𝑎1, 𝑎2, … , 𝑎𝑛) = arg max𝑣∈𝑉 𝑝(𝑥 = 𝑣)𝑛

∏𝑖=1

𝑝(𝑎𝑖|𝑥 = 𝑣).

• В парадигме классификации текстов мы предполагаем, чторазные слова в тексте на одну и ту же тему появляютсянезависимо друг от друга. Однако, несмотря на такиебредовые предположения, naive Bayes на практике работаеточень даже неплохо (и этому есть разумные объяснения).

11

Page 31: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Многомерная модель

• Но в деталях реализации наивного байесовскогоклассификатора есть тонкости.

• Сейчас мы рассмотрим два разных подхода к naive Bayes,которые дают разные результаты: мультиномиальный(multinomial) и многомерный (multivariate).

12

Page 32: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Многомерная модель

• В многомерной модели документ – это вектор бинарныхатрибутов, показывающих, встретилось ли в документе тоили иное слово.

• Когда мы подсчитываем правдоподобие документа, мыперемножаем вероятности того, что встретилось каждоеслово из документа и вероятности того, что не встретилоськаждое (словарное) слово, которое не встретилось.

• Получается модель многомерных испытаний Бернулли.Наивное предположение в том, что события «встретилось лислово» предполагаются независимыми.

12

Page 33: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Многомерная модель

• Математически: пусть 𝑉 = {𝑤𝑡}|𝑉 |𝑡=1 – словарь. Тогда документ

𝑑𝑖 – это вектор длины |𝑉 |, состоящий из битов 𝐵𝑖𝑡; 𝐵𝑖𝑡 = 1 iffслово 𝑤𝑡 встречается в документе 𝑑𝑖.

• Правдоподобие принадлежности 𝑑𝑖 классу 𝑐𝑗:

𝑝(𝑑𝑖 ∣ 𝑐𝑗) =|𝑉 |∏𝑡=1

(𝐵𝑖𝑡𝑝(𝑤𝑡 ∣ 𝑐𝑗) + (1 − 𝐵𝑖𝑡)(1 − 𝑝(𝑤𝑡 ∣ 𝑐𝑗))) .

• Для обучения такого классификатора нужно обучитьвероятности 𝑝(𝑤𝑡 ∣ 𝑐𝑗).

12

Page 34: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Многомерная модель

• Обучение – дело нехитрое: пусть дан набор документов𝐷 = {𝑑𝑖}|𝐷|

𝑖=1, которые уже распределены по классам 𝑐𝑗(возможно, даже вероятностно распределены), дан словарь𝑉 = {𝑤𝑡}|𝑉 |

𝑡=1, и мы знаем биты 𝐵𝑖𝑡 (знаем документы).• Тогда можно подсчитать оптимальные оценки вероятностейтого, что то или иное слово встречается в том или иномклассе (при помощи лапласовой оценки):

𝑝(𝑤𝑡 ∣ 𝑐𝑗) = 1 + ∑|𝐷|𝑖=1 𝐵𝑖𝑡𝑝(𝑐𝑗 ∣ 𝑑𝑖)

2 + ∑|𝐷|𝑖=1 𝑝(𝑐𝑗 ∣ 𝑑𝑖)

.

12

Page 35: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Многомерная модель

• Априорные вероятности классов можно подсчитать как𝑝(𝑐𝑗) = 1

|𝐷| ∑|𝐷|𝑖=1 𝑝(𝑐𝑗 ∣ 𝑑𝑖).

• Тогда классификация будет происходить как

𝑐 = arg max𝑗𝑝(𝑐𝑗)𝑝(𝑑𝑖 ∣ 𝑐𝑗) =

= arg max𝑗 ⎛⎜⎝

1|𝐷|

|𝐷|∑𝑖=1

𝑝(𝑐𝑗 ∣ 𝑑𝑖)⎞⎟⎠

|𝑉 |∏𝑡=1

(𝐵𝑖𝑡𝑝(𝑤𝑡 ∣ 𝑐𝑗) + (1 − 𝐵𝑖𝑡)(1 − 𝑝(𝑤𝑡 ∣ 𝑐𝑗))) =

= arg max𝑗 ⎛⎜⎝

log(|𝐷|∑𝑖=1

𝑝(𝑐𝑗 ∣ 𝑑𝑖)) +|𝑉 |∑𝑡=1

log (𝐵𝑖𝑡𝑝(𝑤𝑡 ∣ 𝑐𝑗) + (1 − 𝐵𝑖𝑡)(1 − 𝑝(𝑤𝑡 ∣ 𝑐𝑗)))⎞⎟⎠

.

12

Page 36: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Мультиномиальная модель

• В мультиномиальной модели документ – этопоследовательность событий. Каждое событие – этослучайный выбор одного слова из того самого «bag ofwords».

• Когда мы подсчитываем правдоподобие документа, мыперемножаем вероятности того, что мы достали из мешка тесамые слова, которые встретились в документе. Наивноепредположение в том, что мы достаём из мешка разныеслова независимо друг от друга.

• Получается мультиномиальная генеративная модель,которая учитывает количество повторений каждого слова,но не учитывает, каких слов нет в документе.

13

Page 37: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Мультиномиальная модель

• Математически: пусть 𝑉 = {𝑤𝑡}|𝑉 |𝑡=1 – словарь. Тогда документ

𝑑𝑖 – это вектор длины |𝑑𝑖|, состоящий из слов, каждое изкоторых «вынуто» из словаря с вероятностью 𝑝(𝑤𝑡 ∣ 𝑐𝑗).

• Правдоподобие принадлежности 𝑑𝑖 классу 𝑐𝑗:

𝑝(𝑑𝑖 ∣ 𝑐𝑗) = 𝑝(|𝑑𝑖|)|𝑑𝑖|!|𝑉 |∏𝑡=1

1𝑁𝑖𝑡!

𝑝(𝑤𝑡 ∣ 𝑐𝑗)𝑁𝑖𝑡 ,

где 𝑁𝑖𝑡 – количество вхождений 𝑤𝑡 в 𝑑𝑖.• Для обучения такого классификатора тоже нужно обучитьвероятности 𝑝(𝑤𝑡 ∣ 𝑐𝑗).

13

Page 38: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Мультиномиальная модель

• Обучение: пусть дан набор документов 𝐷 = {𝑑𝑖}|𝐷|𝑖=1, которые

уже распределены по классам 𝑐𝑗 (возможно, дажевероятностно распределены), дан словарь 𝑉 = {𝑤𝑡}|𝑉 |

𝑡=1, и мызнаем вхождения 𝑁𝑖𝑡.

• Тогда можно подсчитать апостериорные оценкивероятностей того, что то или иное слово встречается в томили ином классе (не забываем сглаживание – правилоЛапласа):

𝑝(𝑤𝑡 ∣ 𝑐𝑗) = 1 + ∑|𝐷|𝑖=1 𝑁𝑖𝑡𝑝(𝑐𝑗 ∣ 𝑑𝑖)

|𝑉 | + ∑|𝑉 |𝑠=1 ∑|𝐷|

𝑖=1 𝑁𝑖𝑠𝑝(𝑐𝑗 ∣ 𝑑𝑖).

13

Page 39: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Мультиномиальная модель

• Априорные вероятности классов можно подсчитать как𝑝(𝑐𝑗) = 1

|𝐷| ∑|𝐷|𝑖=1 𝑝(𝑐𝑗 ∣ 𝑑𝑖).

• Тогда классификация будет происходить как

𝑐 = arg max𝑗𝑝(𝑐𝑗)𝑝(𝑑𝑖 ∣ 𝑐𝑗) =

= arg max𝑗 ⎛⎜⎝

1|𝐷|

|𝐷|∑𝑖=1

𝑝(𝑐𝑗 ∣ 𝑑𝑖)⎞⎟⎠

𝑝(|𝑑𝑖|)|𝑑𝑖|!|𝑉 |∏𝑡=1

1𝑁𝑖𝑡!

𝑝(𝑤𝑡 ∣ 𝑐𝑗)𝑁𝑖𝑡 =

= arg max𝑗 ⎛⎜⎝

log ⎛⎜⎝

|𝐷|∑𝑖=1

𝑝(𝑐𝑗 ∣ 𝑑𝑖)⎞⎟⎠

+|𝑉 |∑𝑡=1

𝑁𝑖𝑡 log 𝑝(𝑤𝑡 ∣ 𝑐𝑗)⎞⎟⎠

.

13

Page 40: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Как можно обобщить наивный байес

• В наивном байесе есть два сильно упрощающих делопредположения:

• мы знаем метки тем всех документов;• у каждого документа только одна тема.

• Мы сейчас уберём оба эти ограничения.• Во-первых, что можно сделать, если мы не знаем метки тем,т.е. если датасет неразмеченный?

14

Page 41: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Кластеризация

• Тогда это превращается в задачу кластеризации.• Её можно решать EM-алгоритмом (Expectation-Maximization,используется в ситуациях, когда есть много скрытыхпеременных, причём если бы мы их знали, модель стала быпростой):

• на E-шаге считаем ожидания того, какой документ какой темепринадлежит;

• на M-шаге пересчитываем наивным байесом вероятности𝑝(𝑤 ∣ 𝑡) при фиксированных метках.

• Это простое обобщение.

15

Page 42: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Тематическое моделирование

Page 43: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Как ещё можно обобщить наивный байес

• А ещё в наивном байесе у документа только одна тема.• Но это же не так! На самом деле документ говорит о многихтемах (но не слишком многих).

• Давайте попробуем это учесть.

17

Page 44: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Рассмотрим такую модель:• каждое слово в документе 𝑑 порождается некоторой темой

𝑡 ∈ 𝑇 ;• документ порождается некоторым распределением на темах

𝑝(𝑡 ∣ 𝑑);• слово порождается именно темой, а не документом:

𝑝(𝑤 ∣ 𝑑, 𝑡) = 𝑝(𝑤 ∣ 𝑑);• итого получается такая функция правдоподобия:

𝑝(𝑤 ∣ 𝑑) = ∑𝑡∈𝑇

𝑝(𝑤 ∣ 𝑡)𝑝(𝑡 ∣ 𝑑).

• Эта модель называется probabilistic latent semantic analysis,pLSA (Hoffmann, 1999).

18

Page 45: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA: графическая модель документа

19

Page 46: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Пример

• Получается как-то так:

20

Page 47: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Как её обучать? Мы можем оценить 𝑝(𝑤 ∣ 𝑑) = 𝑛𝑤𝑑𝑛𝑑, а нужно

найти:• 𝜙𝑤𝑡 = 𝑝(𝑤 ∣ 𝑡);• 𝜃𝑡𝑑 = 𝑝(𝑡 ∣ 𝑑).

• Максимизируем правдоподобие

𝑝(𝐷) = ∏𝑑∈𝐷

∏𝑤∈𝑑

𝑝(𝑑, 𝑤)𝑛𝑑𝑤 = ∏𝑑∈𝐷

∏𝑤∈𝑑

[∑𝑡∈𝑇

𝑝(𝑤 ∣ 𝑡)𝑝(𝑡 ∣ 𝑑)]𝑛𝑑𝑤

.

• Как максимизировать такие правдоподобия?

21

Page 48: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• EM-алгоритмом. На E-шаге ищем, сколько слов 𝑤 в документе𝑑 из темы 𝑡:

𝑛𝑑𝑤𝑡 = 𝑛𝑑𝑤𝑝(𝑡 ∣ 𝑑, 𝑤) = 𝑛𝑑𝑤𝜙𝑤𝑡𝜃𝑡𝑑

∑𝑠∈𝑇 𝜙𝑤𝑠𝜃𝑠𝑑.

• А на M-шаге пересчитываем параметры модели:

𝑛𝑤𝑡 = ∑𝑑 𝑛𝑑𝑤𝑡, 𝑛𝑡 = ∑𝑤 𝑛𝑤𝑡, 𝜙𝑤𝑡 = 𝑛𝑤𝑡𝑛𝑡

,𝑛𝑡𝑑 = ∑𝑤∈𝑑 𝑛𝑑𝑤𝑡, 𝜃𝑡𝑑 = 𝑛𝑡𝑑

𝑛𝑑.

• Вот и весь вывод в pLSA.

21

Page 49: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Можно даже не хранить всю матрицу 𝑛𝑑𝑤𝑡, а двигаться подокументам, каждый раз добавляя 𝑛𝑑𝑤𝑡 сразу к счётчикам𝑛𝑤𝑡, 𝑛𝑡𝑑.

21

Page 50: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Чего тут не хватает?• Во-первых, разложение такое, конечно, будет сильно неединственным.

• Во-вторых, параметров очень много, явно будет оверфиттинг,если корпус не на порядки больше числа тем.

• А совсем хорошо было бы получать не просто устойчивоерешение, а обладающее какими-нибудь заданными хорошимисвойствами.

• Всё это мы можем решить как?

21

Page 51: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Правильно, регуляризацией. Есть целая наука о разныхрегуляризаторах для pLSA (К.В. Воронцов).

• В общем виде так: добавим регуляризаторы 𝑅𝑖 в логарифмправдоподобия:

∑𝑑∈𝐷

∑𝑤∈𝑑

𝑛𝑑𝑤 ln ∑𝑡∈𝑇

𝜙𝑤𝑡𝜃𝑡𝑑 + ∑𝑖

𝜏𝑖𝑅𝑖(Φ, Θ).

21

Page 52: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• Тогда в EM-алгоритме на M-шаге появятся частныепроизводные 𝑅:

𝑛𝑤𝑡 = [∑𝑑∈𝐷

𝑛𝑑𝑤𝑡 + 𝜙𝑤𝑡𝜕𝑅

𝜕𝜙𝑤𝑡]

+,

𝑛𝑡𝑑 = [∑𝑤∈𝑑

𝑛𝑑𝑤𝑡 + 𝜃𝑡𝑑𝜕𝑅𝜕𝜃𝑡𝑑

]+

• Чтобы доказать, EM надо рассмотреть как решение задачиоптимизации через условия Каруша-Куна-Такера.

21

Page 53: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

pLSA

• И теперь мы можем кучу разных регуляризаторов вставить вэту модель:

• регуляризатор сглаживания (позже, это примерно как LDA);• регуляризатор разреживания: максимизируем KL-расстояниемежду распределениями 𝜙𝑤𝑡 и 𝜃𝑡𝑑 и равномернымраспределением;

• регуляризатор контрастирования: минимизируем ковариациимежду векторами 𝜙𝑡, чтобы в каждой теме выделилось своёлексическое ядро (характерные слова);

• регуляризатор когерентности: будем награждать за слова,которые в документах стоят ближе друг к другу;

• и так далее, много всего можно придумать.

21

Page 54: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA

Page 55: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA

• Развитие идей pLSA – LDA (Latent Dirichlet Allocation).• Это фактически байесовский вариант pLSA, сейчас нарисуемкартинки, добавим априорные распределения и посмотрим,как сработают наши методы приближённого вывода.

• Задача та же: смоделировать большую коллекцию текстов(например, для information retrieval или классификации).

23

Page 56: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA

• У одного документа может быть несколько тем. Давайтепостроим иерархическую байесовскую модель:

• на первом уровне – смесь, компоненты которой соответствуют«темам»;

• на втором уровне – мультиномиальная переменная саприорным распределением Дирихле, которое задаёт«распределение тем» в документе.

23

Page 57: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA

• Если формально: слова берутся из словаря {1, … , 𝑉 }; слово –это вектор 𝑤, 𝑤𝑖 ∈ {0, 1}, где ровно одна компонента равна 1.

• Документ – последовательность из 𝑁 слов 𝑤. Нам дан корпусиз 𝑀 документов 𝐷 = {𝑤𝑑 ∣ 𝑑 = 1..𝑀}.

• Генеративная модель LDA выглядит так:• выбрать 𝜃 ∼ Di(𝛼);• для каждого из 𝑁 слов 𝑤𝑛:

• выбрать тему 𝑧𝑛 ∼ Mult(𝜃);• выбрать слово 𝑤𝑛 ∼ 𝑝(𝑤𝑛 ∣ 𝑧𝑛, 𝛽) по мультиномиальномураспределению.

23

Page 58: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: графическая модель

24

Page 59: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: что получается [Blei, 2012]

25

Page 60: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вывод

• Два основных подхода к выводу в сложных вероятностныхмоделях, в том числе LDA:

• вариационные приближения: рассмотрим более простоесемейство распределений с новыми параметрами и найдём внём наилучшее приближение к неизвестному распределению;

• сэмплирование: будем набрасывать точки из сложногораспределения, не считая его явно, а запуская марковскуюцепь под графиком распределения (частный случай –сэмплирование по Гиббсу).

• Сэмплирование по Гиббсу обычно проще расширить нановые модификации LDA, но вариационный подход быстрееи часто стабильнее.

26

Page 61: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Вывод в LDA

• Рассмотрим задачу байесовского вывода, т.е. оценкиапостериорного распределения 𝜃 и 𝑧 после новогодокумента:

𝑝(𝜃, 𝑧 ∣ 𝑤, 𝛼, 𝛽) = 𝑝(𝜃, 𝑧, 𝑤 ∣ 𝛼, 𝛽)𝑝(𝑤 ∣ 𝛼, 𝛽) .

• Правдоподобие набора слов 𝑤 оценивается как

𝑝(𝑤 ∣ 𝛼, 𝛽) = Γ(∑𝑖 𝛼𝑖)∏𝑖 Γ(𝛼𝑖)

∫ [𝑘

∏𝑖=1

𝜃𝛼𝑖−1𝑖 ] [

𝑁∏𝑛=1

𝑘∑𝑖=1

𝑉∏𝑗=1

(𝜃𝑖𝛽𝑖𝑗)𝑤𝑗𝑛] 𝑑𝜃,

и это трудно посчитать, потому что 𝜃 и 𝛽 путаются друг сдругом.

27

Page 62: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Вывод в LDA

• Вариационное приближение – рассмотрим семействораспределений

𝑞(𝜃, 𝑧 ∣ 𝑤, 𝛾, 𝜙) = 𝑝(𝜃 ∣ 𝑤, 𝛾)𝑁

∏𝑛=1

𝑝(𝑧𝑛 ∣ 𝑤, 𝜙𝑛).

• Тут всё расщепляется, и мы добавили вариационныепараметры 𝛾 (Дирихле) и 𝜙 (мультиномиальный).

• Заметим, что параметры для каждого документа могут бытьсвои – всё условно по 𝑤.

27

Page 63: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационное приближение

28

Page 64: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационный вывод

• Теперь можно искать минимум KL-расстояния:

(𝛾∗, 𝜙∗) = arg min(𝛾,𝜙)

KL(𝑞(𝜃, 𝑧 ∣ 𝑤, 𝛾𝜙)‖𝑝(𝜃, 𝑧 ∣ 𝑤, 𝛼, 𝛽)).

• Для этого сначала воспользуемся уже известной оценкой изнеравенства Йенсена:

log 𝑝(𝑤 ∣ 𝛼, 𝛽) = log ∫𝜃

∑𝑧

𝑝(𝜃, 𝑧, 𝑤 ∣ 𝛼, 𝛽)𝑑𝜃 =

= log ∫𝜃

∑𝑧

𝑝(𝜃, 𝑧, 𝑤 ∣ 𝛼, 𝛽)𝑞(𝜃, 𝑧)𝑞(𝜃, 𝑧) 𝑑𝜃 ≥

≥ 𝐸𝑞 [log 𝑝(𝜃, 𝑧, 𝑤 ∣ 𝛼, 𝛽)] − 𝐸𝑞 [log 𝑞(𝜃, 𝑧)] =∶ 𝐿(𝛾, 𝜙; 𝛼, 𝛽).

29

Page 65: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационный вывод

• Распишем произведения:

𝐿(𝛾, 𝜙; 𝛼, 𝛽) = 𝐸𝑞 [𝑝(𝜃 ∣ 𝛼)] + 𝐸𝑞 [𝑝(𝑧 ∣ 𝜃)] + 𝐸𝑞 [𝑝(𝑤 ∣ 𝑧, 𝛽)] −− 𝐸𝑞 [log 𝑞(𝜃)] − 𝐸𝑞 [log 𝑞(𝑧)] .

• Свойство распределения Дирихле: если 𝑋 ∼ Di(𝛼), то

𝐸[log(𝑋𝑖)] = Ψ(𝛼𝑖) − Ψ(∑𝑖

𝛼𝑖),

где Ψ(𝑥) = Γ′(𝑥)Γ(𝑥) – дигамма-функция.

• Теперь можно выписать каждый из пяти членов.

29

Page 66: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационный вывод

𝐿(𝛾, 𝜙; 𝛼, 𝛽) = log Γ(𝑘

∑𝑖=1

𝛼𝑖) −𝑘

∑𝑖=1

log Γ(𝛼𝑖) +𝑘

∑𝑖=1

(𝛼𝑖 − 1) [Ψ(𝛾𝑖) − Ψ (𝑘

∑𝑗=1

𝛾𝑗)] +

+𝑁

∑𝑛=1

𝑘∑𝑖=1

𝜙𝑛𝑖 [Ψ(𝛾𝑖) − Ψ (𝑘

∑𝑗=1

𝛾𝑗)] +

+𝑁

∑𝑛=1

𝑘∑𝑖=1

𝑉∑𝑗=1

𝑤𝑗𝑛𝜙𝑛𝑖 log 𝛽𝑖𝑗−

− log Γ(𝑘

∑𝑖=1

𝛾𝑖) +𝑘

∑𝑖=1

log Γ(𝛾𝑖) −𝑘

∑𝑖=1

(𝛾𝑖 − 1) [Ψ(𝛾𝑖) − Ψ (𝑘

∑𝑗=1

𝛾𝑗)] −

−𝑁

∑𝑛=1

𝑘∑𝑖=1

𝜙𝑛𝑖 log 𝜙𝑛𝑖.

30

Page 67: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационный вывод

• Теперь осталось только брать частные производные этоговыражения.

• Сначала максимизируем его по 𝜙𝑛𝑖 (вероятность того, что 𝑛-еслово было порождено темой 𝑖); надо добавить 𝜆-множителиЛагранжа, т.к. ∑𝑘

𝑗=1 𝜙𝑛𝑗 = 1.• В итоге получится:

𝜙𝑛𝑖 ∝ 𝛽𝑖𝑣𝑒Ψ(𝛾𝑖)−Ψ(∑𝑘𝑗=1 𝛾𝑗),

где 𝑣 – номер того самого слова, т.е. единственнаякомпонента 𝑤𝑣

𝑛 = 1.

31

Page 68: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: вариационный вывод

• Потом максимизируем по 𝛾𝑖, 𝑖-й компоненте апостериорногоДирихле-параметра.

• Получится

𝛾𝑖 = 𝛼𝑖 +𝑁

∑𝑛=1

𝜙𝑛𝑖.

• Соответственно, для вывода нужно просто пересчитывать 𝜙𝑛𝑖и 𝛾𝑖 друг через друга, пока оценка не сойдётся.

31

Page 69: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: оценка параметров

• Теперь давайте попробуем оценить параметры 𝛼 и 𝛽 покорпусу документов 𝐷.

• Мы хотим найти 𝛼 и 𝛽, которые максимизируют

ℓ(𝛼, 𝛽) =𝑀

∑𝑑=1

log 𝑝(𝑤𝑑 ∣ 𝛼, 𝛽).

• Подсчитать 𝑝(𝑤𝑑 ∣ 𝛼, 𝛽) мы не можем, но у нас есть нижняяоценка 𝐿(𝛾, 𝜙; 𝛼, 𝛽), т.к.

𝑝(𝑤𝑑 ∣ 𝛼, 𝛽) == 𝐿(𝛾, 𝜙; 𝛼, 𝛽) + KL(𝑞(𝜃, 𝑧 ∣ 𝑤𝑑, 𝛾𝜙)‖𝑝(𝜃, 𝑧 ∣ 𝑤𝑑, 𝛼, 𝛽)).

32

Page 70: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: оценка параметров

• EM-алгоритм:1. найти параметры {𝛾𝑑, 𝜙𝑑 ∣ 𝑑 ∈ 𝐷}, которые оптимизируютоценку (как выше);

2. зафиксировать их и оптимизировать оценку по 𝛼 и 𝛽.

32

Page 71: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: оценка параметров

• Для 𝛽 это тоже делается нехитро:

𝛽𝑖𝑗 ∝𝑀

∑𝑑=1

𝑁𝑑

∑𝑛=1

𝜙𝑑𝑛𝑖𝑤𝑗𝑛.

• Для 𝛼𝑖 получается система уравнений, которую можнорешить методом Ньютона.

32

Page 72: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: сэмплирование по Гиббсу

• В базовой модели LDA сэмплирование по Гиббсу посленесложных преобразований сводится к так называемомусжатому сэмплированию по Гиббсу (collapsed Gibbssampling), где переменные 𝑧𝑤 итеративно сэмплируются последующему распределению:

𝑝(𝑧𝑤 = 𝑡 ∣ 𝑧−𝑤, 𝑤, 𝛼, 𝛽) ∝ 𝑞(𝑧𝑤, 𝑡, 𝑧−𝑤, 𝑤, 𝛼, 𝛽) =

𝑛(𝑑)−𝑤,𝑡 + 𝛼

∑𝑡′∈𝑇 (𝑛(𝑑)−𝑤,𝑡′ + 𝛼)

𝑛(𝑤)−𝑤,𝑡 + 𝛽

∑𝑤′∈𝑊 (𝑛(𝑤′)−𝑤,𝑡 + 𝛽)

,

где 𝑛(𝑑)−𝑤,𝑡 – число слов в документе 𝑑, выбранных по теме 𝑡, а

𝑛(𝑤)−𝑤,𝑡 – число раз, которое слово 𝑤 было порождено из темы

𝑡, не считая текущего значения 𝑧𝑤; заметим, что оба этихсчётчика зависят от других переменных 𝑧−𝑤.

33

Page 73: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

LDA: сэмплирование по Гиббсу

• Из сэмплов затем можно оценить переменные модели

𝜃𝑑,𝑡 = 𝑛(𝑑)−𝑤,𝑡 + 𝛼

∑𝑡′∈𝑇 (𝑛(𝑑)−𝑤,𝑡′ + 𝛼)

,

𝜙𝑤,𝑡 = 𝑛(𝑤)−𝑤,𝑡 + 𝛽

∑𝑤′∈𝑊 (𝑛(𝑤′)−𝑤,𝑡 + 𝛽)

,

где 𝜙𝑤,𝑡 – вероятность получить слово 𝑤 в теме 𝑡, а 𝜃𝑑,𝑡 –вероятность получить тему 𝑡 в документе 𝑑.

33

Page 74: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Варианты и расширения модели LDA

• В последние десять лет эта модель стала основой длямножества различных расширений.

• Каждое из этих расширений содержит либо вариационныйалгоритм вывода, либо алгоритм сэмплирования по Гиббсудля модели, которая, основываясь на LDA, включает в себяещё и какую-либо дополнительную информацию илидополнительные предполагаемые зависимости.

• Обычно – или дополнительная структура на темах, илидополнительная информация.

34

Page 75: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Коррелированные тематические модели

• В базовой модели LDA распределения слов по темамнезависимы и никак не скоррелированы; однако на самомделе, конечно, некоторые темы ближе друг к другу, многиетемы делят между собой слова.

• Коррелированные тематические модели (correlated topicmodels, CTM); отличие от базового LDA здесь в том, чтоиспользуется логистическое нормальное распределениевместо распределения Дирихле; логистическое нормальноераспределение более выразительно, оно можетмоделировать корреляции между темами.

• Предлагается алгоритм вывода, основанный навариационном приближении.

35

Page 76: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Марковские тематические модели

• Марковские тематические модели (Markov topic models, MTM):марковские случайные поля для моделированиявзаимоотношений между темами в разных частях датасета(разных корпусах текстов).

• MTM состоит из нескольких копий гиперпараметров 𝛽𝑖 в LDA,описывающих параметры разных корпусов с одними и темиже темами. Гиперпараметры 𝛽𝑖 связаны между собой вмарковском случайном поле (Markov random field, MRF).

• В результате тексты из 𝑖-го корпуса порождаются как вобычном LDA, используя соответствующее 𝛽𝑖.

• В свою очередь, 𝛽𝑖 подчиняются априорным ограничениям,которые позволяют «делить» темы между корпусами,задавать «фоновые» темы, присутствующие во всех корпусах,накладывать ограничения на взаимоотношения междутемами и т.д.

36

Page 77: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Марковские тематические модели

37

Page 78: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Реляционная тематическая модель

• Реляционная тематическая модель (relational topic model,RTM) – иерархическая модель, в которой отражён графструктуры сети документов.

• Генеративный процесс в RTM работает так:• сгенерировать документы из обычной модели LDA;• для каждой пары документов 𝑑1, 𝑑2 выбрать бинарнуюпеременную 𝑦12, отражающую наличие связи между 𝑑1 и 𝑑2:

𝑦12 ∣ z𝑑1 , z𝑑2 ∼ 𝜓(⋅ ∣ z𝑑1 , z𝑑2 , 𝜂).

• В качестве 𝜓 берутся разные сигмоидальные функции;разработан алгоритм вывода, основанный на вариационномприближении.

38

Page 79: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Модели, учитывающие время

• Ряд важных расширений LDA касается учёта трендов, т.е.изменений в распределениях тем, происходящих современем.

• Цель – учёт времени, анализ «горячих» тем, анализ того,какие темы быстро становятся «горячими» и столь же быстрозатухают, а какие проходят «красной нитью» через весьисследуемый временной интервал.

39

Page 80: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Topics over Time

• В модели TOT (Topics over Time) время предполагаетсянепрерывным, и модель дополняетсябета-распределениями, порождающими временные метки(timestamps) для каждого слова.

• Генеративная модель модели Topics over Time такова:• для каждой темы 𝑧 = 1..𝑇 выбрать мультиномиальноераспределение 𝜙𝑧 из априорного распределения Дирихле 𝛽;

• для каждого документа 𝑑 выбрать мультиномиальноераспределение 𝜃𝑑 из априорного распределения Дирихле 𝛼,затем для каждого слова 𝑤𝑑𝑖 ∈ 𝑑:

• выбрать тему 𝑧𝑑𝑖 из 𝜃𝑑 ;• выбрать слово 𝑤𝑑𝑖 из распределения 𝜙𝑧𝑑𝑖 ;• выбрать время 𝑡𝑑𝑖 из бета-распределения 𝜓𝑧𝑑𝑖 .

40

Page 81: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Topics over Time

• Основная идея заключается в том, что каждой темесоответствует её бета-распределение 𝜓𝑧, т.е. каждая темалокализована во времени (сильнее или слабее, взависимости от параметров 𝜓𝑧).

• Таким образом можно как обучить глобальные темы, которыевсегда присутствуют, так и подхватить тему, которая вызваласильный краткий всплеск, а затем пропала из виду; разницабудет в том, что дисперсия 𝜓𝑧 будет в первом случае меньше,чем во втором.

41

Page 82: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Topics over Time

42

Page 83: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Динамические тематические модели

• Динамические тематические модели представляютвременную эволюцию тем через эволюцию ихгиперпараметров 𝛼 и/или 𝛽.

• Бывают дискретные ([d]DTM), в которых время дискретно, инепрерывные, где эволюция гиперпараметра 𝛽 (𝛼 здесьпредполагается постоянным) моделируется посредствомброуновского движения: для двух документов 𝑖 и 𝑗 (𝑗 позже 𝑖)верно, что

𝛽𝑗,𝑘,𝑤 ∣ 𝛽𝑖,𝑘,𝑤, 𝑠𝑖, 𝑠𝑗 ∼ 𝒩(𝛽𝑖,𝑘,𝑤, 𝑣Δ𝑠𝑖,𝑠𝑗),

где 𝑠𝑖 и 𝑠𝑗 – это отметки времени (timestamps) документов 𝑖 и𝑗, Δ(𝑠𝑖, 𝑠𝑗) – интервал времени, прошедший между ними, 𝑣 –параметр модели.

• В остальном генеративный процесс остаётся неизменным.

43

Page 84: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Непрерывная динамическая тематическая модель (cDTM)

44

Page 85: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Supervised LDA

• Supervised LDA: документы снабжены дополнительнойинформацией, дополнительной переменной отклика(обычно известной).

• Распределение отклика моделируется обобщённойлинейной моделью (распределением из экспоненциальногосемейства), параметры которой связаны с полученным вдокументе распределением тем.

• Т.е. в генеративную модель добавляется ещё один шаг:после того как темы всех слов известны,

• сгенерировать переменную–отклик 𝑦 ∼ glm(z, 𝜂, 𝛿), где z –распределение тем в документе, а 𝜂 и 𝛿 – другие параметрыglm.

• К примеру, в контексте рекомендательных системдополнительный отклик может быть реакцией пользователя.

45

Page 86: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

DiscLDA

• Дискриминативное LDA (DiscLDA), другое расширение моделиLDA для документов, снабжённых категориальнойпеременной 𝑦, которая в дальнейшем станет предметом дляклассификации.

• Для каждой метки класса 𝑦 в модели DiscLDA вводитсялинейное преобразование 𝑇 𝑦 ∶ ℝ𝐾 → ℝ𝐿

+, котороепреобразует 𝐾-мерное распределение Дирихле 𝜃 в смесь𝐿-мерных распределений Дирихле 𝑇 𝑦𝜃.

• В генеративной модели меняется только шаг порождениятемы документа 𝑧: вместо того чтобы выбирать 𝑧 пораспределению 𝜃, сгенерированному для данного документа,

• сгенерировать тему 𝑧 по распределению 𝑇 𝑦𝜃, где 𝑇 𝑦 –преобразование, соответствующее метке данного документа 𝑦.

46

Page 87: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

DiscLDA

47

Page 88: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

TagLDA

• TagLDA: слова имеют теги, т.е. документ не является единыммешком слов, а состоит из нескольких мешков, и в разныхмешках слова отличаются друг от друга.

• Например, у страницы может быть название – слова изназвания важнее для определения темы, чем просто изтекста. Или, например, теги к странице, поставленныечеловеком – опять же, это слова гораздо более важные, чемслова из текста.

• Математически разница в том, что теперь распределенияслов в темах – это не просто мультиномиальные дискретныераспределения, они факторизованы на распределениеслово-тема и распределение слово-тег.

48

Page 89: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

TagLDA

49

Page 90: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Author-Topic model

• Author-Topic modeling: кроме собственно текстов,присутствуют их авторы; или автор тоже представляется какраспределение на темах, на которые он пишет, или текстыодного автора даже на разные темы будут похожи.

• Базовая генеративная модель Author-Topic model (остальноекак в базовом LDA):

• для каждого слова 𝑤:• выбираем автора 𝑥 для этого слова из множества авторовдокумента 𝑎𝑑 ;

• выбираем тему из распределения на темах, соответствующегоавтору 𝑥;

• выбираем слово из распределения слов, соответствующего этойтеме.

50

Page 91: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Author-Topic model

51

Page 92: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Author-Topic model

• Алгоритм сэмплирования, соответствующий такой модели,является вариантом сжатого сэмплирования по Гиббсу:

𝑝(𝑧𝑤 = 𝑡, 𝑥𝑤 = 𝑎 ∣ 𝑧−𝑤, 𝑥−𝑤, 𝑤, 𝛼, 𝛽) ∝

∝ 𝑛(𝑎)−𝑎,𝑡 + 𝛼

∑𝑡′∈𝑇 (𝑛(𝑎)−𝑤,𝑡′ + 𝛼)

𝑛(𝑤)−𝑤,𝑡 + 𝛽

∑𝑤′∈𝑊 (𝑛(𝑤′)−𝑤,𝑡 + 𝛽)

,

где 𝑛(𝑎)−𝑎,𝑡 – то, сколько раз автору 𝑎 соответствовала тема 𝑡, не

считая текущего значения 𝑥𝑤, а 𝑛(𝑤)−𝑤,𝑡 – число раз, которое

слово 𝑤 было порождено из темы 𝑡, не считая текущегозначения 𝑧𝑤; заметим, что оба этих счётчика зависят отдругих переменных 𝑧−𝑤, 𝑥−𝑤.

• Давайте теперь чуть подробнее разберём тематическиемодели с сентиментом...

52

Page 93: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Joint Sentiment-Topic

• JST: темы зависят оттональностей израспределения 𝜋𝑑документа, слова зависят отпар тональность-тема.

• Порождающий процесс –для каждой позиции слова𝑗:(1) выберем метку

тональности 𝑙𝑗 ∼ Mult(𝜋𝑑);(2) выберем тему

𝑧𝑗 ∼ Mult(𝜃𝑑,𝑙𝑗 );(3) выберем слово

𝑤 ∼ Mult(𝜙𝑙𝑗,𝑧𝑗 ).

53

Page 94: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Joint Sentiment-Topic

• В сэмплировании по Гиббсу можно выинтегрировать 𝜋𝑑:

𝑝(𝑧𝑗 = 𝑡, 𝑙𝑗 = 𝑘 ∣ 𝑧−𝑗, 𝑤, 𝛼, 𝛽, 𝛾, 𝜆) ∝𝑛¬𝑗

∗,𝑘,𝑡,𝑑 + 𝛼𝑡𝑘

𝑛¬𝑗∗,𝑘,∗,𝑑 + ∑𝑡 𝛼𝑡𝑘

⋅𝑛¬𝑗

𝑤,𝑘,𝑡,∗ + 𝛽𝑘𝑤

𝑛¬𝑗∗,𝑘,𝑡,∗ + ∑𝑤 𝛽𝑘𝑤

⋅𝑛¬𝑗

∗,𝑘,∗,𝑑 + 𝛾𝑛¬𝑗

∗,∗,∗,𝑑 + 𝑆𝛾,

где 𝑛𝑤,𝑘,𝑡,𝑑 — число слов 𝑤, порождённых темой 𝑡 и меткойтональности 𝑘 в документе 𝑑, 𝛼𝑡𝑘 — априорноераспределение Дирихле для темы 𝑡 с меткой тональности 𝑘.

53

Page 95: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Aspect and Sentiment Unification Model

• ASUM: aspects + sentimentдля обзоров пользователей;разбиваем обзор напредложения, предполагая,что в каждом предложенииодин аспект.

• Базовая модель – SentenceLDA (SLDA): для каждогоотзыва 𝑑 с распределением𝜃𝑑, для каждогопредложения в 𝑑,(1) выбираем метку

тональности 𝑙𝑠 ∼ Mult(𝜋𝑑),(2) выбираем тему

𝑡𝑠 ∼ Mult(𝜃𝑑𝑙𝑠 ) приусловии тональности 𝑙𝑠,

(3) порождаем слова𝑤 ∼ Mult(𝜙𝑙𝑠𝑡𝑠 ). 54

Page 96: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Сэмплирование по Гиббсу в ASUM

• Обозначим через 𝑠𝑘,𝑡,𝑑 число предложений (а не слов),которым присвоена тема 𝑡 и метка 𝑡 в документе 𝑑:

𝑝(𝑧𝑗 = 𝑡, 𝑙𝑗 = 𝑘 ∣ 𝑙−𝑗, 𝑧−𝑗, 𝑤, 𝛾, 𝛼, 𝛽) ∝𝑠¬𝑗

𝑘,𝑡,𝑑 + 𝛼𝑡

𝑠¬𝑗𝑘,∗,𝑑 + ∑𝑡 𝛼𝑡

⋅𝑠¬𝑗

𝑘,∗,𝑑 + 𝛾𝑘

𝑠¬𝑗∗,∗,𝑑 + ∑𝑘′ 𝛾𝑘′

×

×Γ (𝑛¬𝑗

∗,𝑘,𝑡,∗ + ∑𝑤 𝛽𝑘𝑤)Γ (𝑛¬𝑗

∗,𝑘,𝑡,∗ + ∑𝑤 𝛽𝑘𝑤 + 𝑊∗,𝑗)∏𝑤

Γ (𝑛¬𝑗𝑤,𝑘,𝑡,∗ + 𝛽𝑘𝑤 + 𝑊𝑤,𝑗)Γ (𝑛¬𝑗

𝑤,𝑘,𝑡,∗ + 𝛽𝑘𝑤),

где 𝑊𝑤,𝑗 – число слов 𝑤 в предложении 𝑗.

55

Page 97: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

User-Aware Sentiment Topic Models

• USTM: добавим ещё метаданные/теги для пользователя(место, пол, возраст и т.п.) к темам и тональностям.

• Каждый документ снабжён комбинацией тегов, темыпорождаются при условии тегов, тональности при условиитроек (документ, тег, тема), слова при условии тем,тональностей и тегов.

• Формально, распределение тегов 𝜓𝑑 порождается длякаждого документа (с априорным распределением Дирихле спараметром 𝜂), для каждой позиции 𝑗 порождаем тег𝑎𝑗 ∼ Mult(𝜓𝑑) из 𝜓𝑑, а распределения тем, тональностей ислов будут условными по тегу 𝑎𝑗.

56

Page 98: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Графическая модель USTM

57

Page 99: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Сэмплирование по Гиббсу для USTM

• Обозначим через 𝑛𝑤,𝑘,𝑡,𝑚,𝑑 число слов 𝑤, порождённыхтемой 𝑡, меткой тональности 𝑘 и тегом метаданных 𝑚 вдокументе 𝑑; тогда

𝑝(𝑧𝑗 = 𝑡, 𝑙𝑗 = 𝑘, 𝑎𝑗 = 𝑚 ∣ 𝑙−𝑗, 𝑧−𝑗, 𝑎−𝑗, 𝑤, 𝛾, 𝛼, 𝛽) ∝𝑛¬𝑗

∗,∗,𝑡,𝑚,𝑑 + 𝛼𝑛¬𝑗

∗,∗,∗,𝑚,𝑑 + 𝑇 𝑀𝑑𝛼⋅ 𝑛¬𝑗

𝑤,∗,𝑡,𝑚,∗ + 𝛽𝑛¬𝑗

∗,∗,𝑡,𝑚,∗ + 𝑊𝛽⋅

𝑛¬𝑗𝑤,𝑘,𝑡,𝑚,∗ + 𝛽𝑤𝑘

𝑛¬𝑗∗,𝑘,𝑡,𝑚,∗ + ∑𝑤 𝛽𝑤𝑘

⋅𝑛¬𝑗

∗,𝑘,𝑡,𝑚,𝑑 + 𝛾𝑛¬𝑗

∗,∗,𝑡,𝑚,𝑑 + 𝑆𝛾,

где 𝑀𝑑 — число тегов в документе 𝑑.

58

Page 100: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Примеры тем

# sent. sentiment words

1neu соус, салат, кусочек, сыр, тарелка, овощ, масло, лук, перецpos приятный, атмосфера, уютный, вечер, музыка, ужин, романтическийneg ресторан, официант, внимание, сервис, обращать, обслуживать, уровень

2neu столик, заказывать, вечер, стол, приходить, место, заранее, встречатьpos место, хороший, вкус, самый, приятный, вполне, отличный, интересныйneg еда, вообще, никакой, заказывать, оказываться, вкус, ужасный, ничто

3neu девушка, спрашивать, вопрос, подходить, официантка, официант, говоритьpos большой, место, выбор, хороший, блюдо, цена, порция, небольшой, плюсneg цена, обслуживание, качество, уровень, кухня, средний, ценник, высоко

59

Page 101: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Примеры окрашенных слов для разных аспектов

aspect sentiment wordsбаранина вкусный, сытный, аппетитный, душистый, деликатесный, сладкий,

ароматный, черствый, ароматичный, пресныйкараоке музыкальный, попсовый, классно, развлекательный, улетныйпирог вкусный, аппетитный, обсыпной, сытный, черствый, ароматный,

сладкийресторан шикарный, фешенебельный, уютный, люкс, роскошный, недорогой,

шикарно, престижный, модный, развлекательный,вывеска обветшалый, выцветший, аляповатый, фешенебельный, фанерный,

респектабельный, помпезный, ржавыйадминистратор люкс, неисполнительный, ответственный, компетентный, толстяк,

высококвалифицированный, высококлассный, толстякинтерьер уют, уютны, стильный, просторный, помпезный, роскошный,

шикарный, шикарный, мрачноватый, комфортабельныйвежливый вежливый, учтивы, обходительный, доброжелательный, тактичный

60

Page 102: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Краткое резюме

1. Основы обработки текстов: какие задачи нужно уметьрешать.

2. Классический метод категоризации: наивный байесовскийклассификатор.

3. Обобщаем наивный байес: кластеризация EM-алгоритмом.4. Тематическое моделирование: pLSA, LDA, расширения LDA.

61

Page 103: Естественные языки: от наивного Байеса к ...sergey/teaching/mlspsu18/18...Примерытем # sent. sentimentwords 1 neu соус,салат,кусочек,сыр,тарелка,овощ,масло,лук,перец

Спасибо!

Спасибо за внимание!

62