В экспертных системах не только не выбран определенный способ для представления знаний. Как будет показано далее, в них используются самые различные подходы и пока еще не получены оценки, какой из них предпочтительнее. Подобная ситуация сложилась потому, что опыт применения знаний как информации весьма поверхностен и недостаточно определено понятие о том, каким же условиям должно удовлетворять представление знаний. Этот вопрос будет рассмотрен далее, а сначала проанализируем принципы работы экспертной системы на примере продукционных правил — наиболее простого способа представления знаний. В такой экспертной системе все знания представлены описаниями в форме если — то. Часть правила если называется посылкой, а то — выводом или действием.
Рассмотрим правило:
Если (1) Y является отцом X,
(2) Z является братомY,
тo Z является дядей X.
Механизм вывода связывает знания воедино, а затем выводит из последовательности знаний заключение. Положим, например, что в базе знаний вместе с описанными выше знаниями содержатся и такие:
Если (1) Z является отцом X,
(2) Z является отцом Y,
(3) X и Y не являются одним и тем же лицом,
то X и Y являются братьями.
Здесь X, Y, Z — переменные. Данная запись показывает, что при условии подстановки одинаковых значений в одинаковые переменные, входящие в одинаковые знания, последние будут обладать общностью.
Эта полностью формализованная процедура, использующая такие методы, как согласование образов (при котором устанавливается, совпадают ли между собой две формы представления, предусматривается также получение подстановки переменных, при которой совпадают формы), поиск в базе данных, возврат (возврат к исходному состоянию при неудачной попытке решения), представляет собой механизм выводов. В настоящее время механизмы выводов реализуются программными средствами, однако в ближайшем будущем станет возможным и их аппаратное воплощение.
Если подобным образом задать формализм представления знаний и построить на базе этого представления механизм выводов, аналогичный определенному выше, то на основе знаний в форме, допустимой в данном представлении, можно автоматически выводить заключения. Все это отличается от формализованных процедур (программ) и стандартных данных (баз данных) и позволяет реализовать в системе представление, которое можно использовать более гибко. Фактически, если добавлять новые знания, то, как правило (при условии, что в системе последовательно воплощены принципы обработки знаний), они будут использоваться точно так же, как и до их введения.
Таким образом, выводы (точнее — дедуктивные выводы) определены как способ применения базы знаний, однако все сказанное выше относится к выводам, базирующимся на продукционных правилах, и если представление знаний будет иметь другой вид, то будет другой и форма выводов. Исходя из этого обстоятельства ознакомимся с характерными способами представления знаний, используемыми в настоящее время, и с выводами, обусловленными этими способами.
Характерная особенность экспертных систем, отличающая их от традиционных систем обработки информации, — использование нового вида информации, называемого знаниями. Формализм описания такого рода знаний определяется как представление знаний. Компонент, который использует для решения проблем знания экспертов, описанные в заранее выбранной для них форме представления, является механизмом вывода. В системах с базами знаний, в том числе и экспертных системах, представление знаний выступает как фундаментальное понятие, а решение о выборе способа представления оказывает непосредственное влияние на любую их составную часть. Возможность применения знаний возникла вместе с появлением механизма выводов, а механизм выводов был определен, в свою очередь, из представления знаний. Поскольку представление знаний является средством описания знаний человека, то желательно, чтобы его описательные возможности были как можно выше; с другой стороны, если форма представления становится излишне сложной, то усложняется механизм выводов, при этом не только затрудняется проектирование экспертной системы, но и возникает опасность потери достоверности выполняемых ею действий. В конечном итоге проектирование представления знаний предусматривает выработку всех этих условий, а затем и выбор решения на основе некоторого компромисса между ними. Кратко ознакомимся с отдельными характерными представлениями знаний, используемыми в современных экспертных системах.
Продукционные правила.Продукционные правила, как уже говорилось, описывают знания в форме если — то. Простота и наглядность этого способа обусловили его применение во многих системах. Системы обработки знаний, использующие представление знаний на основе продукционных правил, получили название продукционных систем. В состав продукционной системы входит база правил, глобальная база данных, интерпретатор правил. База правил — это область памяти, которая содержит базу знаний — совокупность знаний, представленных в форме правил вида если — то; глобальная база данных — это область памяти, содержащая фактические данные (факты), которые описывают вводимые данные и состояние системы. Базы
данных у различных систем имеют различную форму, однако все они могут быть описаны как группа данных, содержащая имя данных, атрибуты и значения атрибутов. Интерпретатор представляет собой механизм вывода, и он является тем компонентом системы, который формирует заключения, используя базу правил и базу данных (рисунок 9).
Механизм, реализованный сегодня как средство выводов в продукционной системе, в принципе несложен. Он имеет функции поиска в базе знаний, последовательного выполнения операций над знаниями и получения заключений.
Рисунок 9. Продукционная система
В языке экспертных систем термин «правило» имеет более узкое значение, чем при обычном словоупотреблении. Оно связано с наиболее популярным способом представления знаний, т. е. представлением, основанным на правилах. Правила обеспечивают формальный способ представления рекомендаций, указаний или стратегий, они часто подходят в тех случаях, когда предметные знания возникают из эмпирических ассоциаций, накопленных за годы работы по решению задач в данной области. Правила выражаются в виде утверждений если — то, как показано ниже:
(1) Если горючая жидкость была пролита, вызовите пожарных;
(2) Если pH жидкости меньше 6, разлившийся материал — кислота;
(3) Если разлившийся материал — кислота, и он пахнет уксусом, разлившийся материал — уксусная кислота.
Эти правила из экспертной системы по управлению кризисной ситуацией помогают определить, что разлитая жидкость — нефть или какое-то химическое вещество. Правила иногда записываются через стрелку (®), чтобы указать, где часть если, а где часть то данного правила. Правило 2 в этих обозначениях будет выглядеть так:
Если pH жидкости меньше 6 ® разлившийся материал — кислота.
В экспертных системах, основанных на правилах, предметные знания представляются набором правил, которые проверяются по группе фактов или знаний о текущей ситуации. Когда часть правила если — то удовлетворяет правилам, то действие, указанное в части то, выполняется. Когда это происходит, то говорят, что правило выполнено. Интерпретатор правил сопоставляет части правил если с фактами и выполняет то правило, часть если которого согласуется с фактами, как показано на рисунке 10.
Рисунок 10. Работа интерпретатора правил в цикле «сопоставить — выполнить» с формированием последовательности действий
Факты
Рисунок 11. Изменение факта в базе знаний вследствие выполнения правил
Действия правила могут состоять в модификации набора фактов в базе знаний, например в добавлении нового факта, как это показано на рисунке 11.
Новые факты, добавленные к базе знаний, сами могут быть использованы для сопоставления с частями правил если, как показано на рисунке 12.
Факты
Рисунок 12. Добавление нового факта к базе знаний
Действие, предпринимаемое при выполнении правила, может непосредственно взаимодействовать с внешней средой, как показано на рисунке 13.
Процесс сопоставления с фактами частей если правил может порождать то, что называется цепочкой выводов. Цепочка выводов, полученная в результате последовательного выполнения правил 2 и 3, показана на рисунке 14. Эта цепочка выводов показывает, как система, используя правила, выводит заключение о пролившейся жидкости. Цепочки выводов экспертной системы могут быть предъявлены пользователю, что помогает понять, как система достигает своих заключений.
Рисунок 13. Влияние выполнения правил на реальный мир
Рисунок 14. Цепочка рассуждений для вывода заключения о природе разлитого вещества
Существует два важных способа использования правил в системе, основанной на правилах: один называется прямой цепочкой рассуждения, а другой — обратной цепочкой рассуждения.
В приведенном выше примере о разлившейся жидкости использовалась прямая цепочка рассуждений. На рисунке 15 детально показано, как прямая цепочка рассуждений работает в случае простого набора правил.
Правила в этом примере используют буквенные символы F&BZ. Это значит:
Если существуют и ситуация F , и ситуация В,
то существует также ситуация Z.
Набор известных фактов мы будем называть базой данных.
Рисунок 15. Пример прямой цепочки рассуждений
Давайте посмотрим, как эти правила работают. Мы допустим, что каждый раз, когда набор правил проверяется относительно базы данных, только первое (самое верхнее) правило, согласующееся с данными, выполняется. Поэтому на рисунок 15 правило А_D выполняется лишь один раз, хотя оно всегда согласуется с базой данных.
Первое правило, которое исполняется, — это A_D, поскольку А уже находится в базе данных. Как следствие этого правила, выводится факт существования D, и D помещается в базу данных. Это приводит к выполнению второго правила F&E_Z, Z помещается в базу данных. Такой метод называется прямой цепочкой рассуждений, поскольку поиск новой информации происходит в направлении стрелок, разделяющих левые и правые части правил.
Система использует информацию из левых частей, чтобы вывести информацию, содержащуюся в правых частях. Цепочка выводов, полученная в примере, представленном на рисунке 15, изображена на рисунке 16.
Было выведено, что существует ситуация Z наряду с F и D.
Рисунок 16. Цепочка выводов, полученная на основе рассуждений (см. рисунок 15)
Предположим теперь, что вы использовали эту систему, чтобы установить, существует ли ситуация Z. Вы можете думать, что она работает вполне хорошо, быстро устанавливая, что Z действительно существует. К сожалению, это лишь артэффект, связанный с данным примером. У реально существующих экспертных систем было бы не три правила, а сотни, даже тысячи. Поэтому, если ваша цель состоит в том, чтобы установить один частный факт, вроде Z, то прямая цепочка рассуждений может оказаться напрасной тратой времени и денег.
В таких ситуациях обратная цепочка, возможно, будет наиболее рентабельной. При этом методе вывода система начинает с доказательства, например, того, что ситуация Z существует и выполняет только те правила, которые относятся к установлению этого факта. На рисунке 17 показано, как обратная цепочка рассуждений должна работать, используя правила из прямой цепочки рассуждений.
На шаге 1 системе дается команда установить (если она может), что ситуация Z существует. В поисках Z система сначала проверит базу данных и в случае неудачи будет искать среди правил то, которое приводит к установлению Z, т. е. правило, у которого Z стоит справа от стрелок.
Она находит правило F&B_Z и решает, что должна установить факты F и B, чтобы выйти на Z. На шаге 2 система пытается установить факты F, проверяя базу данных, а затем находит правило, в правой части которого стоит F. Из правила C&D_F система решает, что должна установить существование фактов С и D для получения заключения о F. На шагах 3—5 система
Рисунок 17. Пример обратной цепочки рассуждений
находит С в базе данных, но решает, что должна установить факт А, прежде чем она получит заключение о D. И затем она находит факт А в базе данных.
На шагах 6—8 система выполняет третье правило, чтобы установить D, затем выполняет второе правило, чтобы установить F, и, наконец, выполняет первое правило, чтобы установить основной факт — факт существования Z.
Цепочка выводов, созданная здесь, идентична той, что была получена в результате прямой цепочки рассуждений. Отличие этих подходов заключается в способе поиска правил и данных.
Знаниями можно называть описание отношений между абстрагированными понятиями и сущностями, выступающими конкретными объектами реального мира. Понятия и отношения между ними можно описать сетью, состоящей из узлов и дуг. Узлы в такой сети выражают сущности и понятия, а дуги являются описаниями их отношений; все узлы снабжены метками, которые показывают, что именно они описывают. Подобного рода формализм представления знаний получил название семантической сети. На рисунке 18 приведен пример данного метода представления. Этот рисунок описывает ситуацию, когда под некоторый объект заказываются детали и стоимость этих деталей должна быть выплачена поставщику.
Рисунок 18. Пример семантической сети
Термин «семантическая сеть» применяется для описания метода представления знаний, основанного на сетевой структуре. Семантические сети были первоначально разработаны для использования их в качестве психологических моделей человеческой памяти, но теперь это стандартный метод представления знаний в экспертный системах. Семантические сети состоят из точек, называемых узлами, и связывающих их дуг, описывающих отношения между узлами. Узлы в семантических сетях соответствует объектам, концепциям или событиям. Дуги могут быть определены разными методами, зависящими от вида представления знаний. Обычно дуги, используемые для представления иерархии, включают дуги типа «isa» («является») и «has-part» («имеет часть»). Семантические дуги, применяемые для описания естественных языков, состоят из дуг типа «агент», «объект», «реципиент». На рисунке 19 представлена структура семантической сети.
Дуга 3
Рисунок 19. Структура семантической сети
Название «семантическая сеть» не только отражает возможность получения определенного формализма, как это имеет место в продукционных системах, оно охватывает все то, что рассмотрено выше, составом отношений сущностей и понятий. Следовательно, методы реализации конкретной системы различаются в зависимости от того, каким образом используется в них представление знаний.
Специфические свойства семантических сетей обусловили их широкую популярность среди исследователей как средство умозаключений, а среди структур данных, нашедших применение в компьютерах, используются структуры такого же вида, что и семантические сети. Сейчас трудно точно установить, кто первым воспользовался сетями, однако хорошо известно, что Куиллиман использовал семантику терминов для описания отношений концептов (понятий) на самых ранних этапах исследований по прикладному искусственному интеллекту, когда сети служили вполне определенной цели — представлению семантики и знаний [5].
Рисунок 20. Семантическая сеть Куиллимана: отн. — отношения, С — сущность, об. — объект, явл. — является
Куиллиман, исходя из описания семантики одних терминов другими, представил в виде сети отношения концептов, присущих этим терминам. На рисунок 20 показана такая сеть. Он поставил перед собой задачу сетевого представления и снижения объема знаний при использовании сети с целью решения проблем. Исходя из того факта, что если в сети задан один концепт, то непосредственно получается и другой, находящийся с ним в тесной взаимосвязи, были проведены исследования (главным образом в области психологии) по применению семантических сетей как ассоциативных моделей.
В качестве простого примера рассмотрим предложения «"Красная заря" является фабрикой» и «Каждая фабрика является предприятием». Они могут быть представлены через семантическую сеть, как показано на рисунок 21. Этот пример использует важный тип дуг — является. Поскольку мы знаем свойства дуг, связывающих узлы, мы можем вывести из сети третье утверждение: «"Красная заря" является предприятием». Отношение является и другие (типа имеет часть) устанавливают свойство иерархии наследования в сети — «является предприятием». Это означает, что элементы более низкого уровня в сети могут наследовать свойства элементов более высокого уровня. При этом экономится память, поскольку информацию о является сходных узлов не нужно повторять в каждом узле сети. Она может размещаться в одном центральном узле сети, как показано на рисунке 22.
Рисунок 21. Семантическая сеть для предложений «Каждая фабрика является предприятием» и «"Красная заря" является фабрикой»
Например, в семантической сети, представляющей предприятие, такие его части, как управление, дирекция, включены один раз на уровне предприятия, вместо того чтобы повторять данные узлы на более низком уровне иерархии. Это может сберечь огромные объемы памяти, даже если мы работаем с несколькими предприятиями и их частями.
Рисунок 22. Простая семантическая сеть для понятия «предприятие»: и. ч. — имеет часть, явл. — является
По сети можно затем осуществить поиск, применяя знания о смысле отношений, обозначаемых дугами сети, чтобы устанавливать факты. Семантические сети также успешно используются в научных работах по естественному языку для представления сложных грамматических предложений (рисунок 23, 24).
Отметим, что дуги определяют отношения между сказуемым «давать» и понятиями (такими, как «Ольга» и «подарок»), связанными с этим сказуемым.
Представление через семантическую сеть обеспечивает стандартный метод анализа смысла предложения. Кроме того, оно указывает сходства в смысле предложений, тесно связанных, но обладающих разной структурой. Хотя рассмотренные предложения выглядят очень отличающимися друг от друга, но семантические сети, представляющие смысл этих предложений, похожи. В самом деле, семантическая сеть рисунка 23 целиком содержится в сети рисунка 24.
Рисунок 23. Представление семантической сетью предложения «Михаил дает Ольге подарок»
Рисунок 24. Представление семантической сетью сложного предложения «Михаил сказал Маше, что он дал Ольге подарок»
Представление знаний с использованием фреймов.В области искусственного интеллекта термин «фрейм» относится к специальному методу представления общих концепций и ситуаций. Марвин Минский, первый, кто выдвинул идею фреймов, описывает данный термин следующим образом: «Фрейм — это структура данных, представляющих стереотипную ситуацию, вроде нахождения внутри некоторого рода жилой комнаты или сбора на вечеринку по поводу дня рождения ребенка. К каждому фрейму присоединяется несколько видов информации. Часть этой информации — о том, как использовать фрейм. Часть — о том, чего можно ожидать далее. Часть — о том, что следует сделать, если эти ожидания не подтвердились» (цит по: [9, с. 124]).
Фрейм по своей организации во многом похож на семантическую сеть (фактически мы рассматриваем и семантические сети, и фреймы как системы, основанные на фреймах). Фрейм является сетью узлов и отношений, организованных иерархически, где верхние узлы представляют общие понятия, а нижние узлы — частные случаи этих понятий. В системе, основанной на фреймах, понятие о письменном отчете может быть организовано и так, как показано на рисунке 25.
Рисунок 25. Понятие письменного отчета
Это представление выглядит точно так же, как семантическая сеть. Но в системе, основанной на фреймах, понятие в каждом узле определяется набором атрибутов (например, имя, цвет, размер) и значениями этих атрибутов, которые называются слотами. Каждый слот может быть связан с процедурами (произвольными машинными программами), которые выполняются, когда информация в слотах (значения атрибутов) меняется. Пример такого узла показан на рисунке 26.
С каждым слотом можно связывать любое число процедур. Три типа процедур, чаще всего соотносимых со слотами, перечислены ниже.
1. Процедура «если — добавлено» выполняется, когда новая информация добавляется в слот.
2. Процедура «если — удалено» выполняется, когда информация удаляется из слота.
3. Процедура «если — нужно» выполняется, когда запрашивается информация из слота, а он пустой.
Рисунок 26. Узел во фреймовых системах
Эти процедуры могут следить за добавлением информации к данному узлу и проверять, производятся ли соответствующие действия при изменении значения. Как ясно из их структуры, системы, основанные на фреймах, хороши в тех предметных областях, где ожидания относительно формы и содержания данных играют важную роль, например при интерпретации визуальной информации или понимании речи.
Чтобы понять как работает система, основанная на фреймах, рассмотрим рисунок 27, где фреймы представлены на этот раз со всеми слотами, их значениями и процедурами. Для упрощения допустим, что некоторые слоты имеют значения по умолчанию; например, пока нет информации об обратном, автор отчета о продвижении разработки считается руководителем проекта.
1. Уведомить лицо из слота «автор», что отчет по теме из слота «тема» объемом число страниц из слота «объем» должен быть представлен к дате из слота «дата представления».
2. Уведомить лицо из слота «автор», что отчет по теме из слота «тема» отменяется.
3. Поместить в слот «автор» имя руководителя проекта для «IP телефония» из слота «тема».
4. Поместить в слот «дата представления» либо «31 марта», либо «31 июня», либо «30 сентября», либо «31 декабря» в зависимости от того, какая дата ближе, но не более раннюю, чем текущая дата.
Рисунок 27. Система, основанная на фреймах
Как подобным образом можно использовать организованные знания? Предположим, ведущий специалист по программному обеспечению в некой корпорации имеет доступ через настольный терминал к системе, основанной на фреймах, допустим, данный специалист связывается с системой через программный интерфейс, который позволяет общаться с ней на языке, весьма близком к естественному. Специалист запрашивает: «Мне нужен отчет о продвижении проекта IP телефонии». Интерфейсная программа анализирует это предложение и вносит «проект IP телефонии», «тема» в следующий пустой узел «отчет о продвижении».
Далее все происходит автоматически.
1. Процедура «если — добавлено», связанная со слотом «тема», выполняется, поскольку в слот было введено некое значение. Эта процедура осуществляет поиск (в базе данных системы) руководителя проекта IP телефонии. Допустим, что имя руководителя проекта Иван Иванов. Процедура вписывает это имя в слот «автор» отчета о продвижении работ.
2. Процедура «если — добавлено», связанная со слотом «автор», выполняется, т. к. в слот было только что вписано значение. Эта процедура начинает составлять сообщение, чтобы отправить его в слот «Иван Иванов», но обнаруживает, что у нее нет нужного значения «дата исполнения».
3. Процедура «если — добавлено» просматривает слот «дата исполнения» и, найдя его пустым, активизирует процедуру «если — нужно», связанную с этим слотом. Процедура «если — нужно» найдет текущую дату, используя календарь в базе данных, и решит, что дата «30 сентября» — ближайшая к ней. Процедура затем впишет «30 сентября» в слот с датой исполнения.
4. Теперь процедура «если — добавлено», связанная со слотом «автор», установит, что еще одно значение, которое нужно включить в сообщение, т. е. объем отчета, отсутствует. Слот «объем» не связан с процедурами, он ничем не может помочь. Однако выше существует узел общей концепции отчета о продвижении работ, содержащий значение объема. Процедура использует его значение и составляет следующее сообщение: «Иван Иванов, пожалуйста, окончите отчет о продвижении по проекту IP телефонии к 30 сентября. Предполагаемый объем отчета равен двум страницам».
Если в какой-то момент имя Иван Иванов удаляется из слота «автор», то система автоматически отправит сообщение, что отчет не требуется (поскольку сработает процедура «если — удалено».
1.7. Особенности различных представлений знаний
Различные способы представления знаний, обсуждались так, как будто они совершенно не связаны между собой, что совершенно не верно. Это отражает лишь тот факт, что все разработки велись по различным концепциям. Однако всегда оставалась общая цель — представление знаний и их использование в решении проблем, поэтому можно сказать, что взаимное различие способов представления заключается, скорее, в их внешнем виде, а существо не изменяется. Конечно, уровень достижения цели, уровень системного развития будут неодинаковы для каждого соответствующего способа представления, хотя в методологическом отношении весьма желательна легкость достижения цели при проведении выводов. Значит, если задаться вопросом, какова цель, которой должна достичь система представления знаний, то ответ на него не всегда будет ясен. Прежде инженерией знаний ставилась задача успешно применять знания. О современных системах инженерии знаний можно также сказать, что их практическое воплощение достигло еще только экспериментальной стадии. Чтобы обеспечить полноценное развитие технологии обработки знаний, необходимо на самых ранних этапах поставить ту цель, которую должна преследовать эта технология. Задачей обработки знаний является поддержка интеллектуальной деятельности человека, и поэтому необходимо начинать с анализа методов решения проблем человеком.
Различные способы представления знаний имеют присущие только им характерные черты. Сначала обсудим их очевидные особенности.
Продукционные правила.Представление знаний с помощью продукционных правил весьма просто, а выводы, которые проводятся на основе формализма вида если — то, легко понимаемы и аналогичны всем тем силлогизмам, что мы усвоили еще в детскую пору. Кроме того, ярко выраженная модульность правил позволяет задавать новые значения, не вдаваясь в смысл других знаний. Благодаря этому, а также возможности построения выводов в однородной форме получаемые системы становятся несложными и легко понимаемыми. С другой стороны, нетрудно видеть, что такая простота, являющаяся следствием немного красочного представления всех описаний, направлена на решение легких, однородных по свойствам задач и приводит к резкому падению эффективности решения таких проблем, которые состоят из нескольких разнородных задач. Но даже если проблема является простой, не удается построить систему для управления знаниями как единым целым, поэтому целиком весь процесс управления должен осуществляться человеком. Если проблема становится сложнее, то и управление становится сложным. В частности, особенность системы знаний состоит в том, что человек может в течение длительного времени накапливать или же тщательно отрабатывать знания. Однако в этом случае возможно, что по некоторым причинам, будь источником этих причин человек или время, возникнут знания, противоречащие полученным ранее. Человеку свойственны некоторые ограничения, касающиеся управления этим процессом, что, в свою очередь, накладывает ограничения на масштаб и многообразие решаемых проблем.
Семантические сети.Семантические сети — это общее название методов описания, использующих сети, ими же называют один из способов представления знаний. Характерная особенность семантической сети — в наглядности отображения знаний системы. Каждое отдельное знание рассматривается как некое отношение между сущностями и понятиями, и формально, так же как и в продукционных системах, определенные заранее и уже имеющиеся внутри системы знания можно наращивать независимо от сохранения их модульности. В то же время все знания, относящиеся к одинаковым сущностям и понятиям, могут быть изображены в виде отношений между различными узлами, описывающими эти сущности, и это дает основание
говорить о легкости понимания такого представления. На основе данных сетей осуществляются выводы, однако для этого необходимы специальные алгоритмы вывода. В продукционных системах выводы определяются для ограниченного формализма если — то, поэтому алгоритмы вывода также формализованы и наряду со своей простотой достаточно точны. Поскольку семантические сети являются собирательным названием систем представления, использующих сети, нет смысла определять для них специфические алгоритмы вывода, и потому сравнивать сети c другими способами представления весьма трудно. Однако из-за того что форма представления сетями не устанавливается, для каждого конкретного формализма будут определены свои собственные правила вывода, значит, усиливается элемент произвольности, вносимый человеком. Выводы, которые достаточно тщательно не проверены, таят в себе угрозу создания противоречий. Следовательно, в семантических сетях необходимо больше, чем в продукционных системах, уделять внимания устранению противоречий. Сама система такими возможностями не обладает, и поэтому во многих случаях эта функция возлагается на человека. Просматривая все знания, человек способен управлять их противоречивостью, однако если объем знаний будет увеличиваться, то их представление резко усложнится, что ограничит круг решаемых проблем сравнительно небольшими проблемами.
Фреймовые системы. Фреймовые системы, как и продукционные, определяют форму представления знаний и отличаются от других аналогичных систем тем, что предоставляют пользователю большую степень свободы. Фреймовая система не только описывает знания, но и может также использоваться человеком для написания алгоритмов вывода. С точки зрения пользователя, который очень хорошо разбирается в обработке знаний, это выглядит преимуществом, однако для рядового потребителя — это большая нагрузка. Фреймовая система является расширением традиционных систем процедурного типа. Благодаря подобным свойствам можно формально строить фреймовые системы в самом широком диапазоне, поэтому и оценки, получаемые средствами фреймов систем, должны, вероятно, быть самыми различными.
Фрейм как структура описывает одну из единиц обработки, обладающую до некоторой степени независимостью, и может представлять средства, связывающие между собой эти структурные единицы. Следовательно, если сравнивать фреймовую систему с традиционной программной системой, где весь смысл обработки должен описываться группой последовательно соединенных операций, то можно говорить о частичном снятии ограничений процесса обработки за счет описания обрабатываемых единиц в виде фреймов, которые (по крайней мере, часть из них) не обязательно следуют один за другим. Однако то обстоятельство, что здесь знания задаются, по существу, процедурами, усложняет по сравнению с другими методами приобретение знаний и обедняет возможности динамической адаптации к изменениям внешней среды. Кроме того, предполагается, что в сложных проблемах отношения между фреймами также становятся сложными.
В фреймовых системах имеется еще один существенный недостаток, связанный с их структурой. Сам по себе фрейм является множеством описаний (слотов), находящихся в некоторых взаимных отношениях. То, что слоты связаны с процедурами, а также то, что они передают друг другу управление посредством обмена сообщениями, означает, что структура фреймовой системы описывает структуру управления процедурной обработкой. Однако во многих случаях описание некоей сущности рассматривается как единое целое, и поэтому зачастую фрейм есть представление этой сущности. Когда все сходные между собой сущности собраны воедино и это множество оформлено в виде фрейма как сущность класса, то между полученным фреймом и фреймами каждой отдельной сущности будут сформированы структурные отношения.
На базе этой структуры, которая может рассматриваться как структура данных, будет порождено наследование. В конечном итоге фреймовая система приводится к форме представления единиц управляющих структур и единиц структур данных в общих фреймах, поэтому иногда необходимо прибегать к довольно надуманным приемам; при этом теряется легкость интуитивного понимания, являющаяся особенностью данной системы. Подобное ограничение допустимо для проблем сравнительно небольшого масштаба, но если проблема несколько расширяется, то описание и управление во фреймовой системе становятся более сложными, чем в системах традиционного процедурного представления, и тогда о ней трудно говорить как об универсальной системе обработки знаний.
Таким образом, для большинства используемых сегодня представлений знаний и созданных на их основе систем характерно усложнение описания проблемы при разрастании ее масштабов. Этот недостаток трудно будет устранить, не лишившись одновременно преимуществ соответствующих методов.
Когда в какой бы то ни было области, включая и системы искусственного интеллекта, предлагается новая методология, чрезвычайно важно установить, подходит или нет эта методология для решения сложных проблем в той степени, как это требуется в действительности. Применительно к системам искусственного интеллекта методология системного проектирования, которая годилась бы для крупномасштабных проблем, весьма далека от идеи простого количественного расширения методологии, созданной для небольших проблем, и в этом проявляется существенное различие таких методологий.
В процесе оценки пригодности экспертных или других систем инженерии знаний для решения реальных проблем прибегали к количественному наращиванию технологии и алгоритмов, используемых в этих системах. В итоге оказалось, что на некоторых этапах наращивания или в самом его конце ЭС действительно полезны в решении проблем и этим отличаются от любых других используемых сегодня методов.
2. РАЗДЕЛ. СИСТЕМЫ ОБЩЕНИЯ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
2.1. Назначение и область применения естественно-языковых систем
В конце 60-х годов в исследованиях по ИИ сформировалось самостоятельное направление, получившее название «обработка естественного языка». Задачей данного направления является изучение методов и разработка систем, обеспечивающих реализацию процесса общения с ЭВМ на естественном языке (систем ЕЯ-общения, или ЕЯ-систем).
Следует отметить, что проблематика коммуникативного взаимодействия, и в частности ЕЯ-общения, находится в центре внимания многих наук, например лингвистики, психологии, логики и философии. Однако все они исследуют лишь отдельные аспекты процесса общения. В отличие от них ИИ как прикладная дисциплина вынуждена моделировать в рамках ЕЯ-систем все или по крайней мере основные аспекты ЕЯ-общения, правда, может быть, не на столь глубоком уровне.
Проблема взаимодействия человека с ЭВМ существует с момента появления средств вычислительной техники. На начальном этапе непосредственное взаимодействие с ЭВМ осуществляли только программисты, а специалисты других областей — потребители результатов, полученных на ЭВМ, выступали в роли косвенных конечных пользователей, т. е. общались с ЭВМ через программистов. По мере расширения сферы использования ЭВМ и увеличения масштабов их применения конечные пользователи стали вовлекаться в процесс непосредственного взаимодействия с ЭВМ, что привело к появлению массовой категории прямых конечных пользователей, работающих в диалоговом режиме. К пользователям этой категории относятся специалисты в различных проблемных областях, которые решают свои профессиональные задачи, непосредственно используя ЭВМ, т. е. прикладные программы и пакеты (прикладные системы), входящие в программное обеспечение ЭВМ. Как правило, такие пользователи не обладают знаниями в области электронной обработки данных и не умеют (и не должны) программировать. Поэтому часто их называют неподготовленными конечными пользователями. В дальнейшем термины «пользователь» и «конечный пользователь» будут использоваться в смысле «неподготовленный конечный пользователь».
Сложность создания средств общения, предназначенных для конечных пользователей, обусловлена в значительной степени отсутствием единой теории языкового общения, охватывающей все аспекты взаимодействия коммуникантов. Поэтому при разработке средств общения конечных пользователей на процесс взаимодействия часто налагаются различные «спонтанные» ограничения, последствия которых не до конца осознаются разработчиками. Эти ограничения приводят к тому, что многие человеко-машинные системы, на разработку которых тратятся огромные средства (например, корпоративные информационные системы), не удовлетворяют требованиям конечных пользователей.
Прежде чем приступить к рассмотрению ЕЯ-систем, остановимся на определении некоторых исходных понятий, которые будут широко использоваться.
Общение — коммуникативное взаимодействие. Диалог — процесс достижения участниками общения определенных согласованных целей путем обмена связанными высказываниями, выраженными в языке, о некотором реальном или гипотетическом мире (предметной области). Говоря об общении человека с ЭВМ, обычно считают, что цель ЭВМ состоит в том, чтобы способствовать достижению целей пользователя, которые определяются его информационными потребностями. Поэтому применительно к диалогу между пользователем и ЭВМ под общением понимают процесс обмена взаимосвязанными высказываниями, выраженными в языке, направленный на достижение целей пользователя, т. е. на удовлетворение информационных потребностей пользователя (ИПП).
В общем случае процесс общения не может быть сведен к обмену изолированными парами высказываний «вопрос — ответ». Высказывания участников общения образуют связный текст — дискурс, имеющий, как правило, достаточно сложную структуру. Связность дискурса обеспечивается и лингвистическими (родовидовыми, анафорическими, модальными, стилистическими согласованиями, согласованиями пресуппозиций и т. п.), и экстралингвистическими (ситуативными) средствами, т. е. с помощью временных, причинно-следственных и других связей, существующих в предметной области. Следует подчеркнуть, что разговорный естественный язык гораздо более компактен, чем литературный, «письменный» язык, т. к. при общении широко используются разнообразные умолчания (эллипсисы, анафоры пресуппозиции и др.), восстанавливаемые (раскрываемые) участниками исходя из текущих целей диалога.
Если участники достигли цели, поставленной в начале общения, то говорят, что общение завершилось успехом (глобальным успехом), в противном случае — неудачей (глобальной неудачей). В процессе общения могут возникать локальные неудачи, вызванные, например, неправильностью высказываний участников (нарушением грамматических норм), непониманием друг друга из-за различных представлений о теме диалога или о предметной области и языке общения и т. п. Большая часть локальных неудач не приводит к глобальной неудаче; они преодолеваются участниками общения гибкой (в ходе диалога) корректировкой текущих целей.
Цели, преследуемые участниками общения, определяют структуру диалога, которая может рассматриваться по крайней мере на трех уровнях: глобальном, тематическом и локальном. На глобальном уровне (структура) определяются общие свойства решаемых пользователями задач. На тематическом уровне структура диалога зависит от конкретных особенностей решаемой задачи — от алгоритма ее решения (разбиения задач на подзадачи) и распределения ролей (активная или пассивная роль) между участниками общения при решении отдельных подзадач. На локальном уровне рассматриваются отдельные шаги диалога, образуемые взаимосвязанными высказываниями его участников. Шаг диалога трактуется как пара «действие — реакция», где высказывание активного (т. е. владеющего инициативой) участника соответствует действию, а пассивного — реакции. Основными параметрами структуры диалога на этом уровне являются: инициатор шага и вид инициирования (вид действия); способ влияния действия на реакцию; способ спецификации задачи (подзадачи), решаемой на данном шаге. Действие и реакция, образующие шаг диалога, могут в общем случае не соответствовать соседним (во временной последовательности) высказываниям участников. Соответствие нарушается при перехвате инициативы.
Перехват инициативы возникает в тех случаях, когда пассивный участник вместо цели (подцели), предложенной активным участником, выбирает иные цели (подцели), в частности подцели, предусматривающие преодоление локальных неудач. Например, вместо ответа на вопрос (что соответствовало бы стандартной реакции) второй участник может задать встречный вопрос (т. е. совершить действие и тем самым взять на себя активную роль) и лишь после получения ответа на него ответить на первоначально заданный вопрос (и тем самым вернуть инициативу). Таким образом, перехват инициативы как бы разрывает первоначально инициированный шаг диалога и открывает поддиалог — происходит смена цели (темы) диалога, в котором инициативой владеет ранее пассивный участник.
Переходя к рассмотрению человеко-машинного общения, подчеркнем, что взаимодействие конечных пользователей с системой происходит на всех стадиях существования человеко-машинной системы, т. е. на стадиях использования, разработки и развития приложений. Традиционные средства общения, которые вплоть до настоящего времени широко применяются на практике, ориентированы, как правило, либо только на использование ранее разработанных и неизменяемых приложений (например, система по продаже авиационных или железнодорожных билетов), либо на использование, создание и развитие приложений. В первом случае процесс взаимодействия сводится к трем этапам: определение параметров работы системы (вход в систему); определение решаемой задачи и исходных данных; получение результатов решения задачи — и принципиально не может удовлетворить пользователей с изменяющейся информационной потребностью, не знающих способа представления и использования в системе информации, которой обмениваются участники общения. Во втором случае взаимодействие осуществляется с помощью процедурного языка программирования, что также не удовлетворяет большинство конечных пользователей, обычно не умеющих (и не желающих) программировать.
Низкая эффективность, а часто неприемлемость традиционных средств общения в большинстве случаев вызвана тем, что в них не учитываются важнейшие особенности процесса общения, направленного на удовлетворение реальных ИПП. Эти особенности независимо от специфики решаемых пользователями задач сводятся к следующим.
1. Изменяемость ИПП. Данная потребность не может быть заранее четко определена в спецификациях на разработку системы общения. Напротив, ИПП неизбежно изменяется в ходе разработки и эксплуатации системы.
2. Несовпадение взглядов на мир. Представления, имеющиеся у пользователя и системы о языке общения и предметной области, относительно которой ведется общение, могут не совпадать. Исходя из этого процесс общения должен предусматривать разъяснение смысла неизвестных терминов, обнаружение и устранение несовпадающих представлений, а также предупреждение ошибочных толкований, т. е. установление общих точек зрения на обсуждаемые в процессе общения сущности.
3. Связность общения. Процесс общения не может быть ограничен обменом изолированными парами «вопрос — ответ», т. к. в большинстве реальных случаев ИПП не может быть выражена в виде одного вопроса (предложения). Часто требуется определить ситуацию возникновения ИПП, т. е. предпослать запросу на решение конкретной задачи контекст, в котором эту задачу необходимо решать. Кроме того, процесс удовлетворения ИПП в ходе решения некоторой задачи в большинстве реальных приложений требует взаимодействия, основанного на смешанной инициативе участников. Поэтому процесс общения должен иметь сложную, разветвленную структуру и состоять из обмена связанными высказываниями.
4. «Неправильность» высказываний пользователя. Для выражения своих информационных потребностей пользователь может применять как «правильные» предложения, т. е. такие, которые будут однозначно поняты и верно обработаны системой, так и «неправильные». Неправильности могут быть вызваны, во-первых, невозможностью учета пользователем всех ограничений системы общения, в частности уровня ее возможностей и знаний (в большей степени это касается экономико-математических моделей), во-вторых, использованием умолчаний, характерных для естественного общения и допускающих неоднозначное толкование высказываний, и, в-третьих, отклонением предложений от грамматической нормы.
Недостатки традиционных средств общения обусловили создание средств нового поколения, которые должны быть способны настраиваться на реализацию ИПП и адаптироваться к их изменению, представлять и объяснять свою точку зрения на предметную область, а также учитывать точку зрения пользователя, поддерживать тесный диалог и уметь обрабатывать «неправильные» высказывания. Разработка этих средств ведется в настоящее время по двум основным направлениям. Первое направление, развиваемое преимущественно специалистами по системам обработки экономической информации, ставит своей целью повышение уровня и увеличение непроцедурности формализованных языков общения. Второе направление развивается в рамках ИИ и предполагает использование конечными пользователями для взаимодействия с ЭВМ естественного языка, семантически и прагматически ограниченного проблемной областью, относительно которой ведется общение. Рассматриваемые далее ЕЯ-системы разработаны в рамках второго направления.
2.2. Обобщенная схема естественно-языковой системы
Традиционные средства общения не позволяют обеспечить должного уровня взаимодействия конечных пользователей с создаваемыми системами. Чтобы быть полноправным участником общения, ЕЯ-система должна выполнять некоторые обязательные функции. К этим функциям относятся по крайней мере следующие: ведение диалога — определение его структуры и той роли, которую система и пользователь выполняют на текущем шаге диалога; понимание — преобразование поступающих от пользователя высказываний на ЕЯ в высказывания на языке внутреннего представления; обработка высказываний — формирование или определение заданий для решения задач или подзадач на данном шаге диалога; генерация — формирование выходных высказываний на ЕЯ. Приведенные функции имеют обобщенный характер. Поэтому необходимо подчеркнуть, что при реализации конкретных ЕЯ-систем суть этих функций может в значительной степени варьироваться.
В соответствии с выделенными функциями обобщенная схема ЕЯ-системы (рисунок 1.1) может быть представлена в виде трех компонентов: диалогового, компонента понимания высказываний, компонента генерации высказываний.
К основным задачам диалогового компонента относятся: ведение диалога, формирование или обработка перехватов инициативы.
Ведение диалога направлено на обеспечение целесообразных (т. е. способствующих достижению конечных целей пользователя) действий системы на текущем шаге диалога. В связи с тем что возможности существующих ЕЯ-систем не позволяют им самостоятельно формировать целесообразное поведение, в систему обычно вводится информация, определяющая общую и тематическую структуры диалога. По структуре и текущему состоянию диалога диалоговый компонент формирует (если инициатива принадлежит системе) или определяет (если инициатива принадлежит пользователю) задание, выполняемое системой на текущем шаге (например, генерация вопроса, понимание ответа и его обработка, генерация утверждения и т. п.).
Ведение диалога выполняется по одной из двух схем: диалог ведет пользователь, диалог ведет система. В первом случае инициатива в основном (за исключением сообщений об ошибках) находится у пользователя, а система только реагирует на его требования, определяя по виду требования тип задания. Разбиение задачи на подзадачи и распределение ролей осуществляет пользователь, т. е. для системы весь диалог сводится к выработке реакций на текущие высказывания пользователя. Можно сказать, что в этом варианте работы функции диалогового компонента практически отсутствуют. Во втором случае инициатива в основном принадлежит системе. Она ведет диалог в соответствии с имеющимися у нее представлениями о структуре диалога (т. е. о разбиении задач на подзадачи и о том, кто из участников, когда и какую подзадачу решает) и о способе обмена высказываниями.
Если роли участников неизменны, однозначны и предопределены заранее, то структуру диалога называют жесткой. В простейшем случае такая структура диалога сводится к двум взаимосвязанным высказываниям участников (вопрос — ответ) с указанием участника, владеющего инициативой. Развитием жесткой структуры является альтернативная структура, которая задает множество возможных (но ранее предписанных) направлений течения диалога. Выбор одного из возможных направлений осуществляет пассивный участник. Если роли участников общения распределяются в ходе общения, то структуру диалога называют гибкой. Гибкие структуры подразделяются по степени свободы выбора момента перехвата (предопределенные моменты, произвольные моменты) и способу перехвата (предопределенный способ перехвата, произвольный способ).
Вторая задача диалогового компонента связана с тем, что реакции одного участника могут не соответствовать ожиданиям другого. В зависимости от того, кто осуществляет перехват инициативы, система либо формирует перехват, либо обрабатывает его. Формирование происходит в тех случаях, когда система определяет, что текущая ситуация не соответствует ситуации, предусмотренной структурой диалога. Если же перехват инициативы осуществляет пользователь, то задача системы — обработать его, т. е. распознать наличие перехвата инициативы, определить новую тему (цель), на которую перешел пользователь, и выбрать структуру диалога, соответствующую новой теме.
Компонент понимания высказываний предназначен для выделения смысла входного высказывания и выражения этого смысла на внутреннем языке системы. Под смыслом высказывания обычно понимается вся та семантико-прагматическая информация, которую пользователь хотел передать системе. Внутреннее представление смысла должно содержать по крайней мере следующую информацию: сущности предметной области, вовлекаемые в зону рассмотрения данным высказыванием; свойства и отношения, приписанные этим сущностям; коммуникативные намерения говорящего, выраженные в данном высказывании. Выявление смысла высказывания в общем случае требует его рассмотрения в контексте всего диалога.
Традиционно задача понимания высказываний подразделяется на два этапа: анализ и интерпретацию. На этапе анализа выделяются описания сущностей и отношения между ними. Анализ обычно выполняется отдельным блоком-анализатором, служащим ядром компонента понимания. Анализаторы, разрабатываемые для ЕЯ-систем, различаются по ряду параметров. Основные из них: тип анализируемых предложений; выделяемые описания сущностей; глубина проникновения в смысл; используемые для анализа средства. Возможные значения этих параметров приведены в таблице. При рассмотрении данной таблицы следует учитывать, что тот или иной параметр в случае конкретного анализатора может принимать одно или несколько из указанных в таблице значений.
Интерпретация заключается в отображении входного высказывания на знания системы. Основными задачами данного этапа являются: буквальная интерпретация высказывания в контексте диалога; интерпретация высказывания на намерения говорящего.
Буквальная интерпретация состоит в учете контекста диалога, идентификации образов тех сущностей области интерпретации, которые имел в виду говорящий. В качестве области интерпретации могут использоваться: предметная область; область языка общения (если высказывание пользователя касается языка общения); область системы (если пользователь интересуется возможностями и состояниями системы; интерпретация на эту область особенно важна при возникновении «непонимания» между пользователем и системой); область пользователя (если высказывание содержит сведения о знаниях или намерениях пользователя); область дискурса (если в высказывании содержатся ссылки на предыдущие или последующие высказывания).