Deep Learning Recommendation Models

Deep Learning Recommendation Models
Alexander Supertramp/shutterstock.com
В материале IT-World — эксклюзивное мнение старшего аналитика-разработчика «Яндекса» Ольги Ковалевой об устройстве, революционных преимуществах и скрытых технических подводных камнях модели DLRM. Узнайте, почему ее высокая производительность упирается в гигабайты памяти и грамотное распараллеливание, и подойдет ли DLRM для вашего бизнеса.

DLRM – одна из новых архитектур рекомендательных систем, ставшая open-source лишь в марте 2019 года. До этого она показала превосходные результаты при создании веб-сервисов с персонализированными рекомендациями в Amazon, Netflix и ряде других технологических компаний. Например, сообщается, что смена традиционных подходов на DLRM привела к росту прибыли Amazon. В 2018 именно DLRM компания была обязана 35% прибыли. Согласно выводам Netflix, новая архитектура сыграла роль в просмотре 75% фильмов на платформе в том же, 2018 году. Поговорим об устройстве, минусах и плюсах, технических нюансах применения DLRM. Пояснения для этой статьи были получены у Ольги Ковалевой, Старшего Аналитика - разработчика «Яндекса».

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

Именно Ковалева разработала ряд систем на основе ML, фильтрующих рекламный трафик: в том числе для известных сервисов экосистемы «Яндекса» WordStat и РСЯ (Рекламная сеть Яндекса). Статья ниже – изложение полученных от нее комментариев по DLRM-моделям. Для полноты картины были привлечены данные и из ряда других источников.

Об архитектуре, или: за счет чего DLRM получает более высокие результаты?

Структурно DLRM включает несколько отчетливых компонентов, дающих столь высокий результат:

  • эмбеддинги: преобразуют категориальные признаки в числовые векторы, помогающие алгоритмам интерпретировать категории;
  • интеракции признаков: перемножение эмбеддингов и числовых признаков для выявления связей. (Важно: не путать с матричной факторизацией – в DLRM используется именно dot-product взаимодействие);
  • многослойный перцептрон (MLP): обрабатывает как dense-, так и sparse-признаки.
  • output layer: финальный классификатор/регрессор.

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

Присутствие в конструкции DLRM многослойного перцептрона усиливает традиционные алгоритмы «машинного обучения» мощью глубинного обучения (deep learning), когда нейросеть, наткнувшись на неразмеченные или не до конца понятные данные (аномалии), сама много делает, чтобы научиться лучше их понимать и обрабатывать.

Помимо всего прочего, взаимодействие четырех слагаемых DLRM-архитектуры налажено в логике распараллеливания модели. То есть она эффективно работает, когда в обучении и дальнейших операциях одновременно участвуют несколько устройств, а само обучение связано с аномально большим объемом Big Data. Еще одной особенностью является оригинальный сценарий взаимодействия входящих в DLRM эмбеддингов, который позволяет еще эффективнее понимать «латентные» факторы, которые стоят за тем или иным поведением пользователя.

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

DLRM: некоторые проблемы применения

Наряду с весомыми достоинствами у DLRM есть и немало серьезных недостатков:

  • экономия, которую приносит модель, зависит от эффективного распараллеливания задач между устройствами. Эмбеддинги работают с большинством параметров в нескольких таблицах, требующих гигабайтов и гигабайтов памяти. Параметры, с которыми, в свою очередь, имеет дело многослойный перцептрон, гораздо меньше, но при транзакциях они создают массивы данных очень большого объема. Их «обсчет» требует значительных вычислительных затрат;
  • еще одна проблема – приоритет в DLRM такого фактора, как пропускная способность памяти. Работа эмбеддингов может затребовать очень большой расход памяти при определенных обстоятельствах. Поможет дополнительное деление данных, различные приемы, которые в таких случаях применяются специалистами по «машинному обучению»; 
  • ориентация DLRM на распределение ресурсов между несколькими GPU и внутри узла вовлеченных машин создает проблемы их взаимодействия. Если это взаимодействие организовано неправильно, то в обработке данных могут возникать «бутылочные горлышки». Из-за них может даже теряться эффективность применения модели в целом; 
  • «бутылочные горлышки», замедляющие вычисления могут создаться не только из-за использования ресурсов, но и в рантайме и в результате сложных вычислений, которые становятся результатом работы многослойного перцептрона.

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

Например, недавно проведенные тесты показали, что проблему «бутылочных горлышек», которые при использовании DLRM создают эмбеддинг-таблицы можно устранить с помощью новых, специализированных архитектур потоков данных и применения правильного оборудования. Эксперты получили с использованием этих архитектур на акселераторах Huawei Ascend в 1.5, 6.5 большую производительность при типовых нагрузках. В 20 раз лучше удалось справиться с распределениями со смещением. Напомним, ранее DLRM неоднократно критиковали за то, что эмбеддинг-таблицы делают множество случайных обращений к памяти для извлечения небольших векторов из таблиц различного размера, на чем производительность терялась.

Помимо Huawei Ascend авторы исследования «Deep Recommender Models Inference: Automatic Asymmetric Data Flow Optimization» тестировали новые реализации DLRM и на Nvidia A100, однако сравнимые по эффективности результаты удалось получить только при идеальных условиях доступа к памяти.

Так или иначе, несмотря на наличие ряда проблем, DLRM является экономичной по отношению к вычислительным ресурсам моделью. По сравнению со специализированными архитектурами для глубинного ML, ее архитектура упрощена. Например, если DeepFM учитывает весь массив взаимосвязей, которые раскрываются в данных, то DLRM работает лишь с взаимодействиями второго порядка, намеренно оставляя без внимания все остальное.

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

Кому подойдут рекомендательные системы на основе DLRM?

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

  • e-commerce-маркетплейсам: если они стремятся предложить узконаправленные рекомендации конкретных товаров на основе сложных данных о клиентах и продуктах;
  • платформам с огромными объемами данных: если у платформы или сервиса огромный объем данных с большим количеством как категорийных, так и числовых признаков (пол, возраст, геолокация, ID, тип продукта и так далее); 
  • социальным сетям и стриминговым сервисам: если в силу специфики контента им нужно, чтобы нейросети делали сложные аналогии между просматриваемым пользователями контентом;
  • организациям: если они предпринимают глубокий анализ взаимодействия пользователя через сервисы с большим числом характеристик, чтобы делать более точные прогнозы о связях некоторых событий: клики, покупки и так далее.

К новым технологиям устоявшиеся компании относятся с большой осторожностью, однако за недолгое время существования в виде open-source, DLRM успела обрасти большим количеством готовых удобных решений в ключевых библиотеках в сфере «машинного обучения».

Наиболее авторитетным фреймворком является библиотека от META (Признана экстремистской организацией и запрещена на территории РФ), где, по заявлениям компании, на DLRM приходится 79% нагрузки, связанной с «искусственным интеллектом» в дата-центрах:

  • dlrm: фреймворк является open-source и весьма востребован разработчиками по всему миру.

До появления этого решения активно использовались и находят применение до сих пор в ряде проектов другие фреймворки:

  • PyTorch: nn.EmbeddingBag – для эмбеддинга, nn.Linear/addmm – для MLP (многослойного перцептрона), matmul/bmm (interactions), nn.CrossEntropy Loss – для потерь;
  • Caffe2: SparseLengthSum – для эмбеддинга, FC – для MLP, BatchMatMul (interactions), CrossEntropy – для потерь.

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

Вместо заключения

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

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

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

Опубликовано 13.08.2025

Похожие статьи