От автоматической обработки текста к машинному пониманию
Мы публикуем стенограмму и видеозапись лекции, прочитанной директором по лингвистическим исследованиям компании ABBYY, заведующим кафедрами компьютерной лингвистики РГГУ и МФТИ, председателем оргкомитета ведущей российской конференции по компьютерной лингвистике «Диалог» Владимиром Селегеем в рамках цикла «Компьютерная лингвистика» Института лингвистики РГГУ и Лектория Политехнического музея 9 октября 2012 г. в Лектории Политехнического музея.
Ученый рассказал о том, чем отличаются лингвистический и инженерный подходы к задачам автоматической обработки текста, о соотношении компьютерной лингвистики (1) как применения созданных лингвистами предельно формализованных, полных и непротиворечивых моделей и теорий и компьютерной лингвистики (2) как технологии и методологии решения конкретных задач, возникающих из практики использования языка в современных компьютерах, о том, как эволюционировали эти понимания.
Текст лекции
Добрый день. Мы начинаем цикл лекций, объединенных названием «Компьютерная лингвистика». Главная задача этой лекции – разобраться в том, о чем будет этот цикл, потому что это, наверное, очевидно не всем собравшимся. А у тех, кому это очевидно, могут оказаться разные точки зрения. Поэтому наша цель сегодня – найти общий знаменатель.
Компьютерная лингвистика существует уже лет пятьдесят, но так получилось, что у нас в России только в этом году она вдруг стала популярной темой для обсуждения. У нас есть крупная ежегодная конференция по компьютерной лингвистике «Диалог», родившаяся еще в советские времена. Но несмотря на постоянное участие в ней замечательных специалистов из России и из-за рубежа, никакого интереса, допустим, пресса к нашей науке все эти годы не проявляла. Это меня всегда очень удивляло. Но сдвиг произошел именно в этом году – например, сразу в нескольких вузах страны открылись кафедры компьютерной лингвистики. Если говорить о научных исследованиях в области компьютерного анализа естественного языка, то Россия, увы, не находится в авангарде, так что появление этих кафедр вполне оправдано. Пора уже начинать учить студентов компьютерной лингвистике, тем более, что в России есть достаточно успешные группы и коммерческие компании, работающие в этой сфере. И этот цикл лекций в Политехническом – тоже знак перемен.
Цель нашего цикла – создать адекватное представление о компьютерной лингвистке у широкой аудитории. Лекторами будут представители наиболее успешных коммерческих и академических проектов в России. Сегодня я представляю здесь кафедры компьютерной лингвистики РГГУ, Физтеха и компанию ABBYY, которая сотрудничает с этими двумя структурами. Затем здесь будут выступать представители Яндекса, НИУ ВШЭ, IBM, участники академических проектов, ВЦ РАН, наш гость из университета Лидса Сергей Шаров. Сквозная тема цикла – конкретные задачи автоматической обработки языка: те, которые мы умеем решать сегодня, и те, которые мы хотели бы научиться решать завтра.
Для начала мы должны определить те понятия, о которых мы будем сегодня говорить. Мы будем говорить о Естественном языке – сложившейся в ходе эволюции способности человека обмениваться информацией (в самом широком смысле) и хранить ее. Теоретическая, или, как ее еще называют, структурная лингвистика изучает язык как единое целое, рассматривая каждый конкретный язык как реализацию этой универсальной человеческой способности. Имеются другие представления о лингвистике, которые не обладают свойством типологической универсальности, но мы их здесь рассматривать не будем. Мы будем говорить только о лингвистике, которая занимается созданием универсальных моделей языка.
Теперь уточним, что же такое компьютерная лингвистика. Вообще говоря, компьютерная лингвистика совпадает в своих подходах с лингвистикой теоретической. Если бы структурная лингвистика была бы последовательна и успешна в применении тех принципов описания языка, которые были разработаны еще в начале ХХ века, то можно было бы рассчитывать на то, что созданные лингвистами модели и теории обладали бы такой степенью формализованности, полноты и непротиворечивости, что математику и программисту оставалось бы только взять эти модели и применить их к языковому материалу для решения любых мыслимых задач компьютерного анализа языка.
Такое единое понимание задач и методов теоретической и компьютерной лингвистики очень важно, но оно далеко не является общепринятым. Его можно было назвать взглядом лингвиста и назвать компьютерная лингвистика-1.
Есть другое понимание задач и методов компьютерной лингвистики, которое мы будем дальше называть компьютерной лингвистикой-2. Оно представляет взгляд инженера, которому хотелось бы не исследовать язык, а разрабатывать методы решения конкретных задач, возникающих в процессе нашего пользования компьютерами. Эти задачи возникли давно. Машинным переводом, например, еще в 60-е годы очень интересовались различные структуры, желавшие изучать потенциального противника, а задача речевого ввода возникла еще в эпоху больших компьютеров. Но буквально лавина таких задач возникла с появлением сначала ПК, а потом все новых и новых устройств, в которых так или иначе требуется обработка языка. Начиная с самых простых, вроде набора SMS в мобильном телефоне или расстановки переносов и проверки орфографии в редакторе текстов. Или все мы пользуемся поиском в Интернете, рассчитывая на то, что поисковик выдаст нам результаты, соответствующие нашему запросу на естественном языке. Таких задач очень много. По-русски эту область инженерных разработок принято называть Автоматической Обработкой Текста (АОТ), а за рубежом – Natural Language Processing (NLP).
Сегодня мы должны разобраться с тем, чем отличаются лингвистический и инженерный подходы к задачам автоматической обработки текста. Как связаны компьютерная лингвистика 1 и 2, какими знаниями должен обладать специалист в этой области?
Исторически первичным является лингвистический подход к обработке текста. Когда возникли первые проекты машинного перевода и распознавания речи, не было ни малейшего сомнения: чтобы решить эти задачи, нужно прежде всего снабдить их универсальными моделями языка, адекватными сложности этих задач с точки зрения лингвистики. То есть предполагалось: компьютерная лингвистика-2 должна быть основана на хорошей лингвистической теории, тем более изощренной и сложной, чем более сложную задачу мы собирались решать. Заведомым плюсом такого подхода является его универсальность. Понятно, что объектом всех упомянутых процессов является один и тот же язык, поэтому если мы умеем его моделировать – мы можем решить любую задачу его обработки. Заведомый минус такого подхода в том, что компьютерная лингвистика-2 оказывается заложницей компьютерной лингвистики-1. То есть, инженеры полностью зависят от степени готовности, полноты и корректности лингвистических моделей. Лингвист и программист работают сообща, и когда возникает проблема в описании, программист должен ждать, пока она не решится лингвистом. Между тем, лингвистическая теория, к сожалению, обнаруживает неполноту всякий раз, когда вы сталкиваетесь с конкретными вопросами.
Теперь поговорим немного о естественном языке как объекте автоматической обработки текста. Здесь нам придется обсудить тривиальные вещи, без которых мы не сможем продвинуться дальше. Автоматическая обработка языка должна основываться на последовательном анализе языка как иерархической системы. Этапы этого анализа соответствуют тому, что называется «уровнями языка». Есть определенная последовательность этапов, которую должен реализовать инженер. Уточним, что мы говорим сейчас о письменном тексте. Это не слишком принципиально, но обращение к устной речи просто несколько усложнило бы нашу задачу.
Первая задача, которая возникает, когда перед нами оказывается электронный текст как последовательность символов, – произвести его декомпозицию на элементы, которым можно присвоить какое-то грамматическое значение, и далее работать с этими элементами. Обычно выделяют слова (хотя можно работать и с более элементарными единицами), знаки препинания, цифры и т. п. Выясняется, что уже эта задача нетривиальная. И не только потому, что в каких-то языках она затруднена, например, отсутствием пробелов между словами, как в китайском. Отличить слово от словосочетания отнюдь не просто. Но есть и другие проблемы, с которыми сталкивался каждый, кто, например, проверял текст в spellchecker’е. В тексте есть огромное количество элементов, про которые лингвистика никогда не думала: телефонные номера, электронные адреса, формулы, смайлики, элементы таблиц и т. п. Нужно честно признать, что модель текста для задачи лексического анализа нигде толком не описана.
Далее следует морфологический анализ. Если мы выделили какие-то элементы, то нужно определить их статус в системе языка. Для словоформ нужно определить, от какого слова произведена форма, и приписать ей определенные грамматические характеристики (для существительного – падеж, род, число и т. д.).
Следующий этап – синтаксический анализ. Мы интуитивно понимаем и знаем из школьного курса, что в предложении есть некая система связей, которая описывается синтаксисом. В разных языках система синтаксических отношений, образующая синтаксическую структуру предложения, создается разными средствами: вспомогательными словами, грамматическими значениями, порядком слов, пунктуацией.
Далее следует семантический анализ, когда мы от структуры поверхностных синтаксических связей переходим к ее смысловой интерпретации, представленной глубинной семантической структурой. Это формализованное представление, соответствующее той глубине анализа, которая может быть примерно ассоциирована с информацией из толкового словаря языка.
Наконец, прагматический анализ, когда мы интерпретируем то, что получено в результате чисто языкового анализа уже в контексте ситуации или в рамках какой-то модели мира, которая стоит за текстом. Например, такой простой диалог:
– Пойдешь со мной вечером в клуб?
– У меня завтра утром экзамен.
Понятно, что сама по себе фраза «У меня завтра экзамен» обладает вполне определенным собственным значением в языке, но в контексте этого диалога оно означает прежде всего «нет». Таким образом, прагматический анализ требует выхода за чисто языковое знание.
Есть классическая схема, известная как «треугольник перевода», которая описывает идеальный с точки зрения автоматической обработки текста порядок этапов анализа текста, предположительно соответствующей процедуре анализа и синтеза у человека. Вы видите здесь все эти этапы: вершина треугольника соответствует тому смыслу, который извлекает в результате анализа текста слушающий или пытается выразить в виде текста говорящий.
Эта, возможно, несколько идеализированная с точки зрения строгой последовательности этапов модель автоматической обработки текста долгие годы считалась образцовой для решения задач, например, машинного перевода. При этом часто использовались упрощающие схемы, когда пробовали решать задачу, не проводя анализ полностью: не достигая вершины треугольника, но сразу переходя от структуры одного языка к структуре другого языка на том или ином уровне – какие-то системы делали это еще на уровне слов, какие-то проводили синтаксический анализ, какие-то продвигались еще глубже.
Чтобы понять, почему эта модель не позволила достичь желаемых успехов, нужно поговорить о некоторых неудобных свойствах языка. Кстати сказать, попытки решить задачи компьютерной лингвистики очень хорошо помогли в оценке степени этого неудобства. У лингвистов не было адекватной картины, пока они не стали участвовать в такого рода проектах.
Первое и самое неприятное свойство – неоднозначность. Все мы знакомы с тем, что выражения на естественном языке зачастую допускают неоднозначную интерпретацию. На этом часто строятся анекдоты, каламбуры и т. п. Но это только самые простые и очевидные примеры, язык неоднозначен на всех уровнях. Просто мы так устроены, что нашим пониманием языка управляют по большей части контекстные ожидания, и потому мы не замечаем той неоднозначности, которая существует в тексте. Степень этой неоднозначности такова, что для длинного предложения система автоматического анализа языка, которая не обладает знаниями о мире, может порождать сотни и даже тысячи вариантов разбора, каждый из которых имеет под собой какие-то языковые основания. Ну, вот простой пример неоднозначности: «Ассанж раскритиковал Обаму перед Генассамблеей ООН». Читая это, мы понимаем, что вряд ли Ассанж выступал на Генассамблее ООН, и скорее всего, «перед» имеет временное значение. Но это знание – нелингвистическое. Никаким чисто лингвистическим анализом невозможно выбрать правильную интерпретацию. Еще пример: «Управление № 8 Пенсионного Фонда переехало». (Я благодарен Л. Л. Иомдину, который скоро будет читать здесь лекцию о машинном переводе, за этот пример из опыта его работы над системой «Этап»). Нам и в голову не приходит, что «переехало» можно понять так же, как в предложении «множество народу переехало на дорогах автомобилями». И такой разбор, который породила система, с точки зрения языка вполне допустим. Как и в примере «Переезд поездом из Москвы в Кострому стоит 200 руб.». Еще пример – неоднозначность во фразе типа «его семью хлебами не прокормишь». На каком основании здесь можно сделать выбор между существительным и числительным? Вне контекста человек, не очень знакомый с библейскими текстами, почти наверняка выберет не тот вариант, который нам очевиден. То есть неоднозначность – это большая проблема, степень которой выявилась в процессе реальной работы приложений.
Второе очень неприятное свойство – несимметричность языков. Например, разные языки могут иметь принципиально разные способы кодирования одного и того же смысла. Например, в русском языке есть такая аппроксимативная конструкция, которая передает приблизительность с помощью изменения порядка слов. Так, мы говорим: «В аудитории человек двести». Те, кто владеют несколькими языками, понимают, что это – отнюдь не универсальный способ передачи смысла. Это означает, что система дословного перевода в принципе не может справиться с такой проблемой, потому что нельзя уловить на лексическом уровне то, что скрыто в синтаксисе. Есть смыслы, которые в некоторых языках передаются грамматическими значениями, употребление которых в данном языке является обязательным. Например, в русском языке, в отличие от китайского, нельзя не указать число существительного, и когда вы переводите с китайского на русский, вы должны приписать существительному число, которое говорящий вовсе не имел в виду. Еще классические примеры: вид глагола, обязательный в русском языке, но не в английском, или артикли в английском языке. Это очень сложная проблема для правильного синтеза фразы.
Еще одно неприятное свойство языка – избыточность, существование множества альтернативных способов для выражения одного и того же смысла. В лингвистике есть очень плодотворный подход, при котором смысл высказывания определяется как инвариант всевозможных синонимических преобразований. В замечательной отечественной теории «смысл – текст» одна из подсистем описывает некоторые способы перефразирования, существующие в естественном языке. Например, есть несколько способов сообщить о том, что вы отвечаете за успех мероприятия: на вас лежит ответственность, вы несете ответственность, вы ответственны и т. д. Это самые очевидные способы перефразирования, но на самом деле их гораздо больше. Это серьезная проблема с точки зрения анализа, потому что если вы занимаетесь, например, информационным поиском, то вы должны узнать в текстах все перифразы, возможные для исходного запроса. Я надеюсь, что в следующей лекции ребята из Яндекса расскажут нам, как и какими методами они пытаются с этим бороться.
Избыточности противостоит другое неудобное свойство – конвенциональность. В языке есть много допустимых теоретически способов выражения какого-то смысла, которые не принято использовать. На слайде приведены самые простые примеры. Нельзя, например, сказать «потерпеть удачу» или «рой синиц». В языке есть конвенции, которые мы обязаны соблюдать, хотя они не всегда объясняются какими-то явными семантическими ограничениями.
Очень неприятное свойство – эллиптичность. Например, мы говорим «Иванов переехал из Больших Петушков в Малые». Но это простейший пример, а в языке в целом много сложных и плохо описанных схем умолчания, которые очень затрудняют автоматический анализ, потому что мы должны как-то восстанавливать опущенные элементы сообщения.
Наконец, непрозрачность – например, активное использование языком сложных средств референции. Казалось бы, можно устроить все, как у Свифта, герои которого для ясности коммуникации носили с собой мешки с разными предметами и использовали их для указания вместо слов. Язык, к сожалению, устроен так, что в нем есть очень усложненные способы референции. Мы не хотим все время явно называть имя объекта сообщения и начинаем заменять его на местоимения или выражение типа «этот наш приятель» и т. п., что отнюдь не упрощает анализ.
Компьютерные последствия всех этих свойств языка приводят к тому, что почти всегда для решения задачи нам необходим более глубокий анализ, чем нам хотелось бы. Например, мы хотим проверить орфографию. Все системы проверки орфографии работают с помощью словаря и морфологической модели языка и проверяют, можно ли слово, которое встретилось в тексте, свести к тому, что есть в словаре. Но рассмотрим пример: «Простое число делится только на себя и единицу». Увы, так теперь пишет практически большинство и, может быть, именно потому, что spell-checker не замечает здесь ошибки, поскольку неоднозначность разрешается только на уровне синтаксиса. Другой пример: «ООО “Рим” срочно требуются штукотуры, плотники и моляры». Spellchecker обнаруживает ошибку в слове «штукотуры» и оставляет слово «моляры» как правильное, поскольку так называют некоторые молочные зубы. Вопрос: каким способом мы могли бы решить, что слово «моляр» написано с ошибкой, и лежит ли это решение в сфере лингвистики? Ну, наверное, здесь можно рассуждать об однородности в перечислении, но ясно, что в несколько измененном примере и это было бы не так очевидно. Не факт, что нам помогла бы семантика.
Итак, мы обсуждаем вопрос: возможно ли построить технологию автоматической обработки текста на лингвистических описаниях? Первое «но», как мы увидели, состоит в том, что язык – прегадко устроенный организм. Теперь обсудим другое: а достаточно ли полны языковые описания, с которыми мы имеем дело? Когда мы берем на работу лингвистов, то обычно задаем кандидатам разные вопросы. Один из таких вопросов: «Встречались ли вы когда-нибудь с неполнотой грамматик?» Типичны ответы типа: «Да, когда я изучала язык догон, мне не хватило описания коммуникативного линейного порядка» и т. д. Удивительно редко замечают неполноту русской академической грамматики. Есть замечательный пример, за который я благодарен замечательному лингвисту С. А. Крылову. Изучая 2-хтомную академическую грамматику русского языка, он не смог обнаружить в ней явного указания на то, что в норме предлог предшествует существительному. Если мы возьмем такие вещи, как правила образования относительных придаточных предложений или правила образования сочинительных конструкций, быстро выясняется, что в грамматиках имеются колоссальные лакуны. Другой пример. В русской филологической культуре есть замечательный объект – «Большой академический словарь русского языка». Казалось бы, это лучшее, что породила отечественная лексикография. Тем не менее, уже в первых трех томах обнаруживается множество лакун, которые вы видите на слайде (этим специально занимался В. И. Беликов, который будет читать лекцию в этом цикле). Мы говорим о лакунах в словах общего фонда языка, а ведь есть еще региональные нормы языка, об уникальных лексических единицах которых лексикографы даже не догадываются. Региональная норма – это общепринятые способы номинации в конкретном регионе, которые всегда включают слова и значения, неизвестные за его пределами. Пример: «В уголовном деле должны быть подлинники документов. Если это факсимиле документов, то следователь должен их отсветить и заверить». Это Благовещенск, причем речь идет о нормативном документе, то есть в Благовещенске считают слово «отсветить» нормой. А вот пример из Литвы: «Ученики вынуждены отсвечивать на ксерокс учебник по геометрии». Здесь слово «ксерокс» подсказывает, о каком значении идет речь. Здесь я только немного приоткрываю проблему, о которой в одной из следующих лекций, надеюсь, будет рассказано подробно. Получается, что помимо «канонического» русского языка, нормы которого (хотя и с лакунами) зафиксированы в учебниках и словарях, существует региональный русский язык, который насчитывает тысячи никем не описанных единиц.
Посмотрим еще примеры лакун. Вот сейчас в язык входит конструкция типа «до десяти раз меньше первоначальной», которая очень раздражает многих людей. Или слово «демотиватор»: «Подведены итоги конкурса на лучший демотиватор на тему дорожного движения». Если бы мы сейчас сидели в аудитории другого среднего возраста, это слово было бы ей неизвестно.
Последний пример. Есть три варианта: «переадресование», «переадресовка», «переадресация».
Подавляющее большинство в этой аудитории, как мы только что увидели, использовали бы слово «переадресация». Сравним эту вашу интуицию с лингвистическими источниками. «Большой академический словарь» считает основным словом «переадресование». На него ссылается слово «переадресовка», которое, таким образом, считается менее употребительным. О существовании слова «переадресация» словарь умалчивает. В Русском национальном корпусе в текстах ХХ в. соотношение этих слов 1:8:2, то есть в ХХ в. преобладает «переадресовка». В ХХI в. – 0:4:8, то есть «переадресация» вроде бы незначительно выигрывает. В «Журнальном зале» – 1:17:18, в «Библиотеке самиздата» – 2:35:120. Но уже подсчет по блогосфере дает совершенно иное соотношение – 0:6:600.
Это ставит вопрос о том, какой источник знания о языке адекватен нашей языковой интуиции, и заставляет признать, что в каких-то сферах наше академическое знание о языке отстает от того, что происходит в жизни. Еще один маленький пример: «Мэрия согласовала нам маршрут движения». Кто считает, что дательный падеж употреблен правильно? Если вы посмотрите блогосферу, то увидите, что конструкция с дательным падежом очень интенсивно употребляется. Возможно, что она не московская, поэтому в зале немного рук. Мы видим, что лингвистический анализ должен быть дифференциальным. К сожалению, эта идея не вполне еще овладела умами.
Итак, подведем итоги. Существенный минус традиционного лингвистического подхода состоит в том, что КЛ-2 полностью зависит от КЛ-1, то есть инженеры зависят от лингвистов. В предыдущие десятилетия КЛ-2 не удалось основать на КЛ-1, потому что язык оказался слишком сложен для исчерпывающего формального описания. Лексикография до последнего времени не владела средствами, позволяющими отслеживать реальную языковую ситуацию. Внутренние структуры – семантика и синтаксис – не даны нам в непосредственном наблюдении. Можно долго спорить, какая синтаксическая модель языка верна – модель Хомского или модель «Смысл – Текст», но на самом деле очень трудно апеллировать к чему-то объективному, когда речь идет о синтаксисе и семантике. Наконец, языковое сообщение не может быть декодировано в границах чисто лингвистической модели без контекста и знания о мире. То есть существует множество причин искать такие пути, и такие пути давно намечаются.
Приведу несколько цитат, принадлежащих представителям инженерного направления компьютерной лингвистики. Имен называть не буду, потому что я эти цитаты немного адаптировал.
«Описание языка является более сложной задачей, чем любая прикладная задача».
«Моделирование естественного языка не рационально для задачи автоматического анализа текста».
«Правильное представление синтаксических и прочих отношений неизвестно, следовательно, мы должны в минимальной степени считаться с ограничениями, следующими из таких гипотетических уровней описания».
«Каждый раз, когда я увольняю лингвиста, производительность системы возрастает».
Последнее высказывание анекдотично и приписывается сразу нескольким лицам, которые от него, как правило, открещиваются. Но популярность его очень велика. Еще один характерный пример. На конференции по компьютерной лингвистике проходит постерная сессия, и на многих постерах, посвященных разным задачам анализа на материале разных языков (допустим, извлечению каких-нибудь именованных сущностей из текстов на арабском языке) внизу написано: автор арабского языка не знает и в своем докладе не привлекал никаких явных лингвистических знаний об арабском языке. Это в современной компьютерной лингвистике как бы знак качества: получить результат, не пользуясь никакой лингвистикой, очень круто.
Лет пять назад на конференции «Диалог» был круглый стол под названием «Синица или журавли». Идея состояла в том, что для зарабатывания денег автоматической обработкой текста надо, возможно, ставить на синиц в руке, а не на журавлей в небе. Это та ситуация, в которой находится компьютерная лингвистика сегодня.
Назовем задачи КЛ-2: проверка грамматики, правописания и стиля, распознавание текстов, распознавание и синтез речи, машинный перевод текста и речи, поиск нужного документа по запросу, сжатие, классификация текста по содержанию, установление сходства текстов, автофильтрация нежелательных документов, электронные словари, вопросно-ответные системы, системы извлечения знаний и т. д.
Многие такие задачи пытаются решать сегодня методами, которые я отношу к «синицам», без сложных лингвистических моделей. Вы выбираете какую-то очень частную модель, ориентированную ровно на эту задачу, и никакую другую.
Инженерный подход, о котором я говорю, возник не сегодня. Разочарование от попыток использовать существующие лингвистические модели возникло очень давно. Так, был период большого интереса к представлению знаний, и попытки решать некоторые частные задачи с минимумом лингвистического моделирования.
Ну а потом, в конце прошлого века случилась т.н. «статистическая революция» (а для кого-то - контрреволюция) – с появлением и бурным ростом Интернета стал доступен колоссальный объем электронных текстов, причем таких, которые раньше вообще не попадали к исследователю. Интернет позволяет нам изменить шокирующую асимметрию между лингвистическим описанием и интуицией людей (ее мы видели на примере слов «переадресование» и «переадресация»), вводя в рассмотрение лингвиста огромное количество текстов, соответствующее реальной языковой ситуации. Но с этим может также работать инженер. То есть на таких объемах оказываются эффективными чисто статистические методы решения некоторых задач. Например, можно решать, правильно написано слово или нет, анализируя частоту его употребления. Можно делать это не с отдельным словом, а смотреть на т.н. энграммы – двойки, тройки, четверки, пятерки слов. То есть на уровне модели сочетаемости можно решать разные задачи, не используя никакой лингвистики. Для некоторых задач статистические методы позволяют обходиться без дорогостоящих описаний, сделанных профессиональными лингвистами.
В чем суть статистического подхода? Раньше мы считали, что для решения задач автоматической обработки текста нужно иметь адекватные модели языка. Теперь для того, чтобы решать задачи, нужно собрать как можно большее количество текстов и использовать большие вычислительные мощности для извлечения сведений. Это абсолютно новая ситуация, которой не было еще двадцать лет назад.
Заведомыми плюсами чистых статистических подходов является алгоритмическая простота решения, пусть даже несовершенного, многих задач, включая машинный перевод. В автоматической обработке текста мы в ABBYY идем иным путем, но я не могу не отдать должное статистическому подходу, потому что если мне нужно понять какой-то текст на, допустим, латышском языке, то я пользуюсь Гуглом, и он мне реально помогает разобраться, несмотря на все несовершенство выходного текста. Это очень важно, что появились такие способы решать задачи, до которых лингвисты еще не скоро доберутся.
Заведомые минусы – отсутствие универсальности и связи с системой понятий языка. Статистические методы строят частотные модели, модели сочетаемости, которые совершенно не соответствуют тому треугольнику, который мы с вами рассмотрели. Здесь есть математика, которая позволяет работать с отображениями на самых верхних уровнях языка – может быть, с небольшой долей синтаксиса, той, которую можно получать автоматически.
Этот слайд взят из очень дискуссионной работы. Это спор между Ноамом Хомским, специалистом в области генеративного синтаксиса и лингвистики, и Питером Норвигом, крупнейшим специалистом в области искусственного интеллекта, по поводу того, полезно ли пользоваться статистическими моделями. Мнение Норвига – гипербола, которая, тем не менее, отражает точку зрения специалиста. Если бы все было так, как пишет Норвиг, то лингвистика должна была бы заниматься только своими внутренними задачами, а за компьютерную лингвистику отвечали бы инженеры, работающие с корпусами. Но, к счастью для лингвистов, мир устроен сложнее.
Есть один пример, который я демонстрировал на своих лекциях в течение ряда лет. Речь шла о невозможности целенаправленной отладки чисто статистической системы перевода. С мая 2009 по июнь 2012 гг. Гугл переводил предложение «The approval of CFO is required» следующим образом: «Утверждение финансового директора не требуется». Нужно сразу сказать: вопрос, почему Гугл переводит какую-то лингвистическую структуру так, а не иначе, не является, строго говоря, корректным. Гугл переводит так потому, что так устроены параллельные сопоставляемые массивы русских и английских текстов, которыми он пользуется. Значит, что-то в этих корпусах и процедурах их сопоставления устроено таким образом, что перевод получается именно таким. На лекциях мы обсуждали, как исправить эту ошибку при чисто статистическом подходе. Первый – расширить анализируемые данные. Второй (не вполне честный) – загнать в базу специально подобранные примеры правильных переводов. Я подозреваю, что Гугл воспользовался тут вторым методом. Сейчас я приведу доказательство. В октябре 2012 г. Гугл стал переводить это предложение так: «Утверждение финансового директора требуется». Кажется, что это победа. Но теперь поменяем предложение на “The approval of CEO is required” Вот результат, который я получил три часа назад: “Утверждение генерального директора не требуется”. То есть вопрос о возможности целенаправленной отладки остается неразрешенным.
Мы уже сказали, что недостатком статистических подходов часто является отсутствие языковой структуры. Посмотрим это на другом примере: «He told me he had already had a letter from Mary which he would have enjoyed answering but he had to ignore it.» Вот перевод Гугла: «Он сказал мне, что он уже получил письмо от Марии, который он наслаждался бы ответить, но должен был игнорировать ее». Плох или хорош этот перевод – вопрос сложный. Конечно, обычный человек, наделенный здравым смыслом, способен, не зная английского языка, восстановить смысл. Могу похвастаться, что сегодня утром я перевел эту фразу с помощью ABBYY Compreno существенно лучше: «Он сказал мне, что у него есть письмо от Мери, которым он наслаждался бы, отвечая, а ему пришлось игнорировать его». С точки зрения русского языка, этот перевод также несовершенен, но все же он во много раз лучше. Объясню почему.
Что стоит за корявостью перевода? За ней может стоять невозможность воспроизвести все стратегии, стоящие за системой синтеза текста у человека. А может, полное непонимание смысла переводимого. Я взял предложение и пометил в нем цветом т.н. референциальные связи. Все, что обозначено синим, – это один объект. А то, что обозначено зеленым, – разные упоминания другого объекта. Это знание очень важно. Представьте себе, что вы занимаетесь компьютерным поиском информации. Для информационного анализа очень важно понимать, кто такой «he», и с каким объектом связан «which» и «it». В переводе Гугла мы видим полный произвол в выборе формы местоимения. Это легко доказать: вы будете менять формы, а перевод останется тем же. То есть информация о связях полностью отсутствует.
А вот на этом слайде показана полная лингвистическая структура, которая есть у этого предложения. Это – одна из возможных лингвистических структур, которые мы получаем при разборе ABBYY Compreno. Я прошу вас обратить внимание на эти фиолетовые стрелки, которые связывают референты в этом предложении. То есть лингвистическая структура показывает очень важные для инофрмационного анализа связи между объектами в предложении. Это и есть то, что можно ассоциировать с пониманием предложения.
Подведем итоги. Чем же нехороши чистые подходы? Лингвистический подход сложен в реализации, игнорирует вероятностную природу языковых ограничений, умеет строить правильные языковые структуры, но не умеет выбирать единственно верную (самую вероятную). Статистический подход использует примитивные модели, не умеет обобщать при обучении. Если вы получаете сочетание с некоторой глагольной формой, вы понимаете, что в системе языка можно построить множество производных сочетаний по законам языка, но статистическая система этого обобщения делать не умеет. Она обучается на конкретных примерах и не умеет делать обобщений, которые требуют лингвистического знания. Она быстро достигает предела по качеству, но при этом возникает следующая проблема: как сделать лучше, чем у соседа? Алгоритмы открыты и опубликованы, только у одного при их применении получается 85.2, у другого – 85.3, и он победил. Но это не тот путь, которым хотелось бы идти к совершенству.
Важно, что статистическая революция открыла путь к реальному многоязычию. Но самое главное, что методы статистической оценки и машинного обучения стали использоваться и в подходах, основанных на лингвистических моделях. Появились гибридные системы, правда, направление соединения может быть разным. Можно брать статистику и добавлять в нее лингвистику. У нас другой подход: мы берем лингвистические модели и обучаем их на корпусах. Наш подход нам кажется лучшим.
Важно также, что системы, основанные на статистике, создали принципиально новый базовый уровень для оценки систем: вы можете теперь очень быстро создать систему, на фоне результатов которой можно оценивать другие подходы. Лингвистические системы невысокого качества оказались экономически неэффективны. Конечно, это печальный результат для тех, кто занимался такими системами.
Таким образом, магистральный путь компьютерной лингвистики – соединение статистико-математических методов с результатами лингвистического моделирования.
Это соединение является взаимополезным: чтобы преодолеть те проблемы лингвистики, которые мы обозначили выше, можно воспользоваться методами, которые предоставляет компьютерная лингвистика. Так, для ускорения и повышения надежности языковых описаний можно и нужно использовать новые способы получения лингвистического знания, например, корпуса текста.
Хочу сказать несколько слов по поводу машинного обучения. Есть математические методы, которые позволяют решать, например, задачу классификации. У вас есть множество объектов интересующего вас типа, и вы хотите иметь диагностическую процедуру, позволяющую решить, относится или не относится к этому множеству новый объект. Есть несколько областей, где это обучение может быть эффективным, например, идентификация искусственно сгенерированных текстов или фильтрация спама. Все мы являемся жертвами спаммеров, причем спам часто генерируется роботами, и нужно придавать им некоторую вариативность, чтобы эти тексты распознавались как натуральные. Если вы попытаетесь решить проблему распознавания спама чисто лингвистическими методами, у вас ничего не получится. Никто из лингвистов не способен дать четкий ответ на вопрос, чем отличается натуральный текст от ненатурального.
Гораздо более эффективен метод машинного обучения. В чем он состоит? Вы берете большое количество натуральных и ненатуральных текстов и пытаетесь с помощью математических методов определить, какие параметры, доступные вам для анализа в этих текстах, делают их натуральными или ненатуральными. К сожалению, сегодня методы машинного обучения чаще всего ориентируются на простые модели сочетаемости слов. Тем не менее, даже это дает очень эффективные результаты. То есть спам-фильтры работают хорошо. Неплохо работают методы определения пола автора.
Но есть и более лингвистические задачи – например, задача референциального выбора. Здесь на слайде приведен пример текста про футбольную команду "Манчестер Юнайтед" – одним и тем же цветом показаны одинаковые референты, и видно, как по-разному они упоминаются в тексте. Понятно, что в языке есть некая стратегия использования референциальных выражений: в одних случаях будет использовано местоимение, в других – полная именная группа и т. д. Изучать такие вещи помогает метод машинного обучения. На эту тему есть отечественные работы, например, представленная в прошлом году на "Диалоге" совместная работа групп А. А. Кибрика и Н. В. Лукашевич по применению таких методов для изучения механизмов референции. Для этого нужен специально подготовленный корпус, в котором произведена уже достаточно сложная разметка, и мы пытаемся изучить, какие параметры этой разметки существенны для референциального выбора. Что здесь важно? То, что если вы изучаете референцию, вы не можете работать только с сочетаемостью – так у вас ничего не получится. Для того чтобы ваши выводы из применения машинного обучения были эффективны, у вас должны быть адекватные параметры. Не верьте тому, кто говорит, что с помощью машинного обучения можно получить знание из чего угодно, – это не так. Все зависит от того, какие параметры разметки представлены в обучающем корпусе. Если у вас там только последовательность символов и ничего больше – вы не сможете научиться ничему серьезному. Выбор пишущего зависит от большого количества факторов и имеет вероятностную природу. Выдумать из головы те факторы, которые существенны для референциального выбора, невозможно. То есть в языке присутствуют такие механизмы, изучение которых "из головы" попросту невозможно. Здесь на помощь приходит компьютерная лингвистика. Нужные факторы должны быть представлены в корпусе в виде разметки, потому что если у вас адекватный фактор попросту отсутствует, то вы не можете ничему обучиться.
Здесь мне хотелось бы провести аналогию с компьютерной медициной. Представьте себе, что в мире существует огромное количество медицинских учреждений и очень много больных. Их лечили, есть история болезни. Представьте себе, что мы пишем обучающую программу для средств медицинской диагностики. Вполне понятная задача. Теперь представьте себе, что вы решаете ее примерно так, как это чаще всего делается в компьютерной лингвистике: берете в истории болезни только данные о температуре, давлении и цвете кожных покровов. Какой-то результат вы получите. Но вряд ли без доступа к УЗИ или сканированию сосудов вы получили бы какую-то реальную диагностику. Сейчас в компьютерной лингвистике методы машинного обучения работают «с температурой и давлением», а мы хотели бы, чтобы они работали и со всем остальным. То есть, на наш взгляд, возникает новая парадигма компьютерной лингвистики.
Перейдем к вопросам.
Обсуждение лекции
Вопрос из зала: Нельзя забывать о том, что человек, пользующийся услугами машинного перевода, достаточно часто начинает вырабатывать свой протокол общения с этой переводной машиной. Освоив, как фраза с Мери переводится с английского на русский, ее точно так же можно перевести с литовского на русский. Осознать применяемые алгоритмы и их слабость и выработать свой протокол предоставляемой тем же Гуглом информации. Что делается в этой области?
В. Селегей: Вы знаете, мне сложно интерпретировать ваш вопрос и комментарий. Я не уверен, что мы одинаково смотрим на эти вещи. Во-первых, есть понятие «контролируемые языки». Это очень почтенное направление в машинном переводе. Это способ пользователю и системе найти друг друга. Изучая систему машинного перевода и пользуясь подсказками разработчиков, вы пробуете создать такой язык, который будет легко переводить, то есть язык, лишенный сложных мест. Таким образом, адаптация пользователя под систему машинного перевода, безусловно, имеет место. Но я не очень понял, какой инсайт после перевода с английского на русский поможет переводить с литовского на русский. Определенные технологии делают определенные методы запрещенными. Если у вас чисто статистический подход, то вам очень трудно изучать алгоритм, потому что этот подход полностью построен на данных. Под него можно подстроиться, если у вас нет выбора. Как делать это систематически – я не знаю и не уверен, что этим нужно заниматься.
Вопрос из зала: Я имел в виду, что при разговоре с разными собеседниками – с вами, с ребенком, с собакой – выбирается тот протокол общения, который делает общение плодотворным. Аналогичным образом можно найти протокол, который сделает плодотворным общение с системой.
В. Селегей: У меня есть ребенок, но не было никакого протокола общения. Не очень понимаю, что вы имеете в виду. Конечно, в разговоре вы адаптируетесь под вашего контрагента. При использовании системы машинного перевода у вас просто есть текст, который надо перевести. Могу добавить, что сейчас очень популярно направление интерактивного машинного перевода, когда вы пытаетесь что-то подсказать системе. Но мне неизвестна ни одна система интерактивного перевода, основанная на статистических моделях. В основном они основаны на лингвистике, потому что там понятно, что спрашивать. Вы можете спросить: «Каково значение этого слова?» А в статистической системе нет значений – она основана на соответствиях.
Вопрос из зала: Что происходит с семантикой? Будет ли туда двигаться перевод? Или мы останемся на уровне морфологии и синтаксиса?
В. Селегей: Я вам показывал структуру разбора, которую мы получаем. Это структура семантическая в том смысле, что там уже произведена унификация, сделан переход от поверхностных описаний конкретного языка к неким универсальным семантическим представлениям. Я не знаю других компаний в России и за рубежом, которые действуют таким способом, но знаю много академических коллективов, которые в решении проблем ориентируются на лингвистические описания. Есть академические и коммерческие системы, которые работают сразу с прагматикой. То есть пытаются перепрыгивать через какие-то детали семантического описания, упрощая задачу за счет ограничения предметной области и языка.
Вы, наверное, спрашивали о семантике по гамбургскому счету. Вообще говоря, иногда семантика является очень плохим ограничителем – то есть вы не можете выбирать, ориентируясь только на нее. Мы рассмотрели много примеров, где решающей является прагматика. Но семантика может хорошо улавливаться статистическими методами. Если у вас есть хорошая модель, вы можете дообучать ее на корпусах. Например, селекционное ограничение на заполнение тех или иных позиций в модели. Лингвисту сложно описать это с помощью точных терминов, а статистика помогает отчасти решить эту проблему.
Есть замечательное и очень популярное сейчас направление – дистрибутивная семантика. Это попытка построить систематическое описание на корпусных данных. Ведущими специалистами в этой области являются, например, Марк Барони, которого мы очень хотим пригласить на следующий «Диалог», или Сергей Шаров, который будет выступать здесь 6 ноября. Это попытка изучать языковые свойства за счет анализа типичных коллокаций. Вы можете получать и изучать полученные таким образом языковые семейства. Здесь семантику можно ухватывать с помощью статистики.
Вопрос из зала: Как, по вашему мнению, влияет использование автоматических систем перевода на сами естественные языки?
В. Селегей: Это очень важный вопрос. Система проверки орфографии катастрофически ухудшила ситуацию с грамотностью. Сейчас есть серьезная проблема в китайском языке, куда из-за существования машинного перевода вторгается множество иноземных моделей. Влияние систем грубого и неточного перевода на язык может быть очень значительным.
Вопрос из зала: У меня два вопроса. Первый – по поводу стадий анализа и, прежде всего, лексического анализа. Вы имели в виду выделение лексем или что-то другое?
В. Селегей: Да, только имеется в виду расширенное понимание лексемы.
Вопрос из зала: Второй вопрос. Какова степень минимальной лингвистической подготовки, необходимой программисту для того, чтобы успешно помогать в проектах лингвистам, и степень инженерных способностей, необходимых лингвисту для общения с программистами? Должны ли программисты знать основы лингвистической теории? Должны ли лингвисты уметь писать прототипы на каком-то простом языке? Ведь при смешанном подходе должны работать и лингвисты, и программисты.
В. Селегей: Действительно, смешанный подход требует специальной организации человеческих ресурсов. Для этого, например, мы сделали одну кафедру в РГГУ, а другую в Физтехе и собираемся запускать серьезные научные проекты, в которых смогут участвовать студенты и РГГУ, и Физтеха. При этом лингвисты получают представление об инженерных моделях, а инженеры – о лингвистике. Но здесь все зависит от задач, которые вы решаете. На мой взгляд, при решении простых задач абсолютное преимущество имеет инженер, обученный лингвистике. Есть другая проблема. Мой опыт общения с физтехами показывает, что выбор профессии в нашей стране – произвольный акт. То, что человек стал программистом, а не лингвистом, объясняется не тем, что у него не было соответствующих способностей. Я нахожусь под большим впечатлением от чтения лекций по лингвистике физтехам, потому что я обнаруживаю в аудитории большую степень лингвистического аналитизма, и решать с ними задачи – одно удовольствие. Но когда нужны сложные описания – нужен профессиональный лингвист, умеющий работать с инженером.
Вопрос из зала: В следующем году я планирую поступать на вашу кафедру. Я думаю о том, что вы читаете лекции по лингвистике на Физтехе и обнаруживаете у студентов лингвистическую жилку. А есть ли у лингвистов, которые начали учиться в этом году, инженерная жилка? Не будет ли скучно среди гуманитариев?
В. Селегей: Мы не готовим солдат армии компьютерной лингвистики. Я не случайно сказал о КЛ-1. С моей точки зрения, современный лингвист обязательно должен быть и компьютерным лингвистом. Если вы хотите заниматься самостоятельными лингвистическими исследованиями, у вас должен быть свой набор компьютерных инструментов. Вы должны владеть определенными методами анализа. Поскольку не всегда в вашем распоряжении есть что-то готовое, вам необходим некоторый уровень технической подготовки, чтобы сегодня быть лингвистом на международном уровне. Вы должны уметь работать с корпусом, уметь статистически обрабатывать результаты, уметь писать простые тексты на Питоне, работать с пакетами статистической обработки, которые ориентированы на лингвистов. Лингвисту выучить это несложно, потому что лингвист – это человек точного знания. С самого своего создания лингвистика была сильно математизированной наукой, и те структуры, с которыми работает лингвист, – это, по существу, математические структуры. Так что здесь нет никакого противоречия.
Вопрос из зала: Значит, лингвист со знанием С++ – это мощная сила?
В. Селегей: Хороший лингвист – да.
Вопрос из зала: У меня два вопроса. Первый. Насколько анализ текстов из Интернета учитывает грамотность контингента глобальной сети? В мае 2012 г. я подбирал слова для онлайн-теста по принципу того, насколько часто в Гугле встречается их правильное написание. Меня поразило, что слово «агентство» правильно пишется только в 12% случаев, а «винно-водочный» - в 24%.
В. Селегей: Ваш вопрос совершенно уместен, но его актуальность исчезает, если работать с Интернет-корпусом правильно. Дифференциальная лингвистика, о которой я говорил, основывается на том, что вы с самого начала не относитесь к корпусу как к однородному массиву текстов, но классифицируете его содержание. В. И. Беликов будет рассказывать в своей лекции про сегментный подход к Интернету, о том, насколько Интернет неоднороден. На самом деле, существует очень мало однородных массивов текстов. Есть очень много типов различий, которые нужно учитывать, в том числе – грамотность. Суждение о том, что кто-то что-то пишет с ошибками, по отношению к Интернету в целом – бессмысленно. Ваша статистическая оценка должна быть привязана к типу говорящего и пишущего. Все это – вопрос правильной оценки материала, с которым вы работаете. Нельзя ориентироваться на данные поисковых систем, не проводя дополнительного анализа, потому что поисковые системы не созданы для лингвистических целей. К сожалению, не все лингвисты проводят такой анализ.
Вопрос из зала: Второй вопрос. В 1970-х гг. в книжке «Занимательная лингвистика» говорилось о том, что уровень развития искусственного интеллекта находится на уровне пятилетнего ребенка. Какую бы оценку вы дали сейчас?
В. Селегей: Я не специалист по искусственному интеллекту. Если брать уровень владения языком, то никакая система автоматического анализа даже близко не подходит к уровню пятилетнего ребенка. Нужно говорить о конкретных задачах. Какие-то задачи сегодня компьютер решает лучше, чем человек. Например, разметка корпуса по частям речи – современными средствами можно разметить текст в миллиард слов с той же точностью, с какой человек делает это на небольшом корпусе. При этом у человека нет никаких шансов разметить корпус в миллиард слов. Синтаксическая разметка удается немного хуже.
Вопрос из зала: Я со стороны программистов. Мне понравилась ваша аналогия с больницей – про то, что по двум параметрам нельзя поставить диагноз. Сколько параметров используется в коммерческих системах машинного перевода? Какой уровень сложности необходим, чтобы успешно продаваться?
В. Селегей: В коммерческих системах могут использоваться любые параметры. Например, «Систран» или «Промт» основаны на моделях, в которых есть нормальное синтаксическое описание. Система статистического машинного перевода обычно работает на энграммах, в том числе на лемматизированных энграммах – тех, которые приведены к основной форме.
Вопрос из зала: То есть пока не построено сложных моделей, которые были бы успешны?
В. Селегей: Проблема состоит в том, что для того, чтобы система статистического анализа стала работать со сложной моделью, у нее должен быть очень большой исходный обучающий массив. Приведу пример. С. Шаров был участником соревнования по синтаксическому анализу на «Диалоге» в этом году. Первые два места заняли системы, которые были основаны на лингвистических описаниях. Статистическая система Яндекса заняла третье место. С. Шаров участвовал в этом соревновании неофициально со своей системой, целиком построенной на методах статистического обучения. Эта система заняла третье место, чуть-чуть уступив второй. При этом она обучилась именно на большом тестовом корпусе, размеченном этой самой второй системой. Это создает некую проблему. Люди затратили на создание системы двадцать лет и выставили ее на всеобщее обозрение, после чего специалисты по машинному обучению могут размечать с ее помощью большие корпуса и обучать на них свои системы так, что они будут работать ненамного хуже оригинала. Этот парадокс заставляет нас серьезно относиться к проблемам конфиденциальности.
Вопрос из зала: У меня достаточно глупый вопрос. Я думаю, все так делали: брали в системе машинного перевода очень сложное предложение, переводили, допустим, с русского на английский, а потом конечный результат – обратно на русский. И так несколько раз. В итоге обычно получается бессмыслица. Я так понимаю, что происходит это оттого, что статистическая система берет наиболее употребимую форму. Например, если у слова есть несколько вариантов перевода, то рано или поздно мы придем к совершенно бессмысленному предложению.
В. Селегей: Ваш вопрос не совсем корректен. Дело в том, что для статистических систем перевода такое реверсирование может оказаться менее чувствительным, чем для лингвистических. Если лингвистическая система хорошая, она не будет давать вам все время одно и то же, но будет что-то менять. Конечно, в процессе она может прийти к неоднозначности, которой вначале не было, и перевод испортится. Ну а если система плохая, как, к сожалению, большинство лингвистических систем еще с 1970-х гг., то она быстро сломается, потому что у нее нет собственно лингвистической структуры. Они грязно переводят и не могут анализировать ими же созданную грязную структуру. А в статистических системах, если у вас одинаковые множества, вы можете переводить справа налево и слева направо, ничего при этом не меняя. Хорошо это или плохо – неизвестно, но статистические системы более устойчивы.
Вопрос из зала: То есть либо вариативность, либо устойчивость? Золотой середины нет?
В. Селегей: Не могу правильно интерпретировать ваш комментарий. На всякий случай отвечу «да».
Вопрос из зала: Какой должна быть система перевода, чтобы правильно переводить неоднозначности? Элементарное предложение: «У нашей кошки родились котята – белый, рыжий и черный». Перевод на английский: «У нашей кошки родились котята – белый, рыжий и афроамериканец».
В. Селегей: Анекдоты о работе систем перевода очень популярны. Цена всего этого невелика, потому что люди не видят реальных проблем. Проблема, которую вы обозначили, очень похожа на «штукотуров и моляров», о которых я говорил. В принципе, лингвистические правила позволяют определить синтаксическую и семантическую однородность сочиняемых элементов. В этом смысле в ряду животных политкорректное обозначение человека может быть не вполне уместно. Но наверняка вы сможете подобрать пример, в котором это соображение окажется нерелевантным, и у вас опять получится не то. Проблема в том, что здесь для отсечения некорректных вариантов необходимо привлекать также экстралингвистические модели.