Что такое экспертные системы?

У меня — высшее образование по специальности «Информационные технологии», больше 20 лет опыта в разработке разнообразного софта, но даже для меня экспертные системы были чем-то вроде открытия.

Да, мы изучали основы в университете, но там не было практических примеров или задач из реального мира, поэтому в памяти все это осталось где-то на уровне высшей математики: «вроде полезно, но хрен его знает, где?»

Термин «искусственный интеллект» появился около 50 лет назад, причем придумала его тусовка математиков того времени. Он оказался одновременно и хорошим маркетинговым ходом («большие человекоподобные роботы»), и одновременно заложил бомбу под любые попытки реализовать подобные проекты в реальном мире, особенно на ранних этапах.

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

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

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

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

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

Основное отличие экспертных систем от обычного программирования — в четком разделении знаний и кода.

Когда программист пишет программу, он как бы фиксирует свои знания в коде: последовательность вызова процедур, условия, циклы, методы обработки данных. В итоге мы получаем «кашу» из сугубо технических деталей и того, что мы могли бы описать словами как «знания» или «опыт». В типичной программе до 99% кода — именно технические детали реализации, к слову.

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

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

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

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

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

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

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

Это и есть основное направление моей работы в последнее время.

VN:F [1.9.20_1166]
2 голосов
Что такое экспертные системы?, 5.0 out of 5 based on 2 ratings
7 комментариев
старее
новее большинство голосов
Межтекстовые Отзывы
Посмотреть все комментарии
Chef

Них*я не понял, но очень интересно.
А есть возможность разобрать конкретную модель экспертной системы? От идеи и сбора данных, до использования на практике.
Пока что я под это подстраиваю только ранжирование поисковиков. Но действительно ли идея создать экспертную систему без bigData реализуема? И миллионных бюджетов. И выйдет ли такая система на окупаемость по временным затратам относительно профицита?

aaa

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

Александр

Году в 2014-2015 был удивлен работой Акинатора (программа задает вопросы и отгадывает персонажа по ответам). По сути, это простейший вариант экспертной системы, которая разбирается в персонажах. И подумал, а почему бы не сделать подобную штуку для какой-то коммерческой ниши. То есть сделать «помощника» для покупок в каком-то узком сегменте. Про монетизацию особо не думал. Был план привлекать трафик засчет вирусности сервиса и заниматься лидогенерацией.

Начал копать тему, познакомился с такими понятиями как 

  • CDSS (Customer Decision Support System)
  • KMS (Knowledge Management System)
  • IA (Information Architecture)
  • DS (Decision Science)

Экспертные системы так или иначе крутятся вокруг всего этого.

Запилил пилотный онлайн сервис (умею в программирование) в B2C сфере. Действительно, самое сложное — это «наполнение информационной системы знаниями».

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

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

Более частый сценарий:

1 У человека возникает эмоция (увидел красивый визуальный образ, услышал от знакомого рекомендацию, увидел в работе какую-то штуку)

2 Рационализация покупки (поиск подтверждения, что нужно купить)

3. Покупка

4. Оправдание покупки (убеждение себя в правильности выбора и самого факта покупки).

Большинство сами не знают, чего хотят, зачем покупают. 

Как мне кажется, работа в сторону порождения эмоций по отношению к продукту и эксплуатация cognitive biases в рекламе (контенте) дает больше выхлопа, чем предоставление онлайн помощника-эксперта в выборе.. Пипл хавает… К сожалению.

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

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

Получается, что сервис с сухой рациональностью менее интересен, чем эмоционально заряженный контент. Конкретно в моем случае. Не абсолютизирую, что во всех нишах так.

Как я понимаю, экспертные системы — это больше для узких ниш и для внутреннего использования в крупных компаниях. Есть кейсы про нефтяные вышки, горнодобывающую промышленность, металлургические производства, медицину (clinical decision support system). Там и big data, и AI, и KMS.

ЗЫ. Знаю кейс, как люди пытались сделать ЭС по ремонту телевизоров в начале 2000-х у себя в сервисном центре. Т.е. помощник для начинающих ремонтников, которые по симптомам подсказывает куда смотреть в первую очередь и что проверять.

Более полугода ушло на сбор, систематизацию и создание системы. Проект заглох. Слишком много нюансов, брендов, схем, разрастание базы правил. 

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

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

Т.е. вопрос стоит не только в сборе информации и переводе ее в «правила», но и в удобном формате взаимодействия с системой (HCI: human-computer interaction). «Вопрос — ответ» в некоторых случаях утомляет. А обработка естественного языка тянет за собой другие сложноразрешимые проблемы.