На последнем шаге времени сеть-кодер получает особый символ 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].