Recsys.hse

667 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
667
On SlideShare
0
From Embeds
0
Number of Embeds
234
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Recsys.hse

  1. 1. 1
  2. 2. Рекомендательные системы и факторизационные модели Михаил Ройзнер 23 апреля 2014 г. 2
  3. 3. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  4. 4. Фильмы 4
  5. 5. Фильмы 4
  6. 6. Музыка 5
  7. 7. Музыка 5
  8. 8. Товары 6
  9. 9. Товары 6
  10. 10. И другие категории Заведения на карте Новости, статьи, сайты Концерты, театры, выставки Видео Книги Приложения Игры Путешествия Социальные связи . . .
  11. 11. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. 8
  12. 12. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. Коллаборативная фильтрация (Collaborative Filtering) Для рекомендаций используется история оценок как самого пользователя, так и других пользователей. Более универсальный подход, часто дает лучший результат. Есть свои проблемы (например, холодный старт). 8
  13. 13. Виды рекомендательных систем Content-based Пользователю рекомендуются объекты, похожие на те, которые этот пользователь уже употребил. Похожести оцениваются по признакам содержимого объектов. Сильная зависимость от предметной области, полезность рекомендаций ограничена. Коллаборативная фильтрация (Collaborative Filtering) Для рекомендаций используется история оценок как самого пользователя, так и других пользователей. Более универсальный подход, часто дает лучший результат. Есть свои проблемы (например, холодный старт). Гибридные системы Сочетают оба подхода. 8
  14. 14. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) 9
  15. 15. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui 9
  16. 16. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui Персональные рекомендации: u → (i1, . . . , iK) = RecommendK(u, . . .) 9
  17. 17. Коллаборативная фильтрация: формальная постановка Имеется: Пользователи (users, u ∈ U) Объекты (items, i ∈ I) События (events, (rui, u, i, . . .) ∈ D) Требуется: Предсказать предпочтение: ˆrui = Predict(u, i, . . .) ≈ rui Персональные рекомендации: u → (i1, . . . , iK) = RecommendK(u, . . .) Похожие объекты: i → (i1, . . . , iM ) = SimilarM (i) 9
  18. 18. Netflix Prize Рассвет рекомендательных систем — Netflix Prize1. 480 189 пользователей; 17 770 фильмов; 100 480 507 оценок {1, 2, 3, 4, 5}; задача: уменьшить RMSE (средне-квадратичное отклонение) c 0.9514 до 0.8563 (на 10%); 2 октября 2006 — 21 сентября 2009; 1 www.netflixprize.com 10
  19. 19. Netflix Prize Рассвет рекомендательных систем — Netflix Prize1. 480 189 пользователей; 17 770 фильмов; 100 480 507 оценок {1, 2, 3, 4, 5}; задача: уменьшить RMSE (средне-квадратичное отклонение) c 0.9514 до 0.8563 (на 10%); 2 октября 2006 — 21 сентября 2009; приз $1 000 000. 1 www.netflixprize.com 10
  20. 20. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  21. 21. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi 12
  22. 22. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi User-based: ˆrui = ¯ru + v∈Ui sim(u, v)(rvi − ¯rv) v∈Ui sim(u, v) 12
  23. 23. Memory-based Кластеризация: u ∈ F(u), F(u) состоит из пользователей, “похожих” на u. ˆrui = 1 |F(u)| v∈F(u) rvi User-based: ˆrui = ¯ru + v∈Ui sim(u, v)(rvi − ¯rv) v∈Ui sim(u, v) Item-based: ˆrui = ¯ri + j∈Iu sim(i, j)(ruj − ¯rj) j∈Iu sim(i, j) 12
  24. 24. Memory-based Виды функции sim(·, ·): Корреляция: sim(i, j) = u∈Uij (rui − ¯ri)(ruj − ¯rj) u∈Ui (rui − ¯ri)2 u∈Uj (ruj − ¯rj)2 Косинус: sim(i, j) = u∈Uij ruiruj u∈Uij r2 ui u∈Uij r2 uj 13
  25. 25. Memory-based Виды функции sim(·, ·): Корреляция: sim(i, j) = u∈Uij (rui − ¯ri)(ruj − ¯rj) u∈Ui (rui − ¯ri)2 u∈Uj (ruj − ¯rj)2 Косинус: sim(i, j) = u∈Uij ruiruj u∈Uij r2 ui u∈Uij r2 uj Проблемы: холодный старт; ресурсоемкость вычислений; точность предсказаний. 13
  26. 26. Singular Value Decomposition 14
  27. 27. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×n × Σ n×m × V T m×m , U, V — ортогональные, Σ — диагональная: UUT = In, V V T = Im, Σ = diag λ1, . . . , λmin(n,m) , λ1 . . . λmin(n,m) 0. 14
  28. 28. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×n × Σ n×m × V T m×m , U, V — ортогональные, Σ — диагональная: UUT = In, V V T = Im, Σ = diag λ1, . . . , λmin(n,m) , λ1 . . . λmin(n,m) 0. Усеченное разложение ранга d: λd+1, . . . , λmin(n,m) := 0, A n×m = U n×d × Σ d×d × V T d×m ≈ A 14
  29. 29. Singular Value Decomposition Сингулярное разложение матрицы: A n×m = U n×n × Σ n×m × V T m×m , U, V — ортогональные, Σ — диагональная: UUT = In, V V T = Im, Σ = diag λ1, . . . , λmin(n,m) , λ1 . . . λmin(n,m) 0. Усеченное разложение ранга d: λd+1, . . . , λmin(n,m) := 0, A n×m = U n×d × Σ d×d × V T d×m ≈ A A — наилучшее низкоранговое приближение: A = arg min B: rkB=d ||A − B||F 14
  30. 30. Singluar Value Decomposition 15
  31. 31. Singluar Value Decomposition Выявление скрытых признаков объектов и интересов пользователей! 15
  32. 32. Singluar Value Decomposition Выявление скрытых признаков объектов и интересов пользователей! Проблемы: Матрица оценок R нам полностью не известна. Разложение не единственное: (UΩ)Σ(V Ω)T = UΣV T 15
  33. 33. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} 16
  34. 34. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} Хотим оптимизировать качество предсказаний в будущем: E(u,i) ˆrui(Θ) − rui 2 → min Θ
  35. 35. SVD: Обучение Модель: ˆrui(Θ) = pT u qi, Θ = {pu, qi | u ∈ U, i ∈ I} Хотим оптимизировать качество предсказаний в будущем: E(u,i) ˆrui(Θ) − rui 2 → min Θ Имеем только оценки из прошлого (обучающая выборка): (u,i)∈D ˆrui(Θ) − rui 2 качество на обучающей выборке + θ∈Θ λθ θ 2 регуляризация → min Θ
  36. 36. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 17
  37. 37. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ)
  38. 38. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно.
  39. 39. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно. Стохастический градиентный спуск: L(Θ) = j Lj(Θ) = j (pT uj qij −rujij )2 +λ||puj ||2 +λ||qij ||2 Θt+1 = Θt − η Ljt (Θ)
  40. 40. SVD: Методы оптимизации L(Θ) = (u,i)∈D pT u qi − rui 2 + λ u ||pu||2 + i ||qi||2 Градиентный спуск: Θt+1 = Θt − η L(Θ) Проблема: работает очень медленно. Стохастический градиентный спуск: L(Θ) = j Lj(Θ) = j (pT uj qij −rujij )2 +λ||puj ||2 +λ||qij ||2 Θt+1 = Θt − η Ljt (Θ) Проблема: не распараллеливается.
  41. 41. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. 18
  42. 42. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. 18
  43. 43. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. Alternating Least Squares: ∀u ∈ U p2t+1 u = p∗ u(Θ2t), ∀i ∈ I q2t+2 i = q∗ i (Θ2t+1). 18
  44. 44. SVD: Методы оптимизации L зависит от всех параметров квадратично. По каждому параметру можно найти точный оптимум. Для каждого пользователя и для каждого объекта задача оптимизации — в точности метод наименьших квадратов. p∗ u(Θ) = arg min pu L(Θ) = (QT u Qu + λI)−1 QT u ru, q∗ i (Θ) = arg min qi L(Θ) = (P T i P i + λI)−1 P T i ri. Alternating Least Squares: ∀u ∈ U p2t+1 u = p∗ u(Θ2t), ∀i ∈ I q2t+2 i = q∗ i (Θ2t+1). Каждый шаг можно распараллелить. 18
  45. 45. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  46. 46. Метрики: предсказание оценки Задача регрессии. RMSE = 1 |D| D (ˆrui − rui)2 MAE = 1 |D| D |ˆrui − rui|
  47. 47. Метрики: предсказание оценки Задача регрессии. RMSE = 1 |D| D (ˆrui − rui)2 MAE = 1 |D| D |ˆrui − rui| Проблемы: Не для всех событий известно численное представление. У каждого пользователя свое представление о шкале оценок. Ошибка в предсказании высокой оценки имеет такой же вес, что и ошибка в предсказании низкой оценки.
  48. 48. Метрики: понравилось ли пользователю? Задача классификации.
  49. 49. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| 21
  50. 50. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| 21
  51. 51. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] 21
  52. 52. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] LogLikelihood = 1 |D| D rui log ˆrui + (1 − rui) log(1 − ˆrui) 21
  53. 53. Метрики: понравилось ли пользователю? Задача классификации. Precision = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|ˆrui>θ}| Recall = |{(u,i)∈D|ˆrui>θ,rui=1}| |{(u,i)∈D|rui=1}| AUC = 1 |...| rui=1 ru i =0 [ˆrui > ˆru i ] LogLikelihood = 1 |D| D rui log ˆrui + (1 − rui) log(1 − ˆrui) Проблемы: Необходимость специально задавать понятие “понравилось”. По-прежнему нет прямой связи с качеством рекомендаций. 21
  54. 54. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. 22
  55. 55. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. NDCG = 1 |U| u∈U 1 IDCGu K k=1 2 ruik −1 log2(1+k) 22
  56. 56. Метрики: ранжирование Precision, Recall, . . . на списке top-K, выданном моделью. NDCG = 1 |U| u∈U 1 IDCGu K k=1 2 ruik −1 log2(1+k) Проблемы: Нет данных про рекомендованные объекты, которые пользователь не оценивал. Оптимизация метрик вычислительно более сложная. 22
  57. 57. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: 23
  58. 58. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), 23
  59. 59. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), 23
  60. 60. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), Novelty (новизна), 23
  61. 61. Другие свойства рекомендаций Желаемые свойства рекомендаций, которые, возможно, не выражаются качеством предсказания: Diversity (разнообразие), Serendipity (неожиданность), Novelty (новизна), Coverage, Trust, Utility, Robustness, Adaptivity, Scalability, . . . 23
  62. 62. Похожие объекты Что такое похожие объекты? 24
  63. 63. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based).
  64. 64. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). 24
  65. 65. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). Рекомендации для пользователя, которому понравился данный объект.
  66. 66. Похожие объекты Что такое похожие объекты? Объекты, похожие по своим признакам (content-based). Объекты, которые часто используют вместе («клиенты, купившие i, также покупали j»). Рекомендации для пользователя, которому понравился данный объект. Рекомендации, в которых данный объект выступает в качестве контекста.
  67. 67. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  68. 68. Концептуальные вопросы 26
  69. 69. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? 26
  70. 70. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? 26
  71. 71. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? Как измерять похожести объектов? 26
  72. 72. Концептуальные вопросы Как строить списки рекомендаций на основе предсказаний? Как улучшать качество именно рекомендаций, а не предсказаний? Как измерять похожести объектов? Как обосновывать рекомендации? 26
  73. 73. Технические вопросы 27
  74. 74. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? 27
  75. 75. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? 27
  76. 76. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? 27
  77. 77. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? Как измерять качество онлайн-рекомендаций? 27
  78. 78. Технические вопросы Как решать проблему холодного старта для новых пользователей и новых объектов? Как быстро обновлять рекомендации? Как быстро находить объекты с наибольшим предсказанием? Как измерять качество онлайн-рекомендаций? Как масштабировать систему? 27
  79. 79. Как учитывать дополнительную информацию?
  80. 80. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек?
  81. 81. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations)
  82. 82. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) 28
  83. 83. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? 28
  84. 84. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? Как учитывать признаки и связи пользователей? 28
  85. 85. Как учитывать дополнительную информацию? Как учитывать не только явный (explicit), но и неявный (implicit) фидбек? Как учитывать контекст? (Context-aware recommendations) Как учитывать признаки объектов? (Гибридные системы) Как учитывать связи между объектами (таксономию)? Как учитывать признаки и связи пользователей? Как учитывать информацию из других предметных областей? (Cross-domain recommendations) 28
  86. 86. План Виды и области применения рекомендательные систем Стандартные алгоритмы Измерение качества рекомендаций Направления развития Бонус: тензорные разложения
  87. 87. Как учитывать контекст? 30
  88. 88. Тензорные разложения 31
  89. 89. Тензорные разложения Canonical Decomposition ˆru,i,l = d k=1 pu,k · qi,k · sl,k 31
  90. 90. Тензорные разложения Canonical Decomposition ˆru,i,l = d k=1 pu,k · qi,k · sl,k Pairwise Decomposition ˆru,i,l = dUI k=1 pUI u,k · qUI i,k + dUL k=1 pUL u,k · sUL l,k + dIL k=1 qIL i,k · sIL l,k 31
  91. 91. Тензорные разложения Canonical Decomposition ˆru,i,l = d k=1 pu,k · qi,k · sl,k Pairwise Decomposition ˆru,i,l = dUI k=1 pUI u,k · qUI i,k + dUL k=1 pUL u,k · sUL l,k + dIL k=1 qIL i,k · sIL l,k Tucker Decomposition ˆru,i,l = dU u =1 dI i =1 dL l =1 cu ,i ,l · pu,u · qi,i · sl,l 31
  92. 92. Factorization MachinesLarge Categorical Domains e Rating ic 5 ng Hill 3 Wars 1 Wars 4 Trek 5 ic 1 Wars 5 . . . 1 0 0 ... 1 0 0 ... 0 1 0 ... 0 1 0 ... 0 0 1 ... 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ... ... ... ... ... 0 0 1 ... 0 0 1 0 ... A B C ... TI NH SW ST ... x(1) x(2) x(4) x(5) x(6) x(7) Feature vector x User Movie 1 0 0 ... 0 0 1 0 ...x(3) 5 3 4 5 1 5 Target y y(1) y(2) y(4) y(5) y(6) y(7) 1 y(3) ssion models to this data leads to: ssion: ˆy(x) = w0 + wu + wi regression: ˆy(x) = w0 + wu + wi + wu,i 32
  93. 93. Factorization MachinesLarge Categorical Domains e Rating ic 5 ng Hill 3 Wars 1 Wars 4 Trek 5 ic 1 Wars 5 . . . 1 0 0 ... 1 0 0 ... 0 1 0 ... 0 1 0 ... 0 0 1 ... 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 ... ... ... ... ... 0 0 1 ... 0 0 1 0 ... A B C ... TI NH SW ST ... x(1) x(2) x(4) x(5) x(6) x(7) Feature vector x User Movie 1 0 0 ... 0 0 1 0 ...x(3) 5 3 4 5 1 5 Target y y(1) y(2) y(4) y(5) y(6) y(7) 1 y(3) ssion models to this data leads to: ssion: ˆy(x) = w0 + wu + wi regression: ˆy(x) = w0 + wu + wi + wu,i SVD: ˆy(x) = w0 + n i=1 wi xi + n i=1 n j=i+1 vi, vj xi xj
  94. 94. Factorization Machines ˆy(x) = w0 + n i=1 wi xi + n i=1 n j=i+1 vi, vj xi xj orization Machines with libFM 1. Example (from Rendle [2010]) for representing a recommender problem with real valued f ors x. Every row represents a feature vector xi with its corresponding target yi. For easier inter the features are grouped into indicators for the active user (blue), active item (red), other movies 33
  95. 95. Спасибо! 34

×