20

Рекомендательная система: быстрый старт

Embed Size (px)

DESCRIPTION

Lecture for DM labs, first part. Introducing iALS and demonstrating ORYX recommender

Citation preview

Page 1: Рекомендательная система: быстрый старт
Page 2: Рекомендательная система: быстрый старт

Рекомендательная система: быстрый старт

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

Page 3: Рекомендательная система: быстрый старт

Мы живем в эпоху рекомендательных систем!

Page 4: Рекомендательная система: быстрый старт

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

Available data

User history Content

Collaborative Content-based

Hybrid

Tags &

Metadata

Page 5: Рекомендательная система: быстрый старт

Выигрывает тот, у кого больше данных…

Page 6: Рекомендательная система: быстрый старт

Алгоритм

Page 7: Рекомендательная система: быстрый старт

Какие данные у нас есть?

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

–  Знаем силу и направленность feedback-а –  Знаем, насколько этому можно верить

Page 8: Рекомендательная система: быстрый старт

iALS — функционал

minx*,y*

cui (pui − xuT yi )

u,i∑

2+λ xu

u∑

2+ yi

i∑

2#

$%

&

'(

Page 9: Рекомендательная система: быстрый старт

iALS — объяснение (1)

minx*,y*

cui (pui − xuT yi )

u,i∑

2+...

Page 10: Рекомендательная система: быстрый старт

iALS — интуиция

Preferences User features

Item features

≈ x

# users

# it

ems

# users

# it

ems

# features

# fe

atur

es

Page 11: Рекомендательная система: быстрый старт

iALS — объяснение (2)

minx*,y*

cui (pui − xuT yi )

u,i∑

2+λ xu

u∑

2+ yi

i∑

2#

$%

&

'(

Регуляризация

Page 12: Рекомендательная система: быстрый старт

А как все это оптимизировать?

Page 13: Рекомендательная система: быстрый старт

Alternating Least Squares

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

yi = Y TCiY +λI( )−1Y TCi p(i)

X-step:

Y-step:

Page 14: Рекомендательная система: быстрый старт

Alternating Least Squares — трюк

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

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

X-step:

Page 15: Рекомендательная система: быстрый старт

Alternating Least Squares — трюк (2)

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

X-step:

Au duAu = A0 + −c0 + cui( )YuTYu

i:(u,i)∈R∑

du = d0 + −c0r0 + cuirui( )Yui:(u,i)∈R∑

Page 16: Рекомендательная система: быстрый старт

Oryx

Page 17: Рекомендательная система: быстрый старт

Oryx — архитектура

Page 18: Рекомендательная система: быстрый старт

Audioscrobbler dataset (2005)

• 148 111 пользователей • 1 631 028 исполнителей • 24 296 858 «событий»

http://www-etud.iro.umontreal.ca/~bergstrj/audioscrobbler_data.html

Page 19: Рекомендательная система: быстрый старт

Давайте попробуем!

Page 20: Рекомендательная система: быстрый старт

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

разработчик

[email protected]

Удачи!