Подписаться на новости
brand brand
logo logo
Сообщество робототехников

Где здесь ML: Владимир Кубицкий о том, как наибольший в Украине поисковик жилья использует машинное обучение

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение
Пятница, 29 Марта 2019, в 16:15
Искусственный интеллект

Машинное обучение обрабатывает огромные массивы данных, которые невозможно осилить вручную. В эпоху data-driven-подхода это дает весомое преимущество перед конкурентами. На своем опыте это ощутил и «ЛУН» – самый крупный поисковик недвижимости в Украине.

О том, как компания начала внедрять машинное обучение, почему ML стал конкурентным преимуществом и как технологию используют сейчас, – во время лекции в «Лунотеке» рассказал Владимир Кубицкий, глава команды AI-разработок «ЛУН».

 


О компании «ЛУН»

«ЛУН» – это самый крупный поисковик недвижимости в Украине, основанный в 2008 году. Работает в 30 странах под двумя брендами – «ЛУН» и FlatFy.

Сервис ежедневно обрабатывает 6 млн объявлений из 160 источников, индексирует 10 тыс. сайтов и хранит 1,2 млрд изображений. За год поисковик посещает 100 млн пользователей.

«ЛУН» популярен тем, что в нем можно задавать точные параметры поиска: желаемое расположение дома с привязкой к метро или конкретной улице, размер жилой площади, высоту потолков, этажность, а также отсеять объявления от посредников. По фильтрам «ЛУНа» можно искать даже квартиры с коврами на стене.

 

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

 

В чем проблема сервисов по поиску недвижимости

Когда «ЛУН» начинал свою работу, у онлайн-сервисов по поиску недвижимости в Украине было две проблемы:

  1. диверсификация рынка. Количество предложений по риэлтерским услугам зашкаливало, но большая часть объявлений на сайтах дублировала конкурентов;

  2. большое количество неправдивой информации. Предложений, связанных с недвижимостью, было слишком много – среди них скрывались и аферисты.

 

«ЛУН» решил объединить одинаковые объявления в одно, убрать из этого всего фейки и отобразить результат на карте. Осуществить планы разработчиков помогло машинное обучение.

 

Дедупликация объявлений: борьба с фейками и копиями

Человек определяет два одинаковых объявления с первого взгляда: мы видим одни и те же обои в комнатах, одинаковые диваны, скатерти, шторы и понимаем, что квартиры на фотографиях идентичны. Как научить этому компьютер? Один из вариантов – использовать алгоритм для поиска ключевых точек.

Ключевые точки изображения не меняют свои свойства даже при определенном воздействии – даунсэмплинге (принудительное понижение качества изображения) или изменении яркости/контраста. Алгоритмы для поиска ключевых точек позволяют находить такие на любой картинке.

 

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Пример работы алгоритма для поиска ключевых точек, «ЛУН»

«В 2013-м никакой речи о сверточных нейронных сетях у нас не шло, но надо было придумать какую-то предвыборку, чтобы заведомо отсечь неподходящие картинки. Тогда мы нашли статью, в которой описывали работу перцептивного хэша – он позволяет построить хэш картинки A и картинки B так, что их можно было сравнить между собой. В итоге мы получили 64-битный вектор, который дальше сравнили по расстоянию Хэмминга – оно показало, на сколько символов одна строка отличается от другой», – рассказывает Владимир.

 

Как получить перцептивный хэш: алгоритм от Dr. Neal Krawetz

Условно изображение состоит из двух видов частот – высоких и низких. Высокие частоты показывают детализацию картинки, а низкие – структуру. Так, большая детализированная фотография содержит много высоких частот. В маленькой картинке нет деталей, так что она целиком состоит из низких частот.

 

Хэш-функция отображает среднее значение именно низких частот. Для того чтобы оставить на фотографии только их, нужно:

  • уменьшить размер картинки до размера 8×8. Общее число пикселей составит 64 – так хэш будет соответствовать всем вариантам изображения, независимо от размера и соотношения сторон;
  • затем убрать цвет. Маленькое изображение переводится в градации серого, так что хэш уменьшается втрое: с 64 пикселей (64 значения красного, 64 – зеленого и 64 – синего) до 64 значений цвета;
  • вычислить среднее значение для 64 цветов;
  • для каждого цвета проставить 1 или 0 в зависимости от того, он больше или меньше среднего;
  • построить хэш: перевести 64 отдельных бита в одно 64-битное значение. Порядок не имеет значения, если он последователен.

 

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

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Пример хэширования картинки, «ЛУН»

Затем необходимо прописать условие: если количество точек, которые пересекаются на изображениях A и B, больше значения n – можно с определенной вероятностью считать эти картинки одинаковыми.

В конечном итоге это было реализовано через ORB (Oriented FAST and Rotated BRIEF) – алгоритм, основанный на комбинации детектора FAST (Features from Accelerated Segment Test) и дескриптора BRIEF (Binary Robust Independent Elementary Features).

Система могла сравнивать до миллиарда изображений на одной машине и показала результат 0,97 F1 score (метрика в задачах машинного обучения, условно – МО справилось с задачей качественно на 97%).

 

 

Мы научились группировать одинаковые фотографии: что дальше?

Однако и в этом подходе был ряд нюансов. К примеру, в объявлениях встречается много фото фасадов здания – особенно у новых жилых комплексов, которые продают квартиры без ремонта. В итоге получалось так, что все 2 млн предложений, актуальных для Киева, стягивались в 300 объявлений этих ЖК. Чтобы справиться с этой проблемой, разработчики решили научить нейросеть определять жилые комплексы по наличию неба на фотографии.

Выяснилось, что это не так просто: вместе со зданиями на фоне неба нейронная сеть почему-то подтягивала фото туалетов, а фотографии домов, где не видно неба, и вовсе исключала из выборки. Так разработчики перешли к сверточным нейронным сетям.

 

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Как нейросеть сравнивала картинки, «ЛУН»

 

CNN: классификация изображений

Разработчикам нужно было распознать фасады на картинках и объединить их в одну группу объявлений, а эффективное распознавание образов – это про сверточные нейронные сети.

В 2014 году появился Caffe – первый фреймворк, который сделал создание таких нейросетей достаточно простым, и команда «ЛУН» решила двигаться в этом направлении. Они реализовали архитектуру нейросети на Caffe и сами собрали выборку из 5 тысяч картинок, которые нужно было разделить на 7 категорий – «фасад здания», «не фасад здания», «ванна», «туалет», «комната», «спальня» и «кухня». По подсчетам команды, на обучение такой сети надо было потратить 47 недель – и это только для того, чтобы сказать, получится с ней работать или нет.

«Вот в чем принцип: мы берем обученную нейросеть – если конкретнее, последний выходной слой (fully connected). Мы этот слой выкидываем, ставим вместо него свой, необученный, на 7 категорий. Получается, что часть нейросети, призванная извлекать некие фичи из картинки, остается практически той же – она уже долго чему-то училась. Но последний слой становится новым. Следовательно, достаточно было немного доучить эту сеть, чтобы она начала хорошо выдавать результаты по нашим категориям.

 

Это был настоящий прорыв в подходах к нейросетям. Такие компании, как Google или Facebook, на тот момент могли себе построить дата-центры для обучения. Мы не могли. Но мы смогли написать в Беркли [университет, где разработали Caffe – ред.] и попросить модель. В итоге они нам ее дали, разрешили доучить, и у нас получилось сделать это за двое суток. Мы доказали, что это работает, и на данный момент у нас 34 класса изображений», – говорит Владимир.

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Архитектура сверточной нейросети, «ЛУН»

 

К тому же алгоритм оказался эффективным и достиг показателя 0,96 F1 score.

 

CNN и GAN: как найти и убрать водяные знаки с фото

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

«Надо задать такой вопрос: есть ли в одной группе изображений картинки с разными классами? Если в одну группу картинок попали фото кухонь, фасадов домов, туалетов – значит, мы плохо сгруппировали или плохо классифицировали», – рассуждает Владимир Кубицкий.

Как выход – использовать технологию обнаружения объектов на картинке. Для реализации этой идеи команда использовала Region Proposal Network – модуль Faster R-CNN, который позволяет генерировать предлагаемые регионы на основе последней сверточной карты признаков.Так, даже разные изображения могут группироваться по одному признаку – наличию водяных знаков на фото. Самое простое решение этой проблемы – обучить нейросеть находить их на картинках и исключать в алгоритме поиска ключевых точек.

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

 

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Как работает Region Proposal Network, Medium

 

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

«Благодаря тому, что у нас был датасет картинок, на которых есть одинаковые фото как с водяными знаками, так и без них, мы смогли построить некий переход от картинки A к картинке B, на которой водного знака уже нет», – отметил Владимир.

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

Фото до и после обработки генеративно-состязательной нейросети, «ЛУН»

 

Как оценить пользу от нейросетей?

Все это время компания пыталась сделать сайт более удобным для пользователя. Какой вклад машинное обучение сделало в общую задачу?

«Мы видим, что по baseline эффективность группировки объявлений – 79%. Каждый следующий алгоритм, который мы разрабатывали, вносил свой колоссальный вклад – и сейчас система группировки объявлений показывает результат 0,99 F1 score. На данный момент идет борьба за знаки после запятой», – заключает Владимир.

 

Где-здесь-ML-Владимир-Кубицкий-о-том-как-наибольший-в-Украине-поисковик-жилья-использует-машинное-обучение

 

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

Владимир говорит, что оценить экономический эффект, который компании приносит машинное обучение, пока трудно. Однако получить осязаемую прибыль от технологии уже сейчас все же можно – например, при продаже прав на использование разработки, как это собирается сделать «ЛУН».

 

Дария Мех

рейтинг

736

просмотров

0

комментариев

порекомендовать друзьям

ЧИТАТЬ НА ЭТУ ТЕМУ

Loading

комментарии

Нет комментариев

Гость

Дорогие друзья! Помните, что администрация сайта будет удалять:

  • Комментарии с грубой и ненормативной лексикой
  • Прямые или косвенные оскорбления героя поста или читателей
  • Короткие оценочные комментарии ("ужасно", "класс", "отстой")
  • Комментарии, разжигающие национальную и социальную рознь
brand brand