Машинное обучение — очень полезный инструмент для автоматического перевода, но у него есть несколько слабых мест. Одним из них является тенденция пословного перевода, что может привести к серьезным ошибкам. В своем блоге сотрудники Google детально описали эту проблему, и поделились способом ее решения.
Хорошее объяснение ситуации дал сотрудник отдела обработки естественного языка Google Якоб Ужкорит. Он предложил сравнить два следующих предложения:
I arrived at the bank after crossing the street. – «Перейдя улицу, я пришел к банку»
I arrived at the bank after crossing the river. – «Переплыв реку, я оказался на берегу»
Мы видим, что слово «bank» имеет разное значение в каждом предложении, но алгоритм машинного перевода может очень легко выбрать неправильный вариант — поскольку он не понимает, какой вариант является правильным, пока не дойдет до конца предложения. И подобные неточности встречаются очень часто.
Конечно, пользователь может сам отредактировать предложение, но какой тогда толк в использовании переводчика? Еще один неэффективный вариант решения проблемы – модификация нейронных сетей для выполнения перевода в два этапа: сперва бы предложение переводилось целиком, а затем бы проверялось на наличие в нем «странностей».
Google представила свой вариант решения проблемы – так называемый «механизм внимания», встроенный в нейросеть Transformer. Он сравнивает каждое слово с остальными словами в предложении, чтобы увидеть, как эти слова влияют друг на друга – например, указывают ли они на пол говорящего человека, или помогают понять точное значение многозначных слов. При переводе, механизм внимания сравнивает каждое слово, поскольку оно добавляется к каждому последующему.
Вам может показаться, что «что-то такое» вы уже слышали: действительно, онлайн-переводчик DeepL также использует механизм внимания. По словам его совладельца, именно над решением этой проблемы в компании работали усерднее всего. Это принесло ожидаемые плоды: на данный момент DeepL справляется с переводами едва ли не лучше, чем Google.
Интересным «побочным эффектом» решения Google является то, что оно позволяет увидеть логику системы: поскольку Transformer дает каждому слову оценку по отношению ко всем другим словам, можно понять, какие именно слова нейросеть считает связанными или потенциально связанными.
Приведем еще пару предложений, которые могут быть двусмысленно восприняты переводчиком:
«The animal didn’t cross the street because it was too tired» — «Животное не стало переходить дорогу, потому что оно было слишком уставшим»
«The animal didn’t cross the street because it was too wide» — «Животное не стало переходить дорогу, потому что она была слишком широкой»
В данном случае, слово «it» может относиться как к дороге, так и к животному – смысл становится понятен только благодаря последнему слову. Человеку это понятно интуитивно, а вот машину еще придется этому обучить.