Владельцы жилья оставляют на сайте Airbnb уникальные предложения аренды по всему миру. На Airbnb есть сотни миллионов сопутствующих фотографий. Фотографии содержат важную информацию о стиле и дизайне, которую сложно передать словами или списком. Поэтому несколько команд сотрудников Airbnb сегодня используют компьютерное зрение (computer vision), чтобы извлекать сведения об удобствах из нашего богатого массива данных, чтобы помогать гостям в удобном поиске предложений, соответствующих их предпочтениям.
В предыдущих постах WIDeText: A Multimodal Deep Learning Framework, Categorizing Listing Photos at Airbnb и Amenity Detection and Beyond — New Frontiers of Computer Vision at Airbnb мы рассказали о том, как используем компьютерное зрение для категоризации помещений и выявления удобств, чтобы сопоставлять фотографии предложений с таксономией дискретных концепций. В этом посте мы расскажем о том, как Airbnb использует эстетику и эмбеддинги изображений для оптимизации различных поверхностей продукта, включая содержимое рекламных объявлений, презентации и рекомендаций позиций.
▍ Эстетика изображений
Во время поиска жилья на Airbnb привлекательные фотографии столь же важны, как цена, отзывы и описание. Чтобы вывести численную характеристику «привлекательности» фотографий, мы разработали конвейер оценки эстетики изображений на основе глубокого обучения. Внутри него используется модель, являющаяся глубокой свёрточной нейросетью (CNN), обученной на размеченных живыми людьми распределениях оценок эстетики изображений. Каждое фото было оценено по шкале от 1 до 5 сотнями фотографов на основании их собственных эстетических предпочтений (чем выше оценка, тем эстетичнее фотография). В отличие от традиционных задач классификации, классифицирующих фотографии на низкую, среднюю и высокую категории, модель была построена на основе выбранной в качестве функции потерь задаче землекопа (EMD) для прогнозирования распределения оценок фотографов.
Рисунок 1. Модель, прогнозирующая распределение эстетики изображений, основана на CNN и обучена с использованием функции потерь EMD. Допустим, эталонная разметка фотографии такова: по 10% пользователей поставили оценку 1 и 2, 20% поставили 3, а по 30% поставили оценки 4 и 5. Соответствующий прогноз будет выглядеть как [0.1, 0.1, 0.2, 0.3, 0.3]
Прогнозируемый средний рейтинг сильно коррелирует с разрешением изображения и вероятностью аренды предлагаемого жилья, а также с верхним распределением фотографий предложений Airbnb. Пороговые значения оценок установлены на основании сценариев использования, например, по рекомендации рекламной фотографии в соцсетях и рекомендации порядка фотографий в процессе подготовки объявления.
Рисунок 2. Примеры фотографий из объявлений Airbnb с оценкой эстетичности выше 90-го перцентиля
▍ Повышение качества рекламы на основании эстетики изображений
Для привлечения новых пользователей Airbnb использует рекламу в социальных сетях. Платформа соцсети выбирает, какую рекламу нужно показывать, основываясь на миллионах предоставленных Airbnb фотографий из объявлений.
Рисунок 3. Реклама Airbnb на Facebook
Так как визуально привлекательная фотография с Airbnb может эффективно привлекать пользователей на платформу и существенно увеличивать click-through rate (CTR) рекламы, мы использовали оценку эстетичности изображений и категоризацию помещений для выбора на Airbnb наиболее привлекательных фотографий гостиной, спальни, кухни и вида снаружи. Критерием «хорошего качества» фотографий из объявлений был установлен верхний 50-й перцентиль оценок эстетики, который был потом дополнительно настроен на основании ручной оценки эстетики тысячи случайно выбранных фотографий из объявлений. Мы выполнили A/B-тестирование для этого сценария использования и выяснили, что кандидаты на рекламное объявление с высокой оценкой эстетики генерировали существенно более высокий CTR и коэффициент съёма жилья.
Рисунок 4. Airbnb Creative Ads, предварительно выбранные на основании эстетики изображений и фильтров типа помещений
▍ Автоматическое ранжирование фотографий на основании дизайна дома и типа помещений
При публикации нового объявления на Airbnb владельцы загружают множество фотографий. Создание оптимального порядка этих фотографий для подчёркивания достоинств жилья может быть долгой и сложной задачей. Кроме того, владелец может быть не уверен насчёт идеального расположения изображений, потому что работа требует поиска компромиссов между привлекательностью фотографий, их разнообразием и релевантностью контента для съёмщиков. В частности, наиболее важными для успеха объявления являются первые пять фотографий, потому что их чаще всего просматривают и они критически важны для создания первого впечатления у съёмщика. Поэтому мы разработали алгоритм автоматизированного ранжирования фотографий, выбирающий и упорядочивающий первые пять фотографий дома, используя два визуальных сигнала: оценку дизайна дома и категоризацию помещений.
Оценка дизайна дома определяет, насколько хорошо спроектирован дом с точки зрения дизайна интерьера и архитектуры. Модель оценки дизайна домов на основе CNN обучена на квалификационных данных Airbnb Plus и Luxe, она оценивает эстетическую привлекательность дизайна дома на каждом фото. Объявления Airbnb Plus и Luxe удовлетворяют строгим требованиям к дизайну домов, поэтому данные из их квалификационного процесса хорошо подходят для использования в качестве обучающей разметки модели оценки дизайна домов. Затем фотографии классифицируются по разным типам помещений (например, гостиная, спальня, ванная и так далее) моделью категоризации помещений. В конце алгоритм вычисляет компромисс между привлекательностью дизайна дома на фото, релевантностью фото и разнообразием фотографий, чтобы максимизировать вероятность съёма жилья. Ниже показан пример новых рекомендаций порядка фотографий. Функция автоматического ранжирования фотографий была выпущена в 2021 году, после чего существенно увеличилось количество новых создаваемых объявлений и успешных случаев съёма.
Исходный порядок
Автоматически рекомендованный порядок
Рисунок 5. Пример исходного порядка фотографий, загруженных владельцем жилья на Airbnb (сверху) и автоматически рекомендованный порядок (снизу), вычисленный предложенным алгоритмом
▍ Схожесть изображений
Кроме эстетики, фотографии передают общий внешний вид и содержание. Для эффективной презентации этой информации мы при помощи моделей компьютерного зрения закодировали и сжали фотографии в эмбеддинги изображений. Эмбеддинги изображений — это компактные векторные описания изображений, описывающие визуальные признаки. Эти эмбеддинги можно сравнивать друг с другом по метрике расстояния, представляющей схожесть в этом пространстве признаков.
Рисунок 6. Эмбеддинги изображений можно сравнивать по метрике расстояния, например, косинусного коэффициента, чтобы определить их схожесть в закодированном скрытом пространстве
На признаки, которым обучился энкодер, напрямую влияют распределение обучающих данных изображений и цели обучения. Размеченные данные типа помещения и классификации удобств позволяют нам обучать модели на распределении этих данных, чтобы создавать семантически значимые эмбеддинги для определения схожести фотографий в объявлениях. Однако с ростом количества и разнообразия изображений на Airbnb становится всё сложнее полагаться исключительно на размеченные вручную данные и методики обучения с учителем. Поэтому сейчас мы исследуем возможности self-supervised contrastive training по улучшению наших моделей эмбеддингов изображений. Этот вид обучения не требует разметки изображений — он позволяет быстро начать контрастное обучение на синтетически сгенерированных положительных и отрицательных парах. После этого наши модели эмбеддингов изображений смогут обучаться ключевым визуальным признакам фотографий из объявлений без ручного контроля.
Рисунок 7. Добавление случайных преобразований изображений для синтетического создания положительных и отрицательных пар помогает улучшить энкодеры изображений без дополнительной разметки
▍ Масштабируемый поиск эмбеддингов
Часто бывает непрактичным вычислять исчерпывающую попарную схожесть эмбеддингов, даже если при этом не используются фокусированные подмножества миллионов элементов. Для поддержки сценариев поиска в реальном времени, например, выявления полных (или почти полных) дубликатов фотографий и поиска визуальной схожести мы решаем задачу аппроксимированного поиска ближайшего соседа (ANN). Эта функциональность в основном стала возможной благодаря эффективной предварительной обработке индексов эмбеддингов и алгоритма построения под названием Hierarchical Navigable Small World (HNSW). HNSW создаёт иерархическую графовую структур близости, которая существенного ограничивает пространство поиска во время запроса. Мы масштабируем её горизонтально при помощи AWS OpenSearch, в котором каждый узел содержит собственные графы эмбеддингов HNSW и индексы с поддержкой Lucene, которые периодически освежаются и могут опрашиваться параллельно. Чтобы добавить поиск эмбеддингов в реальном времени при помощи ANN, мы реализовали следующие паттерны обновления индексов и архитектуры поиска индексов, которые стали возможными благодаря внутренним платформам Airbnb.
Для периодического обновления индекса эмбеддинга все релевантные индексы вычисляются при помощи Bighead (сквозной платформы машинного обучения), агрегируются и сохраняются в таблицу Hive. Развёрнуты создающие эмбеддинги модели энкодеров, используемые как для онлайн-создания логических выводов, так и для пакетной офлайн-обработки. Затем инкрементное обновление эмбеддингов в AWS OpenSearch синхронизируется с индексом эмбеддингов при помощи нашего сервиса организации конвейера данных Airflow.
Рисунок 8. Маршрут данных обновления индексов
Для выполнения поиска изображений клиентский сервис сначала должен проверить, существует ли эмбеддинг изображения в кэше индексов OpenSearch, чтобы избежать ненужного повторного вычисления эмбеддингов. Если эмбеддинг там уже есть, кластер OpenSearch может без дальнейшей обработки вернуть клиенту решения задачи аппроксимированного поиска ближайшего соседа. Если произошёл промах кэша, вызывается Bighead для вычисления эмбеддинга изображения, а затем выполняется запрос к OpenSearch для поиска аппроксимированных ближайших соседей.
Рисунок 9. Поиск сходства изображений для ранее встречавшегося изображения
В соответствии с этим фреймворком поиска эмбеддингов мы масштабируем визуальный поиск реального времени в текущих потоках продакшена и в будущих релизах.
▍ Расширение категорий Airbnb
Airbnb Categories помогают нашим съёмщикам находить уникальные места для отдыха. Вот некоторые из примеров: «Потрясающие виды», «Исторические дома» и «Творческие пространства». Эти категории не всегда имеют схожие удобства или дискретные атрибуты, потому что часто представляют собой концепции для поиска вдохновения. Мы изучаем задачу автоматического расширения категорий, выявляя схожие объявления на основании их фотографий, передающих эстетику дизайна.
Рисунок 10. Фотографии из объявлений в категории «Творческие пространства»
▍ Рекомендации похожих объявлений для помощи в изменении бронирования
В летнем релизе 2022 года Airbnb представил функцию помощи в изменении бронирования от амбассадоров Community Support на случай, когда владелец жилья отменяет бронирование незадолго до въезда. Чтобы в процессе изменения бронирования сервис рекомендовал сравнимые объявления, модель резервации и эмбеддингов объявлений ранжирует ежедневно обновляемые объявления-кандидаты. В будущем мы рассматриваем возможность улучшения описания объявлений при помощи эмбеддингов изображений и реализации поиска в реальном времени.
Рисунок 11. Пример лэндинга, рекомендующего похожие объявления съёмщикам и амбассадорам Community Support в сервисе помощи при изменении бронирования
▍ Заключение
Фотографии содержат эстетические и стилистические сигналы, которые сложно выразить словами или сопоставить с дискретными атрибутами. Airbnb всё больше использует эти визуальные атрибуты, чтобы помогать владельцам жилья подчёркивать уникальный характер их объявлений и оказывать содействие съёмщикам в поиске объявлений, соответствующих их предпочтениям.
Автор:
ru_vds