Как модель алгоритма ранжирования рекомендаций Ma Honeycomb реализует быструю итерацию

задняя часть Алгоритм сортировки

(Оригинальная статья Ma Honeycomb Technology, WeChat ID: mfwtech)

Часть 1 Архитектура сотовой рекомендательной системы Ma

Система рекомендаций Ma Honeycomb в основном состоит из нескольких частей: Match, Rank и Rerank, Общая схема архитектуры выглядит следующим образом:

На этапе отзыва система будет отфильтровывать наборы-кандидаты (100-уровневые, 1000-уровневые), которые соответствуют предпочтениям пользователя из массивной библиотеки контента; на этапе сортировки, исходя из этого, исходя из конкретных целей оптимизации (например, через рейтинг), содержание набора кандидатов будет более точным. Точный расчет и выбор, точная оценка каждого фрагмента контента, а затем выбор небольшого количества высококачественного контента, который больше всего интересует пользователей, из сотен или тысяч части контента в наборе кандидатов.

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

Часть 2. Эволюция платформы алгоритмов сортировки

2.1 Общая архитектура

В настоящее время онлайн-платформа сортировки моделей алгоритма сортировки Mafengwo в основном состоит изМодуль общей обработки данных, сменный модуль создания моделей, модуль мониторинга и анализаОн состоит из трех частей, структура каждого модуля и общий рабочий процесс платформы показаны на следующем рисунке:

2.1.1 МодулиФункции

(1) Общий модуль обработки данных

Основная функция — построение признаков и обучающих выборок, а также самая основная и важная часть всего алгоритма сортировки. Источник данных включает в себя журналы кликов, портреты пользователей, портреты контента и т. д. Базовая обработка данных основана на автономной пакетной обработке Spark и потоковой обработке Flink в реальном времени.

(2) Сменный модуль производства моделей

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

(3) Модуль мониторинга и анализа

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

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

2.1.2 Типы основных профилей

Файлы конфигурации в основном делятся на четыре категории: TrainConfig, MergeConfig, OnlineConfig и CtrConfig Их функции:

(1) Конфигурация поезда

Относится к конфигурации обучения, в основном включая конфигурацию обучающего набора и конфигурацию модели:

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

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

(2) Объединить конфигурацию

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

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

(3) Онлайн-конфигурация

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

(4) Конфигурация управления

Относится к конфигурации CTR по умолчанию, которая используется для сглаживания характеристик CTR пользователей и контента.

2.1.3 Разработка функций

С точки зрения приложения функции в основном включают три категории: пользовательскую функцию (User Feature), функцию контента (Article Feature), контекстную функцию (Context Feature).

В случае получения его можно разделить на:

  • Функция статистики: включая пользователей, контент, клики/воздействия/CTR за определенный период времени и т. д.

  • Функция встраивания: на основе такой информации, как метки, пункты назначения и т. д., с использованием истории кликов пользователей, векторных функций, обученных Word2Vec, и т. д.;

  • Перекрестная функция: на основе метки или вектора назначения создайте вектор пользователя или вектор элемента, чтобы получить признак сходства между пользователем и элементом и т. д.

2.2 Платформа алгоритмов сортировки V1

На этапе V1 платформы алгоритма сортировки с помощью простой конфигурации файла JSON платформа может реализовать выбор функций, выбор обучающих наборов, обучение моделей XGBoost в различных сценариях, оценку автономного AUC моделей XGBoost, и автоматическая синхронизация онлайн-файлов конфигурации.

2.3 Платформа алгоритмов сортировки V2

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

2.3.1 Проверка данных

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

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

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

Конкретный метод заключается в добавлении уникального идентификатора к каждой записи воздействия кликов в реальном времени на основе онлайн-журнала воздействия кликов в реальном времени (включая используемую модель, функции и информацию о рейтинге предсказания модели) и добавлении уникального идентификатора к офлайн-записи. сводная таблица воздействия кликов. Этот уникальный идентификатор также сохраняется. Таким образом, для записи кликов мы можем связать функции в обучающем наборе, созданном в автономном режиме, с функциями, фактически используемыми в Интернете, а затем с AUC онлайн- и офлайн-моделей, оценками прогнозов онлайн- и офлайн-моделей и особенности особенностей Сравните ситуацию и найдите некоторые проблемы.

Например, в процессе предыдущей итерации модели автономный AUC модели был высоким, но онлайн-эффект не был идеальным. Посредством проверки данных мы сначала сравнили AUC онлайн- и офлайн-моделей и обнаружили противоречивый эффект. и офлайн-прогнозы. Сравните и проанализируйте их офлайн-функции и онлайн-функции. В итоге было обнаружено, что некоторые функции онлайн- и офлайн-контекста несовместимы из-за задержки представления данных, а также возникла проблема с параметромmissingValue, выбранным при построении онлайн XGBoost и DMatrix, что привело к отклонению онлайн и оценки прогнозирования офлайн-модели. После того, как вышеуказанные проблемы были устранены, количество кликов по UV онлайн увеличилось на 16,79%, а количество кликов по PV увеличилось на 19,10%.

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

2.3.2 МодельОбъяснение

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

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

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

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

Наша модельная интерпретация дает следующий анализ для одного образца:

  • U0-I1

  • U0-I2

  • U_0-I3

Как показано на рисунке, модель для одного образцаU0-I2,U0Прогнозируемые значения для -_I3_ составляют 0,094930, 0,073473, 0,066176. Для прогноза одной выборки, какую положительную и отрицательную роль играет каждое собственное значение, можно увидеть по длине функциональной полосы на рисунке, красный цвет представляет положительную роль, а синий представляет отрицательную роль. Это значение определяется значением shap_value в следующей таблице:

в,logit_output_value = 1.0 / (1 + np.exp(-margin_output_value)),logit_base_value = 1.0 / (1 + np.exp(-margin_base_value)), output_value — выходное значение модели XGBoost; base_value — ожидаемый результат модели; примерно равно среднему значению предсказанных моделью значений во всем обучающем наборе; shap_value — мера положительных и отрицательных эффектов этого особенность прогнозируемых результатов.

Прогнозируемое моделью значение logit_output_value, 0,094930>0,073473>0,066176, поэтому результат сортировкиI1> I2>I3,U0-I1Прогнозируемое значение 0,094930, а характеристика doubleFlow_article_ctr_7_v1=_I1_ctr играет положительную роль 0,062029, из-за чего прогнозируемое значение имеет тенденцию к увеличению по сравнению с базовым значением. Точно так же ui_cosine_70=0,894006, что дает положительный эффект 0,188769.

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

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

Часть 3 Ближайшее планирование

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

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

  1. Сложность обработки разреженных объектов в высоких широтах

  2. Для обучения модели необходимо загрузить в память полный набор данных.Алгоритмы онлайн-обучения не поддерживаются, поэтому сложно добиться обновления модели в реальном времени.

В ответ на эти проблемы мы создадим глубокие модели, такие как Wide&Deep и DeepFM, на более позднем этапе, как показано на следующем рисунке:

Кроме того, текущая модель каждый раз прогнозирует оценку одного элемента, а затем сортирует и принимает результат (обучение ранжированию по точкам). На более позднем этапе мы надеемся достичь результата, рекомендуя пользователям по одному свайпу за раз (обучение ранжированию по списку), предоставляя пользователям более точные и точные результаты рекомендаций в режиме реального времени.

Авторы этой статьи: Xia Dingxin, Wang Lei, инженеры по исследованиям и разработкам платформы алгоритмов рекомендаций Mafengwo.