Введение
Представление знаний и рассуждения (KRR, KR&R, KR²) – это область искусственного интеллекта (ИИ), посвященная представлению информации о мире в форме, которую компьютерная система может использовать для решения сложных задач, таких как диагностика медицинского состояния или ведение диалога на естественном языке. Представление знаний включает в себя достижения психологии, касающиеся того, как люди решают проблемы и представляют знания, с целью разработки формализмов, упрощающих проектирование и создание сложных систем. Представление знаний и рассуждения также использует достижения логики для автоматизации различных видов логических выводов. Примеры формализмов представления знаний включают семантические сети, фреймы, правила, логические программы и онтологии. Примеры автоматизированных механизмов рассуждения включают машины логического вывода, системы доказательства теорем, генераторы моделей и классификаторы.
Knowledge representation and reasoning (KRR, KR&R, KR²) is the field of artificial intelligence (AI) dedicated to representing information about the world in a form that a computer system can use to solve complex tasks such as diagnosing a medical condition or having a dialog in a natural language. Knowledge representation incorporates findings from psychology about how humans solve problems and represent knowledge, in order to design formalisms that will make complex systems easier to design and build. Knowledge representation and reasoning also incorporates findings from logic to automate various kinds of reasoning. Examples of knowledge representation formalisms include semantic nets, frames, rules, logic programs and ontologies. Examples of automated reasoning engines include inference engines, theorem provers, model generators and classifiers.
История
Самые ранние работы в области компьютерного представления знаний были сосредоточены на общих решателях задач, таких как система General Problem Solver (GPS), разработанная Алленом Ньюэллом и Гербертом А. Саймоном в 1959 году, и Advice Taker, предложенный Джоном Маккарти также в 1959 году. GPS включал структуры данных для планирования и декомпозиции. Система начинала с цели, затем разлагала ее на подцели и приступала к разработке стратегий для достижения каждой подцели. Advisor Taker, с другой стороны, предложил использовать предикатное исчисление для представления здравого смысла. Многие из ранних подходов к представлению знаний в ИИ использовали графовые представления и семантические сети, подобные современным графам знаний. В таких подходах решение задач представляло собой форму обхода графа или поиска пути, как в алгоритме A*. Типичные приложения включали формирование планов для роботов и игры. Другие исследователи сосредоточились на разработке автоматических доказателей теорем для логики первого порядка, мотивированные использованием математической логики для формализации математики и автоматизации доказательства математических теорем. Важным шагом в этом направлении стала разработка метода резолюции Джоном Аланом Робинсоном. Тем временем Джон Маккарти и Пэт Хейс разработали ситуационное исчисление как логическое представление здравого смысла о законах причины и следствия. Корделл Грин, в свою очередь, показал, как формировать планы для роботов, применяя резолюцию к ситуационному исчислению, а также как использовать резолюцию для ответов на вопросы и автоматического программирования. В отличие от этого, исследователи из MIT отвергли парадигму унифицированной процедуры доказательства и выступали за процедурное встраивание знаний. Конфликт между использованием логических и процедурных представлений был разрешен в начале 1970-х годов с развитием логического программирования и Prolog, использующих SLD-разрешение для обработки Horn-клауз как процедур редукции целей. Раннее развитие логического программирования было в значительной степени европейским явлением. В Северной Америке исследователи ИИ, такие как Эд Файгенбаум и Фредерик Хейс Рот, выступали за представление знаний, специфичных для предметной области, а не рассуждений общего назначения. Эти усилия привели к когнитивной революции в психологии и к фазе ИИ, ориентированной на представление знаний, что привело к созданию экспертных систем в 1970-х и 80-х годах, продукционных систем, языков фреймов и т.д. Вместо общих решателей задач ИИ переключил свое внимание на экспертные системы, способные соответствовать человеческой компетенции в конкретной задаче, такой как медицинская диагностика. Экспертные системы дали нам терминологию, которая используется и сегодня: системы ИИ делятся на базу знаний, включающую факты и правила о проблемной области, и механизм логического вывода, который применяет знания из базы знаний для ответов на вопросы и решения проблем в этой области. В этих ранних системах факты в базе знаний, как правило, имели довольно плоскую структуру, по сути, представляя собой утверждения о значениях переменных, используемых правилами. Тем временем Марвин Минский разработал концепцию фрейма в середине 1970-х годов. Фрейм похож на класс объекта: это абстрактное описание категории, описывающее вещи в мире, проблемы и потенциальные решения. Фреймы первоначально использовались в системах, ориентированных на взаимодействие с человеком, например, для понимания естественного языка и социальных ситуаций, в которых различные ожидания по умолчанию, такие как заказ еды в ресторане, сужают пространство поиска и позволяют системе выбирать соответствующие ответы на динамические ситуации. Вскоре сообщества, работающие с фреймами, и исследователи, использующие правила, осознали синергию между своими подходами. Фреймы хорошо подходили для представления реального мира, описываемого как классы, подклассы, слоты (значения данных) с различными ограничениями на возможные значения. Правила хорошо подходили для представления и использования сложной логики, такой как процесс постановки медицинского диагноза. Были разработаны интегрированные системы, объединяющие фреймы и правила. Одной из самых мощных и известных была среда Knowledge Engineering Environment (KEE) 1983 года от Intellicorp. KEE имела полноценный механизм правил с прямым и обратным распространением. Она также имела полноценную базу знаний, основанную на фреймах, с триггерами, слотами (значениями данных), наследованием и передачей сообщений. Хотя передача сообщений возникла в объектно-ориентированном сообществе, а не в ИИ, она была быстро принята исследователями ИИ в таких средах, как KEE, и в операционных системах для машин Lisp от Symbolics, Xerox и Texas Instruments. Интеграция фреймов, правил и объектно-ориентированного программирования была значительно стимулирована коммерческими предприятиями, такими как KEE и Symbolics, выросшими из различных исследовательских проектов. В то же время существовала и другая линия исследований, менее ориентированная на коммерцию и движимая математической логикой и автоматическим доказательством теорем. Одним из самых влиятельных языков в этих исследованиях был язык KL-ONE середины 80-х годов. KL-ONE был языком фреймов с строгой семантикой и формальными определениями для таких понятий, как отношение "Is A". KL-ONE и языки, на него повлиявшие, такие как Loom, имели механизм логического вывода, основанный на формальной логике, а не на правилах "IF-THEN". Этот механизм вывода называется классификатором. Классификатор может анализировать набор деклараций и выводить новые утверждения, например, переопределять класс как подкласс или надкласс другого класса, который не был формально указан. Таким образом, классификатор может функционировать как механизм логического вывода, выводя новые факты из существующей базы знаний. Классификатор также может обеспечивать проверку согласованности базы знаний (которая в случае языков KL-ONE также называется онтологией). Другой областью исследований представления знаний была проблема здравого смысла. Одним из первых уроков, извлеченных из попыток создания программного обеспечения, способного функционировать с использованием естественного языка, было то, что люди регулярно опираются на обширную базу знаний о реальном мире, которую мы просто принимаем как должное, но которая совершенно не очевидна для искусственного агента. Основные принципы здравого смысла о физике, причинности, намерениях и т.д. Примером является проблема фрейма, заключающаяся в том, что в логике, управляемой событиями, должны быть аксиомы, утверждающие, что вещи сохраняют свое положение с одного момента времени на другой, если их не перемещает какая-либо внешняя сила. Чтобы создать настоящий искусственный интеллект, способный общаться с людьми на естественном языке и обрабатывать основные утверждения и вопросы о мире, необходимо представлять эти знания. Помимо ситуационного исчисления Маккарти и Хейса, одной из самых амбициозных программ по решению этой проблемы был проект Cyc Дуга Лената. Cyc разработал свой собственный язык фреймов и привлек большое количество аналитиков для документирования различных областей здравого смысла на этом языке. Знания, записанные в Cyc, включали модели здравого смысла времени, причинности, физики, намерений и многих других. Отправной точкой для представления знаний является гипотеза о представлении знаний, впервые формализованная Брайаном Смитом в 1985 году:
Любой механически воплощенный интеллектуальный процесс будет иметь структурные ингредиенты, которые а) мы, как внешние наблюдатели, естественно воспринимаем как пропорциональный учет знаний, которыми обладает весь процесс, и b) независимо от такой внешней семантической атрибуции, играют формальную, но причинную и существенную роль в порождении поведения, которое проявляет эти знания. Одной из наиболее активных областей исследований представления знаний является Semantic Web. Semantic Web стремится добавить слой семантики (значения) поверх существующего Интернета. Вместо индексации веб-сайтов и страниц по ключевым словам Semantic Web создает большие онтологии понятий. Поиск понятия будет более эффективным, чем традиционный...
Онтологическая инженерия
В первые годы развития систем, основанных на знаниях, базы знаний были относительно небольшими. Базы знаний, предназначенные для решения реальных задач, а не для демонстрации концепций, должны были фокусироваться на чётко определённых проблемах. Например, не медицинская диагностика в целом, а диагностика определённых видов заболеваний. По мере масштабирования технологий, основанных на знаниях, стала очевидной потребность в более крупных и модульных базах знаний, способных взаимодействовать и интегрироваться друг с другом. Это привело к возникновению дисциплины онтологической инженерии – проектированию и созданию больших баз знаний, которые могли бы использоваться в нескольких проектах. Одним из ведущих исследовательских проектов в этой области был проект Cyc. Cyc представлял собой попытку создать огромную энциклопедическую базу знаний, содержащую не только экспертные знания, но и знания здравого смысла. При разработке агента искусственного интеллекта вскоре стало понятно, что представление знаний здравого смысла, знаний, которые люди принимают как должное, необходимо для создания ИИ, способного взаимодействовать с людьми на естественном языке. Cyc был призван решить эту проблему. Язык, который они разработали, получил название CycL. После CycL было разработано множество онтологических языков. Большинство из них являются декларативными, и либо языками фреймов, либо основаны на логике первого порядка. Модульность – способность определять границы для конкретных областей и проблемных пространств – имеет важное значение для этих языков, поскольку, как отмечал Том Грубер, «каждая онтология – это договор, социальное соглашение между людьми, объединёнными общей целью обмена знаниями». Всегда существует множество конкурирующих и различных точек зрения, что делает создание онтологии общего назначения невозможным. Онтология общего назначения должна быть применима в любой области, а различные области знаний должны быть унифицированы. Существует длительная история попыток создания онтологий для различных предметных областей, например, онтология для жидкостей, широко используемая модель сосредоточенных элементов для представления электронных схем (например), а также онтологии для времени, убеждений и даже самого программирования. Каждая из них предлагает способ взглянуть на определённую часть мира. Например, модель сосредоточенных элементов предполагает, что мы рассматриваем схемы с точки зрения компонентов, соединённых между собой, с сигналами, мгновенно распространяющимися по соединениям. Это полезный взгляд, но не единственный возможный. Другая онтология возникает, если необходимо учитывать электродинамику в устройстве: здесь сигналы распространяются с конечной скоростью, и объект (например, резистор), который ранее рассматривался как единый компонент с входными и выходными характеристиками, теперь может рассматриваться как расширенная среда, через которую распространяется электромагнитная волна. Онтологии, конечно, могут быть записаны на самых разных языках и в различных форматах (например, логика, LISP и т. д.); существенной информацией является не форма языка, а его содержание, то есть набор концепций, предлагаемых как способ мышления о мире. Проще говоря, важны такие понятия, как связи и компоненты, а не выбор между их представлением в виде предикатов или конструкций LISP. Выбор той или иной онтологии может привести к принципиально иному взгляду на задачу. Рассмотрим разницу, возникающую при выборе модели сосредоточенных элементов для схемы по сравнению с электродинамической моделью того же устройства. В качестве второго примера, медицинская диагностика, рассматриваемая с точки зрения правил (например, MYCIN), существенно отличается от той же задачи, рассматриваемой с точки зрения фреймов (например, INTERNIST). В то время как MYCIN рассматривает медицинский мир как состоящий из эмпирических ассоциаций, связывающих симптомы с заболеваниями, INTERNIST видит набор прототипов, в частности, прототипических заболеваний, которые необходимо сопоставить с конкретным случаем.