Измерение бизнес-ценности модели рейтинга отелей

Часть 1 из серии рейтинговых результатов поиска Rocketmiles

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

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

Мы разбиваем этот пост на три раздела:

  1. Какие факторы следует учитывать в модели ранжирования, чтобы она могла лучше всего повысить ценность?
  2. Какие бизнес-показатели мы можем использовать для оценки производительности модели?
  3. Как мы можем убедиться, что модель соответствует здравому смыслу?

Давайте начнем прямо сейчас.

Какие факторы следует учитывать в модели ранжирования, чтобы она могла лучше всего повысить ценность?

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

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

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

Однако это решение имеет некоторые конструктивные недостатки.

  • Негибкий. Все продукты имеют компромисс, и гостиничные номера не исключение. Некоторые слишком маленькие, а другие слишком большие; некоторые слишком дешевы, а другие слишком дороги. Хотя концепция зоны Златовласки (где цена является подходящей) применима, чисто линейное уравнение оценки не может воспроизвести ее: согласно модели, более высокая цена всегда лучше или всегда хуже. Более того, линейность заставляет выгоду от перехода от 4,0 до 5,0 звезд быть такой же, как выгода от перехода от 1,0 до 2,0 звезд, поэтому отсутствует какая-либо концепция убывающей отдачи.
  • Нет персонализации. Капсульные отели могут быть приемлемыми для путешественников, которые ночуют в Сингапуре, но менее привлекательными для молодоженов на Мальте.

  • Произвольные веса. Это не удар по нашим продуктовым владельцам, поскольку их деловое чутье на несколько порядков выше моего, но человеческое суждение просто недостаточно точное, чтобы решить такую ​​сложную и многогранную проблему с оптимальным весом.
  • Без учета разнообразия. Два отеля, которые выглядят одинаково, получат одинаковую оценку и будут иметь близкий рейтинг. Но ни один пользователь не хочет пролистывать 60 Motel 6 подряд.

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

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

  1. Получение информации: происходит от поисковых систем, таких как Google и Yahoo, цель которых - возвращать наиболее подходящие результаты по запросу.
  2. Рекомендательные системы: восходят к рекомендациям по продуктам, таким как Netflix и Amazon, цель которых - продвигать элементы, наиболее точно соответствующие скрытым предпочтениям пользователя.

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

Есть две проблемы с оценкой релевантности:

  1. Без учета разнообразия. Как и метод баллов, похожие результаты имеют одинаковые баллы и будут ранжироваться ближе друг к другу. Но приятный опыт бронирования отелей должен включать в себя множество привлекательных вариантов, результаты которых могут варьироваться от гостиниц до кабинок для переодевания. Более того, умный рейтингер должен хеджировать свои ставки на случай, если его восприятие пользователя неверно.
  2. Без учета стоимости. Когда мы принимаем решение о ранжировании, мы должны учитывать две вещи: насколько гостиница актуальна для пользователя и ее влияние на наш бизнес. Это существенное отличие компании Rocket, поскольку у нас есть большая разница в стоимости продажи различных объектов недвижимости.

Чтобы устранить эти недостатки, мы внесли простую модификацию. Оценка релевантности отеля преобразуется² в значение, представляющее ценность выбранной гостиницы, учитывая, что пользователь выбрал 1 отель из рейтинга. Например, если Hyatt Regency имел прогноз 2%, это означало, что если пользователь приобрел отель из объявления, будет 2% вероятность, что это будет отель Hyatt Regency.

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

Что это за мера рентабельности это?

- Вы, прямо сейчас, а также мой финансовый директор, некоторое время назад

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

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

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

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

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

Выше показаны гистограммы, показывающие корреляции между составителями ранжирования поисковых запросов тестовой выборки и ранжированием по необработанной прибыльности (est_ttm), по шкале ранжирования на основе баллов (display_rank) и необработанной оценке модели (pred). Мы видим, что даже после включения прибыльности мы ранжируем совсем иначе, чем прямая сортировка по прибыли. Для сравнения, одни только оценки модели намного ближе к шкале ранжирования с пересчетом прибыли для большинства поисковых запросов. Таким образом, этот показатель прибыльности уравновешивает рейтинг во многих отношениях:

  • Баланс между релевантностью пользователей и прибыльностью фирмы
  • Баланс между прибылью и рентабельностью
  • Баланс между элитными и недорогими отелями
  • Разбивает длинные сети подобных отелей.

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

Какие бизнес-показатели мы можем использовать для оценки эффективности модели?

Эвристика: средний рейтинг эталонных отелей.

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

Оказывается, придумать хорошие способы сообщить, что один рейтинг однозначно лучше другого, чрезвычайно сложно⁵! После того, как я некоторое время бился головой о стену, я посоветовался с другом по этой проблеме.

«О, это легко», - сказала она.

Чего ждать?

«Просто поищите Сингапур и посмотрите, где они оба оценивают Marina Bay Sands. Если это не топ-3, это мусор⁶ ».

Как оказалось, модель ставит Marina Bay Sands на первое или второе место (из сотен) в каждом подходящем запросе на поиск по набору тестов, за исключением одного. Я не буду говорить о том, где набирает очки Marina Bay Sands, но с того момента моя вера в подход, основанный на машинном обучении, была непоколебима.

Тем не менее, есть место и для менее субъективных показателей. Когда мы впервые развернули живую модель, мы разработали такую, которая сходилась в течение одного дня, под названием средний положительный процентильный ранг (MPPR) ⁷. MPPR - это не только хороший способ сообщить бизнесу о влиянии более высокого ранжирования, но и помог нам выявить ряд ошибок после развертывания⁸.

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

Давайте рассмотрим термины в медианном положительном процентильном ранге.

  1. Классифицировать. Здесь особо нечего сказать. Если Marina Bay Sands находится на вершине, она занимает первое место.
  2. Процентиль. Вы берете рейтинг и делите его на общее количество отелей в рейтинге. Таким образом, если Marina Bay Sands является первым из пятидесяти отелей, он имеет процентный рейтинг 1/50 или 2%.
  3. Положительный процентильный ранг. Для поискового запроса, который привел к покупке, положительный процентильный рейтинг - это процентильный рейтинг приобретенного отеля.
  4. Средний положительный процентильный ранг. Средний положительный процентильный рейтинг - это медиана всех зарегистрированных поисковых запросов.

Если MPPR составляет 37,5%, это означает, что в половине случаев пользователям нужно увидеть только первые 37,5% результатов, прежде чем они найдут то, что они хотели бы купить. Если одно средство ранжирования имеет более низкую MPPR, чем другое, то оно обеспечивает лучший опыт покупок, поскольку пользователь может просматривать в течение более короткого периода времени, прежде чем найти желаемый элемент.

На графике выше представлены ежедневные отношения MPPR модели к базовой за период нашего A / B-теста. Мы видим, что MPPR модели примерно вдвое меньше, чем у счетчика, основанного на баллах, а это означает, что пользователям нужно прокрутить только половину, прежде чем найти свой продукт. Наряду с MPPR мы отслеживали более общие показатели A / B-тестирования; в частности, мы хотели убедиться, что мы наблюдаем рост «конверсии» или вероятности того, что клиент совершил бронирование при посещении веб-сайта. Так оно и было!

Как мы можем убедиться, что модель соответствует здравому смыслу?

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

Для начала посмотрим на Grand Fiesta Americana Coral Beach, который имеет очень высокие рейтинги. Приведенный выше график представляет собой график силы значения SHAP, который разбивает оценку модели на вклады («значения SHAP») соответствующих характеристик, исследуемых моделью. Красные функции увеличивают оценку пропорционально размеру соответствующих полос, подразумевая, что модель считает, что значение функции сделало результат более релевантным. И наоборот, синие элементы уменьшают оценку, подразумевая, что модель считает, что они уменьшили релевантность результата.

Мы видим, что самая большая красная полоса соответствует hotel_cumulative_share = 0.029. Модель нравится, потому что это означает, что Grand Fiesta занимает 3% наших бронирований в этом регионе, что очень много. Другие причины, по которым он ему нравится, включают относительно большое количество отзывов и количество вознаграждений, предлагаемых пользователю.

Между тем, самая большая синяя полоса, снижающая счет, - user_preferred_price. Эта функция представляет собой оценку предпочтительного стандартизированного уровня цен для пользователя; Поскольку этот пользователь относительно дешев, отель немного снизил оценку релевантности отеля.

С другой стороны, модель не любит вышеуказанный отель, потому что он разместил его в конце списка. Несмотря на то, что это 5-звездочный отель с тем же пляжем, что и все остальные курорты в Кинтана-Роо, доля этого отеля, количество отзывов и высокая стандартизированная цена («srq_price_zscore») делают его непривлекательным.

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

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

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

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

Поэтому для тех из вас, кто приехал сюда в поисках понимания качества отелей, примите эти мудрости от модели к сердцу:

  1. Популярные отели лучше.
  2. Отели ближе к направлениям лучше.
  3. Дешевые пользователи любят дешевые отели.
  4. Дорогие пользователи любят дорогие отели.

Ух ты! Очень… бесспорно.

Забегая вперед: модельный дизайн

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

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

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

[2] Мы обсудим, как мы преобразуем оценки релевантности в «вероятности предпочтений» в следующем разделе, но обработка выполняется только с помощью softmax или экспоненциального оператора (они взаимозаменяемы для конкретного случая использования).

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

[4] Существует множество показателей ранжирования, которые можно использовать для оценки ранжатора, и NDCG является одним из них. В частности, средний взаимный ранг очень похож на MPPR. Проблема в том, что эти показатели трудно понять, и они не обязательно быстро сходятся во время A / B-теста.

[5] Попробуйте сами придумать метод или метрику, чтобы доказать, что один участник рейтинга лучше другого - есть еще несколько достойных. Это хорошее упражнение на мысли.

[6] На самом деле она не сказала «это мусор».

[7] Медианный положительный процентильный рейтинг на самом деле называется медианным процентильным рейтингом бронирования (MBPR) внутри компании, но если люди начнут использовать мою терминологию, я бы хотел, чтобы MPPR применялся ко всей электронной коммерции, а не только к отелям. бронирования.

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

[9] Это довольно несправедливо по отношению к модели, поскольку всякий раз, когда она делала противоречивые утверждения, я приходил и отлаживал ее.