разложение матрицы
Предыдущая статья представила совместную фильтрацию, которая фокусируется на матрице человек-элемент. Основная идея состоит в том, чтобы сгруппировать людей или предметы, чтобы найти похожих людей или похожие предметы, и использовать мудрость группы, чтобы рекомендовать людей. проблемы с этой моделью ближайшего соседа:
-
С увеличением количества людей и предметов рекомендательный эффект системы не увеличивается линейно.
-
Элементы в матрице разрежены, в процессе расчета размерность добавляется или удаляется случайным образом, что сильно влияет на результат.
Чтобы решить вышеуказанные проблемы, некоторые люди изобрели метод разложения матриц.Разложение матриц просто смотрит на следующий рисунок:
Предположим, что матрица оценок 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 с положительными образцами
-
Выборка по хот-споту предмета.Теоретически этот предмет очень популярен, а пользователь его не видел.Этот пользователь скорее всего действительно не интересуется этим предметом.
Теперь, когда мы получили отрицательные выборки с помощью отрицательной выборки, следующим шагом будет добавление достоверности на основе положительных выборок. Эта достоверность достигается путем подсчета количества просмотров элементов пользователями. Чем интереснее элемент, поэтому мы предполагаем
-
Пользователь не просматривал, оценка равна 0 (получена путем отрицательной выборки)
-
Просмотрите один раз, оценка 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