Говоря о рекомендательной системе, в чем заключается эффект FM-модели?

алгоритм

Эта статья возникла из публичного аккаунта: Кодер Лян, добро пожаловать на внимание

Всем привет, сегодня мы продолжим разговор о рекомендательных системах.

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

Пересечение объектов

Прежде чем говорить о решении, давайте сначала проанализируем характеристики.

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

Возьмите простой пример, например男士_游戏,女士_护肤品Такая функция получается при пересечении пользователя и элемента. Здесь используется пересечение пола пользователя и категории продукта. Кроме того, мы также можем генерировать множество других функций пересечения. По сути, функции, которые мы делаем вручную, на самом деле являются этими функциями пересечения. Вы также можете себе представить, что эти кросс-функции определенно очень хороши для сэмплов, которые можно покрыть, но они совершенно бессмысленны для сэмплов, которые нельзя покрыть. Таким образом, возникает еще одна проблема, а именно проблема способности к обобщению.

Чтобы быть более конкретным, когда мы позже будем скрещивать функции, количество выборок, которые можно будет охватить, будет очень, очень маленьким, особенно скрещивание между некоторыми функциями, которые уже очень малы. Например, скажите高收入人群_房产эта перекрестная черта. Для платформ электронной коммерции недвижимость всегда была очень небольшой областью, и лишь очень небольшое число людей будет смотреть на дома на сайтах электронной коммерции, когда они простаивают. Точно так же и высокодоходные группы могут быть очень малочисленными, ведь большинство из них — обычные трудовые мигранты с ограниченным доходом. Таким образом, выборки, которые могут быть покрыты полученными кросс-признаками, будут очень и очень редкими.

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

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

Редкость пересечения признаков и большие трудозатраты - две проблемы, которых нельзя избежать с помощью модели LR, а также прямая причина, по которой ее заменяют FM.

Машины факторизации

Полное английское название FM-модели — Factorization Machine, что переводится как Factorization Machine, и обычно именуется FM в отрасли.

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

Я написал полный анализ статьи FM ранее, и заинтересованные друзья могут ознакомиться с ним через портал ниже.

Хотите сделать рекомендательный алгоритм? Сначала разберитесь с моделью FM

Идея FM очень проста, она заключается в принудительном пересечении функций два к двум. Назначьте вес каждому пересечению, и пусть модель сама узнает веса всех пересечений. Это эквивалентно расширению одномерного LR до двумерного.

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

Векторное представление на самом деле является тем, что часто называют встраиванием, то есть заменой скаляра вектором. FM присваивает каждому признаку перед пересечением вектор Длина этого вектора, как правило, не очень велика, от 16 до 256. Я провел эксперименты, и почти нет разницы в эффекте длины 16 и длины 256. Тогда для признаков i и j мы предполагаем, что их векторы равныVi,VjV_i, V_j. Для весов их перекрестных членов мы не присваиваем их напрямую через модель, а используемViVjV_i \cdot V_jбыть рассчитаны.

Таким образом, для модели с n признаками принимается исходноеn*nn * nКоличество параметров сократилось доn*kn * k, где k — длина только что упомянутого вектора, который является константой. Студенты, изучавшие алгоритмы, должны знать, что это напрямую уменьшает порядок величины параметров на одно измерение.

Мы напишем выражение FM, и все поймут его с первого взгляда.

y^=w0+i=1nwixi+i=1n1j=1nviTvjxi,xj\hat{y} = w_0 + \sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=1}^nv_i^T v_jx_i, x_j

Из этой формулы мы видим, что когда мы делаем прогнозы, нам нужно пройти все перекрестные члены и, наконец, получить прогнозируемое значение. Еще одна большая проблема здесь — вычислительная сложность. Поскольку мы используем перекрестные члены второго порядка всех признаков, количество членов, которые нам нужно накопить, равноn2n^2. Для рекомендуемых сценариев n — очень большое значение, часто сотни тысяч, очевидно, что квадрат второго порядка для нас неприемлем.

Что касается этой проблемы, у FM-модели есть очень замечательный математический вывод, который прекрасно решает эту проблему.

оптимизация сложности

Давайте проанализируемy^=w0+i=1nwixi+i=1n1j=1nviTvjxi,xj\hat{y} = w_0 + \sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=1}^nv_i^T v_jx_i, x_jВ этой формуле будет обнаружено, что первые два члена являются членами первого порядка, а сложность равнаO(n)O(n), так что давайте проигнорируем эти два пункта и рассмотрим только третий пункт, который нас беспокоит.

Для этой формулы мы можем упростить:

i=1nj=i+1nviTvjxixj=12i=1nj=1nviTvjxixj12i=1nviTvjxixj=12(i=1nj=1nf=1kvi,fvj,fxixji=1nf=1kvi,fvi,fxixi)=12f=1k((i=1nvi,fxi)(j=1nvj,fxj)i=1nvi,f2xi2)=12f=1k((i=1nvi,fxi)2i=1nvi,f2xi2)\begin{aligned}\sum_{i=1}^n\sum_{j=i+1}^n v_i^T v_j x_i x_j &= \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n v_i^Tv_jx_i x_j - \frac{1}{2}\sum_{i=1}^nv_i^Tv_jx_ix_j\\&=\frac{1}{2}(\sum_{i=1}^n\sum_{j=1}^n\sum_{f=1}^kv_{i, f}v_{j, f}x_ix_j-\sum_{i=1}^n\sum_{f=1}^kv_{i,f}v_{i,f}x_ix_i)\\&=\frac{1}{2}\sum_{f=1}^k((\sum_{i=1}^nv_{i, f}x_i)(\sum_{j=1}^nv_{j, f}x_j)-\sum_{i=1}^nv_{i,f}^2x_i^2)\\&=\frac{1}{2}\sum_{f=1}^k((\sum_{i=1}^nv_{i,f}x_i)^2 - \sum_{i=1}^nv_{i, f}^2 x_i^2)\end{aligned}

Чтобы кратко объяснить этот процесс вывода, я думаю, что каждый должен быть в состоянии понять первую строку, а вторую строку также легко понять.viTvjv_i^Tv_jРасширение векторного внутреннего продукта. Переход из второй строки в третью понять нетрудно, вот триΣ\Sigma, мы извлекли самое сокровенноеΣ\Sigma, потому что это сумма конечного члена,Мы вызываем заказ, не влияя на результаты. После извлечения правды получается два квадратных предмета.

Эти два квадратных члена являются сутью, потому что они обаO(n)O(n)сложность. Именно потому, что сложное накопление преобразуется в разность двух квадратных членов, мы завершили работу по уменьшению сложности. Вычислительная сложность двух квадратных членов равнаO(n)O(n), плюс внешний слойO(k)O(k)Сложность , общая сложностьO(kn)O(kn). Но поскольку k является константой, его можно аппроксимировать какO(n)O(n)сложность.

На этом оптимизация прогнозов модели FM завершена.

Преимущества и недостатки ФМ

Здесь мы снова рассмотрели принцип FM.

Для модели FM ее самым большим преимуществом является ее сильная подгоночная способность.Из-за введения перекрестного признака второго порядка способность выборки к выражению значительно улучшена. А так как по математической формуле мы будемO(n2)O(n^2)Сложность снижается доO(n)O(n). Его скорость обучения и прогнозирования очень высока, сравнима с LR.

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

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

Причина очень проста, потому что FM отображает признак в вектор, и когда признак пересекается, вес перекрестного члена вычисляется скалярным произведением вектора. Для объекта i он использует тот же вектор при пересечении со всеми другими объектами.ViV_i. Таким образом, даже если комбинация признаков i и j очень редка в выборке из-заViV_iиVjV_jтренируются отдельно, поэтому мы все еще можем получить относительно точный вес. Даже если комбинация i и j не фигурирует в выборке, но в силуViV_iиVjV_jВектор, мы также можем выразить объединенные признаки i и j, и именно в этом FM сильна.

Хотя FM мощный, он не лишен недостатков, мы можем найти много, если подумать. Например, хотя модель автоматически выполняет кроссовер второго порядка, может ли кроссовер второго порядка действительно выражать всю информацию об особенностях? Будут ли какие-то признаки пересечения третьего порядка или даже признаки пересечения четвертого порядка, которые более эффективны? И все пересечения признаков изучены, будет ли включено много бесполезной информации? Например, в FM задано, что вектор, используемый при пересечении каждого объекта со всеми другими объектами, один и тот же.Это действительно лучший эффект? Другой пример: FM-модели трудно пересекать непрерывные признаки. В принципе, она может пересекать только дискретные признаки 01. Действительно ли это не приводит к потере информации?

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

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