Оглавление :

  1. Введение и рекомендации
  2. Оценка рекомендательных систем
  3. Рекомендации на основе содержания
  4. Совместная фильтрация на основе соседства
  5. Совместная фильтрация на основе пользователей и элементов
  6. Рекомендации KNN
  7. Факторизация матрицы
  8. Глубокое обучение - Введение
  9. Ограниченные машины Больцмана
  10. AutoRecs
  11. Amazon DSSTNE и Sage Maker
  12. Реальные вызовы и решения

Совместная фильтрация - хороший метод. Но если это так хорошо, почему мы ищем альтернативный подход?

  • Он чувствителен к ШУМОВЫМ ДАННЫМ и РАЗРЕЗНЫМ ДАННЫМ.
  • Хорошие результаты получаются только при соблюдении одного из следующих условий.
    - Доступен большой набор данных
    - Данные аккуратные и чистые

МОДЕЛЬНЫЕ МЕТОДЫ

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

  • Обучение нашей модели с данными
  • Прогнозирование с использованием модели

ФАКТОРИЗАЦИЯ МАТРИЦЫ

  • В нем есть много подкатегорий техник.
  • Жутко! Умеет самостоятельно находить более широкие характеристики пользователей / предметов (например, «Действие» или «Романтика»). Математика не знает, как называть вновь обнаруженные особенности, которые просто описываются матрицами.

ГЛАВНАЯ ИДЕЯ:

Описывайте пользователей и элементы как комбинации различных количеств друг друга.

Например, мы можем сказать, что Боб любит боевики, а также комедии. То же самое можно сказать как

Боб = 50% боевик + 20% комедия

Сопоставление фильмов для рекомендаций с этими атрибутами - хорошая идея для прогнозов

ОСНОВНОЙ АНАЛИЗ КОМПОНЕНТОВ (PCA) РЕЙТИНГОВ КИНО

PCA - это статистическая процедура, которая уменьшает размер нашей матрицы пользовательских элементов без потери какой-либо важной информации!

Он используется как,

  • Инструмент уменьшения размерности (не могу сказать, что означают новые уменьшенные размеры)
  • Инструмент извлечения признаков

Примечание. Часто размеры, которые они обнаруживают, соответствуют характеристикам, которые люди научились ассоциировать с предметами (например, насколько "боевик" фильм).

Независимо от того, что связано с фильмами, из-за которых люди оценивают их по-разному, PCA извлекает и находит эти "скрытые особенности".

Если R (исходная матрица) имеет некоторые пропущенные значения, мы можем восстановить R, заполнив пустые значения !!

СИГМА-МАТРИЦА

Это простая диагональная матрица, используемая только для масштабирования значений, которые мы получаем в правильном масштабе -

  • Мы можем умножить эту сигма-матрицу на M или U, и все равно R будет просто произведением двух матриц.
  • Восстановите R, чтобы получить оценки всех пользователей по всем элементам!
  • Мы даже можем прогнозировать рейтинги с помощью скалярных произведений формулы восстановления, описанной выше.

РАЗЛОЖЕНИЕ СИНГУЛЯРНОЙ ЗНАЧЕНИЯ (SVD)

Способ одновременного эффективного вычисления M, Sigma, U-Transpose и получения всех трех факторов за один раз!

  • Очень точные результаты
  • Широко используется во время розыгрыша призов Netflix

Но ждать! Как поступить с пропущенными значениями непосредственно перед применением PCA к исходной матрице R?

  • Вы можете заполнить пропущенные значения каким-нибудь средним значением… но есть способ лучше!

Предположим, у нас есть рейтинги для любой данной строки / столбца в M и U-транспонировании.

  • Мы можем рассматривать это как проблему «минимизации прибыли».
  • Найдите значения тех полных строк и столбцов, которые наилучшим образом минимизируют ошибки в известных рейтингах R
  • Используйте стохастический градиентный спуск (только один способ сделать это)
  • Apache Spark использует другую технику, которая называется ALS (чередование наименьших квадратов).

Примечание. Вы можете запутаться здесь, потому что мы говорим об изучении значений как матриц в M и U.

Фактически, мы прогнозируем рейтинги, а не вычисляем их напрямую, что и делает SVD. Мы не выполняем настоящих Рекомендаций по SVD, потому что SVD не может работать с отсутствующими данными. Следовательно, это алгоритм, вдохновленный SVD, а не сама SVD. Победителем приза Netflix стала разновидность SVD под названием SVD ++.

ПОДСКАЗКИ:

  • Вы можете увидеть исходный код алгоритма SVD, используемого в surpiselib, в github. Но слишком сложно понять.
  • Никогда не пишите свой собственный алгоритм. Слишком высоки шансы, что вы где-то напортачите. Используйте стороннюю библиотеку, которая была использована и проверена другими.

СВД в / с СВД ++

  • Функция фактических потерь, используемая во время SGD
  • В SVD ++ просто рейтинг элемента является признаком некоторого интереса к этому элементу. Независимо от того, какой был рейтинг!
  • SVD ++ превзошел SVD
  • Сработало действительно хорошо !!
  • Это жутко, потому что мы не понимаем, как работают скрытые функции.

ДАННОЕ ИСПОЛЬЗОВАНИЕ SVD В КОНКУРСЕ NETFLIX И ЭТО УСПЕХ; МНОГО ИССЛЕДОВАНИЙ ПО СВД. НИЖЕ
ПЕРЕЧЕНЬ ЯВЛЯЮТСЯ НЕКОТОРЫМИ ИЗ РАЗРАБОТАННЫХ АЛГОРИТМОВ

Я. Матрицы факторизации

  • Хорошо подходит для прогнозирования рейтингов / кликов в системе рекомендаций.
  • Больше «общего назначения»
  • Легко обрабатывает разреженные данные. В отличие от втягивания себя в такую ​​проблему, как СВД
  • Доступно в Amazon Sage
  • Только уменьшение размера - РАБОТАЕТ ТОЛЬКО С КАТЕГОРИЧЕСКИМИ ДАННЫМИ!

II. TimeSVD ++

  • Используется для прогнозирования следующего элемента в серии событий.

III. Факторизованные персонализированные цепи Маркова

  • То же, что и выше. Используется для прогнозирования следующего элемента в серии событий.

IV. PLSA (многообещающе!)

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

НАСТРОЙКА ГИПЕРПАРАМЕТРА (СВД)

Гиперпараметры - это параметры, выбранные инженером машинного обучения для получения эффективных прогнозов. Поиск оптимальных гиперпараметров называется настройкой гиперпараметров.

  • Большая проблема в ML в целом
  • Многие алгоритмы очень чувствительны к таким параметрам, как скорость обучения.
  • Гиперпараметры различаются в зависимости от набора данных

В случае СВД гиперпараметры -

  • Сколько скрытых факторов нужно извлечь?
  • До скольких измерений уменьшить?

Примечание. Оба они зависят от характера имеющихся у нас данных.

Пример кода

Приведенный ниже код помогает нам понять, как можно настроить гиперпараметры в неожиданности с помощью пакета GridSearchCV.

Пакет GridSearchCV,

  • Помогает в настройке гиперпараметров
  • Определяет сетку различных параметров, для которых вы хотите попробовать разные значения (попробуйте все возможные комбинации)
  • «param_grid» определяет, что тестировать.
  • «меры» определяют, как тестировать
  • cv’ задает количество складок / cross_validation

SLIM - Разреженные линейные методы (2011)

ГЛАВНАЯ ИДЕЯ: «Разреженное агрегирование» других вещей, оцененных пользователем, умноженное на «разреженное агрегирование» весов (волшебство!)

  • Отличные результаты!
  • Превзошел все остальные рекомендации (рейтинг попаданий в рекомендациях TopN)
  • Применимо не только к фильмам, но и к книгам, музыке, кредитным картам и многому другому!
  • Поскольку пользователь оценил только некоторые элементы, а веса существуют только для этих элементов, можно рассчитать - «разреженное» агрегирование
  • Распространить на всю матрицу рейтинга элементов пользователя с помощью формулы ниже

КАК РАССЧИТАН ВЕС?

  • Сложный
  • Настолько сложно, что многие не могут реализовать это в коде
  • Подобен SVD, но требует более высоких математических концепций, таких как
    - Матрица Фробениуса Норма
    - Регуляризация нормы L1
  • Если на вашем пути появится SLIM, взгляните еще раз - Многообещающий!

СЛЕДУЮЩИЙ ›››