Прогноз победителей тендеров на завтра по 44-ФЗ, 223-ФЗ, 615пп

при помощи искуственного интеллекта и нейронной сети

Глава 1. Предисловие.

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

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

Потом в 2017 я создал базу тендерных займов - Loans с контекстно- семантическим ядром. Она до сих пор пользуется у меня огромной популярностью. Эта база уникальна тем, что не использует ОКПД и ОКВЭД для поиска похожих аукционов: она определяет степень похожести по контексту и показывает возможных участников по только что объявленным аукционам. Эта база вам никогда не скажет - извините ОКПД нет в этой закупке, приходите завтра :-)

Сначала все звонили по базе за вчера, потом звонили по базе online, потом работали с базой Loans. В этот новый год мне пришла идея - а возможно ли двинуться еще дальше, быстрее и точнее? Я загадал на свой пьяный мозг в полночь желание - сделать такую базу, которая была бы лучше Online и Loans. А желание сбывается только тогда, когда никому не говоришь :-) И я повесил на свой рот замок :-)

Глава 2. Нелинейное программирование.

В идее у меня была база, которая бы предсказывала победителей на завтра.

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

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

Глава 3. Предсказываем аукционы на завтра.

Первая моя мысль была такая - я беру все аукционы, у которых дата проведения завтра, алгоритм предсказания участников беру из базы Loans и дело сделано. Ура! Но этот процесс затянулся с января почти на 7 месяцев. А ура не случилось потому, что а) только часть аукционов проводится в день проведения аукциона б) только часть протоколов выходит в день проведения в) часть аукцмонов не доживает до дня проведения и протокол выходит раньше и г) алгоритм из базы Loans не подойдет под эту задачу, так как он рассчитан на долгосрочный прогноз. А также проблем было еще столько, что хватит до буквы я).

Две недели у меня заняло аналитическое исследование по всей базе 44-фз, что же влияет на дату размещения протокола на площадке. Оказалось, что дата публикации, дата окончания приёма заявок, дата окончания рассмотрения заявок, дата проведения аукциона, сумма аукциона, количество допущенных и отклоненных заявок (я про первые и вторые части),тип аукциона, ну и конечно лень самого заказчика - это минимальный набор факторов, влияющих на вероятность появления протокола на площадке.

Не надо быть гадалкой чтобы понять, что все эти параметры связаны нелинейной зависимостью. Любая попытка решить эту задачу в лоб вложенностью IF-ELSE-THEN безумна, потому что это нереально, так как у нас более 20 миллионов проведенных аукционов в исторической выборке.

Пример. Давайте упростим задачу с 20 миллионов аукционов до двух :-) Предположим, у нас есть всего два состоявшихся аукциона:

1) объявлен 15 июля, заявки до 23 июля, рассмотрение 24 июля, проведение 27 июля, протокол 27 июля.
2) объявлен 15 июля, заявки до 23 июля, рассмотрение 24 июля, проведение 27 июля, протокол 28 июля.

В обоих заявки через 8 дней, рассмотрение через 1 день, проведение через 3 дня, но! протокол в одном через 1 день, а в другом в тот же день. Формула 8/1/3/0 и 8/1/3/1.

И есть аукцион по которому мы хотим угадать дату протокола:

3) объявлен 16 июля, заявки до 24 июля, рассмотрение 25 июля, проведение 28 июля

Вопрос: какого числа появится протокол? 28 или 29? Ответ: на основании исторической выборки в 2 протокола он появится с вероятностью 50% 28 числа и с вероятностью 50% - 29 числа.

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

В действительности у нас миллионы аукционов и может попасться такой, который не похож по признакам ни на один существующий и перед нами стоит задача классифицировать и найти максимально похожий на него по параметрам, чтобы определить шансы появления протокола в ближайшие 3 дня. Запрограммировать эти условия через ЕСЛИ-ТО-ИНАЧЕ не получится.

В этом нам поможет искусственная нейронная сеть.

Глава 4. Искусственная нейронная сеть.

Искусственная нейронная сеть представляет миниатюрную модель мозга и отлично решает задачи классификации и прогнозирования.

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

На вход сети мы подаём входные исторические данные по всем состоявшимся аукционам с 14 года. Сеть воспринимает только числа с плавающей точкой от [0-1], и отдаёт вероятность наступления того или иного события или характерные признаки классификации принадлежности к тому или иному множеству. Таким образом наша сеть будет полностью обучена и ей можно будет задавать вопросы.

В нашем случае на вход подаётся рад сигналов - даты, суммы и другие, нормализованные к диапазону от [0-1]. На выходе мы имеем 3 нейрона в выходном слое - первый отвечает за шанс проведения аукциона сегодня, второй - завтра, третий - послезавтра. Какой из трёх нейронов выходного слоя отдаёт большую цифру, скорее всего в тот день появится и протокол. Например, если в результатах по некоторому аукциону сеть отдаёт [0.9761,0.9846,0.9838] значит вероятнее всего протокол появится завтра.

Это крайне упрощенная схема для понимания того, с чем вы теперь будете работать.

Иногда я сам не понимаю, как это работает, честно. Когда я смотрю на результаты, я не понимаю как это получилось, какой алгоритм был использован, и использован ли вообще. Но это реально работает. И одно я знаю точно - больше никаких IF-THEN-ELSE в поиске нечётких решений - нейронная сеть сделает это гораздо лучше любого самописного алгоритма, нужно лишь грамотно построить сеть и подобрать ее параметры.

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

Глава 5. Новые времена требуют новых художников.

Конечно, новая база требует новый внешний вид.

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

И в базе "Завтра" я создал для вас новый многослойный интерфейс прямо в браузере.

Вот как выглядит новая база.

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

Вы можете ставить статусы и добавлять клиентов в своих клиентов.

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

Так же вы видите реальное количество поданных и отклоненных заявок на аукцион.

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

Если вас заинтересовала какая-то компания - вы можете нажать на нее и откроется карточка компании. Она откроется в новом слое. Вы можете проанализировать всё информацию о компании в карточке компании. Закрывая карточку компании вы попадаете обратно в карточку аукциона что очень удобно.

Глава 6. Тайна покрытая мраком...

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

С января и по средину марта было всё вообще скучно и печально. Отбор аукционов на завтра по дате проведения не давал никаких положительных результатов. А я напомню что перед нами стоит две сложнейших классификационных задачи - 1) подобрать аукционы на завтра по которым появится протокол 2) в каждом определить самого вероятного поставщика.

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

Глава 7. TF-IDF + нейронная сеть

TF — term frequency, IDF — inverse document frequency. Это числовая статистика которая отражает, насколько важно слово для документа в наборе или текстовой базе данных.

Новая база за "Завтра" использует новый алгоритм поиска для подбора похожих аукционов. Преимущество в том что она отдает результат в несколько раз быстрее базы Loans, в которой используется старый алгоритм. Если суммарно взять 10.000 аукционов, то подбор похожих аукционов и участников по всем 10.000 займет не больше 2,5-3 минут. В базу Loans я этот новый алгоритм поиска скоро перенесу. Там тоже будут использоваться ИИ и нейроны.

Глава 8. Временные ряды.

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

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

В личном кабинете вы можете смотреть прогнозы по победителям.

Долгосрочный прогноз на 300 дней: (нейронная сеть обучена до 10 эпохи)

Краткосрочный прогноз на месяц: (нейронная сеть обучена до 20 эпохи)

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

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

Глава 9. Все шансы.

В карточки компании нейронная сеть прогнозирует вам шанс с которым данная компания может завтра победить.

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

Глава 10. Избавимся от мусора.

В ближайшем будущем это потеряет всякий смысл, поэтому я убрал эту статистику вообще с главной страницы. Гонка, чья онлайн база быстрее закончилась, начинается новая гонка вооружений :-)

Глава 11. Иван Тендеров - мой новый помощник.

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

Теперь от него вам будут все письма, сообщения и уведомления на Госбазе. А может придёт время что вы с ним и чатиться будете на русском языке :-)

Глава 12. Коллективный разум на Госбазе.

Каждый из моих клиентов делит базу между своими менеджерами. С завтрашнего дня Иван будет делить базу между всеми моими клиентами. Читайте внимательно: у вас будет доступ и к полной базе всех аукционов, по которым завтра скорее всего появится протокол. Но помимо этого будет персональный раздел каждого менеджера, в который Иван вам заботливо положит из этой общей базы "За завтра" те аукционы, которые будут ТОЛЬКО В ВАШЕМ персональном разделе. Они будут интеллектуально подобраны для вас с учетом истории вашей работы, ваших клиентов, сумм обеспечения. Иван равномерно распределит всю базу между всеми клиентами.

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

Глава 13. А нам звонили еще вчера...

Потенциальный вопрос: а можно ли такое сделать в Онлайн базе?

Отвечаю: забудьте это слово. Ребят, помните как мы давно переходили на онлайн базу с базы за вчерашний день? Вспомните как это было. База за вчера потеряла всякий смысл и пользуются ей сейчас у меня тольок крупные банки потому что им удобно ее делить между всеми своими отделениями и скорость им не нужна.

Онлайн базу ждёт скоро та же участь. Искусственный интеллект победит ЕСЛИ-ТО-ИНАЧЕ потому что за ним будущее.

Глава 14. Завтра наступит новая эпоха.

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

Заключение.

Честно, я пустился 6 месяцев назад в путешествие по незнакомой дороге и изначально я даже не понимал куда иду. Пробовал и экспериментировал, и в итоге в какой то момент что-то случилось и всё заработало, стало живым. База "За завтра" перестала быть просто базой данных, я стал чувствовать с ней какую-то животную связь, и даже разговаривать вслух :-).

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

Иван Тендеров не спит, не болеет, не ходит на больничный, не пьёт :), он доступен и работает для вас 24 часа в сутки и не устаёт.

Когда я работал над этим проектом я раньше никогда не испытывал такого чувства удовлетворенности, очень прикольно и интересно. Жить стоит только для того, чтобы открывать новые горизонты и двигаться дальше.

Я чувствую и осознаю что создал что-то очень важное.

Это абсолютно потрясающее ощущение - создавать то, чего пока ни у кого нет, и пройти по тому месту, где не ступала нога человека.

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

Добро пожаловать в мир искуственного интеллекта. С завтрашнего дня вы будете работать с ним каждый день.