Найти тему
Сервантес не шутит

Божество из машины или насколько хорошо ИИ может предсказать перевод

Люди пользуются машинным переводом, это факт. Трудно представить себе жизнь без всех этих сервисов. Современные движки машинного перевода удобны: не нужно искать по одному слову, получаешь вполне внятный перевод текста здесь и сейчас. Но перевод ли это?

Примерно 15 лет назад, когда первые подобные сервисы только начали появляться, было понятно, что результат их работы далёк от совершенства. Хотя с бытовыми фразами они справлялись, если речь заходила о чём-то посерьезнее, на выходе получалась невнятная ерунда.

Ситуация начала кардинально меняться в 2013 году, когда чешский студент, Томаш Миколов, придумал (вместе с соавторами), как задавать векторное описание слов. А с 2015 года нейронные машинные переводчики стали расти как грибы после дождя. Первым был "OpenMT’15", за ним последовал "WMT’15", а потом подтянулись все остальные: "Deepl", "Google", "Яндекс" и другие.

-2

Рис. 1. Т. Миколов (источник).

По началу все очень сильно обрадовались. Вместо привычной белиберды машины стали выдавать гладкий (почти) и понятный (с виду) текст. Казалось: его достаточно лишь немного "причесать" и можно отправлять в публикацию. Однако потом обнаружились недостатки, которые обусловлены принципом работы нейронных машинных переводчиков.

Каким именно?

Томаш Миколов описал принципы технологии word2vec (подробнее о ней можно прочитать здесь), которая используется при обучения нейронных сетей переводу. Если сильно упростить, заданной нейросети скармливают корпус текстов на естественном языке: статьи из «Википедии», классическая литература, твиты и др. Сеть же строит вектор каждого слова, на основе условно понимаемой контекстной близости. Почему «условно»? Потому что векторы слов, которые в корпусе окружены (внимание!) одинаковыми словами, считаются похожими или соотносимыми. Как это выглядит на практике: все слова из вашего корпуса текстов превращают в таблицу: и столбцы, и строки это набор уникальных слов из корпуса, а в ячейках на пересечении стоблца и строки числовое значение – это частота сочетания двух конкретных слов. Вот и вся премудрость. Значений слов нейросеть всё ещё не понимает!

Здесь стоило бы рассказать о дистрибутивной гипотезе, но как-нибудь в другой раз.

Итак, если взять достаточно большой корпус текстов, то нейросеть может посчитать, как часто какие-то слова попадают в одинаковое окружение и на этом основании построить вектор. Самым популярным примером стали векторные представления слов «женщина», «мужчина», «королева» и «король» (см. рис 2). Это полезно много для чего, например, для работы поисковиков. Проблема в том, что нейросети абсолютно до лампочки, какие значения у слов, если они встречаются в одинаковом окружении одинаково часто, их векторы будут считаться похожими.

-3

Рис. 2. Соотношение слов, выявленное благодаря векторному представлению слов (взято отсюда).

К чему это ведет на практике? Допустим Вы пользователь Яндекс.переводчика и вам нужно перевести текст с польского на русский. При переводе вы столкнетесь с тем, что в итоговой выдаче вместо "Польша" в русскоязычном тексте будет написано "Россия", а вместо злотых рубли, и это реальный пример. Видимо, в учебных корпусах текстов Польша и Россия были окружены словами типа "страна", "моя" и "родная", а злотые и рубли словами "валюта" и "национальная". Движок построил векторы, сравнил их, они оказались очень похожи. Конечно, если Вы хотя бы немного понимаете по-польски, то ошибку заметите. Но предсказать, где её искать, рядовому пользователю будет трудновато.

К сожалению, полностью избежать подобных недоразумений пока нельзя, поскольку нейронные сети работают не со смыслами, а с числовыми значениями, и присваиваются эти значения по сугубо внешним формальным признакам. Ведь не только в словах или их сочетаниях кроется смысл высказывания, но и в самом строении фразы, абзаца, текста (например: «Он совсем не дурак!»; «Он не совсем дурак!»).

Вернемся к первому вопросу: насколько верно назвать «переводом» результат работы машинного переводчика? Как можно понять из этого краткого обзора, искусственный интеллект, не выполняет никакого перевода, он лишь обсчитывает массивы чисел, и выдает более или менее точное предсказание, как заданную фразу могли бы сказать на другом языке. Точность такого предсказания сильно зависит от объема корпусов текстов, на котором обучали движок, качества исходного текста и многих других факторов. Возможно правильнее было бы называть это «лингвистическим прогнозом», что позволило бы изменить восприятие инструмента и применять его с большей пользой, а также избежать последствий легкомысленного или небрежного пост-редактирования.

Пока в среде специалистов по прикладной лингвистике нет настроя поменять терминологию, но желание объяснить широкой общественности, как именно работает машинный перевод, постепенно осознается.