На последнем шаге времени сеть-кодер получает особый символ END, и активации скрытых ячеек становятся кодом предложения. Итоговые активации скрытых ячеек кодера даются в качестве входных сигналов второй сети, сети-декодеру, которая генерирует перевод предложения. Сеть-декодер, схема которой показана в нижней части рис. 38, представляет собой еще одну рекуррентную нейронную сеть, но выдает на выходе числа, соответствующие словам, формирующим переведенное предложение, – и каждое из них также поступает в сеть на следующем шаге
[257].
Обратите внимание, что во французском предложении семь слов, а в английском – шесть. Теоретически система кодер-декодер может переводить предложения любой длины в предложения любой другой длины
[258]. Однако при работе со слишком длинными предложениями сеть-кодер в итоге теряет полезную информацию, то есть “забывает” значимые ранние фрагменты предложения на более поздних шагах. Например, прочтите предложение:
My mother said that the cat that flew with her sister to Hawaii the year before you started at that new high school is now living with my cousin.
[Мама сказала, что кошка, улетевшая с ее сестрой на Гавайи за год до того, как ты перешла в новую школу, теперь живет у моей двоюродной сестры.]
Кто живет у моей двоюродной сестры? Ответ зависит от того, как глаголы is и living переводятся на некоторые языки. Люди неплохо справляются с пониманием таких витиеватых предложений, но рекуррентные нейронные сети часто теряют их нить. Путаница происходит, когда сеть пытается закодировать целое предложение одним набором активаций скрытых единиц.
В конце 1990-х годов исследовательская группа из Швейцарии предложила решение: отдельные единицы рекуррентной нейронной сети должны иметь более сложную структуру со специальными весами, определяющими, какую информацию следует передать на следующий шаг, а какую можно “забыть”. Такие сложные единицы стали называться ячейками “долгой краткосрочной памяти” (LSTM)
[259]. Это название сбивает с толку, но суть в том, что эти ячейки позволяют сохранять больший объем “краткосрочной” памяти в ходе обработки предложения. Специальные веса определяются методом обратного распространения ошибки, как и обычные веса в традиционной нейронной сети. На рис. 38 кодер и декодер изображены в виде абстрактных белых прямоугольников, но в реальности такие сети могут состоять из единиц LSTM.
Автоматический машинный перевод в эпоху глубокого обучения – это триумф больших данных и высоких вычислительных скоростей. Чтобы создать пару кодер-декодер для перевода, скажем, с английского на французский, сети обучают на более чем 30 миллионах пар предложений, переведенных людьми. Глубокие рекуррентные нейронные сети, состоящие из ячеек LSTM и обученные на больших наборах данных, стали основой современных систем обработки естественного языка – не только сетей кодер-декодер, используемых “Google Переводчиком”, но и программ для распознавания речи и анализа тональности текста, а также, как мы увидим далее, вопросно-ответных систем. Чтобы улучшить показатели работы этих систем, специалисты часто прибегают к ряду хитростей – например, вводят исходное предложение в прямом и обратном порядке – и используют механизмы для анализа различных фрагментов предложения на разных шагах времени
[260].
Оценка машинного перевода
В 2016 году, запустив нейронный машинный перевод в “Google Переводчике”, компания Google заявила, что новый подход “сокращает разрыв между человеческим и машинным переводом”
[261]. В стремлении угнаться за Google крупные технологические компании создали свои онлайн-программы машинного перевода, также основанные на архитектуре кодер-декодер, описанной выше. Эти компании и писавшие о них отраслевые издания с энтузиазмом рекламировали такие услуги по переводу. В журнале Technology Review, издаваемом в MIT, отмечалось, что “новый сервис Google осуществляет переводы с одного языка на другой почти столь же хорошо, как человек”
[262]. Компания Microsoft в пресс-релизе объявила, что ее сервис перевода новостей с китайского на английский язык “равноценен человеческому”
[263]. В IBM подчеркнули, что “IBM Watson теперь свободно говорит на девяти языках (и это не предел)”
[264]. Руководитель направления переводов Facebook публично заявил: “Мы полагаем, что нейронные сети усваивают основополагающую семантическую структуру языка”
[265]. Исполнительный директор компании DeepL, специализирующейся на переводах, похвастался: “Наши нейронные сети [машинного перевода] достигли поразительного уровня понимания”
[266].
Отчасти такие заявления подпитываются стремлением технологических компаний продавать различные ИИ-сервисы бизнесу, ведь переводы с языка на язык имеют высокие перспективы прибыли. “Google Переводчик” и подобные сайты предлагают бесплатный перевод небольших фрагментов текста, но компании, желающие перевести большой объем документов или обеспечить перевод своих сайтов для клиентов, могут найти множество платных сервисов машинного перевода, основанных на архитектуре кодер-декодер.