- •Конспект по курсу «Информационные интеллектуальные системы»
- •1. Введение
- •3. Общение с иис на естественном языке
- •3.1. Проблема диалогового общения
- •3.2. Ограниченный естественный язык. Синтаксис, семантика, словари
- •3.3. Ограниченный естественный язык. Грамматики
- •3.4. Методы интерпретации естественного языка
- •3.5. Пример лингвистической обработки сообщений
- •Обработка вВод вывод
- •3.6. Пример: диалоговая система управления процессом сборки редуктора.
- •4. Обработка информации в иис
- •4.1. Виды, задачи, источники информации
- •4.2. Уровни обработки данных в иис
- •4.3. Слияние информации и принятие решений
- •4.4. Сегментация и классификация
- •4.5. Проблема распознавания речи
- •4.6. Проблема распознавания лиц
- •4.7. Проблема распознавания трехмерных объектов
- •4. Получение знаний
- •4.1. Извлечение знаний
- •4.2. Автоматическое формирование знаний (Обучение)
- •5.2. Раскопка данных и раскрытие знаний
- •Основные понятия интеллектуального анализа данных
- •Постановка задачи
- •Подготовка данных
- •Просмотр данных
- •Построение моделей
- •Исследование и проверка моделей
- •Развертывание и обновление моделей
- •Алгоритмы интеллектуального анализа данных
- •Алгоритм дерева принятия решений (Microsoft)
- •Упрощенный алгоритм Байеса (Microsoft)
- •Алгоритм кластеризации (Microsoft)
- •Алгоритм нейронной сети (Microsoft)
- •Алгоритм логистической регрессии (Microsoft)
- •Алгоритм временных рядов (Microsoft)
- •Алгоритм кластеризации последовательностей (Microsoft)
- •Алгоритм взаимосвязей (Microsoft)
- •5.3. Пример прогнозирования продаж автомобилей
- •4.1. Раскрытие данных. (Data Mining)
- •6. Получение знаний в иис
- •6.1. Проблема обучения машин
- •6.2. Методы обучения в иис
- •6.3. Экспертное (копирующее) обучение
- •6.4. Обучение с подкреплением
- •6.5. Пример управления роботом-уборщиком
- •Использование знаний в иис
- •7.1. Управление знаниями
- •7.2. Знания в Интернете и поиск
- •7.3. Онтологии и поиск Веб-источников
- •7.4. Раскопка Веб-сайтов
- •8. Многоагентные иис
- •8.1. Системы с интеллектуальными агентами на правилах
- •8.2. Системы с интеллектуальными агентами на логике
- •8.3. Системы с когнитивными агентами
- •9. Когнитивные системы
- •Когнитивный подход в психологии и машинном интеллекте
- •Нейрологические средства управления.
- •Реализация базовых нейрологических модулей
- •Когнитивные нейрологические системы управления и агенты.
- •Список литературы (по главе 9)
7.2. Знания в Интернете и поиск
7.3. Онтологии и поиск Веб-источников
В больших компьютерных сетях (Интернет, Интранет и пр.) огромной проблемой является поиск информации по запросам. Для облегчения поиска требуются знания о том, где и какая информация может находиться. Онтологии, являющиеся главным компонентом современных систем поиска информации, позволяют представлять структуру знаний, имеющихся в сети, и осуществлять эффективный поиск нужной информации [13].
Онтология может быть определена как некоторая концептуальная схема, позволяющая детально представить семантику проблемной области. Обычно такая схема состоит из иерархической структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области. Онтологии применяются в искусственном интеллекте, семантической паутине (SemanticWeb) и технологии программирования.
Онтология представляет знания в виде семантической сети или сети фреймов и имеет форматы, которые компьютер может легко обрабатывать. Онтологии создаются всегда с конкретными целями и оцениваются больше с точки зрения применимости, чем полноты.
Современные онтологии строятся по большей части одинаково, независимо от языка написания. Обычно они состоят из экземпляров, понятий, атрибутов (слотов) и отношений.
Экземпляры (instances) соответствуют основным компонентам нижних уровней онтологии. Экземпляры могут представлять собой как физические объекты (люди, дома, планеты), так и абстрактные (числа, слова). Строго говоря, онтология может обойтись и без конкретных объектов. Однако одной из главных целей онтологии является классификация таких объектов, поэтому они также включаются.
Понятия (concepts) соответствуют абстрактным группам, коллекциям или наборам объектов. Они могут включать в себя экземпляры, классы, либо же сочетания и того, и другого. Пример:
Понятие «люди», вложенное понятие «человек». Чем является «человек» — вложенным понятием, или экземпляром (индивидом) — зависит от онтологии.
Понятие «индивиды», экземпляр «индивид».
Атрибуты относятся к объектам. Именно объекты в онтологии могут иметь атрибуты. Каждый атрибут (слот) имеет, по крайней мере, имя и значение и используется для хранения информации, которая специфична для объекта и привязана к нему. Например, объект Лада Калина имеет такие атрибуты, как:
Название: Лада Калина
Число-дверей: 4
Двигатель: {1.4Л, 1.6Л}
Коробка-передач: 5-скоростная
Значение атрибута может быть сложным типом данных. В данном примере значение атрибута, который называется Двигатель, является списком значений простых типов данных.
Если вы не определяете атрибуты для концепций, вам придется определять либо таксономию (если между концепциями существует отношение включения, либо Управляемый Словарь (Controlled Vocabulary). Они полезны, но не считаются настоящими онтологиями.
Отношения определяют зависимости между объектами онтологии. Обычно отношением является атрибут, значением которого является другой объект.
Предположим, что в онтологии автомобилей присутствует два объекта — автомобиль Лада Самара и Лада Калина. Пусть Калина — это модель-наследник Самара, тогда отношение между Лада Самара и Лада Калина определим как атрибут отношения наследования «isSuccessorOf» со значением «Самара» для объекта Калина (следует заметить, что в языках описания онтологий существуют предопределенные отношения наследования).
Различают специализированные и общие онтологии. Первые являются онтологиями предметных областей, представляющие знания в определенной проблемной области или части реального мира. В такой онтологии содержатся специальные для этой области значения терминов. К примеру, слово «поле» в сельском хозяйстве означает участок земли, в физике — один из видов материи, в математике — особую структуру. Общие онтологии используются для представления понятий, общих для большого числа областей. Такие онтологии содержат базовый набор терминов, глоссарий или тезаурус, используемый для описания терминов предметных областей.
Языки описания онтологий используются для кодирования онтологии. Существует несколько подобных языков.
OWL (Ontology Web Language) построен на семантических утверждениях, что позволяет строить онтологии, как семантические сети;
KIF (Knowledge Interchange Format) рассматривается, как формат обмена знаниями и основан на S-выражениях и логике;
CycL — онтологический язык, основанный на исчислении предикатов с некоторыми расширениями более высокого порядка.
Для работы с языками онтологий существует несколько видов технологий: редакторы онтологий (для создания онтологий), средства для хранения и обращения к онтологии и хранилища онтологий (для работы с несколькими онтологиями).
Формальная модель онтологии может быть представлена в виде упорядоченной тройки конечных множеств
O=<Т, R, F> ,
где:
Т — термины прикладной области, которую описывает онтология O;
R — отношения между терминами заданной прикладной области;
F — функции интерпретации, заданные на терминах и/или отношениях онтологии O.
Отношения между терминами определяют взаимодействие между концептами прикладной области. Пример бинарного отношения — «является частью». Отношения, которые целесообразно использовать при создании онтологии, значительно менее разнообразны, чем термины, и, как правило, не специфичны для конкретной прикладной области («имеет часть», «является подклассом (надклассом)», «оказывает воздействие», «похоже на» и т.п.).
Между концептами могут быть установлены определенные виды связей. Словарь терминов в определенной прикладной области, тезаурус со своими понятиями (концептами) и связи, которые определяют термины естественного языка, могут рассматриваться как онтологии. Для установления связи между вербально определенными концептами и поиском концептов релевантных запросов используются методы получения информации.
Модели онтологий классифицируются таким образом:
простые (имеют лишь концепты);
на основе фреймов (имеют концепты и свойства);
на основе логик (например, логики предикатов).
Разработка онтологии включает: (1) определение классов в онтологии; (2) разработку таксономии классов (иерархии «подкласс — надкласс»); (3) определение слотов и описание допустимых значений этих слотов; (4) заполнение значений слотов экземпляров. После этого можно создать онтологическую базу знаний, определив отдельные экземпляры этих классов, значения определенных слотов и дополнительные ограничения для слотов.
Фактически онтология — это модель реального мира, и понятия в онтологии должны отражать эту реальность. Поэтому понятия должны быть близки к объектам (физическим или логическим) и отношениям в интересующей предметной области. Скорее всего, это существительные (объекты) или глаголы (отношения) в предложениях, которые описывают предметную область.
После того как определена начальная версия онтологии, можно оценить и отладить в процессе использования ее в каких-то приложениях. После оценки ее качества создается корректированная версия онтологии. Такой итеративный процесс доводки онтологии следует продолжаться в течение всего жизненного цикла онтологии.
При создании онтологии могут использоваться уже существующие онтологии. Многие полезные онтологии доступны в электронном виде и могут быть импортированы из некоторых библиотек онтологий. В таких библиотеках хранятся множество разработанных ранее онтологий, отражающих знания о самых разнообразных объектах. Но при описании конкретных объектов требуется учитывать их специфику и вносить ее в соответствующие онтологические модели.
Пример: разработка онтологии знаний и интеллектуальных систем
Шаг 1. Определение области и масштаба онтологии
Разработка онтологии начинается с определения ее области, масштаба, решаемых с ее помощью задач и категорий пользователей.
Область разрабатываемой онтологии – представление знаний и интеллектуальных систем (ИС). Такую онтологию можно использовать для определения хороших сочетаний моделей и форм знаний и разных по назначению ИС.
Определить масштаб онтологии можно по списку вопросов, на которые должна ответить база знаний, основанная на онтологии. Эти вопросы должны определить требуемый уровень детализации представления проблемной области. Они необходимы в основном для формальной проверки компетентности и не должны быть исчерпывающими. Так, в области знаний и ИС возможны следующие вопросы для проверки компетентности: (1) Какие характеристики следует учитывать при выборе модели и формы знаний? (2) Нейросетевая форма относится к объектной или ассоциативной модели? (3) Хорошо ли сочетается предикатная форма знаний и консультационные ИС? (4) Какая форма знаний лучше всего подойдет для диагностической ИС? (5) Какие характеристики знаний влияют на их сочетаемость с конкретной ИС? (6) Влияет ли используемый формализм на трудоемкость и строгость представления знаний? (7) Какие формы знаний можно использовать для создания конкретной ИС?
Исходя из этого списка вопросов, онтология должна включать информацию о различных характеристиках моделей и форм знаний, формализмах для их представления (хороших и плохих), классификациях ИС по назначению, которые нужно учесть при выборе подходящей модели и формы знаний, рекомендуемых сочетаниях форм знаний и конкретных ИС.
Если онтология будет использоваться для того, чтобы помочь разработчикам ИС решить, какую модель и форму знаний нужно использовать, нужно будет включить информацию о трудоемкости разработки баз знаний. Если она будет использоваться для помощи разработчикам баз знаний, то могут понадобиться сведения о проблемных областях и примерах использования разных представлений знаний для них. Если специалисты, которые будут поддерживать онтологию, опишут предметную область языком, отличающимся от языка пользователей онтологии, то может потребоваться предоставить таблицу соответствий между языками.
Шаг 2. Использования существующих онтологий
В настоящее время существует ряд библиотек повторно используемых онтологий. Например, можно использовать библиотеку онтологий Ontolingua (http://www.ksl.stanford.edu/software/ontolingua/) или библиотеку онтологий DAML (http://www.daml.org/ontologies/). Существует также ряд общедоступных коммерческих онтологий (например, UNSPSC (www.unspsc.org), RosettaNet (www.rosettanet.org), DMOZ (www.dmoz.org)).
В рассматриваемом примере предполагается, что соответствующих онтологий еще не существует, и приходится разрабатывать онтологию с нуля.
Шаг 3. Определение терминологии
На этом шаге требуется составить список всех терминов, которые могут быть важны для пользователя. Так, в число важных терминов, связанных с нашей проблемой, входят:
знания (определяемые как сущности и их отношения);
источники знаний (вербальные, математические и алгоритмические описания, утверждения, эвристики, концепции и стратегии);
производители знаний (эксперт, когнитолог, пользователь);
модели знаний (реляционная, объектная и ассоциативная);
формы знаний (предикатная, продукционная, семантическая, фреймовая, нейросетевая, нейрологическая и их комбинации) представления знаний;
характеристики знаний (строгость представления, его определенность и полнота, непротиворечивость);
ИС (определяемые как системы, решающие задачи, используя знания);
назначение ИС (консультационные, диагностические, управляющие, проектирующие).
Список должен быть полным без акцента на пересечение понятий, отношения между ними, возможные свойства понятий или на то, чем являются понятия – классами или слотами.
Шаг 4. Определение классов и их таксономии
Этот шаг – самый важный в разработке онтологий. Существует несколько возможных подходов для разработки иерархии классов.
Процесс нисходящей разработки начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий. В нашем случае можно начать с создания классов для общих понятий: Знания и ИС. Далее конкретизируется класс Знания, создавая подклассы моделей знаний: Реляционные знания, Объектные знания, Ассоциативные знания. Можно дальше категоризировать подкласс Реляционные знания, вводя подклассы нижнего уровня: Предикатные знания, Продукционные знания.
Процесс восходящей разработки начинается с определения самых конкретных классов, листьев иерархии, с последующей группировкой этих классов в общие понятия. Например, сначала можно определить классы для знаний Семантические знания и Фреймовые знания. Далее создается общий надкласс Объектные знания, который, в свою очередь является подклассом класса Знания.
Процесс комбинированной разработки сочетает нисходящий и восходящий подходы: сначала определяются более заметные понятия, а затем они соответствующим образом обобщаются и ограничиваются.
Все три подхода дают одинаковый результат. Однако часто для многих разработчиков онтологий самым простым является комбинированный подход, поскольку понятия, находящиеся «посередине», имеют тенденцию быть самыми наглядными понятиями в предметной области.
При любом подходе сначала определяются классы. Из списка, составленного в Шаге 3, выбираются термины, которые описывают объекты, существующие независимо, а не термины, которые описывают эти объекты. В онтологии эти термины будут классами, которые должны быть организованы в иерархическую таксономию. При этом используется правило: Если класс А является надклассом класса В, то каждый экземпляр В также является экземпляром А. Другими словами, класс В представляет собой понятие, которое является «разновидностью» А.
Например, известно, что предикатные знания являются формой реляционной модели знаний. Поэтому класс Предикатные знания – подкласс класса Реляционные знания.
На рис. 5.7 в левой части показана иерархия классов онтологии, относящихся к знаниям и ИС.
Шаг 5. Определение слотов (свойств классов)
Классы не дают достаточно информации для ответа на вопросы проверки компетентности. После определения некоторого количества классов должна быть описана внутренняя структура понятий.
После выбора классов из списка терминов, созданного на Шаге 3, из оставшихся терминов могут быть определены свойства этих классов. Эти термины включают, к примеру, строгость представления знаний, их определенность (детерминизм), размерность, полнота и непротиворечивость.
Для каждого свойства из списка можно определить, какой класс оно описывает. Такие свойства могут быть названы слотами, привязанными к классам. Тогда у класса Знания будут следующие слоты: строгость представления, определенность, размерность, полнота и непротиворечивость, а у класса ИС будет слот назначение.
На рис. 5.7 в средней части показаны слоты классов Знания и ИС.
Все подклассы класса наследуют слот этого класса. Например, все слоты класса Знания будут унаследованы всеми подклассами этого класса, включая Реляционные знания и Объектные знания. К классу Реляционные знания можно добавить дополнительный слот уровень представления (низкий, средний, высокий). Слот уровень представления будет унаследован всеми классами, представляющими Реляционные знания (т.е. Предикатные знания, Продукционные знания). Слот должен быть привязан к самому общему классу, у которого может быть данное свойство. Например, слоты строгость представления и определенность нужно привязать к классу Знания, поскольку это самый общий класс, чьи экземпляры будут иметь строгость представления и определенность.
Шаг 6. Определение фацетов слотов
Слоты могут иметь различные фацеты (ограничения), которые описывают тип значения, разрешенные значения, число значений (мощность) и другие свойства значений, которые может принимать слот. Например, значение слота название (название модели или формы знаний) – одна строка. Это означает, что название – это слот с типом значения Строка. Слот производит (как в выражении «когнитолог производит эти знания») может иметь множественные значения, которые являются экземплярами класса Знания. Это означает, что производит – это слот с типом значения Экземпляр, и разрешенным является класс Знания.
Далее будут описаны несколько общих фацетов.
Фацет Мощность слота определяет, сколько значений может иметь слот: единичная мощность (возможно только одно значение) и множественная мощность (возможно любое число значений). Строгость представления знаний конкретной модели и формы является слотом единичной мощности. Знания в рамках конкретной модели знаний могут иметь разную строгость представления, что определяет множественную мощность слота.
Фацет Тип значения описывает, какие типы значений можно ввести в слот. В список наиболее общих типов значений входят:
Строка (используется в слотах название);
Число (например, в слоте размерность знаний), Флаг (например, принадлежность к классу Реляционные знания может определяться флагами «да» или «нет»);
Символ (определяет список разрешенных значений слота, например, слот определенность для продукционных знаний может иметь значения: Полная, Размытые, Статистические, Субъективные);
Экземпляр (слоты с этим типом значения должны определять список разрешенных классов, экземпляры которых можно использовать; например, слот формализует класса Разработчик в качестве значений может иметь экземпляры класса Знания);
Домен и диапазон значений слота (разрешенные классы для слотов с типом значений Экземпляр часто называют диапазоном значений слота).
Общее правило определения домена и значения слота такое: найти наиболее общие классы или класс, которые могут быть соответственно доменом или диапазоном значений слотов. В примере на рис. 5.7 класс Знания является диапазоном значений слота формализует. Классы, к которым слот привязан, или классы, свойство которых слот описывает, являются доменом слота. Класс Разработчик – домен слота формализует. В системах, где слоты привязаны к классам, нет необходимости отдельно определять домен, поскольку домен слота обычно составляют классы, к которым привязан слот.
Шаг 7. Создание экземпляров
Создание отдельных экземпляров классов в иерархии является последним шагом разработки онтологии. Для определения отдельного экземпляра класса требуется (1) выбрать класс, (2) создать отдельный экземпляр этого класса и (3) ввести значения слотов. Например, может быть создан отдельный экземпляр Нечеткие продукции для представления определенного типа класса Продукционные знания, представляющего все варианты продукций. У этого экземпляра определены следующие значения слотов:
строгость представления: Нет;
определенность: Размытые;
размерность: Большая;
уровень представления: Низкий;
источник: Эвристики;
разработчик: Эксперт;
использование: ЭС, СИУ;
сложность разработки: Нет
Разработанная онтология позволит определять правильные сочетания моделей и форм знаний для ИС разного назначения.
