Автор Ou Wenwu по прозвищу Santong из Alibaba.

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

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

В этом посте мы подробно рассмотрим, как система рекомендаций Taobao Mobile разрабатывалась с нуля. Эта статья основана на содержании, которое Оу Вэньву, старший эксперт по алгоритмам из отдела поиска и рекомендаций Alibaba, представил на конференции, в которой приняли участие некоторые из крупнейших имен в области больших данных в Китае.

Система рекомендаций Taobao Mobile

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

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

Основные характеристики

По сравнению с другими рекомендательными продуктами Taobao Mobile имеет следующие преимущества:

  1. Участие в цикле принятия решения покупателем: основная ценность системы рекомендаций Taobao Mobile заключается в ее сверхъестественной способности определять потенциальные желания и потребности пользователей и помогать им принимать решения о покупке еще до того, как они сами узнают, чего хотят. Цикл принятия решений пользователем во время совершения покупок в Интернете может быть относительно длительным и сложным процессом, который включает в себя выявление новых потребностей, получение новой и связанной информации, а также такие вещи, как сравнение товаров и принятие решений о размещении заказа. Поэтому рекомендательные системы электронной коммерции должны работать с этим процессом, принимая рекомендательные решения на основе поведения пользователя.
  2. Интегрирует функцию своевременности: своевременность также учитывается в базовой системе; система сильно зависит от Flink. Вещи, которые покупаются на Taobao, часто покупаются для удовлетворения потребностей относительно редко и предназначены для покупок, которые могут быть действительны только в течение короткого промежутка времени. Например, люди обычно покупают смартфон только раз в два-три года, а цикл принятия решения может растянуться на несколько часов или, самое большее, на несколько дней. Поэтому рекомендательная система должна быть чрезвычайно чувствительной ко времени, когда речь идет об обеспечении этих потребностей. Он должен быстро понять и уловить интересы пользователей в реальном времени, а также изучить их неизвестные потребности.
  3. Разработан на основе сложной пользовательской структуры: пользователи Taobao Mobile — это не только пользователи с зарегистрированными учетными записями. Пользователи приложения также включают пользователей, которые не вошли в систему, а также новых пользователей, пользователей, которые редко активны на платформе, и пользователей, которые больше не находятся на платформе. Учитывая все эти ситуации, команда Taobao сформулировала дифференцированную политику рекомендаций и соответствующим образом оптимизировала рекомендательную модель.
  4. Охватывает несколько сценариев: Мобильная система рекомендаций Taobao охватывает сотни конкретных сценариев на платформе. Независимая оптимизация для каждого сценария далека от реальности, так как каждый сценарий имеет разные условия, требующие разных гиперпараметров. Более того, ручная оптимизация тоже нереальна. Поэтому на Taobao первостепенное значение имеют трансфертное обучение и автоматическое обучение гиперпараметрам.
  5. Включает несколько целей и типов:

Техническая структура

На следующем слайде показана техническая основа системы рекомендаций Taobao Mobile. Во время Фестиваля шоппинга Double 11 в 2019 году Alibaba перенесла все свои бизнес-операции в облако. Поэтому техническая архитектура системы мобильных рекомендаций Taobao также прижилась в облаке. Основные компоненты рекомендаций включают алгоритмы и модели рекомендаций, необработанные журналы и функции, полученные путем обработки данных журналов, а также автономные вычисления и сервисные возможности, такие как векторный поиск, платформы машинного обучения и онлайн-сортировка. В этом году, в дополнение к нашим моделям и системам в облаке, мы также развернули модели глубокого обучения для конечных вычислений, чтобы создать совместную систему вычислений между облаком и конечными устройствами.

Теперь поговорим о моделях данных, инфраструктуры и алгоритмов.

Данные

Основные данные

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

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

Образец данных содержит два элемента: метку и функцию. В системе рекомендаций Taobao Mobile используется несколько типов меток, включая воздействия, клики, транзакции и дополнительные покупки. В рекомендациях используется множество функций, таких как собственные функции пользователя, функции пользовательского контекста, функции элементов и комбинации двух функций. Мы создаем образцы таблиц, объединяя пользовательские функции и журналы поведения. Эти таблицы хранятся как разреженные матрицы. Как правило, таблицы создаются по дням или по определенному отрезку времени, а создание выборок занимает большую часть автономных вычислительных ресурсов.

Автономные вычисления

Режимы вычислений

Существует три основных режима офлайн-вычислений: пакетная обработка данных, потоковая обработка данных и интерактивный запрос. MapReduce — типичный пример пакетной обработки данных. Обладая высокой задержкой, но сильным параллелизмом, MapReduce подходит для автономной обработки данных, такой как ежечасное или ежедневное вычисление признаков, обработка выборок и автономная отчетность. Потоковые вычисления отличаются низкой задержкой данных. Таким образом, он подходит для обработки событий, таких как клики пользователей, прогнозирование предпочтений, обработка образцов для онлайн-обучения и отчеты, причем все они обрабатываются в режиме реального времени. Интерактивный запрос в основном используется для визуализации данных и анализа отчетов.

Обучение модели

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

Эффективность обучения

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

  1. Горячий запуск: когда модель необходимо постоянно обновлять и оптимизировать, добавляя функции или изменяя структуру сети, некоторые из восстановленных параметров модели являются начальными значениями, и поэтому модель необходимо переобучить. Во время горячего старта для сходимости модели используется небольшое количество выборок, когда изменяются только некоторые параметры модели.
  2. Передача обучения: Мобильная система рекомендаций Taobao имеет множество сценариев рекомендаций. У некоторых есть только несколько журналов, и они не могут реализовать крупномасштабное обучение модели. Чтобы решить эту проблему, мы можем использовать трансферное обучение на основе более крупных сценариев с большим количеством образцов.
  3. Дистилляция знаний: Taobao Mobile использует дистилляцию знаний для обучения по каскадной модели. Это может улучшить характеристики и точность усовершенствованных моделей ранжирования. То есть путем дистилляции уточненных функций и функций ранжирования курсов мы можем повысить точность моделей ранжирования курсов. Этот подход также можно использовать для оптимизации производительности модели.
  4. Низкая точность, количественная оценка и сокращение: по мере того, как модели становятся более сложными, затраты на их онлайн-хранилище и прогнозирование увеличиваются в геометрической прогрессии. Эти методы уменьшают объем памяти модели и скорость прогнозирования. Кроме того, модели на устройстве обычно должны соответствовать строгим требованиям к размеру.

Сквозной замкнутый цикл

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

Облако и конечные вычисления

С развитием 5G и IoT объемы данных будут быстро увеличиваться. Это вызывает много вопросов. Например, с этим новым изменением должны ли мы продолжать централизованно хранить и обрабатывать данные в облаке? Или мы можем перенести некоторые процессы хранения и вычислений на конечные устройства? Чтобы ответить на этот вопрос, подумайте об этом. По сравнению с облаком вычисления на конечных устройствах, современные смартфоны имеют несколько основных операционных преимуществ. Двумя наиболее важными преимуществами являются низкая задержка и высокий уровень безопасности. И это тоже важно, поскольку страны по всему миру настаивают на более строгих требованиях к защите и безопасности личных данных и цифровой конфиденциальности. Поэтому не менее важно, чтобы мы подумали о том, как мы можем выводить персонализированные рекомендации, не отправляя личные данные в облако.

Совместные вычисления «облако-устройство»

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

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

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

Технология отзыва: многоцелевая сеть с динамической маршрутизацией (MIND)

Несколько лет назад все использовали отзыв на основе Item2Vec и отзыв на основе тегов для совместной фильтрации рекомендаций. Отзыв на основе Item2Vec относительно прост и дает результаты в реальном времени. Долгое время это была ведущая рекомендательная технология. Затем была введена матричная декомпозиция, и с этим мы начали понимать, что отзыв на основе Item2Vec все еще имеет некоторые серьезные проблемы. Ему трудно рекомендовать товары с небольшим количеством экспозиций и кликов, а это означает, что рекомендуемые товары были, по сути, самыми популярными. Кроме того, отзыв на основе Item2Vec рассматривает каждый щелчок как независимое событие, что позволяет создать глобальное восприятие пользователя. В настоящее время необходимо глобально воспринимать и запоминать поведение и теги пользователей. Продвигаясь от этой отправной точки, мы предложили модель отзыва, основанную на поведенческих последовательностях. Однако проблема этого метода в том, что интерес реального пользователя редко сосредоточен на чем-то одном. В этой модели вызов одного вектора обычно может вызвать только одну категорию или достопримечательность. Поэтому сложно выразить разнообразные потребности пользователя посредством глубокого обучения. Alibaba решила эту проблему и опубликовала решение в документе, представленном на CIKM 2019. В настоящее время Taobao использует параллельный отзыв с мультивекторизацией онлайн.

CTR модели

Модель рейтинга кликов (CTR), используемая для системы рекомендаций Taobao Mobile, претерпела несколько важных изменений. Первая модель была моделью на основе FTRL и LR. Это была простая модель, которая могла поддерживать сотни миллиардов функций. Вторая модель была моделью объяснимой нейронной сети (XNN), которая выполняла встраивание функций дискретной логистической регрессии (LR) и представляла многослойную нейронную сеть. Кроме того, возможности обучения модели были расширены за счет введения новых параметров. Третья модель — это модель CTR самоконтроля, которая реализуется на основе графиков и последовательностей поведения пользователей.

Оптимизация последовательности рекомендаций: генеративные рекомендации

Рекомендации, как правило, основаны на баллах. После оценки выполняется жадный алгоритм сортировки и дискретизации. Однако этот метод не дает оптимальных результатов. Зависимости между результатами не учитываются, поэтому результаты, возвращаемые жадным алгоритмом, не оптимальны. По сути, рекомендация должна быть процессом оптимизации набора, а не процессом оптимизации последовательности. Таким образом, система рекомендаций Taobao Mobile использует модель генеративной сортировки. Для получения дополнительной информации ознакомьтесь с нашей статьей, представленной на KDD 2019.

Многоцелевое равновесие и оптимизация

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

Оригинальный источник: