Принцип алгоритма FM
Полное название FM — Factor Machine, что в переводе с китайского означает машина факторизации.
Выражение ФМ:
Во-первых, это комбинация признаков, Путем объединения попарных признаков вводится перекрестный признак (т.е. последний член в выражении), так что может быть решена проблема недостаточного обучения при разреженных данных. Например, обучение исходного параметра полиномиальной регрессии w12w12 может зависеть только от признаков x1x1 и x2x2, тогда как параметры ⟨v1, v2⟩⟨v1, v2⟩ совершенно другие, он состоит из v1v1 и v2v2. Для каждого вектора его можно получить путем обучения множественных перекрестных комбинаций, например, его можно получить путем обучения по x1x2, x1x3,...x1x2,x1x3,..., так что ненулевые выборки, доступные для обучения значительно увеличиваются.
Второй - многомерная катастрофа.Вводя скрытый вектор (матричное разложение матрицы параметров), скалярное произведение скрытого вектора может представлять отношение между исходными двумя несвязанными параметрами, что значительно уменьшает количество параметров, от n×( n−1)/2 уменьшается до nk, чтобы завершить оценку параметра признака.
Вычислительная сложность алгоритма FM
Сложность попарного пересечения должна быть O(k*n^2), а на самом деле она может стать O(kn) хитроумным преобразованием математических формул. Ниже показана формула преобразования, которая на самом деле использует идею 2xy = (x+y)^2 — x^2 — y^2.
Принцип алгоритма FFM
Field-aware Factorization Machines for CTR Prediction
Вводя понятие поля, FFM приписывает свойства одного и того же характера одному и тому же полю, например «День = 26/11/15», «День = 1/7/14» и «День = 19/2/15». ". Функция представляет дату и помещается в то же поле
Когда «День = 26/11/15» сочетается с функцией «Страна» и функцией «Тип_объявления», используются разные скрытые векторы (с учетом полей). Это связано с тем, что функция «Страна» и функция «Тип объявления» имеют разные поля.
Принцип алгоритма DeepFM
DeepFM: нейронная сеть на основе машины факторизации для прогнозирования CTR, 2017 г.
FM может выполнять комбинацию функций, но объем вычислений велик, обычно рассматривается только комбинация функций второго порядка.
Как учитывать функции как низкого порядка (порядка 1+2), так и высокого порядка => DeepFM=FM+DNN
Разработана сквозная структура модели => разработка функций не требуется
Хорошо работает в различных тестах и проектах
Libfm
ссылка для скачивания:GitHub.com/read/поклонение…
Используйте документацию:уууууууууу.расставание родителей.org/расставание родителей-1.42. …
Инструменты предоставлены Штеффеном Рендлом, автором статьи FM (2010 г.)
Хорошие результаты в KDD CUP 2012 и Music Hackathon
Не только для рекомендательных систем, но и для машинного обучения (проблемы классификации)
Реализовать три алгоритма оптимизации: SGD, ALS, MCMC
Поддерживает 2 формата входных данных: текстовый формат (рекомендуется) и двоичный формат
Libffm
libFFM
GitHub.com/PredictionVolume/Ли Бэйбэй…
Предоставляет интерфейс Python
Поддержка алгоритмов LR, FM, FFM и т. д.
Высокая эффективность работы, быстрее, чем libfm, libffm
Xlearn
xlearn
Xlearn-doc-talent.read the doc s.io/en/latest/i…
Предоставляет интерфейс Python
Поддержка алгоритмов LR, FM, FFM и т. д.
Высокая эффективность работы, быстрее, чем libfm, libffm
Deepctr
Реализовано множество моделей глубины CTR
Совместимость с Tensorflow 1.4 и 2.0
Совместная фильтрация на основе окружения UserCF, ItemCF
Совместная фильтрация — один из классических алгоритмов рекомендательных систем.
Совместная фильтрация по соседству
UserCF: рекомендовать элементы, которые нравятся другим пользователям с интересами, схожими с пользователем.
ItemCF: рекомендовать пользователю предметы, похожие на те, что ему нравились раньше.
Определение похожих соседей
Фиксированное количество соседей K-окрестностей
Независимо от принципа расстояния берутся только фиксированные K ближайших соседей.
k-ближайший сосед, KNN
Соседи на основе порога сходства, все точки в области с текущей точкой в качестве центра и расстоянием K в качестве соседей
Как рассчитывается сходство
• Метод расчета подобия, по умолчанию MSD, также можно установить косинус, pearson, pearson_baseline.
• min_support, минимальная поддержка, фильтрует пользователей или продукты
• усадка: параметр усадки (относится только к подобию корреляции Пирсона). По умолчанию 100