Ковры и нейросети: что получается, когда программисты решают пошутить на 1 апреля
Опыт поисковика недвижимости «Лун».
Мы в «Лун» любим 1 апреля, каждый год традиционно готовим розыгрыш для пользователей сайта. До этого мы уже делали смешного бота «Чёрный риелтор» и «открывали» кафе, которое до сих пор упоминают в ресторанных каталогах.
В этом году мы подготовились основательней — для первоапрельской шутки нам пришлось написать нейросеть.
Мы поняли, что есть яркий триггер на рынке квартир, характерный для стран постсоветского пространства, — ковёр на стене. Кто из вас не сталкивался с коврами, когда пытался арендовать или купить квартиру? Так родилась идея добавить на сайт новый фильтр, который будет показывать все квартиры с коврами на стене.
И понеслось.
Протестировать ковровый поиск можно и сейчас.
Фильтр работает при помощи мультимодельной нейронной сети с последующим классификатором положения объекта в пространстве. Такой подход максимально близок к системе распознавания образов человеком. Для локализации ковра на фото были обучены две нейросети (подход Faster R-CNN): region proposal network — для генерации кандидатов и сеть для обнаружения объектов.
Затем, построив регрессор bounding box'a, получили движок для локализации ковров на фото. Оставалось научиться отличать ковёр на полу, диване и потолке от ковра на стене (ведь именно такие варианты наиболее востребованы).
С этой задачей справились благодаря каскаду классификаторов из простых деревьев принятия решений: на вход им подавались параметры изображения и выходы предыдущих сетей.
Сейчас мы правильно определяем 99% ковров на стене, а наши серверы успевают обрабатывать порядка 50 изображений в секунду, гарантируя постоянную работоспособность фильтра.
Как показывают данные Google Analytics и количество репостов и комментариев в Facebook, ковровый фильтр пришёлся по душе нашим пользователям, чему мы искренне рады.
Ремарка: «Лун» — известный в Украине поисковик недвижимости. Он собирает информацию, индексируя более 150 сайтов по недвижимости, а это около 2,5 млн объявлений. «Лун» идентифицирует и группирует одинаковые объявления с разных источников.
Классификатор и группировщик работают на основе нейросетей, которые распознают и сравнивают картинки и тексты в объявлениях. Для удобного поиска на сайте есть более 20 пользовательских фильтров, некоторые из них — тоже на основе AI и ML.
Было бы полезно такой фильтр и на ЦИАН сделать:
[x] Не показывать квартиры с коврами
вообще, исключающие фильтры иногда важнее чем дополняющие, особенно в наших реалиях:)
Сделайте, пожалуйста, фильтр "без дизайнерского ремонта", очень прошу
можем вас понять:) на деле, даже нейронка не нужна, ведь "дизайнерский ремонт" — фраза, которой бравируют владельцы в описании. достаточно полнотекста, чтобы ее найти и "прибить" :)
Бiмба 😆