В соавторстве с исследователями данных - RakhiAgrawal, VishalSharma и ShivamPrasad.

Введение

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

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

Проблема часто формулируется как контролируемое машинное обучение, обучение прогнозированию «релевантности» в зависимости от характеристик элемента, представлений элемента / документа и запроса.

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

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

В целом сценарии ранжирования можно разделить на три типа.

1. Новые пользователи и вышедшие из системы / гостевые пользователи

2. Пользователи, которые забронировали / взаимодействовали с MakeMyTrip в предыдущих поисках поездки.

3. Отели, с которыми недавно взаимодействовали / нажимали / оставляли отзывы.

Для 2-го и 3-го сценариев в разработке находится несколько алгоритмов AI / ML, которые повысили конверсию на 10-15% для внутренних и международных категорий отелей по сравнению с соответствующими базовыми показателями.

В сценарии 2, например, методы совместной фильтрации / матричной факторизации показали хорошие результаты (70–80% случаев) по сравнению с аналогичной более простой базовой линией.

В сценарии 3, международные отели, совокупность встраивания контента и встраивания последовательности кликов (модель сети графов) работает лучше, чем совместная фильтрация, на 10% и 12% (коэффициент конверсии) в Android и iOS соответственно. Мы объясним эти модели внедрения и графической сети в другом блоге.

В этой теме рассмотрим 1-й сценарий. Это проблема холодного старта, если смотреть с точки зрения матричной факторизации (MF или Neural MF) или «решений» совместной фильтрации. Но есть заслуга в улучшении рейтинга, поскольку многие пользователи приходят на платформу исключительно для одного сеанса или просматривают без входа в систему. Цель ранжирования для сценария 1 теперь выражается в том, как использовать контекст поиска пользователей, сезонную популярность отелей, метаданные отелей и т. Д. последние данные об эффективности отеля (CTR, коэффициенты конверсии, количество бронирований и кликов), а также улучшение рейтинга для новых пользователей и пользователей, вышедших из системы / гостей.

Команда по анализу данных экспериментировала с системой обучения ранжированию (L2R) для этого сценария в местных и международных отелях за последние пару лет для MakeMyTrip и GoIbibo.

Мы также начали индивидуальные эксперименты L2R для внутренних рейсов и рейтинга домашних посадочных карточек. Остальная часть статьи посвящена L2R в контексте отелей.

Пример последовательности конверсии для отелей

Вышел из системы / новые пользователи вводят критерии поиска

Иллюстративный поток воронки, результаты модели могут различаться в зависимости от контекста пользователя и поиска, даты / времени и платформы устройства.

Как определить релевантность?

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

1. Список отелей

2. Детали отеля

3. Подробная страница, вид карты местоположения

4. Подробная страница, фотографии отеля

5. Выберите номер и код тарифного плана для отеля.

6. Обзор

7. Обзор платежной страницы

8. Забронируйте отель.

Наименьшая релевантность привязана к «листингу», а самая высокая - к «забронированным отелям».

Типы алгоритмов модели

Алгоритмы L2R можно разделить на три класса на основе «цели» аппроксиматора функции или «функции правдоподобия» / «потерь».

1. По пунктам

- - Считайте каждую строку в наборе обучающих данных «независимой». Предположим, что ошибка распределена I.I.D (независима и одинаково распределена).

- - Базовая версия, может легко фиксировать ранжирование на основе «важности» при наличии соответствующих функций.

2 пара

- - Узнайте относительную важность отелей / объектов в каждой паре из пар отелей в качестве входных данных.

- - Каждая информативная пара вносит равный вклад в функцию потерь.

3. По списку

- - Изучите релевантность всего списка элементов для данного пользовательского запроса-поездки.

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

Какие офлайн-показатели целесообразно отслеживать?

Нормализованная дисконтированная совокупная прибыль (NDCG)

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

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

ПРИМЕР. Рассмотрим систему ранжирования, которая возвращает список отелей для заданного поискового контекста в городе. Допустим, в городе всего 7 отелей, а пока мы рассмотрим только 5 лучших отелей. Итак, p равно 5. Список результатов = [H1, H2, H3, H4, H5, H6, H7]. Имея исторические данные о посещаемости, мы знаем, что релевантность этих отелей для текущего поискового контекста составляет: релевантность = [2, 1, 0, 1, 0, 0, 1]

Дисконтированная совокупная прибыль:

Идеальная дисконтированная совокупная прибыль:

Средняя обратная ставка (MRR)

Мера Reciprocal Rank (RR) вычисляет значение, обратное рангу, в котором был получен наиболее релевантный элемент. RR равен 1, если соответствующий элемент был получен с рангом 1, в противном случае он равен 0,5, если соответствующий документ был извлечен с рангом 2, и так далее. При усреднении по поисковым запросам эта мера называется средним взаимным рейтингом (MRR).

Исследователи изучают и другие показатели: MAP, Average Precision, Expected Reciprocal Rate, Yandex P-found и др. Некоторые также рекомендовали метрики для дисперсии, разнообразия и степени новизны.

Смоделированная статистика рейтинга

Хотя мы подчеркиваем NDCG, MRR и меру дисперсии в качестве основных показателей, в MakeMyTrip перед развертыванием модели мы также моделируем и оцениваем, являются ли распределения ключевых функций среди 30 лучших рекомендуемых элементов удовлетворительными или нет («проверка работоспособности»). Ключевыми функциями для проверки, например, могут быть рейтинги рекомендуемых отелей по количеству бронирований, контекстному рейтингу кликов, CTR и т. Д. В городе ИЛИ в пределах категории отелей.

Ассортимент типов моделей

Как выбрать идеальные значения релевантности?

Мы поэкспериментировали с несколькими наборами релевантности и оценили, какой набор максимизирует показатели продукта (CTR) и бизнес-показатели (коэффициент конверсии). Хотя определить монотонно возрастающие оценки релевантности с глубиной воронки - тривиально, разрыв между шагами воронки необязательно должен быть одинаковым.

Например, разрыв между бронированием и глубиной воронки отзывов может иметь огромный нелинейный вклад в целевую функцию (2 ^ booking_relevance - 2 ^ review_relevance), что может быть, а может и не быть идеальным.

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

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

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

Модель формы и функции потерь

Мы экспериментировали с попарными функциями потерь по спискам, с xgBoost, lightGBM, TensorFlow, библиотекой TFranking и настраиваемым списком потерь MLE (PyTorch).

Помимо тестирования нескольких функций потерь, мы также экспериментировали с MLP NN, Dense Net, AutoINT и нейронными сетями глубокой / средней глубины с остаточными связями.

Из всех архитектур нейронных сетей NN с остаточными связями дала лучшие автономные результаты (небольшое улучшение в NDCG в 3-м десятичном значении, существенный рост в метрике MRR) по сравнению с реализацией xgBoost для учащихся по списку.

Однако смоделированные статистические данные ранга были сопоставимы только для lambdaMART / GBDT LambdaRank. Поскольку структуры NN потребовали дальнейших итераций, аппроксиматор функций на основе GBDT LambdaRank был разработан для отечественных отелей.

В начале 2020 года для международных отелей было проведено несколько экспериментов со структурой модели NN.

С предварительными итерациями AutoINT NDCG почти не показала улучшений с более высокой задержкой вывода. Мы снизили приоритетность дальнейшей оптимизации / точной настройки этой архитектуры. Обратите внимание, что, в отличие от других наборов данных, в которых структура AutoINT могла бы быть более «эффективной», в наших наборах данных было меньше категориальных переменных; большинство переменных имели непрерывное распределение значений.

Потери библиотеки TFranking по группам дали сравнимую оценку NDCG, но имитированная статистика ранжирования была плохой по сравнению с приближениями функций GBDT LambdaMART / LambdaRank.

Эксперименты по инициализации параметров NN

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

Преобразование функций

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

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

Для большинства непрерывных переменных использовалось искаженное степенное или ненормальное гамма-распределение или логнормальное распределение. Для таких функций медианное значение отображается ближе к 0 - log (1 + значение / (1 + медиана)).

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

Коррекция смещения выборки (вставка отрицательного образца)

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

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

Чтобы уменьшить такое смещение в задачах ранжирования L2R с холодным запуском, мы генерируем отрицательные выборки / элементы для каждого QID и вставляем их в обучающие данные.

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

Коррекция смещения позиции

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

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

Влияние на бизнес

В целом, мы обнаружили рост коэффициента конверсии от ~ 5% до ~ 14% (варьируется в зависимости от проекта, типа устройства, по сравнению с динамическим, но основанным на правилах движком в качестве базового показателя), CTR и дисперсии кликов по предпочтениям отелей.

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

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

В то же время эксперименты L2R для проблемы холодного старта в Goibibo оказали существенное положительное влияние на коэффициент конверсии (7,5% - 15%), улучшили CTR в высших рейтингах и показатель дисперсии у пользователей устройств Android и iOS.

Кроме того, предварительные результаты персонализированных экспериментов L2R для внутренних рейсов были положительными.

Основываясь на этих выводах, группы по анализу данных в MakeMyTrip (и GoIbibo) работают как над задачами машинного обучения на основе моделей, так и над данными, чтобы повысить эффективность обучения ранжированию производительности моделей для всех пользователей устройств (Android, iOS, настольные компьютеры) для обоих брендов.

Спасибо, что прочитали !!

Наконец, спасибо лидерам продуктов и команде платформы данных за поддержку этих проектов, а также экс-аналитику данных MakeMyTrip (Arpit Katiyar) за его вклад в хартию рейтинга.

Ссылки:

1. https://www.microsoft.com/en-us/research/uploads/prod/2016/02/MSR-TR-2010-82.pdf

2. https://dl.acm.org/doi/10.1145/1645953.1646033

3. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-40.pdf

4. ListMLE: Фен Ся, Тие-Ян Лю, Цзюэ Ван, Вэньшэн Чжан и Ханг Ли. 2008. Списочный подход к обучению ранжированию: теория и алгоритм. В материалах 25-й конференции ICML. 1192–1199

5. AutoINT https://arxiv.org/pdf/1810.11921.pdf

6. Исправление предвзятости отбора в системах обучения и ранжирования https://arxiv.org/pdf/2001.11358.pdf

7. Объяснение и иллюстрация ортогональных инициализаций в RNN https://smerity.com/articles/2016/orthogonal_init.html