Вступление

Эта статья является продолжением моей последней статьи, где я представил простые методы и некоторые модели соседства для рекомендаций, зависящих от времени. В этом посте я представлю два новых класса моделей, методы на основе матричной факторизации (MF-BPR и MF-TOP) и методы нейронных сетей (RNN и CNN).

Я буду использовать 4 метрики: NDCG, MRR, MAP и HR. Все они подробно описаны в моей предыдущей статье.

Модели обучаются с использованием отфильтрованной версии набора данных MovieLens 20M.

Методы на основе матричной факторизации

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

r (s, l, i) - это оценка i-го элемента (большего и наиболее релевантного) по отношению к последовательности s (то есть пользователю) и последнему элементу l последовательности s. Как только у нас есть оценка для каждого i в I (набор элементов), мы можем применить простой аргумент (от большего к меньшему) для оценок и взять первые k элементов, чтобы получить k наиболее релевантных элементов для этого. Пользователь. Мы определяем U как размер встраивания сеанса и V как размер встраивания элемента.

Вышеприведенное уравнение можно разложить на две части. Первый:

В качестве входных данных он принимает последовательность элементов s («долгосрочные» предпочтения пользователя). wᵢ - это скаляр, который воплощает вес, который мы придаем долгосрочному предсказанию), e_seq - матрица вложения для последовательности, размером: U x | I |, qᵢ - вектор весов размера U и b₁, ᵢ смещение. s - это последовательность элементов, преобразованная в вектор размера количества элементов, и где мы добавили «1» в позицию i, если i-й элемент находится в последовательность; «0» в противном случае (то же, что и S-KNN).

Вторая часть:

Он принимает в качестве входных данных последний элемент в последовательности l и, следовательно, учитывает «краткосрочные» предпочтения пользователя. Для второй части e_item представляет собой матрицу вложения для элементов размера: V x | I |, qᵢ вектор весов размера V и b₂, ᵢ смещение. l - это последний элемент, преобразованный в вектор размера количества элементов, и где мы добавили «1» в позицию элемента (следовательно, ноль везде, кроме одной).

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

Ниже я добавил общий код для MF с функцией сверху.

Мы протестировали две разные функции потерь, которые мы собираемся описать ниже. Я использовал разные обозначения: S_N - это набор отрицательных элементов (каждый элемент, кроме ожидаемого), r (s, l, i) - это оценка, прогнозируемая для ожидаемого элемента i, r (s, l, j) - это баллы, предсказанные для пункта, которые не ожидаются, а σ - сигмовидная функция.

МФ-БПР

Эта потеря в первую очередь включает разницу между оценкой ожидаемого предмета и неожиданного предмета. Затем мы сопоставляем результат от 0 до 1 с помощью сигмоида, а затем берем среднее значение по всем элементам отрицательной выборки, умноженное на -1.

Следовательно, чем больше разница между положительной и отрицательной оценкой, тем больше будет выходной сигмоид (между 0 и 1), тем больше будет выход журнала (между -inf и 0) и, следовательно, при умножении на -1 значение меньше будет выход. Следовательно, чтобы минимизировать потери, мы должны исключить разницу между оценкой положительного и отрицательного результата, которая будет максимизирована!

Ниже я добавил специальный код для функции потери BPR:

MF-TOP

Потеря TOP сначала берет разницу между оценкой неожиданного элемента и ожидаемого элемента, затем мы сопоставляем результат между 0 и 1 с помощью сигмоида. Второй член - это термин регуляризации, который обеспечивает низкое значение неожиданной оценки. Наконец, мы берем среднее значение по всем пунктам отрицательной выборки.

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

Ниже я добавил конкретный код для функции потерь TOP:

Полученные результаты

Я провел оптимизацию гиперпараметров для размера встраивания как сеанса, так и элемента и построил различные метрики на проверочном наборе, полученном как для потерь BPR, так и для TOP.

HR:

КАРТА:

MRR:

NDCG:

Наконец, мы видим, что лучшая модель для обеих потерь - это модель с наибольшим размером вложения (700). Следовательно, мы получаем результаты по метрикам на тестовом наборе для лучшей модели по двум потерям:

Нейронные сети

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

RNN

Рекуррентная нейронная сеть (RNN) - это класс нейронной сети, в которой нейроны внутри «одной клетки» соединены вместе. Это позволяет NN моделировать временные зависимости внутри входной последовательности. Они широко используются для музыкальных и текстовых наборов данных (для генерации, классификации), но могут использоваться для любых задач, связанных с последовательностями и временными зависимостями между элементами внутри входных данных, таких как прогноз цен акций или рекомендации.

Ячейку RNN можно лучше понять, если развернуть ее, как показано ниже. Его можно разложить на t (размер последовательности) «классических» нейронов. Обратите внимание, что параметры являются общими для нейронов одной и той же клетки, поэтому размер последовательности не влияет на количество параметров внутри клетки.

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

Следовательно, RNN можно понимать как несколько копий одного и того же нейрона, каждая из которых передает представление последовательности (вложения), наблюдаемой до сих пор, следующему нейрону.

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

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

Я обучил модель, взяв каждую последовательность увиденного пользователем контента в качестве входных данных (без последнего элемента) и последовательность, сдвинутую на 1 влево (без первого элемента). Я использовал потерю кросс-энтропии с оптимизатором Adam. Ниже я построил график потери обучения в зависимости от количества слоев LSTM:

Я провел небольшой поиск по сетке по количеству слоев LSTM и построил различные показатели ниже.

HR:

КАРТА:

MRR:

NDCG:

Мы видим, что лучшая длина в моем случае - 1. Следовательно, мы получаем результаты по метрикам на тестовом наборе для лучшей модели:

CNN

Сверточная нейронная сеть (CNN) - это класс NN с прямой связью, в котором структура связи между нейронами основана на зрительная кора головного мозга животных. Первоначально они часто использовались в областях, связанных с изображениями и видео.

По сравнению с полностью подключенной NN, CNN инвариантен к переводу, что делает их идеальными для моделирования данных, которые по своей сути обладают этим свойством, таких как изображения, видео и рекомендации (то есть одномерное изображение).

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

Но в моем случае я сначала использовал слой встраивания, это позволило мне использовать два разных cnn - горизонтальный и вертикальный:

Мы использовали E как размер встраивания, F - количество фильтров, h - размер фильтра и D - размер полностью связанного слоя.

Две CNN будут принимать в качестве входных данных встроенные последовательности, то есть матрицу t x E, где каждая строка представляет встроенный элемент:

  • Вертикальный cnn будет состоять из F нейронов, каждый из которых является фильтром размера h * E, который будет скользить вертикально по встроенной матрице. Он смоделирует динамику между элементами в последовательности.
  • Горизонтальный cnn будет состоять из F нейронов, каждый из которых является фильтром размера t, который будет скользить горизонтально по встроенной матрице. Это взвешенная сумма элементов вместе с каждым вложенным скрытым измерением.

Я обучил модель, взяв последний элемент в качестве цели и n элементов до элемента перед последним в качестве входных. Я использовал потерю кросс-энтропии с оптимизатором Adam.

Я провел поиск по сетке по количеству плотных слоев и размеру вложения. Ниже я построил различные показатели.

Убыток:

HR:

КАРТА:

MRR:

NDCG:

Мы видим, что лучшая модель в моем случае - это модель с 1 плотным слоем и размером встраивания 500. Следовательно, мы получаем результаты по метрикам на тестовом наборе для лучшей модели:

Сравнение

Теперь мы можем сравнить все наши модели:

Лучшая модель при рассмотрении всех показателей - сверточная нейронная сеть (CNN).

Заключение

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

использованная литература

  1. ШУДЗИН ВАН, Сиднейский технологический университет; Университет Маккуори, Австралия LONGBING CAO, Технологический университет Сиднея, Австралия ЯН ВАНГ, Университет Маккуори, Австралия, Исследование рекомендательных систем на основе сеансов, февраль 2019 г.
  2. МАЛЬТЕ ЛЮДЕВИГ, Технический университет Дортмунд, Германия ДИЕТМАР ЯННАХ, AAU Клагенфурт, Австрия, Оценка алгоритмов рекомендаций на основе сеансов, октябрь 2018 г.
  3. Цзяси Тан, Школа компьютерных наук, Университет Саймона Фрейзера, Британская Колумбия, Канада; Школа компьютерных наук Ке Ванга, Университет Саймона Фрейзера, Британская Колумбия, Канада, Персонализированная последовательная рекомендация Top-N посредством внедрения сверточной последовательности, февраль 2018 г.