О пользе случайностей
АрхивПроизводительность компьютеров растет с каждым годом, но это никак не сказывается на их интеллектуальности. Программировать на современных языках становится проще, но это несравнимо с легкостью "программирования" человеческого мозга.
Производительность компьютеров растет с каждым годом, но это никак не сказывается на их интеллектуальности. Программировать на современных языках становится проще, но это несравнимо с легкостью «программирования» человеческого мозга. Естественный для людей способ общения недоступен современным компьютерам и программному обеспечению, что мешает им стать по-настоящему дружественными и полезными человеку.
Конечно, компьютеры и сейчас полезны и незаменимы, но если бы компьютер мог сделать за вас какую-либо интеллектуальную работу, позаботиться о вашем ужине и завтраке, напомнить о текущих делах, это значительно повысило бы ценность этого устройства. Компьютер будущего должен уметь понимать не только языки программирования, но и наш обычный, естественный язык, который является главным средством общения людей. Более того, необходимо и некоторое понимание реалий этого мира.
Проблема интеллектуального анализа и понимания (далее просто ИИ) появилась одновременно с самими компьютерами. За полвека, как ни удивительно, в ее решении особого прогресса достичь не удалось. Частные методы для узких задач разработаны в большом количестве, однако количество так и не перешло в качество.
Программами распознавания речи, к примеру, занимаются более сорока лет, но до сих пор они так примитивны, что пользоваться ими небезопасно для психики. Ошибочно думать, что проблема здесь в распознавании акустического сигнала. Любая коммерческая программа распознавания речи выполняет классификацию фонем лучше, чем среднестатистический человек. Но программа не умеет отделять зерна от плевел. Собственно проблема состоит в создании блока фильтрации глупостей.
Вот две основные, на мой взгляд, трудности в ее решении:
- Информация, с которой работает мозг, и методы ее обработки коренным образом отличаются от используемых компьютерами.
- Без знания окружающей действительности и представления о типичных потребностях людей невозможно заниматься сколько-нибудь полезной интеллектуальной деятельностью.
Наше знание и его производную - понимание - можно описать в терминах устремлений, целей, рефлексов (см. книгу логика и математика Рассела Акоффа [1]). А вот, к примеру, отрывок из книги крупнейшего психолога А. Р. Лурия [4]: «Мало понять непосредственное значение сообщения. Необходимо выделить тот внутренний смысл, который стоит за этим значением. Иначе говоря, необходим сложный процесс перехода от текста к подтексту, то есть к выделению того, в чем именно состоит центральный внутренний смысл сообщения, с тем, чтобы после этого стали понятны мотивы, стоящие за поступками описываемых в тексте лиц».
Из сказанного следует, что для создания интеллектуального компьютера нужно придумать новый метод представления информации и оперирования ею, создать базу знаний, сходную с той, которой владеет среднестатистический человек, снабдить систему представлением о целях и установках человека и - сдать все это в отдел продаж. Цель ясна, пути достижения вроде бы тоже. Есть в Америке компания Cycorp, которая уже двадцать лет работает над созданием искусственного интеллекта и, по собственному признанию, очень близка к успеху. В Cycorp занимаются созданием базы данных здравого смысла (Commonsense Knowledge), которая, как они надеются, позволит компьютеру стать интеллектуальным. Текущее состояние дел таково: обработано 100 тысяч концептов (понятий) и миллион фактов о действительности. По данным компании, инсталляция системы Cycorp на диске занимает менее 100 мегабайт 1. Однако работа по «программированию здравого смысла» еще не закончена. Рискну предположить, что закончить ее невозможно в принципе, потому что здравый смысл должен обеспечивать адекватную реакцию на внешние воздействия, в том числе информационные, делать экстраполяцию на будущее и с учетом этого изменять свое поведение, цели и приоритеты.
Вероятно, правильнее было бы ориентироваться на понимание системой естественного языка, ибо опыт Cycorp показывает: свести записанные на таком языке знания к удобной для программирования форме крайне сложно. Естественный язык обладает ценными качествами, несвойственными языкам программирования: он описывает сам себя, в нем простейшим образом связываются понятия, независимо от сложности их внутренней структуры. Понятия в нем описывают объекты, их части, отношения, способы вычислений, представление конечного результата и все остальное, что может прийти на ум.
Как же подойти к этой задаче? Для начала было бы неплохо определить базис языка, его аксиомы и элементарные смыслы (неупрощаемые понятия), и далее попытаться все остальное описать через них. Отсутствие такого описания приводит к круговым определениям, показательным примером которого может служить фрагмент дневника Иона Тихого [6]:
«…я пошел к Тарантоге, чтобы прочесть о сепульках. Нашел следующие краткие сведения:
СЕПУЛЬКИ - важный элемент цивилизации ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКАРИИ.
Я последовал этому совету и прочел:
СЕПУЛЬКАРИИ - устройства для сепуления (см.) «Сепуление».
Я поискал «Сепуление»; там значилось:
СЕПУЛЕНИЕ - занятие ардритов (см.) с планеты Энтеропия (см.). См. «СЕПУЛЬКИ».
Круг замкнулся, больше искать было негде».
Толковые словари просто кишат подобного рода определениями. Поэтому необходимо было научиться описывать понятия и дать критерии правильности описания.
Первая серьезная попытка разработать такую теорию была предпринята в 1970-х годах советскими лингвистами И.А. Мельчуком и А.К. Жолковским [5]. В их теории «Смысл - Текст» предлагался ряд строгих механизмов описания слова через элементарные или более простые смыслы. Колоссальная работа завершилась изданием в 1984 году (уже в Австрии) Толково-комбинаторного словаря, описывающего около тысячи слов русского языка. Для описания тем же способом всех слов языка потребовалось бы примерно двести лет. Охотников работать на износ в течение двухсот лет, видимо, не нашлось, ибо на мой запрос от 1 февраля 2001 года о состоянии дел в этой области, адресованный в Лабораторию компьютерной лингвистики ИППИ (Институт проблем передачи информации) РАН, пришел следующий ответ: «…кроме того, у нас имеется база данных с полными семантическими толкованиями 1000 наиболее употребительных слов и лексическими функциями к ним…» Значит, спустя семнадцать лет воз и ныне там.
Жить было бы неинтересно, если б не происходили неожиданные приятные случайности - вспомним хотя бы Белла с его телефоном, когда из-за неправильного перевода с немецкого он решил, что немцы уже используют телефон, и придумал, как ему казалось, всего лишь свою реализацию их идеи. Лет двадцать назад книга И.А. Мельчука о его теории «Смысл - Текст» попала в руки профессору математики Петербургского университета Виталию Алексеевичу Тузову. Будучи человеком любознательным, он заинтересовался: действительно ли можно формализовать язык подобным способом и создавать системы, свободно понимающие русский язык. К счастью для всех, он не знал о тех двухстах годах, которые предрекали лингвисты; ему понадобилось пятнадцать лет для разработки первого варианта системного описания русского языка.
Когда первые программы были написаны и опробованы, стало понятно, что том виде, в каком была предложена теория, использовать ее нельзя. Классическая лингвистика близка к философии и далека от строгости математики. Профессору пришлось значительно расширить и уточнить базис языка, описания, придав всей работе вид нормальной математической теории, благодаря чему появилась возможность практического использования знания о языке в программах. Теория базируется на постулате о возможности построения сколь угодно точного анализатора естественного языка. Погрешность анализатора определяется полнотой и точностью описания языка (так называемого семантического словаря). Суть работы анализатора сводится к построению точного смыслового описания текста в виде сети, узлы которой представляют собой некоторые сущности, а связи - отношения между ними. Такая сеть называется семантической; она определяет смысл предложения и не зависит от формы высказывания (от слов и их последовательности).
Возможны различные варианты дальнейшей обработки семантической сети. К примеру, экспертная система попытается применить к сети правила вывода, программа-переводчик по полученному описанию будет синтезировать текст на другом языке, робот будет выполнять инструкции, которые определяются этой структурой. Неоспоримым достоинством семантических сетей Тузова является то, что на них легко и просто накладывается ансамблевая архитектура нейронных сетей. Разработанная теория включает в себя (см. [8]):
- базис языка - отношения, которые могут возникать между сущностями и аксиомы логики отношений, представляющие собой допустимые правила их преобразования;
- классификатор понятий русского языка (сбылась мечта философов!), имеющий вид дерева и являющийся основой описания лексики языка; любое понятие относится к какому-либо узлу классификатора и может иметь произвольное число связей с остальными узлами;
- семантический словарь, описывающий более ста тысяч лексических единиц (слов и словосочетаний) на семантическом языке. Словарь описывает одновременно внутреннюю структуру понятий и информацию для расчета возможных связей слова, а также, где и какие связи могут появиться.
- технология семантического анализа, описывающая алгоритм преобразования текста в смысловое описание (семантическую сеть).
Поясняющий пример см. во врезке.
Слово адресовать в толковом словаре С. И. Ожегова определяется как послать по какому-нибудь адресу, хотя для анализа желательно, конечно, определить его точнее, а именно выполнить действие перемещения чего-либо куда-либо используя чей-то адрес; формула этого высказывания на разработанном семантическом языке будет иметь вид: N%~АДРЕС$12/0171(PerfCaus(Uzor (!Им,АДРЕС$12/0171(!Дат),#), Mov(!Вин, !Откуда, !Через,!Дат\!кДат\!Куда))) В этой формуле слова адресовать написано:
|
Такое описание позволило создавать программы, «понимающие» русский язык лишь на поверхностном уровне; для глубокого понимания нужны знания, которые не содержатся в языке, а усваиваются в течение жизни. Однако появляется возможность ввести эти знания из книг. Это особенно актуально для следующих приложений:
- Интеллектуальные системы анализа текстов (поисковые сервера, программы слежения за потоками информации, системы документооборота).
- Программы-переводчики.
- Программы распознавания устной речи.
- Экспертные и обучающие системы, понимающие речь.
- Персонажи в виртуальной реальности, интерактивных фильмах, способные к адекватному общению.
Некоторое представление о том, насколько использование знаний о языке облегчает поиск информации, дает демоверсия поисковой системы «Алхимик». Программа позволяет работать с хранящимися на винчестере документами пользователя и использует фрагменты словаря и теории Виталия Тузова. Это лишь первое приближение того, что позволяет данная технология, но даже «первый блин» дает впечатляющие результаты (см. таблицу). Программа ищет информацию не по словам, а по смысловой близости, определяя ее по 100-балльной шкале.
Примеры работы на простых запросах
Запрос |
Yandex, Rambler, Google |
Алхимик |
достижения |
Только предложения, содержащие слово достижения |
Результат содержит предложения со словами достижение, достигнутый, добиваться, большой вклад, удаваться |
болеть |
Только предложения, содержащие болеть |
предложения со словами |
достоинство |
Только предложения, содержащие достоинство |
предложения со словами достоинство, честь, самый приличный, честно рассказывать 2 |
Достоинства этого подхода лучше видны на многословных запросах. Во-первых, запросы формулируются на общеупотребительном русском языке, во-вторых, три упомянутые в таблице поисковые системы не могут определять связи между словами, поэтому выдаваемые ими ответы будут содержать и такой текст, где слова запроса не связаны по смыслу. «Алхимик» таких ошибок не делает. Однако пока программа не способна создать полное смысловое описание текста, а работает на смысловых фрагментах размером одно-два предложения. Программа оперирует только поверхностным описанием слов и не может со стопроцентной точностью вычислять смысл сложных языковых конструкций. Сейчас идет работа над версией программы, реализующую полную функциональность анализа языка и свободную от вышеуказанных ограничений.
Уверен, что впереди нас ждет много интересного: сразу несколько организаций работает над внедрением этих технологий в свои программы, создается экспертная система на базе замечательной теории профессора Виталия Тузова, которую он продолжает совершенствовать.
Да здравствуют случайности!
1 (обратно к тексту) - То есть намного меньше 100 байт на средний факт. Это круто! - Л.Л.-М.
2 (обратно к тексту) - Свободный, однако, полет ассоциаций. - Л.Л.-М.
ИСТОЧНИКИ
[1] Акофф Р.С., Эмери Ф.И. О целеустремленных системах.
[2] Амосов Н.М. Автоматы и разумное поведение.
[3] Амосов Н.М. Алгоритмы разума.
[4] Лурия А.Р. Язык и сознание.
[5] Мельчук И.А. Опыт теории лингвистических моделей «Смысл- Текст».
[6] Лем С. Дневники Иона Тихого. Путешествие 14-е.
[7] Тузов В.А. Компьютерная семантика русского языка. Материалы конференции «Диалог-2001»: www.dialog-21.ru/Archive/2001/volume2/2_53.htm.
[8] Тузов В. А. Компьютерная лингвистика. СПБУ, 1998.
[9] Тузов В. А. Прагматический анализ текстов. СПБУ, 2001.
[10] Программа «Алхимик»: www.soft.velton.net.ua/langs_download.html.