От нейросетей к Low-code: туда и обратно

12 октября 2020
0 комментариев

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

Дело в том, что наша история с нейросетями началась 20 лет назад. За это время произошло много интересного, но романтический период закончился, а в итоге осталось совсем не то, что представлялось в начале.

Все началось в 1995 году. Тогда наша компания называлась BaseGroup Labs (сейчас Loginom Company). Мы, как и многие в то время, занимались заказной разработкой информационных систем, но затем решили полностью сосредоточиться на анализе данных: прогнозирование спроса, сегментация клиентов, поиск закономерностей, скоринг и другие задачи, связанные в основном с анализом структурированных данных. К слову, сегодня список бизнес-задач, с которыми мы сталкиваемся, остался примерно таким же.

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

Вначале было слово, и слово было «нейросеть»

Свой путь в аналитику мы начали, конечно же, нейросетей. В то время закончилась предыдущая зима нейросетей и началась очередная весна, на которую мы и попали. Первый реализованный нами алгоритм Back Propagation произвел потрясающий эффект. Его суть заключалась в следующем: берем данные, подаем на вход, запускаем обучение и уже через пару минут мы можем классифицировать Ирисы Фишера. Или берем историю продаж, обучаем и вот мы уже получаем прогноз. Да, не идеального качества, но ведь и обучение длится всего несколько минут. Казалось, чтобы получить отличный прогноз, надо лишь потратить чуть больше времени.

На Back Propagation мы не остановились. После были алгоритмы быстрого обучения нейросетей, такие как RProp, сопряженные градиенты, затем RBF-сети, деревья решений, карты Кохонена… Причем, уделялось внимание и визуализации. Например, карты Кохонена позволяли увидеть проекции данных на все компоненты с границами кластеров, удобной фильтрацией и нанесением меток на слои. Так появился на свет пакет программ – Deductor.

Deductor (Карты Кохонена)

Deductor (Карты Кохонена)

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

Анализ отсутствующих данных

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

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

Причем за какую бы задачу не брались, всегда одно и то же — нужные данные отсутствуют. Алгоритмы есть, но применять их не к чему. На чем обучать нейросеть, если из нескольких десятков значимых факторов доступно максимум пять-шесть атрибутов?

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

Со временем мы осознали, что данные бывают двух видов: плохие и отвратительные. Если они просто плохие, то что-то еще можно делать, а если отвратительные, то сначала надо их привести к состоянию «просто плохие», а далее пытаться как-то обработать.

Стало очевидно, что проблема не в алгоритмах, а в качестве данных. В результате основные усилия при разработке Deductor пришлось направить на решение задач сбора, систематизации, предобработки, очистки и трансформации данных. В 2002 году в Deductor появился для этого специальный модуль RawData Analyzer.

В Deductor были встроены алгоритмы очистки и предобработки данных: БПФ, вейвлет-преобразования, робастная фильтрация и прочее. Мы были готовы решать реальные задачи даже с плохими данными, но при внедрении всплыли новые проблемы.

От кустарной обработки к конвейеру

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

Это потребовало переработки всего, что было написано ранее таким образом, чтобы можно было комбинировать любые алгоритмы и запускать конвейер обработки. Любой обработчик должен был получать на вход набор данных, прогонять через себя и выдавать набор данных, который, в свою очередь, можно подать на вход следующему алгоритму. В результате в 2004 году на свет появился Deductor 4 – платформа, позволяющая без программирования визуально создавать произвольные сценарии обработки.

Deductor (сценарии обработки)

Deductor (сценарии обработки)

Идея оказалась жизнеспособной. Было реализовано много проектов, а Deductor был включен в официальную образовательную программу более чем 100 вузов в странах СНГ.

Low-code конструктор

Но время шло, и опять появились проблемы. Развитие облачных технологий привело к необходимости полноценной работы через браузер. Big Data и все, что с ними связано, требовали кардинального пересмотра архитектуры для того, чтобы платформа была способна обработать большие наборы данных. Но была и более фундаментальная проблема — предоставление аналитикам возможности накапливать, повторно использовать и делиться знаниями.

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

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

Все это потребовало настолько серьезных изменений, что пришлось потратить шесть лет на создание платформы нового поколения. Это повлекло за собой ребрендинг: платформа Deductor превратилась в Loginom, а компания BaseGroup Labs сменила название на Loginom Company.

Теперь на платформе Loginom можно все проектировать в браузере, использовать готовые компоненты или создавать свои собственные, обрабатывать большие объемы данных, превращать любой узел сценария в веб-сервис и т.д.

Платформа Loginom

Платформа Loginom

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

Акцент на визуальное проектирование позволяет снизить планку, сделать кривую обучения продукту более пологой, а, следовательно, дать возможность максимальному количеству бизнес-пользователей стать аналитиками. Когда продукт был выпущен, выяснилось, что для подобного подхода придумано удачное название — low-code.

Аналитика, легкая в приготовлении

Сейчас мы наблюдаем очередной период повышенного интереса к нейросетям и алгоритмам машинного обучения в целом. Это прекрасно, что люди хотят анализировать и принимать решения на основе данных. Но за это время пришло осознание того, что нейросети — это не универсальный ключ от всех дверей. Они стали обычными компонентами платформы Loginom наряду с другими алгоритмами.

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

На сегодня Low-code платформы ближе всего к тому, чтобы сделать продвинутую аналитику доступной. Они включают большой набор алгоритмов для решения широкого спектра аналитических задач. Обеспечивают достаточную гибкость, т.к. пользователь может сам визуально спроектировать сложную логику обработки. Минимизируют потребность в программировании, но при необходимости позволяют кодировать. Не предъявляют слишком высокие требования к пользователям и имеют пологую кривую обучения. Следовательно, большинство пользователей смогут быстро получить первые результаты и постепенно вовлекаться в увлекательную работу с данными.

Опыт, сын ошибок трудных

Спустя 20 лет работы в области продвинутой аналитики наши представления об анализе данных существенно изменились. Пришло понимание того, что представляет реальную ценность для бизнеса:

  1. Нейросети и другие алгоритмы машинного обучения — это всего лишь алгоритмы. Не лучше и не хуже остальных. Применение машинного обучения позволяет быстро получить первые результаты, что создает ошибочное ощущение всемогущества. Все попытки решить реальную проблему «грубой силой», только за счет математики, без понимания предметной области, приводят к тривиальным и бесполезным результатам. Только глубокое понимание предметной области позволяет получить действительно ценные выводы.
  2. В процессе обработки данных большая часть времени будет потрачена не на построение моделей, а на подготовку и очистку данных. Плохие данные — это не досадное недоразумение, а типичная ситуация в каждом проекте. На решение именно этой проблемы стоит направить основные усилия, в частности, потратить время на изучение методов и алгоритмов очистки данных. Это принесет огромную отдачу.
  3. Принятие решений не сводится к одному магическому методу обработки, это всегда некоторая последовательность операций. Нужно понимать, как строить подобные сценарии, а, главное, как их повторно использовать. Именно повторное использование наработок является ключом к повышению бизнес-ценности аналитики, иначе затраты на обработку данных не окупаются. Бизнес-эксперт должен иметь возможность превращать свои знания в компоненты, которыми он может повторно пользоваться или поделиться с коллегами.

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

 

#low-code

Смотрите также