Абстрактный

До сих пор было проведено много исследований по созданию механизмов общих рекомендаций, способных предлагать персонализированные рекомендации с учетом всех данных. После появления автокодировщиков и генеративного искусственного интеллекта в этой области произошли значительные улучшения. Вместо использования матричной факторизации ученые, работающие с данными, находят новые способы использования совместной фильтрации. Одним из таких способов является использование автокодировщиков/VAE для создания лучшего скрытого представления матрицы пользовательских элементов. В части 1 этого поста я обсуждаю теорию, лежащую в основе традиционных методов и методов генеративного искусственного интеллекта для рекомендательных систем. В части 2 я буду сравнивать производительность четырех алгоритмов системы рекомендаций на наборе данных с открытым исходным кодом, предоставленном Spotify. Этот набор данных размещен на AICrowd с открытой задачей улучшить оценку NDCG для предоставленного набора тестов. Набор данных содержит 1 миллион плейлистов с более чем 2 миллионами уникальных треков. Набор данных включает в себя плейлисты, созданные пользователями Spotify в период с января 2010 года по ноябрь 2017 года. Задача состоит в том, чтобы создать механизм рекомендаций, который будет предлагать песни для невидимых плейлистов, называемых автоматическим продолжением плейлистов.

Введение

Механизмы рекомендаций стали очень заметными в индустрии машинного обучения с тех пор, как ученые, работающие с данными, начали наблюдать за моделями и поведением пользователей для определенного продукта. Первый механизм рекомендаций был разработан Джоном Ридлом и Полом Резником в исследовательском проекте GroupLens [16]. Она получила название «Гобеленовая система». Он был разработан для предоставления персонализированных рекомендаций новым группам Usenet. Он использовал подход совместной фильтрации, чтобы предлагать группы новостей на основе схожих предпочтений пользователей. Это заложило основу для использования совместной фильтрации для рекомендации элементов пользователю. Совместная фильтрация – это метод рекомендаций, который использует поведение пользователя для выработки рекомендаций. Основная идея этого подхода заключается в том, что пользователи, имевшие схожие предпочтения в прошлом, вероятно, будут иметь аналогичные предпочтения и в будущем [18]. После этого опубликованного исследования появилось множество методов, пытающихся воспроизвести или улучшить совместную фильтрацию. В следующих подразделах мы обсудим такие алгоритмы, которые используют различные способы совместной фильтрации. Я разделил их на отдельные категории: Традиционные и Алгоритмы ML/DL.

Традиционные алгоритмы рекомендаций

K-Ближайшие соседи

Классификатор KNN — это очень примитивный и сверхэффективный подход к классификации [5] и системе рекомендаций. Он использует расстояние/сходство между точками, чтобы классифицировать их в K предопределенных кластеров. Это итерационный процесс расчета оптимальных центроидов для K кластеров до N итераций. Его считают ленивым учеником, поскольку он не изучает различительную функцию на основе данных, а запоминает структуру точек и классифицирует новые точки, используя расстояние от кластеров [5]. В этой модели нет понятия весов или коэффициентов, кроме центроидов кластеров.

Я использую эту базовую модель, чтобы показать влияние вложений SBERT на определение контекста элемента. Используя косинусное сходство как меру близости между вложениями SBERT заголовков списков воспроизведения, я могу вычислить связанные списки воспроизведения с новым невидимым списком воспроизведения. Этот простой и понятный подход легко объясним и интуитивно понятен обычному пользователю. Это требует меньше вычислительной мощности и всего лишь однократное извлечение вложений для каждого списка воспроизведения в обучающих данных.

Матричная факторизация

Факторизация матрицы — это математический метод, используемый для разложения матрицы на несколько матриц меньших размеров, скалярное произведение которых приведет к исходной матрице [14]. В контексте рекомендательных систем матричная факторизация используется для разложения матрицы взаимодействия пользователя и элемента R на две матрицы меньшей размерности с формой пользователя x m (P) и m x предмета (Q)[14]. Идея состоит в том, чтобы изучить скрытое представление, которое бы восстанавливало исходную матрицу элементов пользователя x с наименьшей возможной ошибкой.

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

Матричная факторизация (также известная как SVD) привлекла внимание конкурса Netflix Prize [12] на 100 миллионов анонимных рейтингов фильмов. Победители конкурса использовали алгоритм SVD, чтобы добиться улучшения на 8% по сравнению с рейтингами фильмов Cinematch.

Методы на основе ML/DL

Автокодировщики

Автоэнкодеры — это нейронные сети, которые в основном используются для неконтролируемого обучения и уменьшения размерности. Одним из основных автокодировщиков является PCA, который использует собственные векторы для извлечения скрытых функций из большого количества функций. Автоэнкодеры состоят из двух разных компонентов: кодера и декодера [9]. Кодер — это сеть, которая преобразует данные в скрытое представление с использованием линейных слоев или слоев свертки. Декодер — это обратный кодер, который преобразует данные в исходную форму. Мы обучаем эту модель, минимизируя потери при реконструкции L с помощью оптимизации градиентного спуска. Веса настраиваются путем обратного распространения производных ошибки сначала через сеть декодера, а затем через сеть кодера [9].

В области автоэнкодеров появилось много инноваций. Множество вариантов автокодировщиков были разработаны для решения конкретных задач, таких как шумоподавление изображений [22], создание новых семплов [2] и т. д. В этой диссертации мы работаем с автоэнкодерами и вариационными автоэнкодерами для восстановления матрицы [песни x плейлист]. Вариационные автоэнкодеры немного отличаются от автоэнкодеров с точки зрения скрытых представлений. Вместо изучения линейного слоя VAE изучает параметры распределения, а декодер в VAE пытается восстановить исходную матрицу путем выборки точек из случайного распределения. Эта методология оценки точек на основе случайного распределения делает невозможным обратную передачу весов кодировщику. Следовательно, для передачи градиентов на кодировщик используется новый прием оценки параметров, называемый трюком перепараметризации. Целью оптимизации VAE является метод нижней границы доказательств (ELBO).

Чтобы вычислить функцию оптимизации для VAE, мы используем два разных термина. Во-первых, это ошибка реконструкции E между предсказанной и входной матрицей x, умноженная на логарифм p(x|z), т.е. распределение данных декодером с учетом скрытой переменной z. Второй член — это термин регуляризации, который использует расхождение KL для оценки разницы между распределением кодировщика и априорным распределением. [7]

Одной из наиболее широко используемых реализаций VAE является условный VAE, который также принимает метки изображений/данных на этапе обучения. Это сочетание генеративного и вероятностного моделирования для изучения компактного и непрерывного скрытого представления данных. Дополнительная контекстная информация позволяет моделям генерировать образцы данных, которые не только связны, но и обусловлены конкретными функциями. В этой истории наша лучшая архитектура использует условный VAE, где контекстуальный ввод представляет собой встраивание имени списка воспроизведения, сгенерированного предварительно обученным преобразователем предложений BERT. Мы не отбрасываем информацию, содержащуюся в названии списка воспроизведения, поскольку она определяет тип треков в списке воспроизведения. Использование заголовка списка воспроизведения в качестве контекстного вектора для VAE значительно повышает производительность.

Трансформеры и трансформеры предложений

Трансформаторы были представлены Васвани и др. в 2017 году в своей исследовательской работе «Внимание — это все, что вам нужно» [1], которая произвела значительную революцию в пространстве НЛП. Трансформеры стали базовой моделью для многих приложений НЛП, включая машинный перевод, генерацию текста и многое другое. Важнейшим нововведением Transformers является самообслуживание, которое позволяет модели взвешивать важность разных слов в предложении во время прогнозов. Это позволяет модели преобразователя фиксировать сложные отношения между словами независимо от их положения. В этой статье решено одно из основных ограничений RNN, а именно распространение информации в длинных предложениях. В последнее время было опубликовано множество предварительно обученных преобразователей, чтобы обеспечить быстрый рост сообщества машинного обучения. Одной из них является модель BERT Transformer от Google[11]. Это двунаправленный преобразователь кодировщика, который фиксирует шаблоны в предложениях в обоих направлениях, обеспечивая большую надежность и лучшее распознавание шаблонов. Предварительно обученный преобразователь BERT широко используется для создания вложений текста для дальнейших процессов машинного обучения. Он имеет множество применений, таких как классификация текста, кластерный анализ, машинный перевод и многое другое.

Применение DNN в рекомендательных системах

Дэрёнг Ким и др. [6] обсуждает новый подход к расширению входных данных для априорного распределения вероятностей, используемого для VAE, с использованием механизмов стробирования. VAE использовался для улучшения совместной фильтрации, но в этой статье входные данные VAE изменены для достижения лучшей производительности при выполнении рекомендаций. В нем говорится, что обычные стандартные априорные значения Гаусса могут ограничивать производительность моделирования. Авторы использовали VampPrior (вариационную смесь апостериорных значений), чтобы найти оптимальный априорный результат. Они также использовали иерархические стохастические единицы для изучения более богатых скрытых представлений. Чтобы улучшить производительность в более глубоких сетях, в этой статье используются закрытые CNN, которые помогают информации распространяться дальше в более глубоких сетях.

Напротив, Харальд Штек [19] утверждает, что создание мелких сетей для рекомендаций повышает производительность. Это предполагает, что отказ от регуляризации нормы L1, а также от ограничения неотрицательности изученных весов является полезным. EASEr делает принципиальный прогноз о том, что пользователю u понравится элемент j, при условии, что прошлые взаимодействия пользователя со всеми элементами заданы Xu, . = х.

Пытаясь решить проблему с помощью набора данных открытого конкурса, я наткнулся на публикацию наиболее эффективных подходов к ACM RecSys Challenge для автоматического продолжения списка воспроизведения музыки [8]. В нем упоминается, что большинство участников из 10 лучших команд воспользовались преимуществами многоэтапной архитектуры. Многоступенчатые модели эффективны и действенны для механизмов поиска и рекомендаций. Многоэтапная архитектура — это подход к реконструкции, за которым следует метод машинного обучения Learning-To-Rank. Ряд наиболее эффективных команд использовали методы нейронных сетей, такие как Auto-encoder, PCA и т. д., для восстановления матрицы пользовательских элементов. Второй этап состоит из модели парного ранжирования, такой как LambdaMART, XGBoost и т. д. Нескольким командам удалось добиться многообещающих результатов, используя простые методы совместной фильтрации на основе соседей. Это побудило меня выдвинуть гипотезу об использовании BERT Embedding для оценки сходства между элементами и поиска ближайших соседей. Это легко объяснимый процесс внушения, основанный на сходстве в векторном пространстве.

Рейтинг

Я разделил эту проблему на многоэтапную задачу ранжирования, в которой прежняя архитектура фильтрует данные, а последующая архитектура ранжирует оставшиеся данные. С помощью архитектуры первого поиска я фильтрую исполнителей по плейлисту. Я использую эту информацию в следующей процедуре ранжирования, чтобы ранжировать уникальные треки в плейлисте. Методика Обучение ранжированию широко используется для многоэтапных методов ранжирования [3]. Это подход машинного обучения с учителем, предназначенный для прогнозирования релевантности элементов на основе функций, извлеченных из взаимодействия пользователя и элемента. Существует три различных способа решения проблемы ранжирования в Learning To Rank:

  1. Поточечное ранжирование. Этот подход рассматривает ранжирование как проблему регрессии. Каждый элемент считается независимым друг от друга, и цель состоит в том, чтобы предсказать числовой балл каждого элемента. Прогнозирующая модель пытается определить релевантность без учета взаимосвязи между элементами. Поточечные методы легче реализовать, но они терпят неудачу, когда между элементами существует связь. Поточечные методы — это простые методы регрессии, такие как SVM (машины опорных векторов) или методы повышающей регрессии.
  2. Парное ранжирование. Парные методы рассматривают пары элементов и стремятся определить, какой элемент в паре должен иметь более высокий рейтинг. Вместо того, чтобы напрямую прогнозировать оценки релевантности, он сравнивает два элемента в паре. Обучающие данные состоят из пары элементов, где один элемент имеет более высокий рейтинг, чем другой. Парные методы лучше, чем точечные, поскольку они используют преимущества отношений между элементами, но также подвержены парным ошибкам. [3] Парный подход реализован в RankNet, представленном [3] в Microsoft Research. Он изучает взаимосвязь между парами элементов, используя усиленные деревья, и уменьшает потери, используя оптимизацию градиентного спуска.
  3. Списочное ранжирование. Списочное ранжирование учитывает весь ранжированный список элементов для запроса и оптимизирует производительность модели, используя порядок элементов. Эти методы напрямую оптимизируют показатели оценки ранжирования, такие как NDCG, MAP и т. д. Методы спискового ранжирования потенциально могут создать наилучший возможный порядок ранжирования для набора элементов, и они требуют большого объема обучающих данных по сравнению с парными и точечными методами. LambdaMART — это пример метода ранжирования по спискам.

Вы дошли до конца поста. Если хочется продолжения, вот ссылка на продолжение рассказа на эту тему.

Рекомендации

[1] Ники Пармар, Якоб Ушкорейт, Лайон Джонс, Эйдан Н. Гомес, Лукаш Кайзер, Илья Полосухин, Ашиш Васвани, Ноам Шазир. Внимание – это все, что вам нужно. В книге «Вычисления и язык», стр. 15, 2017 г.

[2] Берт Арнрих Бьерн Пфицнер. Dpd-fvae: генерация синтетических данных с использованием объединенных вариационных автокодировщиков с дифференциально-частным декодером. В области машинного обучения, 2022 г.

[3] Си Джей Берджес. От раннета до лямбдаранка и лямбдамарта: обзор. В журнале «Поиск информации о исследованиях Microsoft», стр. 82, 2010 г.

[4] М. Шедл К. В. Чен, П. Ламере и Х. Замани. Задача Recsys 2018: автоматическое продолжение музыкального плейлиста. В RecSys '18: материалы 12-й конференции ACM по рекомендательным системам, 2018 г.

[5] Ю. Юнцюань Д.А. Аденийи, З. Вэй. Автоматизированная система сбора данных об использовании Интернета и система рекомендаций с использованием метода классификации k-ближайшего соседа (knn). В области прикладных вычислений и информатики, 2016.

[6] Понвон Су Дэрён Ким. Улучшение возможностей совместной фильтрации: гибкие механизмы пропускания априорных значений. На тринадцатой конференции ACM по рекомендательным системам (RecSys '19), стр. 5, 2019 г.

[7] Макс Веллинг Дидерик П. Кингма. Введение в вариационные автоэнкодеры. В книге «Основы и тенденции машинного обучения», страницы 307–392, 2019 г.

[8] Ламере П. К. В. Чен. Х. Замани, М. Шедль. Анализ подходов, использованных в проекте ACM Recsys Challenge 2018 для автоматического продолжения списка воспроизведения музыки. В разделе «Автоматическое продолжение списка воспроизведения музыки», стр. 20, 2018 г.

[9] Салахутдинов Р. Р. Хинтон Г. Э. Уменьшение размерности данных с помощью нейронных сетей. В журнале Science, стр. 504–507, 2006 г. [10] Николас Хуг. Набор Python для рекомендательных систем. В Рекомендательных системах, 2015.

[10] Николас Хуг. Набор Python для рекомендательных систем. В Рекомендательных системах, 2015.

[11] Кентон Ли, Кристина Тутанова, Джейкоб Девлин, Минг-Вэй Чанг. Берт: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. В области вычислений и языка, 2019.

[12] Стэн Лэннинг Джеймс Беннетт. Премия Нетфликса. В наборе данных Netflix Prize, 2007. [13] Кекалайнен Дж. Ярвелин, К. Оценка IR-методов на основе совокупного выигрыша. В ¨ Транзакции ACM в информационных системах (TOIS), страницы 422–446, 2002 г.

[14] Белл Р. Волинский С. Корен, Ю. Методы матричной факторизации для рекомендательных систем. В IEEE Computer Society, страницы 30–37, 2009 г.

[15] Катерина Ева Матса Мейсон Уокер. Потребление новостей в социальных сетях в 2021 году. В Pew Research Center, 2021 год.

[16] Пол Резник и Хэл Р. Вариан. Рекомендательные системы. Сообщения ACM, 40(3):56–58, 1997.

[17] Датта М. Рой, Д. Систематический обзор и исследовательский взгляд на рекомендательные системы. В сфере больших данных, 2022 год.

[18] Бадрул Сарвар, Джордж Карипис, Джозеф Констан и Джон Ридл. Алгоритмы рекомендаций по совместной фильтрации на основе элементов. В материалах 10-й Международной конференции по Всемирной паутине, страницы 285–295, 2001 г.