Разработка метапоискового сервиса для самостоятельных путешественников
«Loft» является метапоисковым сервисом по поиску недвижимости и отелей в сфере туризма. Найдя нужный вариант, пользователь переходит на страницу отеля или агентства недвижимости, чтобы совершить оплату в интерфейсе поисковика, то есть в формате экспресс-бронирования (assisted booking).
Задачи проекта
Перед нами встала задача по разработке крупного портала для поиска недвижимости. Необходимо агрегировать ресурсы и выдавать результаты для пользователя. Так же разработать медиа сервис для помощи в подборе недвижимости с индивидуальным требованиями.
Агрегатор
Так как проект является агрегатором, нужно было найти идеальное решение для вывода информации пользователю, чтобы клиент получал актуальную информацию мгновенно
По библиотеке данных был настроен скрипт по сбору информации, который в фоновом режиме производил сбор данных с различных ресурсов.
Ввиду собранных данных и запроса на вывод действующих данных была создана гибридная интеллектуальная система, таким образом пользователь получал всегда актуальные данные быстро.
Подбор вариантов недвижимости
Был создан конструктор, который в результате выдавал пользователю его предпочтения. На основе собранных вопросов, производится подбор интересующих пользователю вариантов. Для этих целей использовались классические подходы для работы с рекомендательными системами — библиотеки Implicit и LightFM.
Implicit создает методы для работы с неявной связью, т.е для создания рекомендательных систем используются не только вопросы для пользователя, например, какая температура ему комфортна для отдыха, но и неявные действия: пользователь надолго остановился на какой либо статье, в ленте событий или просто на нее кликнул.
LightFM помогает сделать окружение, которое будет учитывать не только взаимодействия пользователей и объектов, но и их параметры. Для пользователей это пол, возраст, доход, регион и так далее. Для объектов, например, отель — это рейтинг, местоположение, отдаление от моря, наличие ресторана и так далее.
В целом пайплайны работы Implicit и LightFM похожи, но в деталях это две разные библиотеки, написанных по разным канонам. Библиотека RecBole более современная, она реализует нейросетевые подходы. Мы дополнительно расписали обвязку для работы с ней. Потому что данные там приводятся к другому формату.
Стек технологий
- Бэкэнд написанный на Python;
- PostgreSQL, которая используется в качестве базы данных;
- RecTools — это простая в использовании библиотека Python, которая делает процесс создания систем рекомендаций проще, быстрее и структурированнее, чем когда-либо прежде;
- LightFM — это реализация на Python ряда популярных алгоритмов рекомендаций как для неявной, так и для явной обратной связи;
- RecBole разработан на основе Python и PyTorch для воспроизведения и разработки алгоритмов рекомендаций в единой, комплексной и эффективной структуре для исследовательских целей;