УМОЗАКЛЮЧЕНИЯ И ЗНАНИЯ (ЧАСТЬ 1[49])
Область искусственного интеллекта (ИИ) связана с разработкой машинных программ, способных решать задачи, которые обычно требуют умственных усилий,— начиная от игры в шахматы и кончая медицинской диагностикой.
Многие задачи такого рода связаны с использованием естественного языка, в связи с чем ИИ попадает в список дисциплин, имеющих отношение к проблемам понимания языка. Вычислительная семантика (так мы называем исследование языка, основанное на методах ИИ) рассматривает язык с точки зрения того, как он действует при осуществлении процессов автоматического перевода, построения ответов на вопросы по тексту и т. п. При этом подходе предпола? гается, что "сущность языка — это то, как он действует". Нельзя считать, что эта мысль была неизвестна другим направлениям лингвистики и психологии, однако только вычислительная семантика считает ее основой для исследования языка. Сторонники такого подхода полагают, что в лучшем случае нежелательно, а в худшем — бессмысленно говорить о понимании естественного языка безотносительно к той или иной задаче, в рамках которой язык используется,—будь эта задача очень узкой (например, заполнение пустых мест во фразах при интеллектуальном тестировании) или весьма расплывчатой (например, флирт на вечеринке).Таким образом, исследование языка надо начинать с вопроса о том, как он используется. Может показаться, что в этом случае, прежде чем начать исследование языка, надо расширить объект, включив в него все случаи и аспекты "использования" языка — от тестирования до поведения на вечеринках. На самом деле, ни одна дисциплина не может надеяться на успех при рассмотрении вопросов такого широкого диапазона. Для решения проблемы следует выделить некоторые признаки, общие для большинства случаев использования языка, и изучать уже только их, лучше всего на примере одной-двух задач, в которых эти признаки выступают особенно рельефно.
Рассмотрим, например, ответы на простые вопросы по такому рассказу:(1) One Saturday Jack decided he wanted some cereal for breakfast. However he had to go to the supermarket, where after finding the shelf where the milk was, he payed for it and left. When he got home he found that the milk was sour. "Why do these things always happen to me", thought Jack.
‘Однажды в субботу Джек решил, что ему хочется на завтрак каши. Поэтому ему пришлось пойти в универсам, где, найдя полку, на которой было молоко, он заплатил за него и ушел. Когда он пришел домой, он обнаружил, что молоко скисло. "Почему со мной всегда случаются такие вещи?",— подумал Джек.’
Вопросы: Why did Jack go to the supermarket?
‘Почему Джек пошел в универсам?’
What did Jack pay for?
‘За что заплатил Джек?’
By the last line had Jack finished his cereal? ‘Съел ли Джек кашу к концу рассказа?’
What was Jack complaining about?
‘На что жаловался Джек?’
Хотя ответы на вопросы кажутся нам очевидными, в самом рассказе, как можно заметить, они в явном виде не содержатся. На самом деле, мы можем отвечать на подобные вопросы только потому, что знаем следующие факты: "Кашу обычно едят с молоком".
”В универсамах продается, прежде всего, пища". "Скисшее молоко невкусное".
"Кроме особых случаев, человек быстро перестает есть невкусную пищу".
Но одного только знания подобных фактов недостаточно, поскольку требуется еще умение выбрать из всей совокуп-
ности своих знаний те факты, которые релевантны для данного текста, а затем объединить эти релевантные факты с информацией рассказа для того, чтобы получить ответы на вопросы.
Умение такого рода требуется и при решении других задач, связанных с языком. Например, если бы нам потребовалось перевести текст (1) на немецкий язык, нам нужно было бы установить, что it во второй фразе замещает не shelf ‘полка’, a milk ‘молоко’, поскольку в немецком соответствующие существительные замещаются разными местоимениями.
(Отметим, что здесь нельзя опираться только на то, что milk — это последнее по порядку существительное, упоминавшееся до it, поскольку эту часть фразы можно заменить следующей, эквивалентной ей: after finding the milk on the shelf ‘найдя молоко на полке’.) Это умение нужно и для такого вида обработки текста, как его реферирование. Понимание того факта, что в (1) может отсутствовать упоминание о субботе, но обязательно упоминание о каше, требует знания причинных связей в тексте и наблюдения, что’’суббота" никакой роли в (1) не играет, тогда как "каша" служит мотивом большинства следующих событий. Но причинные связи в (1) явно не выражены и поэтому должны выводиться из общих знаний человека, воспринимающего данный текст.Таким образом, мы предполагаем, что важной чертой, общей для большинства случаев использования языка, является применение к тексту или к отдельному высказыванию предварительно накопленных знаний для выведения умозаключений. Исследование этих процессов может помочь объяснению широкого круга способов языкового поведения. Наша гипотеза получает дальнейшее подтверждение, когда мы замечаем, что многие процессы, которые мы обычно называем языковыми, требуют применения умозаключений. Например, лингвистика занимается проблемами синтаксических структур. Рассмотрим, однако, фразу:
Waiter, I would like spaghetti with meat-sauce and wine.
‘Официант, я бы хотел спагетти с мясным соусом и вина.*
Вы не ожидаете, что принесенные вам спагетти будут плавать в мясном соусе и вине. Другими словами, предполагается, что наименование заказанной еды представимо структурой (2), а не (3):
A
spaghetti
and
with wine
spaghetti
Wine
meat-sauce
Ax
/4
meat-sauce
Отметим, однако, что если вы заказываете спагетти с маслом или чесноком, то соответствующей фразе отвечает структура (3). Подобные фразы мы называем ”структурно неоднозначными“.
Таким образом, официант, принимая ваш заказг должен ”разрешить неоднозначность“, используя свои знания о еде для выведения умозаключения.Аналогичная проблема встает в связи с тем, что слова часто имеют более одного значения (или ”смысла!“), как в примере:
The pen is in the next room.
Фучка/детский манеж находится в соседней комнате.’ В этом предложении реп может означать либо ‘ручка для письма’, либо ‘детский манеж’. Рассмотрим теперь предложение:
The baby picked up a pen.
‘Младенец поднял ручку.’
Мы выводим нужное значение слова реп, располагая знаниями о силе ребенка.
И, наконец, умозаключения часто необходимы для восстановления антецедентов местоимений. Мы уже видели это в примере (1), где местоимение it во фразе he payed for it ‘он заплатил за него/нее’ относится к молоку, поскольку мы полагаем, что Джек хотел купить именно молоко, а не, скажем, полку, на которой молоко стояло.
Подобные примеры подкрепляют наше решение исследовать использование языка путем рассмотрения более узкой проблемы: каким образом используются знания для выведения умозаключений в процессе понимания естественного языка.
Полное решение этой проблемы потребовало бы ответа на пять следующих вопросов. (Здесь мы формулируем эти вопросы кратко; их точный смысл прояснится при постоянных обращениях к ним на протяжении этой статьи, а также нашей второй статьи в настоящем сборнике.)
1. СЕМАНТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ. Какие понятия (и в каких комбинациях) нужны для представления а) знаний, которыми мы пользуемся при обращении с естественным языком, и б) семантического содержания самих высказываний на естественном языке. Проблема семантического представления будет подробно рассмотрена в других статьях, поэтому здесь о ней будет говориться очень мало.
2. ПРИМЕНЕНИЕ УМОЗАКЛЮЧЕНИЙ. При каких условиях и по каким причинам мы применяем умозаключения? Например, когда производятся умозаключения — при поступлении новой информации или в отдельных конкретных случаях, когда в этом возникает необходимость, например при поступлении соответствующего вопроса?
3.
ОРГАНИЗАЦИЯ. Предположим, что нам надо произвести умозаключение. Как мы узнаем, где хранится нужная для этого информация? Общий ответ на этот вопрос состоит в том, что имеются ”указатели“ к информации. Тогда встает следующий вопрос: как организованы эти указатели? Так, мэжно предположить, что определенные части информации, например сведения об универсамах, сгруппированы вместе. Группировка может означать наличие указателя от некоторой центральной темы к каждой локальной части информации.4. МЕХАНИЗМ ВЫВОДА УМОЗАКЛЮЧЕНИЙ. Определив место хранения некоторого факта, как мы определяем целесообразный способ его использования? Например, в исчислении предикатов, о котором речь пойдет ниже, существуют "правила вывода", согласно которым устанавливается, какие умозаключения могут быть выведены из данного набора фактов.
5. СОДЕРЖАНИЕ. Каковы те знания о мире, которые позволяют нам понимать естественный язык? Отметим, что, если ответы на другие вопросы (не считая, может быть, первого) могут быть успешно найдены без обращения к культуре, знания, которыми мы располагаем, очевидным образом зависят от культуры и даже являются идиосинкра- тичными.
ИСЧИСЛЕНИЕ ПРЕДИКАТОВ ПЕРВОГО ПОРЯДКА
Ниже мы частично ответим на поставленные вопросы с помощью двух инструментов — языка исчисления предикатов первого порядка (ИППП) и языка программирования PLANNER.
ИППП было разработано для выяснения того, что же, в сущности, делают математики: они "доказывают" утверждения, но каков точный смысл термина "доказательство"? Именно для ответа на подобные вопросы и возникло ИППП. Более того, ИППП может быть определено столь точно, что становится возможным доказывать факты о нем самом. В ИИ, однако, ИППП не использовалось ни для той, ни для другой цели. Скорее предполагалось, что программа, базирующаяся на ИППП, может обладать такой способностью к выводу умозаключений, которая нужна, например, при понимании естественного языка. Поскольку мы не собираемся доказывать теоремы относительно ИППП, мы не обязаны давать точные определения и можем ограничиться пояснениями на интуитивном уровне.
язык ИППП
Грубо говоря, ИППП состоит из языка для выражения фактов и правил для вывода новых фактов из старых. Этот язык располагает следующими элементами.
КОНСТАНТЫ. Константы — это некоторые "вещи", которые могут быть предметом разговора, например ФИДО. В дальнейшем изложении мы будем обычно обозначать их символами "а", ”Ь“ и "с", а иногда собственными именами, записанными прописными буквами (ФИДО, ДЖОН).
ПЕРЕМЕННЫЕ. Переменные могут заменять разные "вещи" в разное время. Ниже мы будем обозначать их буквами ”х“, ”у“, ”z“.
ПРЕДИКАТЫ. Запись СОБАКА (ФИДО) означает, что предикат СОБАКА является истинным для константы ФИДО, или, в более привычной записи, утверждается, что "ФИДО — СОБАКА". У предиката может быть один или несколько аргументов. В примере СОБАКА (ФИДО) предикат имеет один аргумент, и он принимает значение ФИДО. ДАВАТЬ (а, Ь, с) имеет три аргумента, которые обычно интерпретируются: "[некто] а ДАЛ [нечто] b [кому-либо] с“. Предикаты могут быть истинными или ложными. Другими словами, ФИДО может либо быть собакой, либо не быть собакой.
ФУНКЦИИ. Функцией мы называем нечто, позволяющее вычислять значение. Так, значением функции МЕСТО
РОЖДЕНИЯ (а) считается (если выбрано некоторое конкретное имя) название населенного пункта, где родился а. Подобно предикатам, функции имеют аргументы, и число аргументов у каждой данной функции фиксировано, хотя (как и в случае предикатов) ограничений на величину этого числа не налагается. Отметим, что функция может служить аргументом предиката, например, в случае, когда мы хотим сказать, что выражение СОБАКА (МЕСТО РОЖДЕНИЯ
(а)) всегда является ложным (это равносильно утверждению, что место рождения не может быть собакой). В то же время предикат не может быть аргументом функции (или другого предиката). Иными словами, выражение МЕСТО РОЖДЕНИЯ (СОБАКА (а)) бессмысленно, поскольку СОБАКА (а) не принимает того или иного значения в том смысле, в котором его принимает функция, а просто является либо истинным, либо ложным.
ЛОГИЧЕСКИЕ СВЯЗКИ. К логическим связкам обычно относятся:
И (часто обозначается знаком ”д“, как в (АдВ). Назвать составное высказывание БОГ(а) И ЧЕЛОВЕК^) истинным — это значит сказать, что истинны оба высказывания, входящие в его состав, то есть что а — это одновременно и бог, и человек.
ИЛИ (часто обозначается знаком "Vй). Составное высказывание БОГ(а) ИЛИ ЧЕЛОВЕК(а) означает, что а — либо бог, либо человек, либо одновременно бог и человек. Отметим, что логические связки подобны предикатам в том отношении, что высказывания с логическими связками являются либо истинными, либо ложными. Другими словами, утверждение, что а является одновременно богом и человеком, либо истинно, либо ложно.
НЕ (часто обозначается знаками "“]“ или например " ”] А“). Высказывание НЕ (БОГ(а)) означает, что а — не бог.
ИМПЛИКАЦИЯ (часто обозначается знаком "=>“). Сказать, что ЧЕЛОВЕК (х) ИМПЛИЦИРУЕТ ГРЕШ- НВІЙ (х),— это значит сказать, что если х — человек, то он грешен. Отметим, однако, что по определению логической импликации, если х не является человеком, то высказывание, содержащее импликацию, в целом считается истинным независимо от того, грешен х или нет. Таким образом, высказывание, содержащее импликацию, является ложным тогда и только тогда, когда вторая его часть [следствие] является ложной, а первая часть [посылка] истинной, то есть если х — человек и х не является грешным.
КВАНТОРЫ. Когда мы рассматривали высказывание ЧЕЛОВЕК (х) ИМПЛИЦИРУЕТ ГРЕШНЫЙ (х), мы неявно предполагали, что оно является истинным для любого значения аргумента х. Это предположение выражается квантором всеобщности:
ДЛЯ ЛЮБОГО (часто обозначается знаком "у"). Таким образом, более точная запись рассматриваемого высказывания имеет вид ДЛЯ ЛЮБОГО (х) (ЧЕЛОВЕК 00 ИМПЛИЦИРУЕТ ГРЕШНЫЙ 00). Имеется и другой квантор — квантор существования:
СУЩЕСТВУЕТ (часто обозначается знаком "а"). Утверждение о том, что "существует некий бог", записывается как СУЩЕСТВУЕТ (х) (БОГ (х)). Иначе говоря, имеется такое значение переменной х, что БОГ (х) истинно. Утверждение о том,
что "все люди владеют собаками", записывается: ДЛЯ ЛЮБОГО 00 (СУЩЕСТВУЕТ (у) (ЧЕЛОВЕК (х) ИМПЛИЦИРУЕТ (СОБАКА (у) И ВЛАДЕЕТ (х, у)))), то есть "для любого человека существует собака, такая, что этот человек владеет этой собакой".
Когда выше мы пользовались одним и тем же обозначением переменной (например, переменной "х" и в высказывании "все люди владеют собаками", и в высказывании "существует бог"), мы предполагали, что читатель не станет смешивать эти переменные и не будет думать, что бог и владельцы собак — это одно и то же. Читателю помогает в этом его интуиция, а ИППП располагает для избежания смешения такого рода определенными формальными средствами. Предполагается, что каждая переменная имеет определенную область действия. Внутри этой области действия каждое вхождение одного и того же имени переменной означает обращение к одной и той же переменной. Однако мы можем пользоваться одним обозначением для разных переменных в разных высказываниях при условии, что их области действия не пересекаются. Для этого мы пользуемся соглашением, в соответствии с которым областью действия переменной считается заключенная в скобки часть высказывания, непосредственно следующая за квантором, вводящим эту переменную (при этом скобки при других кванторах не учитываются). Таким образом, для высказывания ДЛЯ ЛЮБОГО (х), ДЛЯ ЛЮБОГО (у) (Р (х) И Q (у)) областью действия обеих переменных — х и у — является высказывание Р (х) И Q (у).
Отметим, что многие из названных понятий могут быть переопределены друг через друга. Пользуясь приведенными выше интуитивными определениями, читатель может убедиться, что
(4) А ИМПЛИЦИРУЕТ В — то же самое, что НЕ (А) ИЛИ В
(5) ДЛЯ ЛЮБОГО (х) (Р(х)) — то же самое, что НЕ (СУЩЕСТВУЕТ (х) (НЕ (Р(х))))
(6) А И В — то же самое, что НЕ (НЕ (А) ИЛИ НЕ (В))
ПРАВИЛА ВЫВОДА УМОЗАКЛЮЧЕНИЙ
Располагая лишь перечисленными выше интуитивными определениями, мы можем сделать ряд логических выводов. Например, из того, что АЙВ — истинно, можно вывести, что А — истинно. Однако использование ЭВМ требует полной формализации всех операций, поскольку ЭВМ не обладает интуицией. В связи с этим нам необходимы формальные правила вывода, например такие:
(7) Можно вывести А ИЛИ В из А.
Можно вывести А из А ИЛИ А.
Можно вывести (А ИЛИ В) ИЛИ С из А ИЛИ
(В ИЛИ С).
Можно вывести В ИЛИ С из А ИЛИ Ви НЕ (А)
ИЛИ С.
Эти правила приближаются к формальным определениям наших интуитивных представлений о ИЛИ и НЕ. Чтобы завершить определение, следует ввести еще одно правило (называемое "логической аксиомой"): НЕ (А) ИЛИ А всегда истинно. Для доказательства различных утверждений полезно такое правило вывода: если, допустив А, мы можем доказать В, то А ИМПЛИЦИРУЕТ В — истинно. Предпо-
ложим, что мы хотим доказать, что (X ИЛИ Y) ИМПЛИЦИРУЕТ (Y ИЛИ X). Доказательство имеет следующий вид:
1. (X ИЛИ Y)
2. НЕ (X) ИЛИ X
3. (Y ИЛИ X) допущение логическая аксиома из 1, 2 в соответствии
с четвертым правилом В (7)
4. (X ИЛИ Y) ИМПЛИЦИ- по правилу, которое
РУЕТ (Y ИЛИ X) мы только что ввели
Пункт 3 нашего доказательства не очевиден, поэтому рассмотрим его более подробно. Согласно правилу вывода,
из А ИЛИ В и НЕ (А) ИЛИ С следует В ИЛИ С.
мы имеем: X ИЛИ Y и НЕ (X) ИЛИ X.
Отождествляя X с А и С, a Y с В, получаем Y ИЛИ X.