Серия машинного обучения: Часть-I

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

Что такое система рекомендаций?

система рекомендаций или система рекомендаций (иногда заменяющая "система" синонимом, например платформой или движком. ), является подклассом системы фильтрации информации, которая пытается предсказать «рейтинг» или «предпочтение», которое пользователь отдает элементу.

Позвольте мне упростить это для вас. Ниже приведен снимок экрана видео, воспроизводимого на YouTube, и вы можете увидеть список видео с правой стороны. Этот набор видео показан нам (рекомендуется), потому что их содержание похоже на видео, которое мы смотрим, и модель машинного обучения предсказывает, что они могут быть нам интересны.

Мы можем видеть аналогичные системы, используемые в Netflix и Amazon, где мы сталкиваемся с такими категориями, как «Потому что вы смотрели Inception:» и «Клиенты, которые просматривали этот элемент, также просматривали:» соответственно. Теперь давайте попробуем глубже понять эти системы с помощью различных операций с матрицами.

Данные

Допустим, у нас есть матрица A, где каждая строка обозначает уникального пользователя (u_i), а каждый столбец обозначает уникальный фильм (I_j), а элемент матрицы (A_ij) может быть двоичным (если пользователь u_i смотрел фильм I_j или нет) или целым числом (оценка пользователем u_i в фильме I_j). Вы получите лучшее представление из диаграммы ниже.

Мы можем сказать, что матрица A является разреженной матрицей, что означает, что большинство значений в матрице равны 0 или Na (в случае целых чисел). Почему? Потому что в реальном мире, где есть миллиарды пользователей и миллионы фильмов, для одного пользователя практически невозможно просмотреть каждый фильм. Таким образом, можно с уверенностью предположить, что большинство элементов в матрице равны 0 или Na.

Из данной матрицы A мы можем понять, как построена система рекомендаций.

Простые рекомендательные системы

а) Системы рекомендаций на основе пользователей:

  • Рассмотрим матрицу A, имеющую n строк (пользователи) и m столбцов (элементы) (как показано).
  • Мы можем отделить все пользовательские векторы (u_1, u_2…., U_n) из матрицы A, , как показано. Каждый вектор состоит из оценок, выставленных пользователем u_i в фильмах от I_1 до I_m.

  • Теперь, взяв все комбинации u_i и u_j, мы можем вычислить сходство между двумя векторами. Это означает, что мы можем вычислить, насколько два пользователя похожи друг на друга. В нашем случае мы вычислим косинусное подобие между двумя векторами. Таким образом создается матрица подобия S (nxn).

Теперь, если нам нужно что-то порекомендовать (скажем) пользователю u_10, мы можем проверить, на кого u_10 больше всего похож (желательно, чтобы он был из трех первых). Затем мы проверяем, какие элементы (фильмы) не смотрят u_10, но получают хорошие оценки от аналогичных пользователей. Эти предметы можно порекомендовать нашему пользователю u_10.

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

б) Рекомендательные системы на основе элементов

Этот тип рекомендательной системы широко использовался Amazon в начале 2000-х годов.

  • Концепция здесь очень похожа на систему рекомендаций типа пользователь-пользователь. Основное отличие состоит в том, что вместо вычисления матрицы сходства S из пользовательских векторов мы вычисляем ее, используя векторы элементов.
  • Каждый вектор I_j (I_1, I_2… I_m) состоит из всех оценок, выставленных каждым пользователем (u_1, u_2… u_n) по элементу j.

Теперь, если пользователю нравятся фильмы (скажем) I_10, I_21 и I_30, мы можем проверить, какие фильмы наиболее похожи на них, отдавая предпочтение наиболее часто встречающимся.

Система рекомендаций на основе элементов может использоваться, когда a) количество пользователей намного больше, чем количество элементов, и б) когда мы знаем, что рейтинги элементов будут не меняются по прошествии определенного времени.

Рекомендательные системы на основе машинного обучения

Современные системы рекомендаций построены с использованием методов машинного обучения. Рекомендательная система может быть:

1. Система классификации / регрессии (контентная фильтрация):

Из матрицы A, если у нас есть дополнительная информация о каждом пользователе u_i и фильме m_j, мы можем продолжить и создать новый традиционный набор данных с функциями u_i объединены с элементами m_j, в качестве атрибутов, а элемент A_ij является меткой класса. (как показано)

Наша модель может обучаться на данных, где доступен A_ij. Тестовые данные состоят из всех значений Null A_ij (Рекомендация).

Основная задача здесь - получить представление функций u_i & m_j.

2. Система завершения матрицы (совместная фильтрация):

  • Это более часто используемый метод, и мы погрузимся в математику, лежащую в основе этого метода, в следующих частях этой серии. Чтобы дать вам общее представление о том, как это работает, допустим, пользователь u_1 смотрел и лайкнул фильмы I_1, I_3 и I_7, а пользователь u_2 смотрел и любил фильмы I_3, I_6 и I_7.

  • Теперь рассмотрим другого пользователя u_3, который только что закончил смотреть фильм I_3.
  • На основании имеющихся данных мы знаем, что пользователям (u_1 и u_2), которым понравился фильм I_3, понравился и фильм I_7. Таким образом, можно с уверенностью рекомендовать фильм I_7 нашему пользователю u_3.

Вывод

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