В наш век взрывного развития технологий искусственного интеллекта компьютерная лингвистика стала одним из передовых направлений в науке и индустрии. Мы уже активно пользуемся онлайн-переводчиками, голосовыми помощниками и чат-ботами, тогда как в области анализа естественного языка есть много нерешенных проблем. В конце июня в МФТИ прошла 26-я международная научная конференция по компьютерной лингвистике и интеллектуальным технологиям «Диалог», организатором которой выступила компания ABBYY. О некоторых проблемах и достижениях компьютерной лингвистики рассказал участник конференции, профессор Мадридского технологического университета, заведующий лабораторией компьютерной лингвистики Института проблем передачи информации РАН и один из крупнейших специалистов по онтологической семантике Игорь Богуславский.
Искусственное понимание естественного языка
Как в ИППИ РАН, так и в Мадридском политехническом университете я занимаюсь моделированием естественного языка. Это раздел фундаментальной науки, который одновременно относится к разным дисциплинам. С одной стороны, это часть лингвистики, поскольку строится модель ее основного объекта — естественного языка. С другой, эта модель представляет собой компьютерную систему, которая имеет самое прямое отношение к искусственному интеллекту. Для построения такой модели необходимо формальным и исчерпывающим образом описать все основные компоненты языка: его морфологию, синтаксис, семантику и словарь.
В последние годы одним из основных проектов нашей лаборатории компьютерной лингвистики в ИППИ является разработка семантического модуля этой модели. В каком-то смысле семантика как наука о значениях — это центральный компонент языка, поскольку люди пользуются языком, главным образом, для обмена значениями. При моделировании такого обмена особую сложность представляет не столько построение текста, сколько понимание того, что сказал собеседник или что написано в лежащем перед нами тексте.
Здесь главная проблема состоит в том, что естественный язык, в отличие от искусственных формальных языков, насквозь пронизан неоднозначностью. Слова и синтаксические связи между ними, которые составляют текст, часто имеют несколько возможных интерпретаций. При этом в каждом случае реализована только одна, которую мы и должны обнаружить при восприятии текста. Даже такое простое суждение, знакомое всем из школы, как «Бытие определяет сознание», в действительности неоднозначно. Привычная нам материалистическая интерпретация получается, если мы решим, что подлежащим в этом предложении является бытие, а дополнением — сознание. Тогда это фраза гласит, что определяющим является бытие. Однако с точки зрения грамматики, с таким же успехом можно считать, что подлежащим является сознание, а дополнением — бытие. Именно такую структуру имеет очень похожее предложение, в котором такой неоднозначности нет: «Бытие определяют мысли». И тогда предложение приобретет противоположное — идеалистическое — значение: бытие определяется сознанием. Выбор, который человек делает, даже его не замечая, может быть трудно сделать компьютеру.
Язык или действительность?
Для понимания текста требуется не только знание языка — а это само по себе представляет собой большую сложность, — но и владение огромным количеством знаний о мире, об обыденной логике и о текущей ситуации. Например, предложения «Кошка подстерегала мышь возле норы, но она была очень осторожна» и «Кошка подстерегала мышь возле норы, но она была очень нетерпелива» понятны любому ребенку, но компьютеру очень непросто определить, что в первом предложении местоимение она относится к слову мышь, а во втором — к слову кошка.
В этой области нам удалось несколько продвинуться в двух направлениях.
Во-первых, мы привлекаем к анализу текста оба вида знаний – как знания о языке, так и знания о внеязыковой действительности. А для этого надо эксплицитно зафиксировать оба вида знаний и научиться с ними работать. Во-вторых, мы исходим из того, что понимание текста тем глубже, чем большее количество следствий мы можем из него извлечь. Поэтому мы стремимся извлечь из текста не только ту информацию, которая содержится в нем непосредственно, но и ту, которая из него выводится с той или иной степенью надежности.
Тенденции компьютерной лингвистики
В области компьютерной лингвистики меня больше всего волнует тенденция к размыванию границы между фундаментальной наукой и инженерией, а также сползанию фундаментальной науки в сторону инженерии. Этот тренд иногда можно наблюдать и в других областях, когда к фундаментальной науке предъявляются требования немедленной практической отдачи. Я не против того, чтобы наука отвечала на запросы индустрии. Развитие индустрии на базе достижений фундаментальной науки более чем естественно. Но фундаментальная наука не должна ориентироваться исключительно на практические потребности сегодняшнего дня. У нее есть свои задачи, и отказываться от них ей ни в коем случае не следует.
В нашей области этот тренд накладывается на резкую смену парадигмы, которая произошла в компьютерной лингвистике в недавние десятилетия. От парадигмы knowledge-based компьютерная лингвистика перешла к data-based стратегии.
Какую модель выбрать?
Сегодня идет бурное развитие методов, основанных на машинном обучении и, в частности, на нейронных сетях. Подавляющее большинство задач компьютерной лингвистики решаются сейчас именно этими методами. Получено большое количество впечатляющих результатов, как в области обработки текста, так и в сфере звучащей речи.
Однако это не значит, что найден универсальный ключ ко всем замкам, как склонны считать некоторые сторонники машинного обучения. Во многих случаях выбор парадигмы определяется задачей, которую исследователи перед собой ставят. Если мы хотим научить компьютер определять, какие слова близки по значению, а какие стоят дальше друг от друга и насколько, то для этого хорошо подойдут методы дистрибутивной семантики. Они опираются на частоту употребления слов в определенных контекстах. Если же наша задача требует не просто установления факта семантической близости слов, но и выявления того, что именно слова значат и в чем состоят различия между ними (а полная модель языка, безусловно, должна включать и такое знание), то эти методы нам вряд ли помогут. Аналогично, если нашей целью является только получение конкретного полезного приложения, например, системы, способной переводить текст с одного языка на другой, то здесь скорее всего, предпочтительным инструментом будут нейронные сети.
Если же мы хотим, чтобы наше описание некоторого лингвистического явления или фрагмента языка было объяснительным и давало возможность сравнить его с аналогичным явлением другого языка или того же языка, но в другой период времени, то модель на основе машинного обучения нам не подойдет, поскольку она не будет столь прозрачной, как модель, основанная на знаниях. На сегодня при прочих равных условиях лингвистическая модель на основе знаний эксперта обладает большей объяснительной силой, чем модель, полученная с помощью машинного обучения. По крайней мере, при современном уровне технологии.