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

Приведем несколько примеров: повсеместная платформа цифровой потоковой передачи Netflix реализует систему рекомендаций, чтобы предлагать пользователям новый контент на основе того, что они ранее смотрели. Точно так же ключом к успеху популярного мобильного приложения TikTok является использование его огромной базы данных пользователей и контента, чтобы рекомендовать персонализированные короткие видеоролики по их индивидуальным предпочтениям и, следовательно, повысить коэффициент удержания пользователей. Точно так же популярная платформа электронной коммерции Amazon использует аналогичный метод, чтобы рекомендовать новые товары своим клиентам, чтобы сократить объем исследований пользователей и удивить их, предлагая новые продукты, которые они хотят, на основе их текущих и прошлых данных.

Системы рекомендаций для поддержки банков

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

Сантандер челлендж

Учитывая важность использования банками механизмов рекомендаций, способных предсказывать следующий продукт, который приобретет пользователь, Сантандер в 2016 году запустил задачу, направленную на то, чтобы подтолкнуть ученых, занимающихся машинным обучением, к разработке новых современных моделей для решения этой задачи. Соревнование доступно на Kaggle, и в нем приняли участие 1779 команд, которые выиграли часть от общего приза в размере 60 000 долларов. Значительный размер этого приза дает четкое представление о том, насколько важна эта технология.

Некоторые современные модели

Хотя эта проблема теперь решена, мы в Genify решили использовать эту современную передовую технологию для разработки нашей собственной системы рекомендаций и попытались превзойти две другие высокопроизводительные модели на том же наборе данных. Первая рассматриваемая модель - это модель черного ящика, обученная с помощью Amazon Web Services (AWS) на AWS service Amazon Personalize (AP). AP - это система автоматического машинного обучения для персонализированных рекомендаций в реальном времени. Он управляет всем конвейером машинного обучения, включая обработку данных, определение функций, использование лучших алгоритмов, обучение, оптимизацию и размещение моделей, не требуя каких-либо знаний машинного обучения. Вторая модель - это модель, обученная с помощью Xgboost, которая была тщательно изучена и принята многими конкурентами Kaggle из-за ее простоты и эффективности. Обзор нашей модели Xgboost, взятой из Kaggle, можно найти в нашем предыдущем блоге.

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

Обзор набора данных

Прежде чем продолжить, давайте вкратце разберемся с содержанием данных, предоставленных банком. Набор данных содержит данные о поведении клиентов от Santander за 1,5 года. Цель банка - предсказать, какие новые продукты будут покупать клиенты. Данные начинаются с 2015–01–28 и содержат ежемесячные записи продуктов, которые есть у каждого покупателя, такие как кредитная карта, сберегательный счет и т. Д. Кроме того, в наборе данных также записываются личные данные пользователя, такие как средний доход, возраст, пол. , и так далее. Ежемесячная статистика предоставляется до 2015–05–28. Наконец, модель предсказывает, какие дополнительные продукты покупатель начнет использовать в следующем месяце, 2016–06–28. Таким образом, набор данных охватывает 17 месяцев с 2015–01–28 по 2016–05–28, а выходной набор содержит только временную метку, соответствующую 2016–06–28. Поэтому модели обучаются на последовательностях 16 месяцев для прогнозирования продуктов, приобретенных в соответствующий последний месяц. В следующих таблицах мы можем увидеть продукты, принадлежащие образцу пользователя, вместе с соответствующими метаданными.

Трансформатор для рекомендаций

Transformer, представленный в 2017 году, представляет собой модель глубокого обучения, состоящую из кодировщика и декодера, которая в основном используется для решения задач обработки естественного языка (NLP). Его преимущество перед классическими моделями, используемыми в литературе, такими как RNN и LSTM, заключается в том, что он не требует, чтобы обработка последовательных данных происходила по порядку, что обеспечивает большее распараллеливание и, следовательно, сокращение времени обучения. Его также можно использовать для изучения встраивания, которое можно настроить для других задач, таких как BERT (2018) или GPT-3 (2020). Таким образом, учитывая новизну модели, в настоящее время доступно очень мало реализаций, и их непросто обучить. Обратите внимание, что хотя последовательные данные могут быть неупорядоченными, каждый элемент последовательности должен кодировать свою позицию в последовательности, чтобы позиционная информация могла быть использована преобразователем. Посмотрев на пример в поле NLP, позиционное кодирование слов вычисляется с помощью синусоидальной функции на основе положения слов внутри последовательности. Учитывая, что рекомендательные системы также обучаются на последовательных данных, мы, естественно, можем позаимствовать преобразователь из NLP и адаптировать его для наших рекомендательных задач. Фактически, мы можем видеть представление предметов, принадлежащих в каждом месяце, как «слово», а предметы, принадлежавшие в прошлом месяце, как «следующее слово в предложении», и это именно то, что мы хотим предсказать.

Предварительная обработка данных и разработка функций

Хорошо известно, что специалисты по данным тратят большую часть своего времени на проектирование функций и предварительную обработку данных, а не на разработку моделей, и наша работа не является исключением. Дополнительные проблемы возникают из-за того, что данные также содержат личную информацию пользователя, которая, часто или нет, может изменяться со временем. Однако с разной степенью важности эта информация полезна для выявления потенциальных сходств между пользователями. При этом не все функции полезны для нашей задачи, и большинство из них не добавляют существенной ценности нашей модели. Более того, меньшее количество функций приводит к более простой модели, которую легче обучать. Важность функций была обеспечена нашей моделью Xgboost и сообщается здесь:

Среди этих функций мы выбрали следующие:

  • Стаж: (целое число в диапазоне 0–255), как долго пользователь является клиентом банка;
  • Возраст: (целое число) возраст пользователя;
  • Сегментация: (категория) статус пользователя: «01-VIP», «02-Физические лица», «03 -колледж окончил». Кроме того, для обработки пропущенных значений мы создали новую категорию, в результате чего общее количество достигло 4.
  • Валовой семейный доход: (целое число) годовой доход пользователя в зависимости от региона его проживания.

Позже мы покажем, что этих функций, помимо истории использования продукта, достаточно для достижения производительности, превосходящей Amazon Personalize. Среди перечисленных выше четырех функций «Сегментация» является единственной, которая может быть закодирована в горячем режиме, поскольку она включает только четыре различных значения. Более того, три других числовых признака нормализованы, чтобы их значения попадали в тот же диапазон. Этот шаг является фундаментальным, иначе модель неправильно узнает, что характеристика «Валовой доход домохозяйства» более важна, поскольку она принимает значения, которые на несколько значений выше по сравнению с двумя другими характеристиками. Что касается числовых характеристик, отсутствующие значения были заполнены средним значением. Что касается истории продукта, то изначально предполагалось изменить данные, чтобы отслеживать только недавно приобретенные продукты, однако от этого метода отказались, поскольку мы потеряем жизненно важную информацию о продолжительности владения, а также последний месяц владения. Наконец, положение слова кодируется путем добавления двоичного представления года, когда данные были взяты (0 = 2015, 1 = 2016) вместе с 12-кратным горячим вектором, представляющим его месяц. Чтобы было понятнее, давайте представим, как будет выглядеть «слово» нашей последовательности после предварительной обработки.

Обратите внимание, что, за исключением «Валовой доход домохозяйства», «Возраст» и «Старшинство», все характеристики являются двоичными, и их объединение образует массив из 42 элементов. Наконец, входом в модель является последовательность, состоящая из 16 слов, сгруппированных в пакеты по 32.

Архитектура модели

Заимствуя идею BERT, мы избавляемся от декодера преобразователя и оставляем только кодировщик. Фактически, наша цель состоит в том, чтобы заставить кодировщик изучить встраиваемое представление пользовательских данных, а затем позволить фид-сетям строить поверх кодировщика для прогнозирования. Таким образом, модель принимает в качестве входных данных последовательность из 16-месячной истории пользователя и учится предсказывать элементы, которыми он владел в самый последний месяц. Модель состоит из 6 слоев внимания кодировщика с несколькими головками и 7 головок внимания.

За каждым из этих слоев следует слой прямой связи размером 2048. Перед каждым слоем внимания и упреждающей связи у нас есть слой пакетной нормализации. После каждого слоя у нас есть слой выпадения с шансом выпадения 0,5 для уменьшения переобучения. Поверх кодировщика у нас есть уровень прямой связи, за которым следует уровень softmax, которые используются для прогнозирования вероятности владения элементом в прошлом месяце. Вещь считается собственностью, если ее вероятность составляет ›0,5. Точно так же приобретенные предметы можно предсказать, исключив предметы, которыми владели в предыдущем месяце, из исходных прогнозов. Таким образом, модель обучается, используя двоичную функцию перекрестной потери энтропии и Адама в качестве оптимизатора. Что касается скорости обучения, мы приняли расписание разминки RAdam для скорости обучения с пиком после 10 эпох и спадом до 100-й эпохи, когда процесс обучения завершается. Наличие расписания разминки гарантирует более высокую скорость обучения в начале обучения, когда параметры модели все еще далеки от оптимальных. После определенного пика он постепенно уменьшается, чтобы обеспечить более стабильную тренировку.

Результаты экспериментов

Все три модели обучены предсказывать право собственности на продукты. Напомним, разница между прогнозированием владения товарами и приобретения заключается в том, что последнее не включает товары, принадлежавшие за последний месяц перед прогнозируемым месяцем. Следовательно, предметы, приобретенные в последний день 2016–06–28, рассчитываются без учета предметов, принадлежащих на 2016–05–28 из исходных прогнозов. Модель преобразователя Genify превосходит Amazon Personalize и XGBoost по всем тестируемым показателям, улучшая их примерно на 10–50%.

Метрики, которые мы решили использовать для измерения производительности моделей, - это Precision @ k с k = 1,3,5,10,20, а также MRR и NDCG.

Примечание. читатели, не знакомые со значением показателей, могут найти подробное введение здесь в официальной документации.

Как видно из приведенной выше таблицы , наша модель превосходит Xgboost и Amazon Personalize по всем показателям приобретения продукта. Если мы более внимательно посмотрим на метрику Precision @ 1, мы увидим, как более 98% самых конфиденциальных прогнозов нашей системы рекомендаций - это продукты, которые были фактически приобретены. Для сравнения, менее 70% прогнозов первого уровня, сделанных Xgboost, верны, а в случае AP это значение падает до менее 50%.

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

Пример прогнозов

Топ-3 рекомендуемых предмета (прогнозы):

  1. Прямой дебет
  2. Долгосрочные вклады
  3. Пенсии 1

Приобретенные предметы (правда):

  1. Прямой дебет
  2. (Пустой)
  3. (Пустой)

История товаров пользователя (данные):

Возможности пользователя (метаданные):

  • Стаж: 35
  • Возраст: 23 года
  • Сегментация: 03-UNIVERSITARIO
  • Валовой доход домохозяйства: 58728,39

Вывод

Transformer - это крупный прорыв в области глубокого обучения, и, как мы показали, он приносит огромные преимущества не только в область НЛП, но также может быть очень полезен для улучшения современных рекомендательных систем. Модель машинного обучения, реализованная Amazon Personalize, а также ее конвейер предварительной обработки данных - это плод многолетнего опыта, накопленного исследователями Amazon. Тем не менее, Transformer, который мы разработали в Genify, при поддержке хорошо спроектированной предварительной обработки данных и интеллектуальной адаптации к нашей рекомендательной задаче, не только легко превосходит AP, но и благодаря огромному распараллеливанию также быстрее обучается. Единственный недостаток заключается в том, что создание механизма рекомендаций с такой сложной моделью не так быстро, как обучение использованию автоматического инструмента машинного обучения, но в долгосрочной перспективе более точные прогнозы гарантированно принесут отдачу, достойную проделанной тяжелой работы. настроить это.

В отличие от AP, который является обычным инструментом машинного обучения, модель Kaggle Xgboost специализируется на работе с набором данных Santander. Он использует мощный алгоритм машинного обучения Xgboost, а также более сложный процесс разработки функций для достижения лучшей производительности, чем AP, и занимает более высокие места в таблице лидеров Kaggle. Тем не менее, он не так точен, как наш Transformer, что способствует дальнейшему продвижению нашей модели как возможного лидера среди рекомендательных систем. Еще одно преимущество, предоставляемое кодировщиком Transformer, заключается в том, что он также изучает встраивания функций, которые можно использовать для обнаружения взаимосвязей между различными пользователями или для прогнозирования рекомендаций по новому набору данных путем сопоставления ввода и вывода с их соответствующим внедрением.

Об авторе

Я Давиде Лю, аспирант Университета Цинхуа и специалист по анализу данных Genify.ai. Мое исследование в Tsinghua сосредоточено на надежности моделей обучения с подкреплением, и я всегда ищу проблемы и возможности в области глубокого обучения, такие как те, которые предлагает мне Genify.

Авторы

Мы благодарим Брантона Де Мосса, друга Genify, за то, что вместе с нами он разработал первое видение использования Transformer для составления рекомендаций.

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