Как стать автором
Обновить
VK
Технологии, которые объединяют

Как построить систему геоаналитики с применением ML

Время на прочтение10 мин
Количество просмотров5K


Геоаналитика помогает бизнесу принимать решения: где открыть магазин, построить отель или возвести новостройку с учетом доступности и популярности локации, наличия конкурентов и сотен других факторов. Решать подобные аналитические задачи с большим количеством значимых признаков помогает машинное обучение. В этой статье мы рассмотрим примеры работы сервисов геоаналитики VK Predict. Выясним, какие модели машинного обучения используются при построении таких систем и из каких этапов состоит разработка продукта с возможностями геоаналитики.

Статья подготовлена на основе вебинара команд VK Predict и VK Cloud. 

Сервисы геоаналитики на примере кейсов VK Predict


Геоаналитика VK Predict
— это сервисы клиентской аналитики и системы поддержки принятия решений на основе анализа массивов данных, технологий машинного обучения и искусственного интеллекта. Среди ключевых решений: 

  • «ГеоКурсор» для анализа локаций, 
  • «Телеком Радар» для оценки качества связи телеком-операторов,
  • «Девелопер» для определения оптимальной квартирографии жилых комплексов.

В статье мы рассмотрим «Девелопер» и «ГеоКурсор».

«Девелопер». Сервис для моментального расчета оптимальной квартирографии и стоимости квадратного метра в заданной локации. Помогает застройщику получить параметры ЖК, на которые можно опираться при разработке нового инвестпроекта: типы и количество квартир в ЖК, цену реализации каждого лота при заданных темпах продаж. Сервис «Девелопер» работает на основе трех интерпретируемых Real-time ML-моделей.




«ГеоКурсор». Сервис для выбора лучших локаций для бизнеса, поиска мест с преобладанием целевой аудитории, анализа факторов, влияющих на выручку, прогнозирования товарооборота, анализа конкурентной среды и развития территорий. Ритейлерам сервис позволяет понять, где открыть новую точку для бизнеса. Решение основано на моделях транспортных потоков и кастомных ML-моделях, геопространственном анализе, городском моделировании и обработке больших массивов геоданных.



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



Разработка сервиса


Разработка любой системы геоаналитики с применением ML делится на три этапа:

  1. Proof of concept. Разработка ML-моделей и доказательство их практической применимости. 
  2. MVP. Разработка продукта, удовлетворяющего минимальным пользовательским требованиям.
  3. Промышленная эксплуатация и развитие. Чистка «хвостов» с MPV, оптимизация моделей, поддержка и развитие продукта.

Отдельно можно выделить «нулевой этап» — детальную проработку ТЗ заказчика. Он нужен, поскольку часто предпосылкой к разработке сервисов геоаналитики является запрос бизнеса, который нужно формализовать, выделив ключевые бизнес-метрики и их целевые значения, пользовательские, функциональные и нефункциональные требования к продукту с участием технического специалиста.

Рассмотрим каждый этап подробнее.

Proof of Concept


Этот этап обычно разбивается на две части: 

  1. Работа с данными. Поиск данных, обработка геоданных, разведывательный анализ данных.
  2. Построение и валидация моделей. ML-модели и моделирование трафика.

На этапе Proof of concept обычно достаточно 1–2 дата-сайентистов, но размер команды напрямую зависит от количества моделей, которые станут ядром продукта. 

Работа с данными


Для работы с геоданными нужен особый подход, потому что хранить пары «широта» — «долгота» в таблице неудобно. Поэтому существуют разные варианты кодирования. Например, мы используем геохеши — систему кодирования координат в одну строку. Идея построения геохешей простая:

  • Делим поверхность Земли по нулевому меридиану пополам. Левой части присваиваем значение 0, правой — 1. 
  • Делим поверхность горизонтально пополам. Верхней части присваиваем значение 1, нижней — 0.

Такой алгоритм позволяет закодировать двоичной строкой каждый участок Земли.



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



Важно, что точность определения координат напрямую зависит от длины геохеша. Так, отклонение в коде из 5 символов — 2,4 км, а в коде из 6 — в 100 раз меньше.



Тут возникает вопрос о поиске соседей по геохешам. Дело в том, что поиск по координатам сложен, а жадный поиск дорогой. Поиск алгоритмом N3 не подходит из-за логарифмической сложности и низкой скорости. Объединение геохешей по общему префиксу тоже не подходит: у соседних геохешей могут быть различные префиксы. Поэтому оптимально использовать алгоритм обхода, он позволяет найти соседей в любом радиусе на основе данных о расположении геохеша, его размерах и центре. Например, аналогично реализовано в нашем сервисе: вся карта покрыта небольшими геоячейками с данными.



Построение и валидация моделей


Важным моментом при построении модели является забота о ее стабильности во времени. Любая статистическая модель работает с массовыми явлениями, протекающими в неизменных условиях. Стабильными должны быть распределения признаков, на основе которых модель принимает решение, и макрофакторы, напрямую не учитывающиеся в модели. В нашей задаче изменение макрофакторов среды ведет к нестабильности целевой переменной — постоянному росту цен на жилье. Если не учесть их изменения, у модели будет низкая точность. Для исключения влияния макрофакторов есть два подхода:

  • определение коэффициентов среднего изменения для каждого месяца тренировочной выборки;
  • ограничение размера тренировочной выборки. 

Стоит понимать, что качество модели зависит от наличия коррекции и размера тренировочной выборки. Так, в нашем кейсе ошибка без коррекции росла при увеличении тренировочной выборки (синий график). С коррекцией она снижалась (оранжевый график), но все равно оставалась высокой. Достичь наименьшей ошибки в предсказаниях даже без коррекции нам позволило уменьшение тренировочной выборки до четырех месяцев.



Теперь о моделировании трафика. Один из основных алгоритмов моделирования — гравитационные модели. Они мотивированы законом всемирного тяготения Исаака Ньютона, который гласит, что сила притяжения между двумя объектами прямо пропорциональна произведению масс, деленному на квадрат расстояния.



Этот закон можно применить к моделированию потоков:

  • тело становится потоком;
  • вместо масс — емкость точки отправки и емкость точки прибытия;
  • будет зависимость, обратно пропорциональная расстоянию между двумя точками, которую мы всегда можем определить.



В данном случае основная задача — определить поток между двумя точками. При этом емкости места отправки и прибытия часто можно оценить с помощью данных из открытых источников. Например, открытые базы, в которых указано количество квартир во всех домах Москвы или сколько людей ездят в метро и проходят через станции в разное время. На основе этих данных можно понять, сколько людей идет по конкретной улице и стоит ли там открывать магазин.

В этой модели возникают два ограничения вида суммы:

  • сумма всех потоков, вышедших из точки i, должна равняться емкости точки отправки i;
  • емкость места прибытия должна равняться сумме потоков, которые в него приходят. 



Решить такую систему можно следующим образом: 

  1. Берем ограничения в виде равенства и ставим вместо Tij значения из самой гравитационной модели.
  2. Выражаем нормировочные коэффициенты bj и ai. Они нужны, поскольку часто ограничения вида суммы не будут выполняться из-за неточных оценок в точках отправки и прибытия. Нормировочные коэффициенты можно найти из ограничений самой задачи и дальше с помощью итеративного алгоритма определить их значение.



Еще один способ моделирования трафика — модель Хаффа. Ее рационально использовать, например, в задачах, где нужно определить вероятность посещения клиентами одного из двух торговых центров, чтобы понять зону влияния каждого из них. Идея простая: учитываем привлекательность торговой локации (например, площадь ТЦ, отзывы, количество магазинов), ее расстояние до покупателей и параметр влияния расстояния. Значение, с которым человек пойдет в этот торговый центр, прямо пропорционально привлекательности и обратно пропорционально расстоянию.

Используя такую функцию, можно легко определить вероятность посещения одного из ТЦ. Так, если покупателю до одного ТЦ 3 км, а до другого 21 км, то даже несмотря на разницу в привлекательности (200 000 против 50 000), он пойдет в первый ТЦ (с меньшей привлекательностью) с вероятностью 7/11.



MVP


Этап MVP состоит из:

  • разработки первой архитектуры;
  • создания веб-приложения;
  • продуктивизации моделей и сбора их в целые ML-пайплайны.

Как правило, состав команды, отвечающей за техническую реализацию проекта, на этапе MVP следующий: 

  • два дата-сайентиста, которые занимаются данными, продуктивизацией, написанием всего бэкенда или его части, связанной с ML;
  • два разработчика: фронтендер и бэкендер. 

Классически архитектура на этапе MPV простая и включает:

  • базы данных. Зачастую в виде подложных .csv-файлов, потому что они небольшие, а на развертывание базы данных уходит много времени;
  • бизнес-логику. API, написанный на Python с помощью библиотеки FastAPI;
  • веб-интерфейс. Как правило, на TypeScript.

Основная задача на этапе MVP — построение ML-пайплайнов. Вариантов несколько. Рассмотрим основные из них на примере ML-пайплайнов для задач квартирографии: необходимо на основе данных о локации строительства ответить застройщику, сколько квартир и какого типа он должен построить, а также по какой цене их продавать.

Первый вариант пайплайна. Берем координаты, подтягиваем к ним различные геопризнаки локаций и строим на них модель класса. Затем прогнозируем цену для каждого лота с учетом класса и локации. После этого идет модель, которая предсказывает темпы. На выходе получаем таблицу с типом лота, темпами и ценой.



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



Второй вариант пайплайна. Берем данные на вход, прогнозируем класс, но дальше используем модель KNN для предсказания самой квартирографии: она находит несколько схожих ЖК, усредняет их квартирографию с определенными весами, к результату применяется модель цены, которая сама в качестве признака учитывает темпы продаж, появившиеся после модели квартирографии. В итоге решаем задачу, получив и квартирографию, и цену.



Промышленная эксплуатация и развитие


Этап промышленной эксплуатации и развития — один из самых объемных, ресурсоемких и важных. Он подразумевает:

  • внедрение AutoML;
  • автоматизацию обработки и поставки данных ETL;
  • исследования по улучшению проекта;
  • оптимизацию работы сервиса.

Также на этом этапе изменяется архитектура продукта — она усложняется. Например, у сервиса появляется база данных, а также настраиваются ETL-пайплайны данных из хранилища данных (в нашем случае Hadoop) в витрины и далее в базы данных сервиса. 



Важный компонент геопроектов — AutoML. Его использование позволяет не перестраивать ML-модель вручную при подключении новых городов и появлении новых задач. 

AutoML


AutoML — инструмент, который позволяет автоматизировать один из этапов пайплайна машинного обучения. В широком смысле AutoML представляет собой систему, которая полностью решает бизнес-задачи с помощью ML. AutoML решает задачу снижения трудоемкости ML-решения, позволяя внедрить его там, где раньше это было невыгодно из-за необходимости привлечения дата-сайентистов.

Обычно выделяют несколько уровней автоматизации.

  1. API к параметрическим семействам алгоритмов. Библиотеки и фреймворки, которые выступают в роли строительных блоков и абстракций для построения библиотек более высокого уровня.
  2. Методы автоматического подбора гиперпараметров и ансамблирования, автоматизация выбора методов. Автоматические подборки параметров — байесовская оптимизация и различные пакеты. Реализация байесовских подходов — Hyperopt, Optuna.
  3. EDA (Exploratory Data Analysis), препроцессинг, детекция проблем в данных. Контроль стабильности переменных, их автоматическая типизация, обработка категорий, выделение признаков и предпроцессинг.
  4. Методы автоматической генерации и отбора признаков, а также аугментации данных, специфичные для домена (текстов, картинок) и конкретной задачи. Типичные подходы для всех задач типа Target Encoding или объединения редких категорий в категориальном признаке, а также подходы, которые генерируют признаки, типичные для бизнес-домена нашей задачи или для конкретного набора данных.
  5. Стратегии обучения и управления бюджетом (время, вычислительные ресурсы). Помогают автоматизировать работу с машинным обучением, когда увеличивается количество моделей и подходов к решению.
  6. AutoDL: NLP, CV, Time Series и Signal Processing. Методы поиска архитектур. 

Есть несколько популярных AutoML-решений:

  • AutoGluon,
  • AutoSklearn,
  • TPOT (Tree-based Pipeline Optimization Tool),
  • H2O,
  • FEDOT,
  • LAMA.

Но на практике не обязательно использовать готовый фреймворк. Мы в своих проектах используем собственную реализацию AutoML. Наше решение покрывает:

  • автоматизацию сбора дата-сета;
  • генерацию специфичных доменно-ориентированных признаков;
  • контроль качества данных;
  • автоматический подбор гиперпараметров;
  • фиксированное параметрическое семейство алгоритмов;
  • модуль генерации отчетности по модели, который позволяет быстро проконтролировать по выбранной схеме валидации интересующие метрики.

Надо отметить, что построение качественной модели с помощью AutoML-фреймворка — очень ресурсоемкий с точки зрения вычислительных мощностей процесс.

ETL


ETL-процессы в каждой системе геоаналитики могут быть реализованы по-своему, в зависимости от стека и требований к сервису. Например, в своих геопродуктах мы используем Airflow. В нем есть DAG (Direct Acyclic Graph) — набор задач, которые позволяют выразить отношения и зависимости.



DAG может связывать между собой большое количество задач, таких как чтение таблиц, построение и применение ML-моделей. 

Сейчас для каждой задачи «выгрузить — преобразовать — загрузить» мы пишем отдельные DAG. Их соединяем через сенсоры, которые зависят не от статуса задачи в Airflow, а от наличия данных. Такая реализация обусловлена тем, что мы сейчас на этапе построения ETL-пайплайнов и архитектура сильно меняется.

Рекомендации на основе нашего опыта


  1. ML можно использовать для широкого спектра задач геоаналитики. 
  2. Разработка любой системы геоаналитики с применением машинного обучения делится на три этапа: Proof of concept, MVP и промышленная эксплуатация. Путь от этапа к этапу сложный, поэтому оптимально, чтобы запрос на Proof of concept исходил от бизнеса: это определяет востребованность проекта.
  3. Для построения системы геоаналитики с применением ML нужны дата-сайентисты, дата-инженеры, бэкенд- и фронтенд-разработчики. Кроме технических специалистов также нужны бизнес-аналитики, Delivery Manager, Product Owner и другой менеджерский состав, который будет координировать работу технарей.
  4. Для работы с ML и построения сервисов на его основе нужна масштабируемая инфраструктура. Поэтому многие команды разворачивают проекты в облачной среде: это позволяет использовать любые инструменты с оплатой по модели Pay-as-you-go, гибко масштабировать инфраструктуру и не заботиться об администрировании, которое остается на стороне вендора.
  5. Построить систему машинного обучения поможет Cloud ML Platform от VK Cloud — платформа для полного цикла ML-разработки и совместной работы Data-команд. Новым пользователям для тестирования мы начисляем 3000 бонусных рублей.
Теги:
Хабы:
Всего голосов 24: ↑23 и ↓1+22
Комментарии1

Публикации

Информация

Сайт
team.vk.company
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Руслан Дзасохов