«Везде как дома»: Какие технологии использует сервис Airbnb
Уже через год Airbnb получила $7 млн и сообщила о 700 тысячах операций бронирования жилья. Сервис продолжил свое интенсивное развитие и на сегодняшний день предлагает более 2 000 000 домов, квартир или комнат в 192 странах и 33 000 городах.
Однако чтобы управлять такой огромной системой и контактировать с большим количеством клиентов и домовладельцев, сложно обойтись без использования умных алгоритмов и компьютеризированных систем. Эта тема показалась нам интересной, потому мы подготовили материал о том, какие алгоритмы и методики делают жизнь компании и её клиентов проще.
/ фото Lukas CC
Географическое моделирование
Один из вопросов, на который Airbnb хочет предоставить ответ — «Как узнать каково там, где вы никогда не были ранее?». На данный момент Airbnb отвечают на этот вопрос следующим образом. Инженеры компании внедрили так называемую модель определения значимых мест, которая информирует клиентов об интересных пунктах, находящихся недалеко от указанной точки.
А чтобы узнать, что такого интересного в этих местах, компания предлагает воспользоваться гидом по районам, который позволяет узнать о них несколько любопытных фактов и посмотреть профессиональные фотографии. Более того, туристы могут получить рекомендации от самих домовладельцев, воспользовавшись написанными ими путеводителями.
Эти сервисы, в создании которых учитывается мнение клиентов компании, помогают построить маршрут и посетить все места, которыми славится тот или иной город. Однако на картах отмечаются не все точки. Часто достопримечательности «формируют» сами жители, обозначая районы, например, связанные какой-то общей историей.
Поиском таких мест занимается команда Зака Уолкера (Zack Walker), исследующая исторические и текущие данные, обсуждения на форумах и письма от владельцев домов. Например, если вы ищете «винный округ» в Северной Калифорнии, то сервис предоставит на выбор или округ Напа, или округ Сонома со списками различий и достоинств.
Чтобы упростить работу нанесения таких «народных» районов на карту, компанией используется система AT-AT, названная в честь All-Terrain Armored Transport — шагающего танка из вселенной «Звездных Войн». Она позволяет вручную задавать полигоны разных форм на карте, обозначая в их свойствах такие параметры, как континент, страна, область, город и т. д.
Однако управлять картой вручную не всегда удобно и эффективно, потому Airbnb создали ПО для автоматической разметки карты по районам с применением технологий машинного обучения. Достоинством такой системы является то, что она работает быстрее, чем ручная версия, потому способна оперативного размечать районы для новых рынков.
Для этого используется специально написанная библиотека aerosolve. Она хорошо подходит для работы с разряженными интерпретируемыми признаками, которые часто применяются в поиске (например ключевые слова, фильтры). Исходники библиотеки, варианты применения, а также примеры, вы можете найти по ссылке на GitHub.
Предсказание спроса и ценообразование
Компания Airbnb использует алгоритмы динамического ценообразования, когда ориентировочные цены пересчитываются ежедневно исходя из текущей рыночной ситуации. Алгоритм настроен таким образом, чтобы учитывать наличие особых свойств выставляемого жилья.
Предлагаемое жильё в пределах одного города «разбросано» по самым разным районам, а другие позиции в списке могут оказаться дачами, хижинами, замками или юртами, поэтому алгоритмы компании учитывают три основных типа данных: сходство, новизну и местоположение.
Для определения сходства собираются и анализируются количественные параметры: сколько человек жилье способно вместить, сдаётся ли объект целиком, количество отзывов и т. д. После этого ведется оценка того, сколько гости готовы платить за конкретные позиции.
Параметр новизна нужен только потому, что в туристическом бизнесе все слишком быстро изменяется, а при оценке местоположения жилья составляются схематические карты кварталов и районов в крупных городах по всему миру с учётом местных условий. Например, в Лондоне стоимость квартир в районе Гринвич может в два раза превышать стоимость жилья в районе доков, расположенном на другом берегу реки. Такой подход позволяет точно определять стоимость позиций в базе данных с учетом географических особенностей и структур: рек, озер, железнодорожных путей и других.
Более того, компания перешла к динамическому ценообразованию, выбрав модель машинного обучения, называющуюся классификатор. Она анализирует все параметры позиций в БД исходя из текущих требований рынка, а затем прогнозирует, насколько успешно будет сдаваться то или иное жильё.
Система высчитывает рекомендуемую стоимость на основании сотен параметров вроде включённого в цену завтрака, наличия ванны и даже локальных праздников. Например, в городе Остине проводится ежегодный фестиваль SXSW, поэтому в дни его проведения компания ожидает повышения числа предложений от домовладельцев в этом районе.
Выявление аномалий в платежной системе
Поскольку Airbnb работает в 190 странах, компании приходится поддерживать огромное количество валют и процессоров. Большую часть времени системы функционируют без проблем, но иногда приходится сталкиваться с ситуациями, когда, например, определённая валюта не может быть обработана.
Чтобы отлавливать эти отклонения так быстро, как это возможно, команда компании создала систему выявления аномалий, работающую в реальном времени. Это позволяет отслеживать ошибки прямо в момент A/B-тестирования новых методов платежей или во время запуска новых продуктов.
Основной задачей системы обнаружения аномалий является поиск выбросов в выборке временных рядов. Для этого проводится регрессия методом наименьших квадратов с введением фиктивных переменных.
Эта модель довольно простая, и, как правило, достаточно точно определяет текущий тренд, однако в этом случае предполагается, что временные ряды настроены на еженедельную сезонность — модель не будет работать с товарами, ориентированными на другие сезонные паттерны.
Если требуется построить модель временных рядов, учитывая и тренд, и сезонность, то используется иная модель. Чтобы показать, как она работает, в блоге компании приводится пример с компьютерными мышками и клавиатурами — автор проводит моделирование сезонностей и трендов, пытается выявить аномалии.
Такая крупная компания, как Airbnb, просто не может обойтись без постоянного совершенствования технологий и алгоритмов предсказания желаний пользователей и распределения ресурсов. На выручку в этих вопросах ей приходят математика и машинное обучение — с их помощью сервис способен делать больше, обеспечивая высокий уровень сервиса и удобств для клиентов.
P.S. Дополнительное чтение:
- Клиентоориентированность как основа бизнеса: Опыт IaaS-провайдера 1cloud
- Дайджест об облаках, сетевых технологиях и разработке сервисов.