Модель рекомендаций на основе скрытых переменных

искусственный интеллект

推荐系统之基于隐变量的推荐模型

разложение матрицы

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

  1. С увеличением количества людей и предметов рекомендательный эффект системы не увеличивается линейно.

  2. Элементы в матрице разрежены, в процессе расчета размерность добавляется или удаляется случайным образом, что сильно влияет на результат.

Чтобы решить вышеуказанные проблемы, некоторые люди изобрели метод разложения матриц.Разложение матриц просто смотрит на следующий рисунок:

推荐系统之基于隐变量的推荐模型

Предположим, что матрица оценок A пользовательских элементов равна m, умноженной на n измерений, то есть всего имеется m пользователей и n элементов. Мы выбираем небольшое число k относительно m и n и с помощью набора алгоритмов получаем две матрицы U и V. Размерность матрицы U равна m, умноженной на k, а размерность матрицы V равна n, умноженной на k.

Теперь мы объясним весь процесс выше.

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

推荐系统之基于隐变量的推荐模型

Метод решения матричной декомпозиции

Теперь, когда мы знаем принцип декомпозиции, следующий шаг - как его решить.Введены два метода: градиентный спуск и альтернативный метод наименьших квадратов.

Давайте сначала посмотрим на метод «Градиентный спуск».Для оптимизации с помощью градиентного спуска нам нужно сначала определить функцию потерь:

推荐系统之基于隐变量的推荐模型

Эта функция потерь состоит из двух частей: часть до знака «плюс» управляет смещением модели, а часть после знака «плюс» управляет дисперсией модели.

Далее, давайте посмотрим наальтернативный метод наименьших квадратов ALS, Принцип таков: сначала примите собственные значения пользовательской матрицы и решите собственные значения элемента методом градиентного спуска, затем примите собственные значения элемента, и решить собственные значения пользователя,

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

推荐系统之基于隐变量的推荐模型

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

推荐系统之基于隐变量的推荐模型

где R (u) — набор элементов, для которых пользователь u имеет неявное поведение, а y — векторное моделирование неявного поведения элемента.Если у пользователя есть несколько неявных поведений, мы также можем добавить неявный вектор:

推荐系统之基于隐变量的推荐模型

Для получения дополнительной информации об этом svd вы можете обратиться к моей предыдущей статье Surprise Practice of Recommender System Algorithms, чтобы понять комбинацию кода и проанализировать различные реализации алгоритмов.

отрицательная выборка

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

  • Случайная равномерная выборка, сохраняя соотношение 1:1 с положительными образцами

  • Выборка по хот-споту предмета.Теоретически этот предмет очень популярен, а пользователь его не видел.Этот пользователь скорее всего действительно не интересуется этим предметом.

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

  1. Пользователь не просматривал, оценка равна 0 (получена путем отрицательной выборки)

  2. Просмотрите один раз, оценка 1, оценка увеличивается с увеличением количества просмотров

На данный момент наша функция потерь:

推荐系统之基于隐变量的推荐模型

Теперь предположим, что мы рассчитали скрытые векторы пользователей и элементов. Далее нам нужно рассчитать рейтинги пользователей для всех элементов и выбрать топки для рекомендаций. Это столкнется с вычислительной проблемой в инженерии. В статье, объясняющей простую модель рекомендаций рекомендательной системы простыми словами, при обсуждении коллаборативной фильтрации я говорил о том, как ее рассчитать. Можете проверить. Основная идея - разбить расчет оценок пользователей всех элементов на задачи MapReduce. , очень деликатно, общий принцип следующий:

推荐系统之基于隐变量的推荐模型

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

Разлагающая машина

Проблема с вышеуказанным методом заключается в том, что мы не можем моделировать явные характеристики пользователей и предметов.Например, мы получили пользовательский портрет пользователя или предметный портрет предмета, но мы не можем интегрировать его в нашу модель.Если эти доминирующие функции моделируются, возможным решением является логистическая регрессия, поэтому кто-то объединил матричную декомпозицию и логистическую регрессию и предложил модель «машины декомпозиции».

Основной принцип машины декомпозиции FM: не только моделирование явных переменных, но и моделирование связи между явными переменными, и использование метода скрытых переменных в процессе моделирования связи между явными переменными.

Кроме того, преимущество машины декомпозиции заключается в том, что она может частично решить проблему холодного запуска, потому что даже без данных отзывов пользователей мы можем предсказать счет через явные переменные.Дополнительную информацию о FM см. в моей предыдущей статье CTR Estimated FM.

Теперь я расскажу о том, о чем не рассказала статья «FM для оценки CTR», как FM может сочетать в себе преимущества коллаборативной фильтрации, матричной факторизации и линейных моделей.

Нижеследующее в основном взято из статьи «Машины факторизации с libFM».

Давайте сначала посмотрим на картинку обучающих данных:

推荐系统之基于隐变量的推荐模型

Приведенный выше x — это вектор признаков, а y — рейтинг пользователя.Мы можем видеть, что в векторе пользователя и идентификатор пользователя, и идентификатор фильма кодируются горячим способом, а затем добавляются историческое поведение пользователя и временные характеристики. Прогноз на данный момент Формула такова:

推荐系统之基于隐变量的推荐模型

Теперь предположим, что у нас есть только две функции, идентификатор пользователя и идентификатор фильма, входные функции:

推荐系统之基于隐变量的推荐模型

Формула предсказания становится следующей:

推荐系统之基于隐变量的推荐模型

Это не та матричная декомпозиция svd с информацией о смещении, которую мы представили выше.

Теперь мы добавляем функцию времени, функция ввода:

推荐系统之基于隐变量的推荐模型

Прогноз таков:

推荐系统之基于隐变量的推荐模型

На этом этапе она становится моделью тензорной факторизации парного взаимодействия (PITF).

Давайте продолжим рассмотрение сложного примера: у нас есть идентификатор пользователя и идентификатор фильма, а сейчас мы добавляем фильм m, который пользователь оценил ранее.

и установите вес каждого фильма равным 1/м, тогда входными функциями будут:

推荐系统之基于隐变量的推荐模型

Прогноз таков:

推荐系统之基于隐变量的推荐模型

Затем давайте рассмотрим не только моделирование поведенческих фильмов пользователя, но и добавление его рейтинговых функций к каждому фильму.На данный момент входные данные могут быть выражены как:

推荐系统之基于隐变量的推荐模型

Вышеприведенное показывает, что для элемента i пользователь оценил (l1,l2,...lm) как (r1,r2,..rm) соответственно,

В настоящее время корреляция элементов в части предсказания такова:

推荐系统之基于隐变量的推荐模型

Наконец, вводится моделирование функций атрибутов пользователя.Входными функциями являются:

推荐系统之基于隐变量的推荐模型

Прогноз таков:

推荐系统之基于隐变量的推荐模型

Итак, мы видим, что машина факторизации FM действительно очень мощная, способная объединить совместную фильтрацию, матричную факторизацию и линейные модели в одной модели.

Суммировать

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

Что касается алгоритма, представленного в этой статье, я реализую его в наборе рекламных данных Tencent на GitHub, и вы можете продолжать обращать внимание.

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

Оригинальный адрес: https://www.zybuluo.com/zhuanxu/note/1107003