Серия блогов о категориях Airbnb — часть I

Авторы: Михайло Грбович, Ин Сяо, Пратикша Кадам, Аарон Инь, Пей Сюн, Диллон Дэвис, Адитья Мукхерджи, Кедар Белларе, Хаовей Чжан, Шукун Ян, Чен Цянь, Себастьен Дюбуа, Нейт Ней, Джеймс Фурнари, Марк Джангреко, Нэйт Розенталь, Коул Бейкер, Билл Уламмандах, Сид Редди, Егор Пахомов

25 лет онлайн-поиска путешествий

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

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

Представляем категории Airbnb

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

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

  • Часть I (эта публикация) представляет собой вводную публикацию высокого уровня о том, как мы применяли машинное обучение для создания коллекций списков и решения различных задач, связанных с работой в Интернете, в частности с оценкой качества. , выбор фотографий и ранжирование.
  • Часть II этой серии статей посвящена категоризации объявлений с помощью машинного обучения по категориям. В нем более подробно объясняется подход, включая сигналы и метки, которые мы использовали, компромиссы, которые мы сделали, и то, как мы настроили систему обратной связи «человек в цикле».
  • Часть III посвящена ранжированию категорий ML в зависимости от поискового запроса. Например, мы научили модель отображать сначала категорию «Лыжи» для запроса в Аспене, штат Колорадо, а категорию «Пляж/серфинг» — для запроса в Лос-Анджелесе. В этом посте также будет рассказано о нашем подходе к ранжированию списков ML в каждой категории.

Группировка объявлений по категориям

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

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

  • Категории, связанные с местоположением или достопримечательностью (POI), например "Прибрежные районы", "Озера", "Национальные парки", "Сельская местность", "Тропики", "Арктика", "Пустыня", "Острова" и т. д.
  • Категории, связанные с деятельностью, например катание на лыжах, серфинг, гольф, кемпинг, дегустация вин, подводное плавание и т. д.
  • Категории, связанные с типом дома, такие как амбары, замки, ветряные мельницы, плавучие дома, хижины, пещеры, исторические и т. д.
  • Категории, связанные с домашними удобствами, например "Удивительные бассейны", "Кухня шеф-повара", "Рояли", "Творческие пространства" и т. д.

Мы определили 56 категорий и набросали определения для каждой категории. Теперь осталось только распределить весь наш каталог объявлений по категориям.

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

Генерация кандидатов на основе правил

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

Например, давайте рассмотрим объявление, которое находится в пределах 100 метров от достопримечательности озера, где ключевое слово «набережная» упоминается в заголовке объявления и в отзывах гостей, виды на озеро появляются на фотографиях в объявлении, а поблизости есть несколько мест для занятий каякингом. Вся эта информация вместе убедительно указывает на то, что листинг относится к категории Lakefront. Взвешенная сумма этих показателей дает высокий балл, а это означает, что эта пара "объявления-категории" будет хорошим кандидатом на проверку человеком. Если бы генерация кандидатов на основе правил создавала большой набор кандидатов, мы использовали бы эту оценку для определения приоритетности списков для проверки человеком, чтобы максимизировать первоначальный доход.

Человеческий обзор

Ручной просмотр кандидатов состоит из нескольких задач. Имея кандидата на листинг в определенной категории или нескольких категориях, агент должен:

  • Подтвердить/отклонить категорию или категории, присвоенные списку, сравнив их с определением категории.
  • Выберите фотографию, которая лучше всего представляет категорию. Объявления могут относиться к нескольким категориям, поэтому иногда уместно выбрать разные фотографии, которые будут служить обложками для разных категорий.
  • Определите уровень качества выбранной фотографии. В частности, мы определили четыре уровня качества: Самое вдохновляющее, Высокое качество, Приемлемое качество и Низкое качество. Мы используем эту информацию, чтобы ранжировать объявления более высокого качества в верхней части результатов, чтобы добиться «вау-эффекта» у потенциальных гостей.
  • Некоторые категории основаны на сигналах, связанных с данными о достопримечательностях (POI), таких как расположение озер или национальных парков, поэтому рецензенты могли добавить POI, которых не было в нашей базе данных.

Расширение кандидата

Хотя подход, основанный на правилах, может генерировать множество кандидатов для одних категорий, для других (например, Creative Spaces, Amazing Views) он может давать только ограниченный набор списков. В таких случаях мы обращаемся к расширению кандидата. Один из таких методов использует предварительно обученные вложения списков. Как только человек-рецензент подтвердит, что листинг принадлежит к определенной категории, мы можем найти похожие листинги с помощью косинусного сходства. Очень часто 10 ближайших соседей являются хорошими кандидатами для той же категории и могут быть отправлены на проверку человеком. Мы подробно описали один из подходов к встраиванию в нашем предыдущем сообщении в блоге и с тех пор разработали новые.

Другие методы расширения включают расширение по ключевым словам, расширение на основе местоположения (т. е. рассмотрение соседних домов для одной и той же категории POI) и т. д.

Обучение моделей машинного обучения

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

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

Отправка достоверных списков в производство:используя кривую PR, мы можем установить пороговое значение, обеспечивающее точность 90 % для набора удерживаемых данных с пониженной выборкой, который имитирует истинное распределение списков. Затем мы можем оценить все немаркированные списки и отправить те, которые выше этого порога, в производство с ожиданием точности 90%. В этом конкретном случае мы можем достичь 76% отзыва с точностью 90%, а это означает, что с помощью этой техники мы можем рассчитывать на получение 76% реальных списков Lakefront в производстве.

Отбор списков для проверки человеком:учитывая ожидаемый показатель отзыва 76 %, чтобы охватить остальные списки Lakefront, нам также необходимо отправить списки ниже порога для оценки человеком. При определении приоритета объявлений ниже порога мы учитывали, среди прочих факторов, показатель качества фотографий для объявления и текущий охват категории, к которой было отнесено объявление. Как только человек-рецензент подтвердит присвоение листингу категории, этот тег будет доступен для производства. Параллельно мы отправляем теги обратно в наши модели машинного обучения для переобучения, чтобы модели со временем улучшались.

Модели машинного обучения для оценки качества и выбора фотографий. В дополнение к моделям категоризации машинного обучения, описанным выше, мы также обучили модель машинного обучения качества, которая присваивает листингу один из четырех уровней качества, а также модель машинного обучения обложки Vision Transformer, которая выбирает наиболее подходящую фотографию объявления. представляет категорию. В текущей реализации модель Cover Image ML принимает информацию о категории в качестве входного сигнала, в то время как модель Quality ML является глобальной моделью для всех категорий. Три модели машинного обучения работают вместе, чтобы назначить категорию, качество и обложку. Списки с этими назначенными атрибутами отправляются непосредственно в производство при определенных обстоятельствах, а также ставятся в очередь на рассмотрение.

Два новых алгоритма ранжирования

Летний релиз Airbnb представил категории как на главной странице (рис. 9 слева), где мы показываем категории, популярные рядом с вами, так и в поиске по местоположению (рис. 9 справа), где мы показываем категории, связанные с искомым пунктом назначения. Например, в случае поиска местоположения на озере Тахо мы показываем Лыжи, Хижины, Берег озера, Дом у озера и т. д., а Лыжи должны быть показаны первыми, если поиск выполняется зимой. .

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

  • Рейтинг категорий (зеленая стрелка на Рисунке 9 слева): ранжирование категорий слева направо с учетом происхождения пользователей, сезона, популярности категории, ресурсов, бронирований и интересов пользователей.
  • Рейтинг листинга (синяя стрелка на Рисунке 9 слева): учитывая все листинги, присвоенные категории, ранжируйте их сверху вниз с учетом назначенного уровня качества листинга и того, был ли данный листинг отправлен в производство. людьми или моделями машинного обучения.

Собираем все вместе

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

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

Во второй части мы более подробно объясним модели, которые распределяют объявления по категориям.

Благодарности

Мы хотели бы поблагодарить всех, кто участвовал в проекте. Создание категорий Airbnb занимает особое место в нашей карьере как один из тех редких проектов, в которых люди с разным опытом и ролями объединились, чтобы вместе создать что-то уникальное.

Хотите работать в Airbnb? Ознакомьтесь с нашими открытыми вакансиями здесь.