Поскольку вы вошли в эту статью, я предполагаю, что вы работаете инженером по алгоритмам в отрасли. Однако, согласно моему опыту, предположение, вероятно, верно только на 20%, поскольку у большинства инженеров-алгоритмов очень много интересов, они будут нажимать на статьи, если такие слова, как «модель, алгоритм, глубокое обучение, шокирующе, красотка »отображаются в заголовке, но затем через 3 секунды закрывает окно с разочарованием. Статья более техническая, скорее она будет закрыта. Я прав? Поверьте, я не обману ваш щелчок, установив необычный заголовок и добавив спокойную музыку в качестве фона.

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

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

Если вы думаете о CF / SVD / MF, возможно, вы только что прочитали школьную книгу или закончили вводный курс рекомендательной системы, но у вас нет практического опыта. Если ваш инстинкт основан на модели LR + GBDT, значит, вы опытный разработчик алгоритмов, но ваш арсенал недавно не обновлялся.

Посмотрите на календарь, сейчас 2019 год. Нам не нужно сейчас углубляться в модели Wide & Deep или DeepFM, поскольку, похоже, их эффективное применение в крупномасштабном бизнес-сценарии все еще является сложной задачей. Но, прежде всего, вам следует изучить FM-модель, если вы считаете себя скромным инженером-алгоритмом, стремящимся к изучению.

Что такое FM?

FM расшифровывается как Factorization Machine. Он был предложен Рендлом в 2010 году и в последние годы широко использовался в крупномасштабной системе оценки и рекомендаций CTR. Модель FM относительно проста, и в Интернете есть много контента, поэтому я не буду здесь подробно останавливаться. Многие модели сортировки на основе DNN очень похожи на FM по очевидной причине: комбинация функций жизненно важна для сортировки рекомендаций, а идея FM была очень простой и элегантно отражающей (в основном 2-го порядка) комбинацию функций. Любая модель DNN не могла бы работать без этого, потому что структура MLP неэффективно фиксирует комбинации функций. Таким образом, эти модели DNN всегда связаны с моделью FM, где функции должны быть объединены внутри. Это причина, по которой вы будете встречать это или его вариант снова и снова.

В настоящее время модель сортировки на основе DNN обычно принимает структуру MLP. Возможность извлечения признаков намного ниже уровня, достигнутого CV / NLP. Легко заставить людей почувствовать, что модель DNN для оптимизации сортировки все еще находится на очень ранней стадии примитивного общества. Тогда почему это? Потому что сеть CNN, естественно, не подходит для сценария сортировки. RNN используется как последовательность для захвата поведения пользователя, и допустимо использовать вспомогательную структуру информации о времени, но она также не подходит для первичной модели. Похоже, что осталось не так много вариантов. Трансформатор очень многообещающий, и я думаю, что самовнимание - еще один хороший подход, который может хорошо улавливать комбинацию функций (включая 2-й и 3-й порядок, даже множественный порядок). Я провел несколько экспериментов, используя самовнимание и преобразователь в качестве основной модели сортировки рекомендаций. Результаты тестирования не сильно отличаются от DeepFM. Но это могло быть вызвано тем, что я не тратил много времени на утомительную настройку. Учитывая, что со второй половины 2018 года было опубликовано несколько новых статей об использовании трансформатора для сортировки рекомендаций, я лично очень оптимистичен в отношении эволюции в этом направлении. До сих пор оставшимся выбором был только MLP. На фоне волны глубокого обучения оно действительно сильно отстает от многих других областей с точки зрения моделирования. На самом деле, я думаю, что это в основном вызвано сложностями его собственной предметной области, может потребоваться революционная модель DNN, которая хорошо подходит для ее собственных характеристик. Подобно Resnet в поле распознавания изображений или Bert в поле NLP, такой модели DNN, как эти две, в поле рекомендаций пока нет. Во всяком случае, я настроен более оптимистично, я предвижу, что тот уже в пути и очень близко к нам.

Я кратко представлю FM-модель с двух точек зрения. Первый - это эволюция модели комбинации функций. Другой - результат эволюции модели совместной фильтрации. Модель FM находится на пересечении двух вышеупомянутых моделей.

От LR к SVM и к FM

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

Добиться этого несложно. На приведенном выше рисунке к уравнению можно добавить комбинацию функций 2-го порядка. Любые две функции могут быть объединены, и объединенные элементы можно рассматривать как новую функцию и интегрировать в линейную модель. Вес комбинированного признака можно использовать для представления, как и в случае веса признака 1-го порядка, вес комбинированного признака изучается на этапе обучения. За кулисами использование этой комбинации функций 2-го порядка эквивалентно полиномиальному ядру SVM. Но у последнего есть потенциальная проблема: он моделирует комбинированные признаки, но способность к обобщению слаба. Недостаток будет очень заметным и увеличенным, особенно с учетом большой разреженной матрицы признаков. Такие как проблема сортировки рекомендаций, функции всегда хранятся в огромной разреженной матрице. Следовательно, это решение не получило широкого распространения. Так что еще?

Поэтому в настоящий момент дебютировала модель FM. Как показано на приведенном выше рисунке, модель FM также напрямую вводит комбинацию функций 2-го порядка из любых двух функций. Наиболее существенное различие между FM и SVM-моделью - это метод расчета веса комбинации функций. Для каждого признака FM изучает одномерный вектор размера k, так что значения весовых коэффициентов комбинаций признаков двух признаков x_i и x_j представлены внутренним продуктом ‹v_i, v_j› соответствующих признаков. По сути, это встраиваемая характеристика характеристик, которая во многом соответствует природе «встраиваемого» мышления. Следовательно, FM как технология встраивания функций может рассматриваться как давний предшественник различных методов встраивания в глубокое обучение. Фактически, отсутствует только двухслойный или трехслойный скрытый слой MLP, который используется для непосредственного моделирования нелинейной комбинации многослойных функций. В остальном аспекты в основном те же.

Итак, почему встраивание FM эффективно при работе с крупномасштабной разреженной матрицей. Почему сильна его обобщающая способность? Обратитесь к приведенной выше иллюстрации, даже если две функции не видны в обучающем наборе одновременно, это означает, что количество раз, когда x_i и x_j появляются вместе, равно 0. В SVM невозможно узнать вес его сочетание функций. Но поскольку FM должен изучить встраивание одной функции, и это не зависит от того, возникла ли конкретная комбинация функции или нет, так что пока появилась функция x_i и любая другая комбинация функций, тогда она может узнать свой собственный соответствующий вектор вложения. Таким образом, хотя комбинация функций x_i и x_j не была замечена в обучающем наборе, вы все равно можете использовать эту новую комбинацию функций во время прогнозирования, потому что x_i и x_j имеют собственное соответствующее встраивание, изученное на этапе обучения, и их внутренний продукт представляет собой вес этой новой комбинации функций. Вот почему обобщающая способность FM фантастическая.

По сути, это также основная характеристика всех разновидностей вложений. Он переключает жесткое сопоставление 0/1 на двоичное на мягкое сопоставление на основе векторов. То, что не удалось сопоставить, теперь в определенной степени можно рассматривать как совпадение. Само по себе это хорошее улучшение для обобщения.

От модели MF к модели FM

Безусловно, вы, вероятно, должны знать, что это за модель FM. Так что же делает MF? Разве они не очень похожи, по крайней мере, с точки зрения правописания, MF ‹=› FM? Какого черта он делает с FM? Это просто обратная работа модели FM?

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

Когда обучение завершено, каждый пользователь и элемент получают соответствующий ему вектор встраивания низкой размерности. Выполнение вычисления внутреннего продукта ‹user_i, item_j› даст вам прогнозируемую оценку для user_i на item_j. Вам это ни о чем не напоминает? Давайте сосредоточимся на отношениях между MF и FM.

MF и FM не только немного выглядят по названию, но и имеют много общего или взаимосвязанного алгоритма.

По сути, модель MF является частным случаем модели FM. MF можно рассматривать как модель FM только с двумя полями свойств: User_ID и Item_ID. MF изучает эти два типа функций из исходной матрицы и встраивает их в две низкоразмерные матрицы в виде выражений. FM можно рассматривать как дальнейшее расширение модели MF. В дополнение к функциям User ID и Item ID, многие другие типы функций могут быть дополнительно интегрированы в модель FM, которая преобразует все эти функции в низкоразмерные векторы внедрения. Вес комбинации функций может быть выражен и рассчитан как внутреннее произведение любых двух внедренных функций. Если FM использует только User ID и Item ID, процесс прогнозирования будет таким же, как и процесс прогнозирования MF.

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

Я надеюсь, что вы по-прежнему будете следить, не разочаровавшись в сложных и хаотичных отношениях между MF и FM. Хочу внести следующие предложения (личные взгляды):

  1. Если вы заинтересованы в использовании MF для совместной фильтрации, пожалуйста, успокойтесь и сначала задайте себе вопрос. Это для построения модели рекомендаций, основанной на неявной или явной обратной связи? Например, рейтинг пользователя обычно считается явной обратной связью, поскольку он оценивается от 1 до 5, включая как положительные, так и отрицательные аспекты. Между тем, количество кликов или покупок пользователя является неявной обратной связью, поскольку они служат только для сигналов (уверенности) в том, что «чем больше число, тем больше вероятность, что оно понравится пользователю, но не получателю гранта». Оптимизация потерянной функции для обучения модели, которая использует только неявные обратные связи, больше зависит от фактического варианта использования. Кроме того, нам нужно найти способ генерировать достаточно отрицательных образцов, чтобы FM тоже работал хорошо. Не волнуйтесь, я напишу отдельную статью об этих приемах и приемах использования неявной обратной связи. Если вы отвечаете за явную обратную связь, попробуйте FM. Поскольку они эквивалентны с точки зрения функциональности, более того, FM позволит вам смешать его с любыми другими функциями, которые вы захотите добавить в будущем.
  2. Построение модели сортировки, которая использует только User ID и Item ID в качестве входных данных, на практике не удовлетворит потребности в крупномасштабной системе рекомендаций. Причина проста: в большинстве рекомендательных систем мирового класса у пользователя или элемента есть много информации, доступной для использования, и совместные данные - лишь одна из них. Введение большего количества функций, безусловно, очень полезно для получения более точной персональной рекомендации. Однако, если в модели отсутствует удобный способ добавления дополнительных функций, она будет ограничена и ее будет трудно постоянно улучшать. Вот почему метод MF редко используется в задачах ранжирования или сортировки.

Безусловно, мы объяснили модель FM с разных сторон.

Что дальше? Как сделать выбор? Это скорее философский, чем технический вопрос. При этом выбор алгоритма обычно выглядит следующим образом: «Инженер-алгоритм не решался выбрать, какую модель запустить в производство. У него есть три отличных варианта на выбор: один элегантный, другой хорошо работает, последний очень модный. Но ему трудно принять решение. Три дня спустя он сказал мне, что его директор просто отпустил его с самым быстрым! » Чудесно!

Поскольку FM вычисляет 2-й порядок комбинации функций, очень часто можно услышать вопросы о ее эффективности. Это действительно отличная проблема, потому что 2-й порядок во всех смыслах эквивалентен O (n * n). Это конец истории? В следующей главе я подробнее остановлюсь на эффективности FM-модели.

Аплодисменты и кредиты junlin_zhang, jiangjian тоже.