Upload
computer-science-club
View
544
Download
3
Embed Size (px)
Citation preview
Коллаборативная фильтрацияОнлайн-модели
Рекомендательные системы
Сергей Николенко
Computer Science Club, Екатеринбург, 2011
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Outline
1 Коллаборативная фильтрацияОсновные методы и моделиPMF
2 Онлайн-моделиПостановка задачи и бандитыDGP
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Рекомендательные системы
Рекомендательные системы анализируют интересыпользователей и пытаются предсказать, что именно будетнаиболее интересно для конкретного пользователя вданный момент времени.Компании–лидеры в рекомендательных системах восновном делятся на две категории:
1 мы продаём какие-то товары или услуги онлайн; у нас естьпользователи, которые либо явно оценивают товары, либопросто что-то покупают, а что-то нет; интереснопорекомендовать товар, который данному покупателюмаксимально понравится; Netflix, Amazon;
2 мы – портал, делаем деньги тем, что размещаем рекламу,надо разместить ссылки, по которым пользователи захотятпереходить (и видеть ещё больше вкусной рекламы);Yahoo!, Google, Яндекс, большинство новостных сайтов.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Онлайн vs. оффлайн
У рекомендательной системы есть два разных «уровня»,на которых она должна работать:
глобальные оценки, медленно меняющиеся особенности ипредпочтения, интересные страницы, зависимость от userfeatures (география, пол etc.) и т.д.;кратковременные тренды, hotness, быстрые измененияинтереса во времени.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Онлайн vs. оффлайн
Это очень разные задачи с разными методами, поэтомуразличают два класса моделей.
Оффлайн-модели выявляют глобальные закономерности(обычно это и называется коллаборативной фильтрацией).Цель зачастую в том, чтобы найти и рекомендоватьчеловеку то, что ему понравится, из достаточно редкихвещей, работать с «длинными хвостами» распределенийинтересов людей и веб-страниц.Онлайн-модели должны реагировать очень быстро(поэтому там обычно подходы попроще, как правило, неиндивидуализированные), они выявляют кратковременныетренды, позволяют рекомендовать то, что hot прямосейчас.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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
.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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 |.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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
.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностные модели
Из чего складывается рейтинг пользователя i , который онвыдал продукту a?Вполне может быть, что пользователь добрый и всемподряд выдаёт хорошие рейтинги; или, наоборот, злой ирейтинг зажимает.С другой стороны, некоторые продукты попросту лучшедругих.Поэтому мы вводим так называемые базовые предикторы(baseline predictors) bi ,a, которые складываются из базовыхпредикторов отдельных пользователей bi и базовыхпредикторов отдельных продуктов ba, а также простообщего среднего рейтинга по базе µ:
bi ,a = µ+ bi + ba.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностные модели
Чтобы найти предикторы, уже нужен байесовский подход:надо добавить нормально распределённый шум и получитьмодель линейной регрессии
ri ,a ∼ µ+ bi + ba.
Можно ввести априорные распределения иоптимизировать; или просто найти среднеквадратическоеотклонение с регуляризатором:
b∗ = arg minb
∑(i ,a)
(ri ,a − µ− bi − ba)2+λ1
(∑i
b2i +
∑a
b2a
).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностные модели
С тем, чтобы напрямую обучать оставшуюся матрицупредпочтений вероятностными методами, есть одна оченьсерьёзная проблема – матрица X , выражающая рейтинги,содержит N ×M параметров, гигантское число, которое,конечно, никак толком не обучить.
Более того, обучать их и не надо – как мы уже говорили,данные очень разреженные, и «на самом деле» свободныхпараметров гораздо меньше, проблема только с тем, каких выделить.
Поэтому обычно число независимых параметров моделинеобходимо уменьшать.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностные модели
Метод SVD (singular value decomposition) – разложимматрицу X в произведение матриц маленького ранга.
Зафиксируем некоторое число f скрытых факторов,которые так или иначе описывают каждый продукт ипредпочтения каждого пользователя относительно этихфакторов.
Пользователь – вектором pi ∈ Rf , который показывает,насколько пользователь предпочитает те или иныефакторы; продукт – вектор qa ∈ Rf , который показывает,насколько выражены те или иные факторы в этомпродукте.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностные модели
Предпочтение в итоге будем подсчитывать просто какскалярное произведение q>a pi =
∑fj=1 qa,jpi ,j .
Таким образом, добавляя теперь сюда baseline-предикторы,получаем следующую модель предсказаний рейтингов:
r̂i ,a ∼ µ+ bi + ba + q>a pi .
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и модели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 ).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Вероятностное разложение матриц
Модификация: пользователи с малым числом оценок вPMF получат апостериорные распределения, оченьпохожие на «среднего пользователя».Чтобы на редких пользователей лучше обобщалось,добавим ещё факторы, которые меняют априорноераспределение факторов у пользователя в зависимости оттого, сколько и чего он оценил:
Ui = Yi +
∑a[i оценил a]Wa∑
a[i оценил a].
Матрица W показывает, как влияет на априорноераспределениеТоже в качестве регуляризатора берём априорныйгауссиан:
p(W | σ2W ) =
∏i
N (Wi | 0, σ2W I ).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Основные методы и моделиPMF
Графическая модель
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Outline
1 Коллаборативная фильтрацияОсновные методы и моделиPMF
2 Онлайн-моделиПостановка задачи и бандитыDGP
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Постановка задачи
Онлайн-модели отличаются от оффлайн-моделей тем, чтоих главная цель – как можно быстрее «поймать»изменения популярности тех или иных продуктов.
Данных тут недостаточно, чтобы такие изменения можнобыло поймать методами коллаборативной фильтрации.
Поэтому онлайн-методы обычно не персонализированы.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Постановка задачи
Казалось бы, что может быть проще – есть наборпродуктов/сайтов a1, . . . , aM со средними рейтингами�r1, . . . ,�rM ; давайте упорядочим их по среднему рейтингу ибудем рекомендовать пользователю продукты снаивысшим средним рейтингом.
Однако такая система не будет достаточно чувствительнойк быстрым изменениям истинного среднего рейтинга:представьте, что �ri внезапно резко уменьшился – можетпонадобиться очень много новых показов, чтобы привестинашу его оценку в соответствие с новым значением.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Пример
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Рекомендатели и бандиты
Если мы хотим быстро оценивать средний рейтинг, то мыпопадём в ситуацию обучения с подкреплением: есть наборпродуктов, их надо рекомендовать, исход заранеенеизвестен, и мы хотим оптимизировать суммарныйрейтинг.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Рекомендатели и бандиты
Кратко пройдёмся по основным стратегиям:ε-жадная стратегия (вариант: ε-начальная стратегия);ε-убывающая стратегия: сделать так, чтобы ε убывало современем;softmax-стратегии: выбираем ручки с вероятностями,связанными с уже успевшей накопиться информацией;вероятность pk дёрнуть за ручку k равна
pk =eµ̂k/τ∑ni=1 eµ̂k/τ
,
где µ̂k – наша текущая оценка среднего µk , а τ – параметрстратегии, называющийся температурой (этобольцмановское распределение из статистическойфизики); температуру обычно постепенно понижают;
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Рекомендатели и бандиты
Кратко пройдёмся по основным стратегиям:Стратегия UCB1. Учитывает неопределённость,«оставшуюся» в той или иной ручке, старается ограничитьregret. Если мы из n экспериментов ni раз дёрнули за i-юручку и получили среднюю награду µ̂i , алгоритм UCB1присваивает ей приоритет
Priorityi = µ̂i +
√2 log n
ni.
Дёргать дальше надо за ручку с наивысшим приоритетом.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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(µ = ?, σ = ?).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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.
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
DGP
А затем породим новое предсказание для(pt+1 | n1, r1, . . . , nt , rt):
µt+1 = µt |t ,
σ2t+1 = σ2
t |t + η(µ2
t |t + σ2t |t
).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Пример
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандиты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
]).
Сергей Николенко Рекомендательные системы
Коллаборативная фильтрацияОнлайн-модели
Постановка задачи и бандитыDGP
Thank you!
Спасибо за внимание!
Сергей Николенко Рекомендательные системы