Хабрахабр

Интеллектуальные системы поддержки принятия решений — краткий обзор

image

Дисклеймер

Целью написания этой статьи было сделать краткий обзор принципов построения Интеллектуальных Систем Поддержки Принятия Решений (ИСППР), роли машинного обучения, теории игр, классического моделирования и примеров их использования в СППР. Целью статьи не является забуриться вглубь тяжелой теории автоматов, самообучаемых машин, равно как и инструментов BI.

Введение

Существет несколько определений ИСППР, которые, в общем-то, крутятся вокруг одного и того же функционала. В общем виде, ИСППР — это такая система, которая ассистирует ЛПР (Лицам, Принимающим Решения) в принятии этих самых решений, используя инструментарии дата майнинга, моделирования и визуализации, обладает дружелюбным (G)UI, устойчива по качеству, интерактивна и гибка по настройкам.

Зачем нужны СППР:

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

Первые СППР (тогда еще без И) выросли из СПТ (Систем Процессинга Транзакций), в середине 60-х — начале 70-х. Тогда эти системы не обладали никакой интерактивностью, представляя собой, по сути, надстройки над РСУБД, с некоторым (совсем не большим) функционалом численного моделирования. Одной из первых систем можно назвать DYNAMO, разработанную в недрах MIT и представлявшую собой систему симуляции каких-либо процессов на основе исторических транзакций. После выхода на рынок мейнфреймов IBM 360 стали появляться и условно-коммерческие системы, применявшиеся в оборонке, спецслужбах и НИИ.

По сути, эти системы представляли собой фреймворки, спососбные работать с данными на различных уровнях иерархии (от индивидуального до общеорганизационного), а внутрь можно было внедрить какую угодно логику. С начала 80-х уже можно говорить о формировании подклассов СППР, таких как MIS (Management Information System), EIS (Executive Information System), GDSS (Group Decision Support Systems), ODSS (Organization Decision Support Systems) и др. Примером может служить разработанная Texas Instruments для United Airlines система GADS (Gate Assignment Display System), которая поодерживала принятие решений в Field Operations — назначение гейтов, определение оптимального времени стоянки и т.п.

В конце 80-х появились ПСППР (Продвинутые — Advanced), которые позволяли осуществлять «what-if» анализ и использовали более продвинутый инструментарий для моделирования.

Наконец, с середины 90-х на свет стали появляться и ИСППР, в основе которых стали лежать инструменты статистики и машинного обучения, теории игр и прочего сложного моделирования.

Многообразие СППР

На данных момент существует несколько способов классификации СППР, опишем 3 популярных:

По области применения

  • Бизнес и менеджмент (прайсинг, рабочая сила, продукты, стратегия и т.п.)
  • Инжиниринг (дизайн продукта, контроль качества...)
  • Финансы (кредитование и займы)
  • Медицина (лекарства, виды лечения, диагностика)
  • Окружающая среда

По соотношению данные\модели (методика Стивена Альтера)

  • FDS (File Drawer Systems — системы предоставления доступа к нужным данным)
  • DAS (Data Analysis Systems — системы для быстрого манипулирования данными)
  • AIS (Analysis Information Systems — системы доступа к данным по типу необходимого решения)
  • AFM(s) (Accounting & Financial models (systems) — системы рассчета финансовых последствий)
  • RM(s) (Representation models (systems) — системы симуляции, AnyLogic как пример)
  • OM(s) (Optimization models (systems) — системы, решающие задачи оптимизации)
  • SM(s) (Suggestion models (systems) — системы построения логических выводов на основе правил)

По типу использумого инструментария

  • Model Driven — в основе лежат классические модели (линейные модели, модели управления запасами, транспортные, финансовые и т.п.)
  • Data Driven — на основе исторических данных
  • Communication Driven — системы на оснвое группового принятия решений экспертами (системы фасилитации обмена мнениями и подсчета средних экспертных значений)
  • Document Driven — по сути проиндексированное (часто — многомерное) хранилище документов
  • Knowledge Driven — внезапоно, на основе знаний. При чем знаний как экспертных, так и выводимых машинно

Я требую жалобную книгу! нормальную СППР

Несмотря на такое многообразие вариантов классификаций, требования и атрибуты СППР хорошо ложаться в 4 сегмента:

  1. Качество
  2. Организация
  3. Ограничения
  4. Модель

На схеме ниже покажем, какие именно требовани и в какие сегменты ложаться:

image

Отдельно отметим такие важные атрибуты, как масштабируемость (в ныне одном подходе agile никуда без этого), способность обрабатывать плохие данные, юзабилити и user-friendly interface, нетребовательность к ресурсам.

Архитектура и дизайн ИСППР

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

Действительно, СППР вполне можно разделить на 4 больших слоя:

  1. Сбор данных
  2. Data Mining
  3. Моделирование
  4. Интерфейс

А уж в эти слои можно напихать какие угодно инструменты.

На схеме ниже представляю мое видение архитектуры, с описанием функционала и примерами инструментов:

image

С архитектурой более или менее понятно, перейдем к дизайну и собственно построению СППР.

При построении ИСППР необходимо придерживаться следующих шагов: В прицнипе, тут нет никакого rocket science.

  1. Анализ домена (собственно, где мы будем нашу ИСППР использовать)
  2. Сбор данных
  3. Анализ данных
  4. Выбор моделей
  5. Экспертный анализ\интерпретация моделей
  6. Внедрение моделей
  7. Оценка ИСППР
  8. Внедрение ИСППР
  9. Сбор обратной свзяи (на любом этапе, на самом деле)

На схеме это выглядит так:

image

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

image

Подчеркну, что это только ИМХО и вы можете сами сделать удобный для себя чек-лист.

А где тут машинное обучение и теория игр?

Да практически везде! По крайней мере в слое, связанном с моделированием.

В тяжелых доменах наши с вами любимые алгоритмы могут привнести дополнительные инсайты для зарекомендовавших себя классических моделей. С одной стороны, есть классические домены, назовем их «тяжелыми», вроде управления цепями поставок, производства, запасов ТМЦ и проч. Пример: предиктивная аналитика по выходам из строя оборудования (машинное обучение) отлично сработается с каким-нибудь FMEA анализом (классика).

А в скоринге, например, можно совмещать классику с NLP, когда решаем выдавать ли кредит на основе пакета документов (как раз-таки document driven СППР). С другой стороны, в «легких» доменах, вроде клиентской аналитики, предсказании churn, выплаты кредитов — алгоритмы машинного обучения будут на первых ролях.

Классические алгоритмы машинного обучения

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

Поступаем очень просто:

Определяем целевую переменную (ну, например, содержание оксида титана в готовой продукции)
Шаг 1. Шаг 0. Собираем фичи\генерим новые
Шаг 3. Определяемся с данными (выгружаем из SAP, Access и вообще ото всюду, куда дотянемся)
Шаг 2. Выбираем и обучаем модельку, запускаем ее крутиться на сервере
Шаг 5. Рисуем процесс data flow и запускаем его в продакшн
Шаг 4. Определяемся со вводом новых данных. Определяем feature importances
Шаг 6. Пишем на коленке простой web-based интерфейс, куда менеджер вводит ручками значения важных фич, это крутится на серваке с моделькой, и в тот же интерфейс выплевываестя прогнозируемое качество продукции Пусть наш менеджер их вводит, например, руками.
Шаг 7.

Вуа-ля, ИСППР уровня детсад готова, можно пользоваться.

Подобные «простые» алгоритмы также использует IBM в своей СППР Tivoli, которая позволяет определять состояние своих супер-компьютеров (Watson в первую очередь): на основе логов выводится информация по перформансу Watson, прогнозируется доступность ресурсов, баланс cost vs profit, необходимость обслуживания и т.п.

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

Финская Vaisala, производитель сенсоров для минтранса Финляндии использует ИСППР для предсказания того, в какие периоды необходимо применять анти-обледенитель на дорогах во избежания ДТП.

Опять-таки финская Foredata предлагает ИСППР для HR, которая помогает принимать решения по годности кандидата на позицию еще на этапе отбора резюме.

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

Тысячи их!

Обычные нейронные сети

Кроме простого ML, в СППР отлично ложиться и Deep Learning.

Там внутри крутятся нейронки и эволюционные алгоритмы, помогающие в определении свой-чужой, в оценке вероятности попадания при залпе в данный конкретный момент и прочие задачки. Некоторые примеры можно найти в ВПК, например в американской TACDSS (Tactical Air Combat Decision Support System).

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

Клиента просят попить кофе (в лучшем случае), или вот где карту оформляли туда и идите прийти после обеда, за это время как раз все и обсчитается и выведет на экран девочке-операционисту зеленый или красный смайлик. ИСППР там может строиться так: потенциальный заемщик приносит заранее согласованный пакет документов в офис (ну или по email присылает сканы, с подписями и печатями, как положено), документы скармливаются в OCR, затем передаются в NLP-алгоритм, который дальше уже делит слова на фичи и скармливает их в NN. Ну или желтый, если вроде ок, но нужно больше справок богу справок.

Если вы когда-нибудь получали визу в США, то то решение, которое озвучивает вам сотрудник консульства — это именно результат работы алгоритма в совокупности с правилами, а никак не его личное субъективное мнение о вас:) Подобными алгоритмами пользуются также в МИД: анкета на визу + прочие справки анализируются прямо в посольстве \ консульстве, после чего сотруднику на экране высвечивается один из 3 смайликов: зеленый (визу выдать), желтый (есть вопросы), красный (соискатель в стоп-листе).

Comput Ind Eng 66(4):1150–1162), Общие Нечеткие Нейронные Сети на основе мин-макса (GFMMNN) для кластеризации потребителей воды (Arsene CTC, Gabrys B, Al-Dabass D (2012) Decision support system for water distribution systems based on neural networks and graphs theory for leakage detection. В тяжелых доменах известны также СППР на основе нейронок, определяющие места накопления буфера на производственных линиях (см, напимер, Tsadiras AK, Papadopoulos CT, O’Kelly MEJ (2013) An artificial neural network based decision support system for solving the buffer allocation problem in reliable production lines. Expert Syst Appl 39(18):13214–13224) и другие.

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

Байесовские сети

Бывает иногда и так, что данные у нас неоднородны по видам появления. Приведем пример из медицины. Поступил к нам больной. Что-то мы про него знаем из анкеты (пол, возраст, вес, рост и т.п.) и анамнеза (перенесенные инфаркты, например). Назовем эти данные статическими. А что-то мы про него узнаем в процессе периодического обследования и лечения (несколько раз в день меряем температуру, состав крови и проч). Эти данные назовем динамическими. Понятно, что хорошая СППР должна уметь учитывать все эти данные и выдавать рекомендации, основываясь на всей полноте информации.

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

В таких случаях нам отлично помогут Динамические Байесовские Сети (ДБС) — обобщение моделей на основе фильтров Калмана и Скрытой Марковской Модели.

Разделим данные по пациенту на статические и динамические.

image

Если бы мы строили статическую байесовскую сетку, то нашей задачей было бы посчитать следующую вероятность:

$p = P(V_i|C)$

,

значение каждой переменной (пол, возраст....), а С — предсказываемый класс (болезнь). где $V_i$ — узел нашей сетки (вершина графа, по сути), т.е.

Статическая сетка выглядит так:

image

Состояние пациента меняется, время идет, надо решать, как же его лечить. Но это не айс.

Вот для этого и применим ДБС.

Потом, в каждый день i строим сетку на основе динамически меняющихся данных: Сначала, в день приема пацитента, строим статическую сетку (как на картинке выше).

image

Соответственно, совокупная модель примет следующий вид:

image

Таким, образом, результат мы расчитаем по следующей формуле:

$P(result_) = П_{t=1}^TП_{i=1}^NP(result_i^t|Pa(result_i^t))$

, где T — совокупное время госпитализации, N — количество переменных на каждом из шагов ДБС.

Т.е., по сути, мы сделали хард модель, внутри которой динамические элементы. Внедрить эту модель в СППР необходимо несколько иначе — скорее тут надо идти от обратного, сначала эту модель зафиксировать, а потом строить интерфейс вокруг.

Теория игр

Теория игр, в свою очередь, гораздо лучше подойдет для ИСППР, созданных для принятия стратегических решений. Приведем пример.

Нам необходимо помочь менеджменту принять решение об объемах выпускаемой нами продукции: если мы будем выпускать продукцию в объеме $q2$, а наш соперник — $q1$, уйдем мы в минус или нет? Допустим, на рынке существует олигополия (малое количество соперников), есть определенынй лидер и это (увы) не наша компания. Пока вы думаете, RandomForest тут или CatBoost, я вам предложу использовать классику — равновесие Штакельберга. Для упрощения возьмем частный случай олигополии — дуополию (2 игрока). В этой модели поведение фирм описывается динамической игрой с полной совершенной информацией, при этом особенностью игры является наличие лидирующей фирмы, которая первой устанавливает объём выпуска товаров, а остальные фирмы ориентируются в своих расчетах на неё.
Для решения нашей задачи нам надо всего-то посчитать такое $q2$, при котором решиться задача оптимизации следующего вида: $Profit_2 = max(Price(q_1 + q_2)*q_2 - Cost_2(q_2))$

Для ее решения (сюрприз-сюрприз!) надо лишь приравнять первую производную по $q_2$ к нулю.

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

Конечно, если вводимые данные надо посчитать, то нужно что-то посложнее, но не сильно. Для таких моделей и СППР на их основе подойдет и Excel. Тот же Power BI справится.

Слишком разные подходы к решению задачи, со своими плюсами и минусами. Искать победителя в битве ML vs ToG бессмысленно.

image

Что дальше?

С современным состоянием ИСППР вроде бы разобрались, куда идти дальше?

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

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

(почитать)

Наверное, по этому пути и пойдет реализация ИСППР — по пути AI и прочих скайнетов и WAPR'ов. Скорее всего, вангую, через лет 10 мы перестанем жестко хардкодить модели, и начнем вместо этого повсеместно обучать компьютеры в создаваемых симулируемых средах.

Ни один из предложенных способов (классические модели, машинное обучение, DL, теория игр) не универсален с точки зрения эффективности для всех задач. Если же посмотреть на более близкую перспективу, то будущее ИСППР за гибкостью решений. Этакий коктейль, смешанный, но ни в коем случае не взболтанный. В хорошей СППР должны сочетаться все эти инструменты + RPA, при этом разные модули должны использоваться под разные задачи и иметь разные интерфейсы вывода для разных пользователей.

image

Литература

  1. Merkert, Mueller, Hubl, A Survey of the Application of Machine Learning in Decision Support Systems, University of Hoffenhaim 2015
  2. Tariq, Rafi,Intelligent Decision Support Systems- A Framework, India, 2011
  3. Sanzhez i Marre, Gibert, Evolution of Decision Support Systems, University of Catalunya, 2012
  4. Ltifi, Trabelsi, Ayed, Alimi, Dynamic Decision Support System Based on Bayesian Networks, University of Sfax, National School of Engineers (ENIS), 2012
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть