20111202 machine learning_nikolenko_lecture06

44
Категоризация текстов Модели поведения пользователей LDA и CCM Сергей Николенко Computer Science Club, Екатеринбург, 2011 Сергей Николенко LDA и CCM

Transcript of 20111202 machine learning_nikolenko_lecture06

Page 1: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

LDA и CCM

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

Computer Science Club, Екатеринбург, 2011

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

Page 2: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

Outline

1 Категоризация текстовNaive BayesLatent Dirichlet allocation

2 Модели поведения пользователейClick chain modelTask-centric click model

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

Page 3: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

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

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

Атрибуты a1, a2, . . . , an – это слова, v – тема текста (илиатрибут вроде «спам / не спам»).

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

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

Page 4: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

Naive Bayes

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

Но и это ещё не всё: получается, чтоp(a1, a2, . . . , an|x = v) – это вероятность в точности такогонабора слов в сообщениях на разные темы. Очевидно,такой статистики взять неоткуда.

Значит, надо дальше делать упрощающие предположения.

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

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

Page 5: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

Naive Bayes

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

p(a1, a2, . . . , an|x = v) = p(a1|x = v)p(a2|x = v) . . . p(an|x = v).

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

vNB(a1, a2, . . . , an) = arg maxv∈V p(x = v)n∏

i=1

p(ai |x = v).

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

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

Page 6: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

В деталях реализации наивного байесовскогоклассификатора прячется небольшой дьяволёнок.

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

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

Page 7: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

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

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

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

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

Page 8: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Математически: пусть V = {wt }|V |t=1 – словарь. Тогда

документ di – это вектор длины |V |, состоящий из битовBit ; Bit = 1 iff слово wt встречается в документе di .

Правдоподобие принадлежности di классу cj :

p(di | cj) =

|V |∏t=1

(Bitp(wt | cj) + (1− Bit)(1− p(wt | cj))) .

Для обучения такого классификатора нужно обучитьвероятности p(wt | cj).

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

Page 9: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Обучение – дело нехитрое: пусть дан набор документовD = {di }

|D |i=1, которые уже распределены по классам cj

(возможно, даже вероятностно распределены), дан словарьV = {wt }

|V |t=1, и мы знаем биты Bit (знаем документы).

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

p(wt | cj) =1+

∑|D |i=1 Bitp(cj | di )

2+∑|D |

i=1 p(cj | di ).

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

Page 10: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Априорные вероятности классов можно подсчитать какp(cj) =

1|D |

∑|D |i=1 p(cj | di ).

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

c = arg maxjp(cj )p(di | cj ) =

= arg maxj

1|D |

|D|∑i=1

p(cj | di )

|V |∏t=1

(Bitp(wt | cj ) + (1 − Bit)(1 − p(wt | cj ))) =

= arg maxj

log(|D|∑i=1

p(cj | di )) +

|V |∑t=1

log (Bitp(wt | cj ) + (1 − Bit)(1 − p(wt | cj )))

.

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

Page 11: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

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

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

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

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

Page 12: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Математически: пусть V = {wt }|V |t=1 – словарь. Тогда

документ di – это вектор длины |di |, состоящий из слов,каждое из которых «вынуто» из словаря с вероятностьюp(wt | cj).

Правдоподобие принадлежности di классу cj :

p(di | cj) = p(|di |)|di |!

|V |∏t=1

1Nit !

p(wt | cj)Nit ,

где Nit – количество вхождений wt в di .

Для обучения такого классификатора тоже нужно обучитьвероятности p(wt | cj).

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

Page 13: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Обучение: пусть дан набор документов D = {di }|D |i=1,

которые уже распределены по классам cj (возможно, дажевероятностно распределены), дан словарь V = {wt }

|V |t=1, и

мы знаем вхождения Nit .

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

p(wt | cj) =1+

∑|D |i=1 Nitp(cj | di )

|V |+∑|V |

s=1∑|D |

i=1 Nisp(cj | di ).

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

Page 14: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

Априорные вероятности классов можно подсчитать какp(cj) =

1|D |

∑|D |i=1 p(cj | di ).

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

c = arg maxjp(cj )p(di | cj ) =

= arg maxj

1|D |

|D|∑i=1

p(cj | di )

p(|di |)|di |!

|V |∏t=1

1Nit !

p(wt | cj )Nit =

= arg maxj

log

|D|∑i=1

p(cj | di )

+

|V |∑t=1

Nit log p(wt | cj )

.

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

Page 15: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

LDA

Более сложная модель – LDA (Latent Dirichlet Allocation).

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

Мы знаем наивный подход: скрытая переменная – тема,слова получаются из темы независимо по дискретномураспределению.

Аналогично работают и подходы, основанные накластеризации.

Давайте чуть усложним.

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

Page 16: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

LDA

Очевидно, что у одного документа может быть несколькотем; подходы, которые кластеризуют документы по темам,никак этого не учитывают.Давайте построим иерархическую байесовскую модель:

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

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

Page 17: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

LDA

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

Документ – последовательность из N слов w. Нам данкорпус из M документов D = {wd | d = 1..M}.Генеративная модель LDA выглядит так.

1 Выбрать N ∼ p(N | ξ).2 Выбрать θ ∼ Di(α).3 Для каждого из N слов wn:

1 выбрать тему zn ∼ Mult(θ);2 выбрать слово wn ∼ p(wn | zn, β) по мультиномиальному

распределению.

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

Page 18: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

LDA

Мы пока для простоты фиксируем число тем k , считаем,что β – это просто набор параметровβij = p(w j = 1 | z i = 1), которые нужно оценить, и небеспокоимся о распределении на N.

Совместное распределение тогда выглядит так:

p(θ, z,w,N | α,β) = p(N | ξ)p(θ | α)

N∏n=1

p(zn | θ)p(wn | zn, β).

В отличие от обычной кластеризации с априорнымраспределением Дирихле, мы тут не выбираем кластеродин раз, а затем накидываем слова из этого кластера, адля каждого слова выбираем по распределению θ, покакой теме оно будет набросано.

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

Page 19: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

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

Page 20: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

Вывод в LDA

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

p(θ, z | w, α, β) =p(θ, z,w | α,β)

p(w | α,β).

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

p(w | α,β) =Γ(∑

i αi )∏i Γ(αi )

∫ [ k∏i=1

θαi−1i

] N∏n=1

k∑i=1

V∏j=1

(θiβij)w j

n

dθ,

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

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

Page 21: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

Вывод в LDA

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

q(θ, z | w, γ, φ) = p(θ | w, γ)

N∏n=1

p(zn | w, φn).

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

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

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

Page 22: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Naive BayesLatent Dirichlet allocation

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

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

Page 23: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Outline

1 Категоризация текстовNaive BayesLatent Dirichlet allocation

2 Модели поведения пользователейClick chain modelTask-centric click model

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

Page 24: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Постановка задачи

Предположим, что мы – Google или Яндекс, и мы хотимулучшить качество поиска.

Мы показываем пользователю документы по запросу ихотим показывать релевантные документы.

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

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

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

Page 25: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Модель поведения пользователя

Модель поведения из [Guo et al., 2009].

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

Page 26: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Особенности

То есть, по-русски если:1 пользователь читает сверху вниз;2 иногда кликает, когда кликнул, может вернуться обратно и

читать дальше;3 по идее, самый хороший документ – это тот, на который

пользователь кликнул последним.

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

Page 27: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Структура модели

Для каждого документа выдачи (1..10 обычно) введёмпеременные Ei (посмотрел ли; E1 = 1 всегда) и Ci

(кликнул ли).В CCM релевантность Ri – это вероятность клика, еслипосмотрел:

p(Ci = 1 | Ei = 0) = 0, p(Ci = 1 | Ei = 1,Ri ) = Ri .

Каскадная модель просмотра:смотрим сверху вниз: p(Ei+1 = 1 | Ei = 0) = 0,p(E1 = 1) = 1;если не кликнул, то вероятность посмотреть следующий –константа: p(Ei+1 = 1 | Ei = 1,Ci = 0) = α1;если кликнул, то вероятность посмотреть следующийзависит от релевантности линейно в каком-то интервале:p(Ei+1 = 1 | Ei = 1,Ci = 1) = α2(1− Ri ) + α3Ri .

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

Page 28: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

Page 29: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Суть идеи

На самом деле разные клики в истории не независимы.

Если пользователю не нравится выдача, он никуда кликатьне будет, а переформулирует запрос.

Если пользователь уже видел документ, то кликать на негов последующих выдачах он будет с меньшей вероятностью.

Можно идентифицировать сессии, в течение которыхпользователь что-то делал, задавал запросы, куда-токликал, куда-то нет.

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

Page 30: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

TCM

TCM (task-centric click model) – это модель с двумялогическими «уровнями» [Zhang et al., 2011].

На макроуровне пользователь переходит от запроса кзапросу внутри сессии.

Микроуровень, внутри запроса, похож на CCM, только ещёдополнительно обрабатываются повторы.

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

Page 31: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Макроуровень

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

Page 32: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Микроуровень

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

Page 33: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Переменные TCM

Вот какие переменные участвуют в TCM:Mi – подходит ли i-й запрос для того, чего хотелпользователь;Ni – будет ли пользователь ещё запрос подавать после i-го;Ei,j – просмотрит ли j-й документ в i-й выдаче;Hi,j – просматривал ли уже;Fi,j – «свежий» ли документ (Hi,j = 0 ⇒ Fi,j = 1, носвежим может быть и повтор);Ci,j – кликнет ли;(i ′, j ′) – последнее вхождение того же самого документа вдругой сессии.

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

Page 34: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

Page 35: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Что дальше?

Это довольно свежая работа; что дальше?Дальше, в частности, можно учитывать, наверное, время,прошедшее между кликами (сколько временипотребовалось человеку, чтобы понять, что документнерелевантен).Ещё важный момент: релевантность (где нашёл искомое) ипривлекательность (куда хочется кликнуть) – разные вещи!Можно пробовать их явно моделировать (попытки ужебыли).И так далее. Сейчас идёт конкурс «Интернет-математика»от Яндекса, посвящённый click models:http://imat-relpred.yandex.ru. Там в данных как разесть timestamp’ы кликов.Посмотрим, что получится в результате...

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

Page 36: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

Thank you!

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

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

Page 37: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

(γ∗, φ∗) = arg min(γ,φ)

KL(q(θ, z | w, γφ)‖p(θ, z | w, α, β)).

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

log p(w | α,β) = log∫θ

∑z

p(θ, z,w | α,β)dθ =

= log∫θ

∑z

p(θ, z,w | α,β)q(θ, z)q(θ, z)

dθ ≥

≥ Eq [log p(θ, z,w | α,β)]−Eq [log q(θ, z)] =: L(γ,φ;α,β).

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

Page 38: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

L(γ,φ;α,β) = Eq [p(θ | α)]+Eq [p(z | θ)]+Eq [p(w | z, β)] −

− Eq [log q(θ)] − Eq [log q(z)] .

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

E [log(Xi )] = Ψ(αi ) − Ψ(∑

i

αi ),

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

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

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

Page 39: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

L(γ,φ;α, β) = log Γ(k∑

i=1

αi ) −

k∑i=1

log Γ(αi ) +

k∑i=1

(αi − 1)

Ψ(γi ) − Ψ

k∑j=1

γj

+

+

N∑n=1

k∑i=1

φni

Ψ(γi ) − Ψ

k∑j=1

γj

+

+

N∑n=1

k∑i=1

V∑j=1

w jnφni logβij−

− log Γ(k∑

i=1

γi ) +

k∑i=1

log Γ(γi ) −

k∑i=1

(γi − 1)

Ψ(γi ) − Ψ

k∑j=1

γj

N∑n=1

k∑i=1

φni logφni .

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

Page 40: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

Сначала максимизируем его по φni (вероятность того, чтоn-е слово было порождено темой i); надо добавитьλ-множители Лагранжа, т.к.

∑kj=1φnj = 1.

В итоге получится:

φni ∝ βiveΨ(γi )−Ψ(∑k

j=1 γj),

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

n = 1.

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

Page 41: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

Получится

γi = αi +

N∑n=1

φni .

Соответственно, для вывода нужно просто пересчитыватьφni и γi друг через друга, пока оценка не сойдётся.

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

Page 42: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

Теперь давайте попробуем оценить параметры α и β покорпусу документов D.Мы хотим найти α и β, которые максимизируют

`(α,β) =

M∑d=1

log p(wd | α,β).

Подсчитать p(wd | α,β) мы не можем, но у нас естьнижняя оценка L(γ,φ;α,β), т.к.

p(wd | α,β) =

= L(γ,φ;α,β) + KL(q(θ, z | wd , γφ)‖p(θ, z | wd , α, β)).

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

Page 43: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

EM-алгоритм:1 найти параметры {γd , φd | d ∈ D}, которые оптимизируют

оценку (как выше);2 зафиксировать их и оптимизировать оценку по α и β.

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

Page 44: 20111202 machine learning_nikolenko_lecture06

Категоризация текстовМодели поведения пользователей

Click chain modelTask-centric click model

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

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

βij ∝M∑

d=1

Nd∑n=1

φdniw jn.

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

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