34
Коллаборативная фильтрация Онлайн-модели Рекомендательные системы Сергей Николенко Computer Science Club, Екатеринбург, 2011 Сергей Николенко Рекомендательные системы

20111202 machine learning_nikolenko_lecture07

Embed Size (px)

Citation preview

Page 1: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Рекомендательные системы

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

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

Сергей Николенко Рекомендательные системы

Page 2: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Outline

1 Коллаборативная фильтрацияОсновные методы и моделиPMF

2 Онлайн-моделиПостановка задачи и бандитыDGP

Сергей Николенко Рекомендательные системы

Page 3: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Рекомендательные системы

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

1 мы продаём какие-то товары или услуги онлайн; у нас естьпользователи, которые либо явно оценивают товары, либопросто что-то покупают, а что-то нет; интереснопорекомендовать товар, который данному покупателюмаксимально понравится; Netflix, Amazon;

2 мы – портал, делаем деньги тем, что размещаем рекламу,надо разместить ссылки, по которым пользователи захотятпереходить (и видеть ещё больше вкусной рекламы);Yahoo!, Google, Яндекс, большинство новостных сайтов.

Сергей Николенко Рекомендательные системы

Page 4: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Онлайн vs. оффлайн

У рекомендательной системы есть два разных «уровня»,на которых она должна работать:

глобальные оценки, медленно меняющиеся особенности ипредпочтения, интересные страницы, зависимость от userfeatures (география, пол etc.) и т.д.;кратковременные тренды, hotness, быстрые измененияинтереса во времени.

Сергей Николенко Рекомендательные системы

Page 5: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Онлайн vs. оффлайн

Это очень разные задачи с разными методами, поэтомуразличают два класса моделей.

Оффлайн-модели выявляют глобальные закономерности(обычно это и называется коллаборативной фильтрацией).Цель зачастую в том, чтобы найти и рекомендоватьчеловеку то, что ему понравится, из достаточно редкихвещей, работать с «длинными хвостами» распределенийинтересов людей и веб-страниц.Онлайн-модели должны реагировать очень быстро(поэтому там обычно подходы попроще, как правило, неиндивидуализированные), они выявляют кратковременныетренды, позволяют рекомендовать то, что hot прямосейчас.

Сергей Николенко Рекомендательные системы

Page 6: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

GroupLens

Начнём краткий обзор разных рекомендательных систем сколлаборативной фильтрации.Обозначения:

индекс i всегда будет обозначать пользователей (всегопользователей будет N, i = 1..N);индекс a – предметы (сайты, товары, фильмы...), которыемы рекомендуем (всего M, a = 1..M);xi – набор (вектор) признаков (features) пользователя, xa –набор признаков предмета;когда пользователь i оценивает предмет a, он производитотклик (response, rating) ri,a; этот отклик – случайнаявеличина, конечно.

Наша задача – предсказывать оценки ri ,a, зная признаки xi

и xa для всех элементов базы и зная некоторые ужерасставленные в базе ri ′,a ′ . Предсказание будем обозначатьчерез r̂i ,a.

Сергей Николенко Рекомендательные системы

Page 7: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

GroupLens

Начнём с небайесовских методов. Метод ближайшихсоседей: давайте введём расстояние междупользователями и будем рекомендовать то, что нравитсявашим соседям.Расстояние:

коэффициент корреляции (коэффициент Пирсона)

wi,j =

∑a (ri,a − �ra) (rj,a − �ra)√∑

a (ri,a − �ra)2√∑

a (rj,a − �ra)2,

где �ra – средний рейтинг продукта a среди всехпользователей;косинус угла между векторами рейтингов, выставленных iи j , т.е.

wi,j =

∑a ri,arj,a√∑

a r2i,a

√∑a r2

j,a

.

Сергей Николенко Рекомендательные системы

Page 8: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

GroupLens

Простейший способ построить предсказание новогорейтинга r̂i ,a – сумма рейтингов других пользователей,взвешенная их похожестью на пользователя i :

r̂i ,a = �ra +

∑j (rj ,a − �rj)wi ,j∑

j |wi ,j |.

Это называется GroupLens algorithm – так работал дедушкарекомендательных систем GroupLens.

Чтобы не суммировать по всем пользователям, можноограничиться ближайшими соседями:

r̂i ,a = �ra +

∑j∈kNN(i) (rj ,a − �rj)wi ,j∑

j∈kNN(i) |wi ,j |.

Сергей Николенко Рекомендательные системы

Page 9: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

GroupLens

Естественно предположить, что продукты, которые любятили не любят практически все пользователи, не слишкомполезны в определении ближайшего соседа.Поэтому естественно взвесить продукты по тому, как частоих уже оценивали пользователи; такая метрика называетсяiuf – inverse user frequency, обратная частота пользователей:fa = log N

Na, где N – общее число пользователей, Na –

число оценивших продукт a. Получается

w idfi,j =

∑a fa

∑a fari,arj,a −

(∑a fari,a)

) (∑a farj,a

)√∑a fa(∑

a far2i,a −

(∑a fari,a

)2)√∑a fa(∑

a far2j,a −

(∑a farj,a

)2) ,а для косинуса

w idfi,j =

∑a f 2

a ri,arj,a√∑a(fari,a)2

√∑a(farj,a)2

.

Сергей Николенко Рекомендательные системы

Page 10: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

Из чего складывается рейтинг пользователя i , который онвыдал продукту a?Вполне может быть, что пользователь добрый и всемподряд выдаёт хорошие рейтинги; или, наоборот, злой ирейтинг зажимает.С другой стороны, некоторые продукты попросту лучшедругих.Поэтому мы вводим так называемые базовые предикторы(baseline predictors) bi ,a, которые складываются из базовыхпредикторов отдельных пользователей bi и базовыхпредикторов отдельных продуктов ba, а также простообщего среднего рейтинга по базе µ:

bi ,a = µ+ bi + ba.

Сергей Николенко Рекомендательные системы

Page 11: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

Чтобы найти предикторы, уже нужен байесовский подход:надо добавить нормально распределённый шум и получитьмодель линейной регрессии

ri ,a ∼ µ+ bi + ba.

Можно ввести априорные распределения иоптимизировать; или просто найти среднеквадратическоеотклонение с регуляризатором:

b∗ = arg minb

∑(i ,a)

(ri ,a − µ− bi − ba)2+λ1

(∑i

b2i +

∑a

b2a

).

Сергей Николенко Рекомендательные системы

Page 12: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

С тем, чтобы напрямую обучать оставшуюся матрицупредпочтений вероятностными методами, есть одна оченьсерьёзная проблема – матрица X , выражающая рейтинги,содержит N ×M параметров, гигантское число, которое,конечно, никак толком не обучить.

Более того, обучать их и не надо – как мы уже говорили,данные очень разреженные, и «на самом деле» свободныхпараметров гораздо меньше, проблема только с тем, каких выделить.

Поэтому обычно число независимых параметров моделинеобходимо уменьшать.

Сергей Николенко Рекомендательные системы

Page 13: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

Метод SVD (singular value decomposition) – разложимматрицу X в произведение матриц маленького ранга.

Зафиксируем некоторое число f скрытых факторов,которые так или иначе описывают каждый продукт ипредпочтения каждого пользователя относительно этихфакторов.

Пользователь – вектором pi ∈ Rf , который показывает,насколько пользователь предпочитает те или иныефакторы; продукт – вектор qa ∈ Rf , который показывает,насколько выражены те или иные факторы в этомпродукте.

Сергей Николенко Рекомендательные системы

Page 14: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

Предпочтение в итоге будем подсчитывать просто какскалярное произведение q>a pi =

∑fj=1 qa,jpi ,j .

Таким образом, добавляя теперь сюда baseline-предикторы,получаем следующую модель предсказаний рейтингов:

r̂i ,a ∼ µ+ bi + ba + q>a pi .

Сергей Николенко Рекомендательные системы

Page 15: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

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

r̂i ,a = µ+ bi + ba + q>a

pi +1√|V (i)|

∑b∈V (i)

yb

,где V (i) – множество продуктов, которые просматривалэтот пользователь ( 1√

|V (i)|контролирует дисперсию).

Это называется SVD++, и эта модель была одним изосновных компонентов модели, взявшей Netflix Prize.

Сергей Николенко Рекомендательные системы

Page 16: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Вероятностное разложение матриц

Пусть мы хотим построить разложение матрицы рейтинговна матрицы меньшего ранга:

R̂ = U>V .

Вероятностно мы имеем правдоподобие

p(R | U,V , σ2) =∏

i

∏a

[N (ri ,a | u>i vj , σ

2][i оценил a]

.

Добавим гауссовские априорные распределения на U и V :

p(U | σ2U) =

∏i

N (Ui | 0, σ2U I ), p(V | σ2

V ) =∏a

N (Va | 0, σ2V I ).

Сергей Николенко Рекомендательные системы

Page 17: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

Вероятностное разложение матриц

Модификация: пользователи с малым числом оценок вPMF получат апостериорные распределения, оченьпохожие на «среднего пользователя».Чтобы на редких пользователей лучше обобщалось,добавим ещё факторы, которые меняют априорноераспределение факторов у пользователя в зависимости оттого, сколько и чего он оценил:

Ui = Yi +

∑a[i оценил a]Wa∑

a[i оценил a].

Матрица W показывает, как влияет на априорноераспределениеТоже в качестве регуляризатора берём априорныйгауссиан:

p(W | σ2W ) =

∏i

N (Wi | 0, σ2W I ).

Сергей Николенко Рекомендательные системы

Page 18: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

Основные методы и моделиPMF

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

Сергей Николенко Рекомендательные системы

Page 19: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Outline

1 Коллаборативная фильтрацияОсновные методы и моделиPMF

2 Онлайн-моделиПостановка задачи и бандитыDGP

Сергей Николенко Рекомендательные системы

Page 20: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

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

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

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

Поэтому онлайн-методы обычно не персонализированы.

Сергей Николенко Рекомендательные системы

Page 21: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

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

Казалось бы, что может быть проще – есть наборпродуктов/сайтов a1, . . . , aM со средними рейтингами�r1, . . . ,�rM ; давайте упорядочим их по среднему рейтингу ибудем рекомендовать пользователю продукты снаивысшим средним рейтингом.

Однако такая система не будет достаточно чувствительнойк быстрым изменениям истинного среднего рейтинга:представьте, что �ri внезапно резко уменьшился – можетпонадобиться очень много новых показов, чтобы привестинашу его оценку в соответствие с новым значением.

Сергей Николенко Рекомендательные системы

Page 22: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Пример

Сергей Николенко Рекомендательные системы

Page 23: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Рекомендатели и бандиты

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

Сергей Николенко Рекомендательные системы

Page 24: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Рекомендатели и бандиты

Кратко пройдёмся по основным стратегиям:ε-жадная стратегия (вариант: ε-начальная стратегия);ε-убывающая стратегия: сделать так, чтобы ε убывало современем;softmax-стратегии: выбираем ручки с вероятностями,связанными с уже успевшей накопиться информацией;вероятность pk дёрнуть за ручку k равна

pk =eµ̂k/τ∑ni=1 eµ̂k/τ

,

где µ̂k – наша текущая оценка среднего µk , а τ – параметрстратегии, называющийся температурой (этобольцмановское распределение из статистическойфизики); температуру обычно постепенно понижают;

Сергей Николенко Рекомендательные системы

Page 25: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Рекомендатели и бандиты

Кратко пройдёмся по основным стратегиям:стратегия Exp3: если мы получили неожиданныйрезультат – выбрали ручку с маленькой вероятностью, нополучили при этом большой доход – стоит попробоватьисследовать эту ручку дальше; вероятность выбрать нашаге t ручку k равна

pk(t) = (1− γ)wk(t)∑ni=1 wi (t)

n, где

wj(t + 1) = wj(t)eγ

rj (t)pj (t)n ,

если ручку j дёргали на шаге t с наблюдаемой наградойrj(t).

Сергей Николенко Рекомендательные системы

Page 26: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Рекомендатели и бандиты

Кратко пройдёмся по основным стратегиям:Стратегия IntEstim. Совершенно другой подход, более«честный» вероятностно – подсчитывать для каждогоавтомата доверительный интервал с верхней границей(1− α) (в некоторых предположениях, конечно), где α –параметр стратегии, а затем выбирать автомат, у которогомаксимальна верхняя граница доверительного интервала.Такой интервал легко подсчитать для (нашего) булевогослучая испытаний Бернулли, когда награда фактическиравна либо 0, либо 1 (понравилось или нет), он равен[�p − zα

√�p(1−�p)

n , �p + zα√

�p(1−�p)n

], где �p =

∑ri

n – текущее

среднее, а zα берётся из таблиц (специальных функций);например, для α = 0.05 будет zα = 1.96.

Сергей Николенко Рекомендательные системы

Page 27: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Рекомендатели и бандиты

Кратко пройдёмся по основным стратегиям:Стратегия UCB1. Учитывает неопределённость,«оставшуюся» в той или иной ручке, старается ограничитьregret. Если мы из n экспериментов ni раз дёрнули за i-юручку и получили среднюю награду µ̂i , алгоритм UCB1присваивает ей приоритет

Priorityi = µ̂i +

√2 log n

ni.

Дёргать дальше надо за ручку с наивысшим приоритетом.

Сергей Николенко Рекомендательные системы

Page 28: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

DGP

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

Модель Dynamic Gamma–Poisson (DGP): фиксируемпериод времени t (небольшой) и будем считать показы иклики (рейтинги, отметки «like» и т.д.) за время t.

Пусть мы в течение периода t показали продукт nt раз иполучили суммарный рейтинг rt (если это ссылки настранице, например, то будет суммарное число кликовrt ≤ nt).

Тогда нам в каждый момент t дана последовательностьn1, r1, n2, r2, . . . , nt , rt , и мы хотим предсказать pt+1 (доляуспешных показов в момент t + 1, CTR).

Сергей Николенко Рекомендательные системы

Page 29: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

DGP

Вероятностные предположения модели DGP:1 (rt | nt , pt) ∼ Poisson(nt , pt) (для данного nt и pt , rt

распределено по пуассоновскому распределению).2 pt = εtpt−1, где εt ∼ Gamma(µ = 1, σ = η) (средняя доля

успешных показов pt меняется не слишком быстро, а путёмумножения на случайную величину εt , которая имеетгамма-распределение вокруг единицы).

3 Параметрами модели являются параметры распределенияp1 ∼ Gamma(µ = µ0, σ = σ0), а также параметр η, которыйпоказывает, насколько «гладко» может изменяться pt .

4 Соответственно, задача заключается в том, чтобы оценитьпараметры апостериорного распределения

(pt+1 | n1, r1, n2, r2, . . . , nt , rt) ∼ Gamma(µ = ?, σ = ?).

Сергей Николенко Рекомендательные системы

Page 30: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

DGP

Можно пересчёт параметров в этой модели явновычислить аналитически.Пусть на предыдущем шаге t − 1 мы получили некоторуюоценку µt , σt для параметров модели:

(pt | n1, r1, n2, r2, . . . , nt−1, rt−1) ∼ Gamma(µ = µt , σ = σt),

а затем получили новую точку (nt , rt).Тогда, обозначив γt =

µtσ2

t(эффективный размер выборки),

сначала уточним оценки µt , σt :

γt |t = γt + nt ,

µt |t =µtγt + rtγt |t

,

σ2t |t =

µt |t

γt |t.

Сергей Николенко Рекомендательные системы

Page 31: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

DGP

А затем породим новое предсказание для(pt+1 | n1, r1, . . . , nt , rt):

µt+1 = µt |t ,

σ2t+1 = σ2

t |t + η(µ2

t |t + σ2t |t

).

Сергей Николенко Рекомендательные системы

Page 32: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Пример

Сергей Николенко Рекомендательные системы

Page 33: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Априорное распределение

Тут интересный вопрос – чем инициализировать;поскольку надо всё делать быстро, хорошее априорноераспределение очень важно.Пусть в тестовой выборке N записей, для которыхизвестны показатели r (i)1 и n(i)1 (число показов и успешныхпоказов за первый период времени); мы хотим получитьоценку µ0 и σ0 для нового, неизвестного сайта, котораядолжна хорошо аппроксимировать ожидаемое r1 и n1 длянового сайта.Тогда ответ такой – её нужно считать как

arg maxµ0,σ0

[Nµ2

0

σ20

logµ0

σ20− N log Gamma

(µ2

0

σ20

)+

+∑

i

(log Gamma

[r (i)1 +

µ20

σ20

]−

[r (i)1 +

µ20

σ20

]log[n(i)

1 +µ0

σ20

]).

Сергей Николенко Рекомендательные системы

Page 34: 20111202 machine learning_nikolenko_lecture07

Коллаборативная фильтрацияОнлайн-модели

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

Thank you!

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

Сергей Николенко Рекомендательные системы