Multi-target постановка естественна для рекомендеров, где пользователь может совершать над рекомендацией более-менее равнозначные положительные действия. Например, в Одноклассниках под постом можно поставить «класс», оставить комментарий или поделиться. В задачах, где есть одно самое главное целевое действие, полезность multi-target менее очевидна. Зачем отвлекать модель от главной цели, обучаясь предсказывать что-то второстепенное? На этот вопрос отвечают исследователи из Airbnb. В статье с KDD’23 они рассказали о новой архитектуре нейронной сети Journey Ranker для ранжирования объявлений в поиске Airbnb. Несмотря на то, что целевая метрика только одна – количество неотменённых бронирований (uncancelled bookings) – модель состоит из четырёх модулей (см. диаграмму), отвечающих в том числе за разные таргеты.
Shared representation module. Модуль принимает на вход признаки объявления и контекста и выдает соответствующие эмбеддинги. Этот модуль не изменился по сравнению с предыдущей моделью ранжирования. Он служит для подготовки входных данных для последующих модулей.
Base module учится предсказывать «положительные» действия пользователя: клики, долгие клики, заходы на страницу оплаты, бронирования, неотменённые бронирования. Цепочка действий сконструирована так, что следующее действие возможно, только если пользователь совершил предыдущее. Например, нельзя сделать бронирование, не зайдя на страницу оплаты. Модуль устроен так, что скор предыдущего действия в цепочке используется при вычислении скора следующего действия. При обучении каждому действию сопоставляется вес, который приводит все лоссы в одну шкалу: шкалу неотменённых бронирований.
Twiddler module учится предсказывать «отрицательные» действия пользователя: отказ в бронировании, отмену брони пользователем и отмену брони владельцем. Каждому действию соответствует свой выход сети.
Combination module комбинирует (сюрприз!) выходы base module и twiddler module. Веса выходов в линейной комбинации выучиваются из эмбеддинга контекста. Такая идея близка по духу к mixture of experts. Авторы статьи подчёркивают, что веса получаются интерпретируемыми. Например, модель обращает больше внимания на вероятность отмены при бронировании на близкие даты, потому цена отмены велика – у пользователя, скорее всего, не будет шанса сделать ещё одну бронь.
Авторы указывают несколько преимуществ архитектуры Journey Ranker по сравнению с прямой оптимизацией главной целевой метрики:
1. Модель учится на большем датасете. Можно учитывать не только пользователей, которые сделали неотменённое бронирование, но и тех, кто не дошёл до него, но совершил какое-то другое «положительное» действие.
2. Модель учитывает негативные действия пользователя и автора объявления. Вес таких действий варьируется в зависимости от контекста.
3. В экспериментах Journey Ranker побеждает: прирост составил +0.5 NDCG офлайн и +0.6% уникальных пользователей, совершивших неотменённое бронирование в A/B-эксперименте.
4. Архитектура обобщается на другие задачи: авторы протестировали её в поиске развлечений Airbnb и получили прирост в метриках.
Как и другие статьи команды поиска Airbnb, эта отлично написана: авторы рассказывают про мотивацию, результаты экспериментов и обсуждают гипотезы, которые их объясняют. Мы советуем почитать её тем, кто работает над задачей ранжирования в продакшн рекомендерах.
Post #106
1.53K
ML — это ОК OPTIMIZING AIRBNB SEARCH JOURNEY WITH MULTI-TASK LEARNING https://arxiv.org/abs/2305.18431
- 🔥 9
- 👍 3
- 🆒 1