WANTED: талантливые математики на интересный и денежный контракт
Целевая специализация — матстатистика, матмоделирование, нейросети.
Описание задачи — ниже.
Вторая попытка по человечески сформулировать задачу из предыдущего постинга.
Цель
Разработка приложения для глубокого анализа данных о деятельности предприятия, накапливаемых в IEM-системе. На выходе предполагается получить промышленный коммерческий продукт, универсальное решение для анализа средствами Big Data, совместимое со всеми IEM-решениями на платформе Ultimate Solid.
Общая формулировка задачи
Разработка механизма поиска нетипичных отклонений в данных результатов исполнения стандартизированных бизнес-процессов. Изначально предполагается использование методов матстатистики, возможно — нейронных сетей. И все, что пригодится тоже. “Нетипичность” отклонений является настраиваемым параметром градуса параноидальности системы (она же чувствительность, скаляр).
Развернутая попытка описать хотелки
В БД IEM-системы собирается полная структурированная информация о ходе исполнения бизнес-процессов предприятия в реальном времени.
Пример визуализации структуры данных реального эксплуатанта системы в финансовой проекции
Сохраняется вся история, транзакции и прочие (в том числе агрегированные) атрибуты процессов и событий процессов. Ход исполнения бизнес-процессов жестко стандартизирован и гарантированно закрывается контуром системы.
На выходе получаются данные по результатам выполнения большого количества однотипных процедур (например, “выписка счета” — “приход денег на счет” — “резервирование товара” — “отгрузка товара”, и так миллион раз). Глубина детализации не имеет принципиальных ограничений, и определяется глубиной стандартизации реальных бизнес-процессов.
Внутри массива структурированных данных и предлагается искать нестандартные (относительно заданного градуса параноидальности) отклонения.
Пример: у всех менеджерам по продажам примерно одинаковый оборот, рентабельность (прибыль), однако у одного нетипично много возвратов по гарантии.
Непрерывная достоверность, согласованность и полнота данных БД IEM гарантируется платформой. Помимо прочего, они содержат информацию об объектах учета в разнообразных справочниках и о всех происходящих событиях и процессах в документах, регистрах и прочих механизмах. Все структуры данных и их связи и взаимодействия описываются метаданными, хранящимися в той же базе данных в структурированном, нормализованном виде.
В идеале работа будущего приложения должна выглядеть так: настраивается доступ к нужной базе данных, указывается градус параноидальности, и все.
Приложение самостоятельно считывает метаданные, исчерпывающе описывающие бизнес-логику предприятия, строит цепочки бизнес-процессов, группирует по ним фактически результаты их отработки, и в каждой группе отыскивает нетипичные.
Далее производит с ними некие действия, понимание природы которых входит в рамки задачи (теоретическая часть), а на выходе выплевывает факторы риска — контрагента, сотрудника, офис, время оформления заказов или другой сущности, информация о поведении которой хранится в системе.
Закончили про идеал.
Требования к исполнителю
На текущем этапе нам нужен человек (группа товарищей), которые а) глубоко осознАют о чем идет речь, б) построят математическую методологию решения задачи в общем случае.
К методологии можно отнести методы и эвристики определения значащих параметров (или определение неразличимости при заданном наборе параметров), определение процесса построения анализа данных и прочие технические детали.
С учетом расплывчатости и нетипичности задачи любые другие адекватные предложения от людей, которые смогут аргументировать собственную компетентность, будут рассмотрены. Искомое приложение обладает высокой рыночной емкостью, посему возможны различные варианты сотрудничества со вменяемым подрядчиком.
Технические моменты
В качестве СУБД используется Oracle 12c EE.
При необходимости может реализована real-time трансляция в Hadoop или аналогичные хранилища. Но, следуя методологии IEM, прямой сбор данных с сервера приложений является более предпочтительным решением.
Предложения направлять bigdata@ultimatebusinessware.ru
Комментарии (14)
DmitryKogan
15.02.2017 13:18Пустое дело. Не существует общей теории всего. В таком подходе задача написания метаданных для любой проблемы сравнима по сложности с задачей поиска фрода, если не превосходит ее. Нужно идти по обычному пути — создать аналитическое ядро и навешивать на него интерфейсы для отдельных классов задач — финансовых, логистики, ритейла и т.д. Может, когда накопится опыт, удастся обобщить подходы и постепенно продвинуться к универсальной модели, но вряд ли слишком далеко
Rupper
15.02.2017 13:20В данном случае не идет речь о общей теории всего.
Речь идет о поиске отклонений в весьма структурированном наборе данных.
И, если для скалярных параметров наверно можно использовать простые приемы типа среднего квадратичного (хотя я не пробовал) то для векторов я уже не знаю что делать. Классический вектор — последовательность событий с привязкой ко времени.dim2r
15.02.2017 17:18Речь идет о поиске отклонений в весьма структурированном наборе данных.
Я занимался поиском отклонений от типичного поведения в телефонных сетях. Если интересно — поделюсь опытом.Rupper
15.02.2017 17:20Интересно, полезны будут любые советы, но на текущем этапе желательно глубокое участие.
AlexanderVV
20.02.2017 15:34DmitryKogan в целом сказал правильно. Просто не счел нужным расшифровать. Ваша формулировка задачи действительно слишком общая. Почему?
Пара простых примеров. «Классический вектор — последовательность событий с привязкой ко времени.» Возьмем например график курса доллара. Задача казалось бы простая, но до сих пор никому не удалось построить хорошего робота для торговли на бирже в сколько нибудь долгосрочной перспективе. Все крупные ушли в HFT.
Есть два принципиально различающихся метода «прогноза». С учителем и без.
Все сколько нибудь результативные применения нейронных сетей в настоящее время работают по первому методу и строятся на обучающей выборке. (Да, Гугл написал «что-то» что само без учителя находит котиков. Ваша задача находить котиков? У вас есть ресурсы доступные Гуглу?) У вас есть обучающая выборка? Какая?
Если вы посмотрите, например, как устроен поиск внутри Гугла или Яндекса, то вы обнаружите там примерно то, что порекомендовал вамDmitryKogan.
П.С. Занимаюсь этим уже больше 10 лет. Могу проконсультировать.)Rupper
20.02.2017 15:42Александр, но нам не надо предсказывать курсы доллара. У нас совсем другая задача — найти выделяющийся чем-то объект анализа среди таких же. Это скорее задача интерполяции нежели экстраполяции. Согласитесь, задача интерполяции легко решается если мы что-то знаем о функции, например, что она гладкая. И тогда можно очень точно интерполировать. С экстраполяцией задача нерешаемая конечно.
Я нигде не сказал, что нейросеть должна обучаться сама. Я сказал, что возможно, мы сможем для нашего частного случая реализовать механизм обучения сети (с минимальным вмешательством человека — он задает что «от сих до сих — обучающая выборка, а дальше живут драконы»)
Боюсь, что в ближайшее время посмотреть как устроен поиск яндекса и гугла не смогу.
П.С. Как написано — я буду благодарен любым полезным советам. Можете подробнее описать, чем вы занимаетесь 10 лет, какие у вас предложения?AlexanderVV
20.02.2017 16:03Без разницы ) Интерполяция это самый простой случай обучения с учителем. Если вы много знаете о функции то задача решается легко. (Простейший случай. По двум точкам найти уравнение прямой на плоскости. Обучающая выборка 2 точки. Но вы должны точно знать что это уравнение прямой. Коган вам примерно это и предложил. Опишите известные в рамках ваше предметной деятельности «уравнения» и способы их решения. Сделайте набор таких «уравнений». А дальше если повезет, то местами буду обобщения) Но вы скорее всего мало знаете о своей «функции» ) Уже по факту метода сбора и дискретизации данных в вашей задаче у вас нет уверенности, что «функция» хотя бы непрерывна.
Я не хочу вас испугать или отговорить ) Просто указываю, на мой взгляд, оптимальный путь. Ведь если существует решение в общем виде, таким способом вы его почти наверняка найдете. А если его не существует, то вы получите хотя бы часть решения, которое вполне возможно будет удовлетворять бизнес требованиям.Rupper
20.02.2017 16:48К сожалению, мы не можем себе позволить разбираться с конкретными процессами. Собственно, такой инструмент легко может быть заменен человеком, и результаты его будут лучше. Просто я рассматриваю средний вариант интерполяции — между ничего не знаем и «это прямая».
Почему вы отбрасываете вариант знаний «функция гладкая, с конечными известными мин и макс».
Это примерно то, что мы знаем про то, что происходит у нас. Осталось придумать, что такое интерполяция :)AlexanderVV
20.02.2017 17:01Отбрасываю опираясь на собственный опыт. К сожалению, ничего точнее сказать нельзя не изучив конкретно вашу задачу(задачи).
Если вы хотите _только_ «У всех менеджерам по продажам примерно одинаковый оборот, рентабельность (прибыль), однако у одного нетипично много возвратов по гарантии.» такие случаи обнаруживать. То это решаемая (решенная, например системы безопасности серверов по анализу трафика) задача (класс задач, не обязательно менеджер и необязательно продажи любые отклонения от «стандартного» поведения. Дальше нужно аккуратно определить, что понимается под «стандартным»).
Но мне кажется, вы хотите еще что-то. Вам было бы полезно перечислить в постановке набор хотя бы основных (важных для бизнеса) случаев.Rupper
20.02.2017 19:41Мы работаем с разными бизнесами, и у всех есть свои детали. У кого-то нет менеджеров, есть склады, у кого-то нет ни менеджеров ни складов, только производства. На текущем этапе мы определяем стандартное поведение как поведение большинства. Для инструмента требуется аналитик — он может задавать субъективные значимости параметров, или чувствительность модели. Он же и задает, что мы собственно будем анализировать. Он может выбрать пользователей и попросить построить для них возможные факторы (мы их много можем сгенерить автоматически на основе метаданных), может попросить разработчика сделать механизм для расчета какого-то специального хитрого параметра. Результат анализа — кто тут отличается, и дальше аналитик разбирается почему. Если отличие «правильное» надо его как-то пометить, чтобы не было false positives.
AlexanderVV
20.02.2017 20:59Вот это уже похоже на правду. ) Я бы, на вашем месте, включил бы этот комментарий в описание задачи.
Такую задачу можно браться решать. За разумное время и разумный бюджет.
Можно начать с метода главных компонент для понижения размерности. А затем взять какой нибудь простой классификатор, для начала. Если правильно определить большинство (среднее, медианное, или хитрее) можно попробовать начать с пороговых классификаторов.
Shablonarium
Хорошая идея, но не хватает описания имеющихся данных.
Rupper
Поскольку инструмент нужен универсальный, то нужно отталкиваться не от описания имеющихся данных (оно, конечно, есть), а от имеющихся метаданных. И сами данные и структура и наполнение метаданных описаны в документации, ее можно найти по приведенным ссылкам.