ИТМО machine learning. Рекомендательные системы — часть 1

39

Upload: andrey-danilchenko

Post on 07-Jul-2015

303 views

Category:

Education


1 download

DESCRIPTION

Лекция-введение в рекомендательные системы в рамках курса по машинному обучению для студентов четвертого курса на кафедре КТ ИТМО. Часть 1 — kNN, SVD, iALS.

TRANSCRIPT

Page 1: ИТМО Machine Learning. Рекомендательные системы — часть 1
Page 2: ИТМО Machine Learning. Рекомендательные системы — часть 1

Рекомендательные системы Лекция 1

Андрей Данильченко

НИУ ИТМО, 10 ноября 2014

Page 3: ИТМО Machine Learning. Рекомендательные системы — часть 1

Что такое рекомендательная система?

Page 4: ИТМО Machine Learning. Рекомендательные системы — часть 1
Page 5: ИТМО Machine Learning. Рекомендательные системы — часть 1

5

Page 6: ИТМО Machine Learning. Рекомендательные системы — часть 1
Page 7: ИТМО Machine Learning. Рекомендательные системы — часть 1

7

Page 8: ИТМО Machine Learning. Рекомендательные системы — часть 1

8

Page 9: ИТМО Machine Learning. Рекомендательные системы — часть 1

F. Ricci “Recommender Systems Handbook”

│ Recommender Systems are software tools and techniques providing suggestions for items to be of use to a user

9

Page 10: ИТМО Machine Learning. Рекомендательные системы — часть 1

Количество статей в области

по данным google scholar (от 2014-10-17)

Page 11: ИТМО Machine Learning. Рекомендательные системы — часть 1

11

Page 12: ИТМО Machine Learning. Рекомендательные системы — часть 1

Какие бывают рекомендательные системы?

Page 13: ИТМО Machine Learning. Рекомендательные системы — часть 1

Классификация RS

Available data

User history Content

Collaborative Content-based

Hybrid

Tags &

Metadata

Page 14: ИТМО Machine Learning. Рекомендательные системы — часть 1

Данные

•  Рейтинги (explicit feedback)

•  унарные (like) •  бинарные (like/dislike) •  числовые (stars)

•  История действий пользователя (implicit feedback)

•  Тэги, метаданные

•  Комментарии, отзывы

•  Друзья

Page 15: ИТМО Machine Learning. Рекомендательные системы — часть 1

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

15

•  Predict

•  Recommend

•  Similar

Page 16: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как построить простую рекомендательную систему?

16

Page 17: ИТМО Machine Learning. Рекомендательные системы — часть 1

User-based kNN Как продукт оценили похожие пользователи?

r̂ui =1

Ni u( )rvi

v∈Ni (u)∑

Взвесим вклад каждого

r̂ui =wuvrvi

v∈Ni (u)∑

wuvv∈Ni (u)∑

И нормализуем рейтинги

r̂ui = h−1

wuvh rvi( )v∈Ni (u)∑

wuvv∈Ni (u)∑

$

%

&&&

'

(

)))

Page 18: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как посчитать расстояние?

Косинусное расстояние

Корреляция Пирсона

cos(u,v) =ruirvi

i∈Iuv

r2uii∈Iu

∑ rvj2

j∈Iv

PC(u,v) =(rui − ru )(rvi − rv )

i∈Iuv

(rui − ru )2

i∈Iu

∑ (rvj − rv )2

j∈Iv

Поправленное косинусное расстояние (adjusted cosine)

AC(u,v) =(rui − ri )(rvi − ri )

i∈Iuv

(rui − ri )2

i∈Iu

∑ (rvj − rj )2

j∈Iv

Page 19: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как нормализовать рейтинги?

19

h rui( ) = rui − ru

h rui( ) = rui − ruσ u

h rui( ) =j ∈ Iu : ruj ≤ rui{ }

Iu

Mean centering

Z-score

Percentile score

Page 20: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как выиграть Netflix Prize?

Page 21: ИТМО Machine Learning. Рекомендательные системы — часть 1

http://sifter.org/~simon/journal/20061211.html

Page 22: ИТМО Machine Learning. Рекомендательные системы — часть 1

Singular Value Decomposition

Теорема: если в матрице λ оставить k наибольших элементов, то полученное произведение A’ будет наилучшим среди всех матриц ранга k приближением матрицы A.

Page 23: ИТМО Machine Learning. Рекомендательные системы — часть 1

Baseline predictors

Модель:

r̂uiu = µ + bu + bi

argminb*

ruiu −µ − bu − bi( )(u,i)∈R∑

2+λ bu

2 +u∈U∑ bi

2

i∈I∑

$

%&

'

()

Функция ошибки:

Page 24: ИТМО Machine Learning. Рекомендательные системы — часть 1

SVD

Модель:

Функция ошибки:

r̂ui = µ + bu + bi + puTqi

argminp*q*b*

rui −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

Page 25: ИТМО Machine Learning. Рекомендательные системы — часть 1

Optimization by SGD

Модель:

Функция ошибки:

r̂ui = µ + bu + bi + puTqi

argminp*q*b*

rui −µ − bu − bi − puTqi( )

(u,i)∈R∑

2+λ pu

2+ qi

2+ bu

2 + bi2( )

bu ← bu +γ1 eui −λ1bu( )bi ← bi +γ1 eui −λ1bi( )pu ← pu +γ2 euiqi −λ2pu( )qu ← qi +γ2 eui pu −λ2qi( )

Шаг стохастического градиентного спуска:

Page 26: ИТМО Machine Learning. Рекомендательные системы — часть 1

Alternating Least Squares P-step: обновление при фиксированных векторах item-ов

pu = λnuI + Au( )−1 duAu =Q[u]

TQ[u]= qiqiT

i: u,i( )∈R∑

du =Q[u]T ru = ruiqi

i: u,i( )∈R∑

Q-step: обновление при фиксированных векторах пользователей

qi = λniI + Ai( )−1 diAi = P[i]

T P[i]= pupuT

u: u,i( )∈R∑

di = P[i]T ri = rui pu

u: u,i( )∈R∑

Page 27: ИТМО Machine Learning. Рекомендательные системы — часть 1

Что делать с implicit feedback?

Page 28: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как использовать implicit feedback?

Идея: rating => (preference, confidence)

pui ∈ {0,1}

cui ∈ℜ+

∀(u, i)∈ R

cui =1+αrui

pui =1

pui = 0 иначе

или

cui =1+α log 1+ruiβ( )

Page 29: ИТМО Machine Learning. Рекомендательные системы — часть 1

Обучение модели

argminx*y*

cui pui − xuT yi( )

(u,i)∑

2+λ xu

2

u∑ + yi

2

i∑

#

$%

&

'(

Функция ошибки:

xu = λI +Y TCuY( )−1Y TCup(u)

yi = λI + XTCiX( )−1XTCi p(i)

Это сводится к уравнениям для ALS:

Page 30: ИТМО Machine Learning. Рекомендательные системы — часть 1

Обучение модели

argminx*y*

cui pui − xuT yi( )

(u,i)∑

2+λ xu

2

u∑ + yi

2

i∑

#

$%

&

'(

Функция ошибки:

xu = λI +Y TCuY( )−1Y TCup(u)

yi = λI + XTCiX( )−1XTCi p(i)

Это сводится к уравнениям для ALS:

Но есть проблема!

Page 31: ИТМО Machine Learning. Рекомендательные системы — часть 1

в матрице всего ненулевых элементов,

В матрице всего ненулевых элементов,

Ускорение iALS

Идея:

Y TCuY =Y TY +Y T Cu − I( )YCu − I

Cup(u)

Y TY

O f 2N + f 3 U( )

nu

nu

а не зависит от пользователя!

Итого: обновляем вектора пользователей за

Page 32: ИТМО Machine Learning. Рекомендательные системы — часть 1

Интуиция iALS

xu = λI +Y TCuY( )−1Y TCup(u) = λI + Au( )−1 du

A0 = c0yiT yi

i∑ d0 = c0p0yi

i∑

Au = A0 + (cui − c0 )yiT yi

(u,i)∈N (u)∑

du = d0 + cui pui − c0p0( ) yiu,i( )∈N (u)∑

Введем «нулевого» пользователя без фидбека:

Тогда для остальных пользователей выводим:

Выпишем ALS-шаг в упрощенной форме:

Page 33: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как выбирать c0 и p0?

∀(u, i)∈ N

cui =1+αrui

pui =1

pui = 0 иначе

Как и раньше:

Page 34: ИТМО Machine Learning. Рекомендательные системы — часть 1

Как выбирать c0 и p0?

∀(u, i)∈ N

cui =1+αrui

pui =1

pui = 0 иначе

Как и раньше:

c0 =1

p0 = 0

Page 35: ИТМО Machine Learning. Рекомендательные системы — часть 1

А разве что-то еще осталось?

35

Page 36: ИТМО Machine Learning. Рекомендательные системы — часть 1

If you like this lecture you will like these books

Page 37: ИТМО Machine Learning. Рекомендательные системы — часть 1

If you like this lecture you will also like

Page 38: ИТМО Machine Learning. Рекомендательные системы — часть 1

If you like this lecture you will probably like

http://www.4ducks.ru/pages/itmo-rs-2014.html

Page 39: ИТМО Machine Learning. Рекомендательные системы — часть 1

Удачи! Андрей Данильченко группа разработки рекомендательных систем, Яндекс [email protected]

http://www.4ducks.ru/itmo-ml-course-recsys-part-1.html