Способ и сервер для обучения алгоритму машинного обучения для выполнения перевода
METHOD AND SERVER FOR TRAINING MACHINE LEARNING ALGORITHM FOR TRANSLATION

ОБЛАСТЬ ТЕХНИКИ
[01] Настоящая технология относится к машинному обучению в целом и, в частности, к способу и серверу для обучения алгоритма машинного обучения для перевода.
УРОВЕНЬ ТЕХНИКИ
[02] С ростом числа пользователей, осуществляющих доступ в Интернет, появилось огромное число Интернет-служб. К таким службам относятся, например, службы поисковых систем (например, поисковые системы Яндекс™ и Google™), которые позволяют пользователям получать информацию, отправляя запросы в поисковую систему. Кроме того, службы социальных сетей, а также мультимедийные службы позволяют большому числу пользователей с различными социальными и культурными происхождениями взаимодействовать на унифицированных платформах для обмена контентом и информацией. Цифровой контент и другая информация, которыми пользователи обмениваются, могут представляться на различных языках. По этой причине из-за постоянно растущего объема информации, которой обмениваются в Интернете, часто используются службы перевода такие как, например, Яндекс.Переводчик™.
[03] Последняя упомянутая служба является особенно полезной, поскольку она позволяет пользователям с легкостью переводить текст (или даже речь) с одного языка, который пользователь не понимает, на другой язык, который он понимает. Это означает, что службы перевода обычно предназначены для обеспечения переведенной версии контента на понятном пользователю языке, чтобы сделать этот контент доступным для восприятия пользователем.
[04] Системы перевода обычно обучаются на основе большого числа примеров параллельных предложений между исходным языком и целевым языком. Однако традиционные компьютерные системы, обеспечивающие службы перевода, по-прежнему обладают множеством недостатков, например, службы офлайнового перевода, в которых модель перевода выполняется локально на устройстве пользователя.
«Method and device for splitting sub-word unit and computer readable storage medium»
[05] Патентная заявка CN111062206, озаглавленная  («Способ и устройство для разбиения словесной под-единицы и считываемый компьютером носитель») и опубликованная 24 апреля 2020 г., раскрывает, основываясь на ее машинном переводе, способ и устройство для разбиения словесной под-единицы и считываемый компьютером носитель. Согласно способу разбиения словесной под-единицы, предусмотренному вариантом осуществления изобретения, на основе входного предложения после сегментации на слова получают отображение признаков этого входного предложения с использованием сверточных фильтров разной длины сверточной нейронной сети. Комбинацию фрагментов отображения признаков дополнительно осуществляют среди множества полученных отображений признаков для того, чтобы получить комбинацию фрагментов отображения, соответствующую входному предложению, а затем оптимальную сегментацию на слова выбирают из комбинаций фрагментов отображения в соответствии с очевидной степенью признаков.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[06] Разработчики настоящей технологии осознали некоторые технические проблемы, связанные с существующими службами перевода. Целью настоящей технологии является устранение по меньшей мере некоторых неудобств, имеющихся в предшествующем уровне техники. Разработчики настоящей технологии разработали способы и системы для повышения качества служб офлайнового перевода.
[07] Службы перевода могут выполняться в офлайновом режиме по разным причинам. В одном примере модель перевода может исполняться локально на устройстве пользователя, чтобы позволить пользователю переводить текст, даже если устройство пользователя не осуществляет связь с удаленным сервером, исполняющим систему перевода. Несмотря на то, что локальные модели перевода обеспечивают возможность офлайнового перевода, качество их перевода может страдать.
[08] Следует отметить, что модели перевода, исполняемые локально, обычно имеют более низкий коэффициент емкости (capacity factor), чем модели перевода, исполняемые удаленно. Вообще говоря, емкость полученной машинным обучением модели относится к диапазону или объему типов функций, которые эта модель может аппроксимировать. Таким образом, из-за доступности, среди прочего, больших вычислительных ресурсов удаленно, модели перевода, исполняемые удаленно, обеспечивают лучшие переводы, чем модели перевода, исполняемые локально. Например, модель перевода, исполняемая локально, может иметь меньше параметров или может обучаться меньшему числу правил, чем модель перевода, исполняемая удаленно.
[09] В некоторых случаях локально исполняемые модели перевода склонны к генерированию «неологизмов». Вообще говоря, неологизмы - это слова, которые не существуют и/или которые использовались лишь в последнее время и/или еще не вошли в общеупотребительный или основной язык. Разработчики настоящей технологии осознали, что локально исполняемые модели перевода более склонны к генерированию неологизмов, чем удаленно исполняемые модели перевода, из-за их сравнительно более низких коэффициентов емкости. В по меньшей мере некоторых вариантах осуществления настоящей технологии предусмотрены способы и системы, которые позволяют повысить качество служб перевода с локально исполняемыми моделями перевода за счет уменьшения числа неологизмов, генерируемых ими во время офлайнового перевода.
[10] В некоторых вариантах осуществления настоящей технологии локальная модель перевода строится путем обучения нейронной сети (NN), причем NN содержит кодирующую часть, связанную с исходным языком, и декодирующую часть, связанную с целевым языком. Вообще говоря, кодирующая часть принимает последовательность входных токенов, генерируемых на основе текста на исходном языке, и производит компактное представление этой входной последовательности, пытаясь обобщить или сжать всю ее информацию. Эти компактные представления принимаются декодирующей частью в ее исходном состоянии, и она также может принимать другие внешние входные данные. На каждом этапе декодирующая часть генерирует элемент своей выходной последовательности (выходной токен) на основе принятых входных данных и своего текущего состояния, а также обновляет свое собственное состояние для следующего этапа, на котором генерируется другой элемент выходной последовательности (следующий выходной токен).
[11] В контексте настоящей технологии декодирующая часть реализуется с «механизмом внимания». Механизм внимания может быть реализован через слой внимания, который позволяет декодирующей части в некотором смысле «обращать внимание» на конкретную информацию во время генерирования выходных данных.
[12] Следует отметить, что декодирующая часть локальной модели перевода может представлять собой «жадный» декодер, в котором слово, имеющее наивысшую вероятность, обычно выбирается в качестве перевода (т.е. алгоритм конфигурируется так, чтобы действовать жадно). Тем не менее разработчики настоящей технологии разработали способы и системы, которые позволяют декодирующей части генерировать множество возможных переводов слова путем итеративного «отката» декодирующей части в предыдущие состояния для генерирования альтернативных последовательностей выходных токенов для определенного слова. Как будет описано более подробно ниже, в случае, когда переведенное слово, имеющее наивысшую вероятность, определяется как неологизм, декодирующую часть можно откатить в предыдущее состояние и она может сгенерировать альтернативную последовательность выходных токенов, представляющую другой возможный перевод.
[13] В первом широком аспекте настоящей технологии обеспечен способ выполнения офлайнового перевода исходного слова в целевое слово. Исходное слово представляется на исходном языке, а целевое слово - на целевом языке. Офлайновый перевод выполняется нейронной сетью (NN), исполняемой электронным устройством. NN была обучена переводить слова с исходного языка на целевой язык. NN имеет кодирующую часть и декодирующую часть. Упомянутый способ может исполняться электронным устройством. Способ содержит разбиение электронным устройством исходного слова на последовательность входных токенов. Способ содержит генерирование электронным устройством, использующим кодирующую часть, последовательности векторных представлений для соответствующих из последовательности входных токенов. Способ содержит генерирование электронным устройством, использующим декодирующую часть, первой последовательности выходных токенов на основе последовательности векторных представлений. Первая последовательность представляет первое слово-кандидат. Первым словом-кандидатом является возможный перевод исходного слова на целевой язык. Способ содержит, в ответ на несоответствие первого слова-кандидата по меньшей мере одному предопределенному правилу, приведение в действие декодирующей части для генерирования второй последовательности выходных токенов, причем вторая последовательность имеет по меньшей мере один последний выходной токен, отличный от по меньшей мере одного последнего выходного токена первой последовательности. Вторая последовательность представляет второе слово-кандидат. Вторым словом-кандидатом является второй возможный перевод исходного слова на целевой язык. Способ содержит, в ответ на соответствие второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определение электронным устройством того, что второе слово-кандидат является целевым словом.
[14] В некоторых вариантах осуществления способа способ дополнительно содержит определение электронным устройством того, что первое слово-кандидат не соответствует упомянутому по меньшей мере одному предопределенному правилу. Это определение содержит сравнение электронным устройством первого слова-кандидата с предопределенным словарем слов.
[15] В некоторых вариантах осуществления способа способ дополнительно содержит определение электронным устройством того, что второе слово-кандидат соответствует упомянутому по меньшей мере одному предопределенному правилу. Это определение содержит сравнение электронным устройством второго слова-кандидата с предопределенным словарем слов.
[16] В некоторых вариантах осуществления способа упомянутый по меньшей мере один последний выходной токен в первой последовательности представляет собой по меньшей мере два последних выходных токена в первой последовательности.
[17] В некоторых вариантах осуществления способа декодирующая часть включает в себя механизм внимания. Упомянутое генерирование первой последовательности выходных токенов содержит генерирование электронным устройством, использующим декодирующую часть, первого выходного токена в первой последовательности на основе последовательности векторных представлений. Упомянутое генерирование первой последовательности выходных токенов содержит обеспечение электронным устройством указания первого выходного токена механизму внимания декодирующей части. Упомянутое генерирование первой последовательности выходных токенов содержит генерирование электронным устройством, использующим декодирующую часть, второго выходного токена в первой последовательности на основе последовательности векторных представлений и указания первого выходного токена. Первым выходным токеном является предыдущий выходной токен относительно второго выходного токена в первой последовательности. Второй выходной токен генерируется декодирующей частью с учетом по меньшей мере предыдущего выходного токена.
[18] В некоторых вариантах осуществления способа приведение в действие декодирующей части для генерирования второй последовательности содержит приведение в действие электронным устройством декодирующей части для возврата в предыдущее состояние. Предыдущим состоянием является состояние декодирующей части перед генерированием первого из по меньшей мере одного последнего выходного токена из первой последовательности. Упомянутое приведение в действие декодирующей части для генерирования второй последовательности содержит генерирование электронным устройством, использующим декодирующую часть в предыдущем состоянии, первого из по меньшей мере одного последнего выходного токена второй последовательности, при этом запрещая этому первому из по меньшей мере одного последнего выходного токена второй последовательности быть идентичным первому из по меньшей мере одного последнего выходного токена первой последовательности.
[19] В некоторых вариантах осуществления способа приведение в действие декодирующей части для возврата в предыдущее состояние содержит осуществление доступа электронным устройством к ранее сохраненным данным, связанным с декодирующей частью, в запоминающем устройстве.
[20] В некоторых вариантах осуществления способа перевод выполняется электронным устройством без доступа к серверу.
[21] В некоторых вариантах осуществления способа NN имеет коэффициент емкости ниже предопределенного порога.
[22] В некоторых вариантах осуществления способа способ содержит, в ответ на несоответствие второго слова-кандидата по меньшей мере одному предопределенному правилу, приведение в действие электронным устройством декодирующей части для генерирования другой второй последовательности выходных токенов. Другая вторая последовательность имеет по меньшей мере один последний выходной токен, отличный от (i) по меньшей мере одного последнего выходного токена первой последовательности и (ii) по меньшей мере одного последнего выходного токена второй последовательности. Другая вторая последовательность представляет другое второе слово-кандидат. Способ содержит, в ответ на соответствие другого второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определение электронным устройством того, что другое второе слово-кандидат является целевым словом.
[23] В некоторых вариантах осуществления способа способ дополнительно содержит приведение в действие электронным устройством декодирующей части для генерирования предопределенного числа вторых последовательностей выходных токенов. Предопределенное число вторых последовательностей включает в себя вторую последовательность и другую вторую последовательность. Предопределенное число вторых последовательностей представляет предопределенное число вторых слов-кандидатов. Способ дополнительно содержит, в ответ на то, что ни одно из предопределенного числа вторых слов-кандидатов не соответствует упомянутому по меньшей мере одному предопределенному правилу, определение электронным устройством того, что первое слово-кандидат является целевым словом.
[24] Во втором широком аспекте настоящей технологии обеспечено электронное устройство для выполнения офлайнового перевода исходного слова в целевое слово. Исходное слово представляется на исходном языке, а целевое слово - на целевом языке. Офлайновый перевод выполняется нейронной сетью (NN), исполняемой электронным устройством. NN была обучена переводить слова с исходного языка на целевой язык. NN имеет кодирующую часть и декодирующую часть. Электронное устройство выполнено с возможностью разбиения исходного слова на последовательность входных токенов. Электронное устройство выполнено с возможностью генерирования, используя кодирующую часть, последовательности векторных представлений для соответствующих из последовательности входных токенов. Электронное устройство выполнено с возможностью генерирования, используя декодирующую часть, первой последовательности выходных токенов на основе последовательности векторных представлений. Первая последовательность представляет первое слово-кандидат. Первым словом-кандидатом является возможный перевод исходного слова на целевой язык. Электронное устройство выполнено с возможностью, в ответ на несоответствие первого слова-кандидата по меньшей мере одному предопределенному правилу, приведения в действие декодирующей части для генерирования второй последовательности выходных токенов. Вторая последовательность имеет по меньшей мере один последний выходной токен, отличный от по меньшей мере одного последнего выходного токена первой последовательности. Вторая последовательность представляет второе слово-кандидат. Вторым словом-кандидатом является второй возможный перевод исходного слова на целевой язык. Электронное устройство выполнено с возможностью, в ответ на соответствие второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определения того, что второе слово-кандидат является целевым словом.
[25] В некоторых вариантах осуществления электронного устройства электронное устройство дополнительно выполнено с возможностью определения того, что первое слово-кандидат не соответствует упомянутому по меньшей мере одному предопределенному правилу. Электронное устройство, выполненное с возможностью определения, представляет собой электронное устройство, выполненное с возможностью сравнения первого слова-кандидата с предопределенным словарем слов.
[26] В некоторых вариантах осуществления электронного устройства электронное устройство дополнительно выполнено с возможностью определения того, что второе слово-кандидат соответствует упомянутому по меньшей мере одному предопределенному правилу. Электронное устройство, выполненное с возможностью определения, представляет собой электронное устройство, выполненное с возможностью сравнения второго слова-кандидата с предопределенным словарем слов.
[27] В некоторых вариантах осуществления электронного устройства упомянутый по меньшей мере один последний выходной токен в первой последовательности представляет собой по меньшей мере два последних выходных токена в первой последовательности.
[28] В некоторых вариантах осуществления электронного устройства декодирующая часть включает в себя механизм внимания. Электронное устройство, выполненное с возможностью генерирования первой последовательности выходных токенов, представляет собой электронное устройство, выполненное с возможностью генерирования, используя декодирующую часть, первого выходного токена в первой последовательности на основе последовательности векторных представлений. Электронное устройство, выполненное с возможностью генерирования первой последовательности выходных токенов, представляет собой электронное устройство, выполненное с возможностью обеспечения указания первого выходного токена механизму внимания декодирующей части. Электронное устройство, выполненное с возможностью генерирования первой последовательности выходных токенов, представляет собой электронное устройство, выполненное с возможностью генерирования, используя декодирующую часть, второго выходного токена в первой последовательности на основе последовательности векторных представлений и указания первого выходного токена. Первым выходным токеном является предыдущий выходной токен относительно второго выходного токена в первой последовательности. Второй выходной токен генерируется декодирующей частью с учетом по меньшей мере предыдущего выходного токена.
[29] В некоторых вариантах осуществления электронного устройства электронное устройство, выполненное с возможностью приведения в действие декодирующей части для генерирования второй последовательности, представляет собой электронное устройство, выполненное с возможностью приведения в действие декодирующей части для возврата в предыдущее состояние. Предыдущим состоянием является состояние декодирующей части перед генерированием первого из по меньшей мере одного последнего выходного токена из первой последовательности. Электронное устройство выполнено с возможностью генерирования, используя декодирующую часть в предыдущем состоянии, первого из по меньшей мере одного последнего выходного токена второй последовательности, при этом запрещая этому первому из по меньшей мере одного последнего выходного токена второй последовательности быть идентичным первому из по меньшей мере одного последнего выходного токена первой последовательности.
[30] В некоторых вариантах осуществления электронного устройства электронное устройство, выполненное с возможностью приведения в действие декодирующей части для возврата в предыдущее состояние, представляет собой электронное устройство, выполненное с возможностью осуществления доступа к ранее сохраненным данным, связанным с декодирующей частью, в запоминающем устройстве.
[31] В некоторых вариантах осуществления электронного устройства перевод выполняется электронным устройством без доступа к серверу.
[32] В некоторых вариантах осуществления электронного устройства NN имеет коэффициент емкости ниже предопределенного порога.
[33] В некоторых вариантах осуществления электронного устройства, в ответ на несоответствие второго слова-кандидата по меньшей мере одному предопределенному правилу, электронное устройство выполнено с возможностью приведения в действие декодирующей части для генерирования другой второй последовательности выходных токенов. Другая вторая последовательность имеет по меньшей мере один последний выходной токен, отличный от (i) по меньшей мере одного последнего выходного токена первой последовательности и (ii) по меньшей мере одного последнего выходного токена второй последовательности. Другая вторая последовательность представляет другое второе слово-кандидат. Электронное устройство выполнено с возможностью, в ответ на соответствие другого второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определения того, что другое второе слово-кандидат является целевым словом.
[34] В некоторых вариантах осуществления электронного устройства электронное устройство дополнительно выполнено с возможностью приведения в действие декодирующей части для генерирования предопределенного числа вторых последовательностей выходных токенов. Предопределенное число вторых последовательностей включает в себя вторую последовательность и другую вторую последовательность. Предопределенное число вторых последовательностей представляет предопределенное число вторых слов-кандидатов. В ответ на то, что ни одно из предопределенного числа вторых слов-кандидатов не соответствует упомянутому по меньшей мере одному предопределенному правилу, электронное устройство выполнено с возможностью определения того, что первое слово-кандидат является целевым словом.
[35] В контексте настоящего описания «сервер» представляет собой компьютерную программу, которая работает на надлежащем аппаратном обеспечении и способна принимать запросы (например, от клиентских устройств) по сети и выполнять эти запросы, или побуждать к выполнению этих запросов. Аппаратное обеспечение может быть одним физическим компьютером или одной физической компьютерной системой, но ни то, ни другое не является обязательным для настоящей технологии. В настоящем контексте использование выражения «сервер» не предполагает, что каждая задача (например, принятые инструкции или запросы) или какая-либо конкретная задача будут приняты, выполнены или вызваны для выполнения одним и тем же сервером (т.е. тем же самым программным обеспечением и/или аппаратным обеспечением); данное выражение предполагает, что любое число программных элементов или аппаратных устройств может быть задействовано в приеме/отправке, выполнении или вызове для выполнения любой задачи или запроса, или последствий любой задачи или запроса; и все это программное обеспечение и аппаратное обеспечение может быть одним сервером или многочисленными серверами, причем оба данных случая включены в выражение «по меньшей мере один сервер».
[36] В контексте настоящего описания «клиентское устройство» представляет собой любое компьютерное оборудование, которое способно выполнять программное обеспечение, которое является надлежащим для соответствующей решаемой задачи. Таким образом, некоторые (неограничивающие) примеры клиентских устройств включают в себя персональные компьютеры (настольные ПК, ноутбуки, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве клиентского устройства в настоящем контексте, не исключается из возможности выступать в качестве сервера для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования многочисленных клиентских устройств при приеме/отправке, выполнении или вызове для выполнения какой-либо задачи или запроса, или последствий любой задачи или запроса, или этапов любого описанного в данном документе способа.
[37] В контексте настоящего описания «база данных» представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программное обеспечение для администрирования базы данных, или компьютерное оборудование, на котором данные хранятся, реализуются или их делают доступными для использования иным образом. База данных может находиться на том же оборудовании, что и процесс, который хранит или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном оборудовании, например на выделенном сервере или множестве серверов.
[38] В контексте настоящего описания выражение «информация» включает в себя информацию любого характера или вида, который способен храниться в базе данных любым образом. Таким образом, информация включает в себя, но без ограничения, аудиовизуальные произведения (изображения, фильмы, звуковые записи, презентации и т.д.), данные (данные о местоположении, численные данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д.
[39] В контексте настоящего описания, если специально не указано иное, подразумевается, что термин «компонент» включает в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является как необходимым, так и достаточным для реализации конкретной функции (функций), на которую (которые) ссылаются.
[40] В контексте настоящего описания предполагается, что выражение «используемый компьютером носитель хранения информации» включает в себя носители любого характера и вида, в том числе RAM, ROM, диски (CD-ROM, DVD, дискеты, накопители на жестких дисках и т.д.), USB-ключи, твердотельные накопители, ленточные накопители и т.д.
[41] В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в качестве прилагательных только для того, чтобы позволить отличать существительные, которые они модифицируют, друг от друга, а не для описания какой-либо особой взаимосвязи между такими существительными. Таким образом, например, следует понимать, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо конкретного порядка, типа, хронологии, иерархии или ранжирования (например) таких серверов, равно как и их использование (само по себе) не означает, что какой-либо «второй сервер» должен обязательно существовать в любой определенной ситуации. Кроме того, как обсуждается в других контекстах данного документа, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента фактически являются одним и тем же элементом реального мира. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут быть одним и тем же программным обеспечением и/или аппаратным обеспечением, в других случаях они могут представлять собой разное программное обеспечение и/или аппаратное обеспечение.
[42] Каждая из реализаций настоящей технологии обладает по меньшей мере одним из вышеупомянутых аспектов и/или цели, но не обязательно имеет их все. Следует понимать, что некоторые аспекты настоящей технологии, которые возникли в попытке достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, которые не указываются в данном документе явным образом.
[43] Дополнительные и/или альтернативные признаки, аспекты и преимущества реализаций настоящей технологии станут очевидными из нижеследующего описания, сопроводительных чертежей и приложенной формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[44] Для лучшего понимания настоящей технологии, а также других аспектов и ее дополнительных признаков, ссылка приводится на нижеследующее описание, которое должно использоваться в сочетании с сопроводительными чертежами, на которых:
[45] Фигура 1 иллюстрирует систему, подходящую для реализации неограничивающих вариантов осуществления настоящей технологии.
[46] Фигура 2 иллюстрирует представление модели перевода системы с Фигуры 1 для генерирования первой последовательности выходных токенов в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
[47] Фигура 3 иллюстрирует представление декодирующей части модели перевода с Фигуры 2, генерирующей вторую последовательность выходных токенов, в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
[48] Фигура 4 иллюстрирует представление блок-схемы способа, выполняемого системой с Фигуры 1, в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии.
ПОДРОБНОЕ ОПИСАНИЕ
[49] Со ссылкой на Фигуру 1 проиллюстрировано схематичное представление системы 100, причем система 100 подходит для реализации неограничивающих вариантов осуществления настоящей технологии. Следует четко понимать, что изображенная система 100 является лишь иллюстративной реализацией настоящей технологии. Таким образом, нижеследующее описание предназначено лишь для того, чтобы использоваться в качестве описания иллюстративных примеров настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. В некоторых случаях то, что считается полезными примерами модификаций системы 100, также может быть изложено ниже. Это делается просто для помощи в понимании и, опять же, не для определения объема или установления границ настоящей технологии. Эти модификации не являются исчерпывающим списком и, как будет понятно специалисту в данной области техники, возможны другие модификации. Кроме того, те случаи, когда этого сделано не было (т.е. когда не было представлено примеров модификаций), не следует интерпретировать так, что никакие модификации не возможны и/или что описанное является единственным способом реализации такого элемента настоящей технологии. Специалисту в данной области будет понятно, что это, вероятно, не так. Кроме того, следует понимать, что система 100 может обеспечивать в некоторых случаях простые реализации настоящей технологии, и что в таком случае они были представляются таким образом в качестве помощи для понимания. Специалисты в данной области поймут, что различные реализации настоящей технологии могут иметь большую сложность.
[50] Вообще говоря, система 100 выполнена с возможностью обеспечения служб электронного перевода для пользователя 102 электронного устройства 104. Например, система 100 может быть выполнена с возможностью получения предложения на исходном языке и обеспечения переведенной версии этого предложения на целевом языке. Теперь будут описаны по меньшей мере некоторые компоненты системы 100, однако следует понимать, что другие компоненты, помимо тех, что проиллюстрированы на Фигуре 1, могут быть частью системы 100, не выходя за рамки объема настоящей технологии.
Сеть связи
[51] Электронное устройство 104 коммуникативно связано с сетью 110 связи для связи с сервером 112. Например, электронное устройство 104 может быть коммуникативно связано с сервером 112 через сеть 110 связи для обеспечения пользователю 102 служб перевода. Сеть 110 связи выполнена с возможностью передачи, среди прочего, запросов и ответов между электронным устройством 104 и сервером 112 в форме одного или более пакетов данных, содержащих передаваемые данные.
[52] В некоторых неограничивающих вариантах осуществления настоящей технологии сеть 110 связи может быть реализована как Интернет. В других вариантах осуществления настоящей технологии сеть 110 связи может быть реализована иначе, например как какая-либо глобальная сеть связи, локальная сеть связи, частная сеть связи и тому подобное. То, как реализуется линия связи (отдельно не пронумерована) между электронным устройством 104 и сетью 110 связи, будет зависеть, в частности, от того, как реализуется электронное устройство 104.
[53] Просто как пример, а не как ограничение, в тех вариантах осуществления настоящей технологии, в которых электронное устройство 104 реализуется как устройство беспроводной связи (например как смартфон), линия связи может быть реализована как линия беспроводной связи (такая как, но без ограничения, линия сети связи 3G, линия сети связи 4G, Wireless Fidelity или WiFi для краткости, Bluetooth и подобные). В тех примерах, где электронное устройство 104 реализуется как ноутбук, линия связи может быть либо беспроводной (такой как Wireless Fidelity или WiFi для краткости, Bluetooth или тому подобное), либо проводной (такой как Ethernet-соединение).
[54] Следует отметить, что в некоторых случаях сеть 110 связи может не иметь возможности передавать запросы от электронного устройства 104 на сервер 112. Например, одна или более линий связи между электронным устройством 104 и сервером 112 могут быть отключены. В другом примере электронное устройство 104 и/или сервер 112 могут не быть подключены к сети связи. В дополнительном примере инфраструктура, обеспечивающая связь между сервером 112 и электронным устройством 104 (например, физический уровень), может быть неисправной.
[55] Независимо от конкретной причины, по которой электронное устройство 104 может не иметь доступа к службам перевода, размещаемым на сервере 112, электронное устройство 104 выполнено с возможностью обеспечивать пользователю 102 службы «офлайнового» перевода. Как теперь будет описано более подробно, электронное устройство 104 выполнено с возможностью локального исполнения одного или нескольких реализуемых компьютером алгоритмов и локального хранения данных для обеспечения служб перевода пользователю 102, и, в частности, когда электронное устройство 104 не может осуществлять связь с сервером 112.
Электронное устройство
[56] Система 100 содержит электронное устройство 104, причем электронное устройство 104 связано с пользователем 102. Как таковое, электронное устройство 104 иногда может именоваться «клиентским устройством», «конечным пользовательским устройством», «клиентским электронным устройством» или просто «устройством». Следует отметить, что связь электронного устройства 104 с пользователем 102 не обязательно предполагает или подразумевает какой-либо режим работы - например необходимость входа в систему, необходимость регистрации или подобное.
[57] Реализация электронного устройства 104 конкретным образом не ограничивается, но в качестве примера электронное устройство 104 может быть реализовано как персональный компьютер (настольные компьютеры, ноутбуки, нетбуки и т. д.), устройство беспроводной связи (такое как смартфон, сотовый телефон, планшет и подобное), а также сетевое оборудование (например, маршрутизаторы, коммутаторы и шлюзы). Электронное устройство 104 содержит аппаратное обеспечение и/или программное обеспечение и/или микропрограммное обеспечение (или их комбинацию), которое известно в данной области техники, для исполнения приложения браузера.
[58] Вообще говоря, назначением приложения браузера является обеспечение пользователю 102 возможности доступа к одному или более сетевым ресурсам, таким как, например, веб-страницы. То, как приложение браузера реализуется, конкретным образом не ограничено. Один пример приложения браузера может быть воплощен как браузер Яндекс™.
[59] Пользователь 102 может использовать приложение браузера для осуществления доступа к системе перевода для перевода одного или более предложений с исходного языка на целевой язык. Например, электронное устройство 104 может быть выполнено с возможностью генерирования запроса, указывающего одно или более предложений, которые пользователь 102 желает перевести. Кроме того, электронное устройство 104 может быть выполнено с возможностью приема ответа (не показан) для отображения пользователю 102 переведенной версии одного или более предложений на целевом языке.
[60] Обычно запрос и ответ могут передаваться от электронного устройства 104 и на него через сеть 110 связи. Однако, как упомянуто выше, в некоторых случаях электронное устройство 104 может не иметь возможности связи с сервером 112 через сеть 110 связи.
[61] Электронное устройство 104 выполнено с возможностью исполнения одного или более алгоритмов машинного обучения (MLA) для обеспечения пользователю 102 служб офлайнового перевода. Например, электронное устройство 104 выполнено с возможностью исполнения модели 130 перевода, которая реализована как определенный MLA. Можно сказать, что модель 130 перевода является моделью перевода, исполняемой локально электронным устройством 104. То, как модель 130 перевода может быть реализована в по меньшей мере некоторых вариантах осуществления настоящей технологии, будет более подробно описано в данном документе ниже.
[62] Электронное устройство 104 содержит одно или более локальных запоминающих устройств. Можно сказать, что электронное устройство 104 содержит хранилище, выполненное с возможностью хранения данных, которые будут использоваться для обеспечения служб офлайнового перевода. Как показано на Фигуре 1, электронное устройство 104 выполнено с возможностью хранения словаря 140.
[63] Вообще говоря, словарь 140 представляет собой структуру данных, содержащую большое число слов на одном или более языках, и которая может использоваться для целей проверки во время офлайнового перевода. Как будет более подробно описано в данном документе ниже, словарь 140 может использоваться электронным устройством 104 для проверки того, соответствуют ли возможные переводы слов с исходного языка на целевой язык определенному слову в словаре 140. Такая проверка электронным устройством 104 может позволить сгенерировать более одного возможного перевода определенного исходного слова и выбрать лучшего кандидата для обеспечения пользователю 102. В некоторых вариантах осуществления такой процесс проверки и генерирования более одного возможного перевода определенного исходного слова может повысить качество служб офлайнового перевода, обеспечиваемых электронным устройством 104. Например, этот процесс проверки и генерирования более одного возможного перевода определенного исходного слова может позволить уменьшить число неологизмов, генерируемых моделью 130 перевода.
Сервер и База данных
[64] Система 100 также содержит сервер 112, который может быть реализован как традиционный компьютерный сервер. В проиллюстрированных неограничивающих вариантах осуществления настоящей технологии сервер 112 является единственным сервером. В альтернативных неограничивающих вариантах осуществления настоящей технологии функциональные возможности сервера 112 могут быть распределены и могут быть реализованы посредством многочисленных серверов. Сервер 112 может включать в себя один или более процессоров, одно или более энергонезависимых запоминающих устройств, считываемые компьютером инструкции и/или дополнительные аппаратные компоненты, дополнительные программные компоненты и/или их комбинацию для реализации различных функциональных возможностей сервера 112, не выходя за рамки объема настоящей технологии.
[65] Система 100 также содержит базу 150 данных, которая коммуникативно связанная с сервером 112 и выполнена с возможностью хранения информации, извлекаемой, или иным образом определяемой или генерируемой сервером 112. Вообще говоря, база 150 данных может принимать данные от сервера 112, которые были извлечены, или иным образом определены или сгенерированы сервером 112 во время обработки, для их временного и/или постоянного хранения, и может обеспечивать сохраненные данные серверу 112 для их использования. Предполагается, что база 150 данных может быть разделена на несколько распределенных баз данных без выхода за рамки объема настоящей технологии.
[66] База 150 данных может быть выполнена с возможностью хранения данных для поддержки служб перевода, обеспечиваемых системой перевода сервера 112.
[67] Вообще говоря, сервер 112 может находиться под контролем и/или управлением поставщика службы перевода (не показан), например оператора служб перевода Яндекс™. Предполагается, что поставщик служб перевода и поставщик приложения браузера могут быть одним и тем же поставщиком. Например, приложение браузера (например, браузер Яндекс™) и службы перевода (например, службы перевода Яндекс™) могут обеспечиваться, контролироваться и/или управляться одним и тем же оператором или организацией.
[68] Как упоминалось выше, система перевода размещается на сервере 112. Вообще говоря, система перевода воплощается как множество реализуемых компьютером процедур, которые выполнены с возможностью перевода одного или более предложений с исходного языка на целевой язык. Например, сервер 112 может быть выполнен с возможностью исполнения модели 120 перевода и реализован как определенный MLA. Можно сказать, что модель 130 перевода является моделью 130 перевода, которая исполняется удаленно для электронного устройства 104.
Алгоритмы машинного обучения
[69] Вообще говоря, MLA могут учиться по обучающим выборкам и делать прогнозы на основе новых (неизвестных) данных. MLA обычно используются для изначального построения модели на основе обучающих входных данных, чтобы затем делать прогнозы или принимать решения на основе данных, выражаемые в виде выходных данных, а не следовать статичным считываемым компьютером инструкциям.
[70] MLA обычно используются в качестве моделей оценки, моделей перевода, моделей классификации и подобного. Следует понимать, что разные типы MLA, имеющих разные структуры или топологии, могут использоваться для различных задач.
[71] Один конкретный тип MLA включает в себя нейронные сети (NN). Вообще говоря, определенная NN состоит из взаимосвязанной группы искусственных «нейронов», которые обрабатывают информацию, используя коннекционистский подход к вычислению. NN используются для моделирования сложных взаимосвязей между входными и выходными данными (без фактического знания этих взаимосвязей) или для поиска закономерностей в данных. NN сначала подготавливаются во время фазы обучения, во время которой им обеспечивается некоторый известный набор «входных данных» и информации для адаптации NN к генерированию надлежащих выходных данных (для некоторой определенной ситуации, которую пытаются смоделировать). Во время этой фазы обучения эта NN адаптируется к изучаемой ситуации и меняет свою структуру так, чтобы данная NN могла обеспечивать разумные прогнозные выходные данные для определенных входных данных во время некоторой новой ситуации (на основе того, что было изучено). Таким образом, вместо того, чтобы пытаться определить сложные статистические схемы или математические алгоритмы для некоторой определенной ситуации; определенная NN пытается дать «интуитивный» ответ, основанный на «восприятии» ситуации.
[72] NN обычно используются во многих таких ситуациях, в которых важно знать лишь выходные данные, основанные на некоторых определенных входных данных, но то, как именно эти выходные данные были выведены, имеет меньшее значение или значения не имеет. Например, NN обычно используются для оптимизации распределения веб-трафика между серверами, автоматического перевода текста на разные языки, обработки данных, включая фильтрацию, кластеризацию, векторное представление и подобное.
[73] Кроме того, реализацию определенной MLA можно в общем разделить на две фазы - фазу обучения и фазу использования. Сначала, определенный MLA обучают во время фазы обучения. Затем, как только определенный MLA узнает, какие данные следует ожидать в качестве входных данных и какие данные следует обеспечивать в качестве выходных данных, определенный MLA фактически прогоняют с использованием данных использования во время фазы использования.
[74] Как упомянуто выше, и электронное устройство 104, и сервер 112 исполняют MLA. В частности, электронное устройство 104 исполняет модель 130 перевода, а сервер 112 исполняет модель 120 перевода. То, как модель 120 перевода реализуется сервером 112, конкретным образом не ограничивается. Однако следует отметить, что модель 120 перевода имеет сравнительно более высокую емкость, чем модель 130 перевода.
[75] Вообще говоря, емкость полученной машинным обучением модели относится к диапазону или объему типов функций, которые эта модель может аппроксимировать. Модель 120 перевода может иметь сравнительно большую емкость, чем модель 130 перевода, благодаря, среди прочего, доступности сравнительно больших вычислительных ресурсов для обучения и исполнения модели 130 перевода. Например, из-за ограниченных локальных вычислительных ресурсов электронного устройства 104 по сравнению с сервером 112, модель 130 перевода, исполняемая локально (на электронном устройстве 104), может иметь меньше параметров или может обучаться меньшему числу правил, чем модель 120 перевода, исполняемая удаленно (на сервере 112).
[76] Следует отметить, что из-за, по меньшей мере частично, сравнительно меньшей емкости локально исполняемые модели перевода, такие как модель 130 перевода, могут быть склонны к генерированию «неологизмов». Вообще говоря, неологизмы соответствуют словам, которые не существуют и/или которые использовались лишь в последнее время и/или еще не вошли в общеупотребительный или основной язык.
[77] Не желая быть привязанными к какой-либо конкретной теории, разработчики настоящей технологии разработали реализуемые компьютером способы и системы, которые позволяют повысить качество служб перевода с локально исполняемыми моделями перевода за счет уменьшения числа неологизмов, генерируемых ими во время офлайнового перевода.
[78] В некоторых вариантах осуществления настоящей технологии модель 130 перевода может быть обученной машинным образом моделью типа кодер-декодер. Например, кодирующая часть таких моделей может быть предназначена для исходных языков, в то время как декодирующая часть таких моделей может быть предназначена для целевых языков. В других вариантах осуществления можно сказать, что электронное устройство 104 также может быть выполнено с возможностью исполнения модели типа seq2seq и модели типа трансформера.
[79] Со ссылкой на Фигуру 2 проиллюстрирована кодирующая часть 132 (или просто «кодер») и декодирующая часть 134 (или просто «декодер») модели 130 перевода. Вообще говоря, кодер 132 принимает последовательность входных токенов, генерируемых на основе текста на исходном языке, и производит компактное представление этой входной последовательности, пытаясь обобщить или сжать всю ее информацию. Эти компактные представления принимаются декодирующей частью 134 в ее исходном состоянии, и она также может принимать другие внешние входные данные, как это будет более подробно описано ниже. На каждом этапе декодирующая часть 134 генерирует элемент своей выходной последовательности (выходной токен) на основе принятых входных данных и своего текущего состояния, а также обновляет свое собственное состояние для следующего этапа, на котором генерируется другой элемент выходной последовательности (следующий выходной токен).
[80] Как показано на Фигуре 2 декодирующая часть 134 реализуется с «механизмом 136 внимания». Механизм 136 внимания может быть реализован через слой внимания, который позволяет декодирующей части 134 в некотором смысле «обращать внимание» на конкретную информацию во время генерирования выходных данных, как это будет более подробно описано ниже.
[81] В некоторых вариантах осуществления настоящей технологии декодирующая часть 134 может представлять собой «жадный» декодер. Например, декодирующая часть 134 может быть выполнена с возможностью генерирования некоторой определенной выходной последовательности, представляющей слово на целевом языке и имеющей наибольшую вероятность (то есть жадное действие) для того, чтобы быть переводом соответствующего слова на исходном языке.
[82] Как станет очевидно из приведенного ниже описания, если некоторая определенная последовательность выходных токенов представляет неологизм, электронное устройство 104 может быть выполнено с возможностью «отката» декодирующей части 134 в некоторое определенное предыдущее состояние для генерирования альтернативной последовательности выходных токенов, представляющей другое слово на целевом языке. Предполагается, что электронное устройство 104 может быть выполнено с возможностью итеративного отката декодера для итеративного генерирования некоторого числа кандидатов на перевод для некоторого определенного исходного слова.
[83] Теперь будет описано то, как электронное устройство 104 использует модель 130 перевода для генерирования перевода исходного слова 204 из исходного предложения 202.
[84] Электронное устройство 104 выполнено с возможностью разбиения слов из исходного предложения 202 на последовательности входных токенов. Например, электронное устройство 104 может быть выполнено с возможностью разбиения исходного слова 204 на последовательность 206 входных токенов, следующего слова из исходного предложения 202 на другую последовательность входных токенов и так далее. Можно сказать, что электронное устройство 104 может быть выполнено с возможностью разбиения некоторого определенного слова на одну или более словесных под-единиц. Следовательно, можно сказать, что последовательность 206 входных токенов может соответствовать последовательности словесных под-единиц, генерируемых электронным устройством 104 на основе исходного слова 204.
[85] Электронное устройство 104 выполнено с возможностью обеспечения входных токенов, сгенерированных на основе исходного предложения 202, в кодирующую часть 132. Кодирующая часть 132 выполнена с возможностью генерирования скрытых векторных представлений на основе введенных токенов. Можно сказать, что эти скрытые векторные представления обобщают и/или сжимают информацию о словах в исходном предложении 202. Например, электронное устройство 104, использующее кодирующую часть 132, может быть выполнено с возможностью генерирования 208 векторных представлений для последовательности 206 входных токенов, связанных с исходным словом 204.
[86] Электронное устройство 104 выполнено с возможностью обеспечения векторных представлений в декодирующую часть 134. Декодирующая часть 134 выполнена с возможностью генерирования выходных токенов на основе, среди прочего, векторных представлений, сгенерированных кодирующей частью 132, и других входных данных, таких как, например, ранее сгенерированные выходные токены. Выходные токены, сгенерированные декодирующей частью 134, могут использоваться электронным устройством 104 для обеспечения перевода исходного предложения 202 (то есть целевого предложения) пользователю 102.
[87] Как теперь будет описано более подробно, декодирующая часть 134 может сгенерировать более одного возможного перевода исходного слова 204 и выбрать одного из таких кандидатов в качестве целевого слова на целевом языке, которое будет обеспечено пользователю 102 как перевод исходного слова 204.
[88] То, как электронное устройство 104 использует декодирующую часть 134 для генерирования первого возможного перевода исходного слова 204, будет описано со ссылкой на Фигуру 2, а то, как электронное устройство 104 использует декодирующую часть 134 для генерирования второго возможного перевода исходного слова 204, будет описано со ссылкой на Фигуру 3.
[89] Декодирующая часть 134 выполнена с возможностью использования последовательности 208 векторных представлений для генерирования первого выходного токена 221. Можно сказать, что декодирующая часть 134 находится в первом состоянии после генерирования первого выходного токена 221. На следующем этапе декодирующая часть 134 выполнена с возможностью дополнительного использования первого выходного токена 221 (дополнительные входные данные) для генерирования второго выходного токена 222. Можно сказать, что декодирующая часть 134 находится во втором состоянии после генерирования второго выходного токена 222. На следующем этапе декодирующая часть 134 выполнена с возможностью дополнительного использования второго выходного токена 222 (дополнительные входные данные) для генерирования третьего выходного токена 223. Можно сказать, что декодирующая часть 134 находится в третьем состоянии после генерирования третьего выходного токена 223. На следующем этапе декодирующая часть 134 выполнена с возможностью дополнительного использования третьего выходного токена 223 (дополнительные входные данные) для генерирования четвертого выходного токена 224 и так далее. Можно сказать, что декодирующая часть 134 находится в четвертом состоянии после генерирования четвертого выходного токена 224.
[90] Как упоминалось ранее, электронное устройство 104 может использовать механизм 136 внимания для учета предыдущих выходных токенов, сгенерированных декодирующей частью 134, для генерирования текущего выходного токена в последовательности выходных токенов. В некоторых вариантах осуществления декодирующая часть 134 может быть выполнена с возможностью использования одного или более выходных токенов, сгенерированных декодирующей частью 134 и связанных с текущим и/или предыдущими словами, сгенерированными декодирующей частью 134.
[91] Можно сказать, что электронное устройство 104 выполнено с возможностью генерирования, используя декодирующую часть 134, последовательности 210 выходных токенов на основе, среди прочего, 208 векторных представлений, а также предыдущих выходных токенов в последовательности 210 выходных токенов для генерирования текущего выходного токена из последовательности 210 выходных токенов.
[92] Информация, указывающая некоторое определенное состояние декодирующей части 134, может быть сохранена в запоминающем устройстве для ее последующего использования. Например, электронное устройство 104 может хранить в памяти информацию, указывающую четвертое состояние декодирующей части 134, в дополнение к предыдущим состояниям декодирующей части 134 (первое состояние, второе состояние и третье состояние).
[93] Предполагается, что в некоторых вариантах осуществления настоящей технологии модель 130 перевода может быть выполнена с возможностью выполнения жадного декодирования данных (в отличие, например, от декодирования с поиском по лучу) с одной или более процедурами отката к предыдущим состояниям декодирующей части 134 для генерирования одного или более возможных переводов некоторого определенного исходного слова. То, как данная процедура отката может быть приведена в действие электронным устройством 104, будет более подробно описано ниже.
[94] Следует отметить, что декодирующая часть 134 выполнена с возможностью генерирования выходных токенов по меньшей мере двух различных типов. Более конкретно, декодирующая часть 134 может генерировать некоторый определенный выходной токен, который идентифицируется как выходной токен «начального типа» и выходной токен «продолжающего типа». Вообще говоря, некоторым определенным выходным токеном начального типа является некоторый определенный выходной токен, который соответствует начальному выходному токену некоторого определенного переводимого слова, в то время как некоторым определенным выходным токеном продолжающего типа является некоторый определенный выходной токен, который не соответствует начальному выходному токену некоторого определенного переводимого слова. Другими словами, некоторое определенное переводимое слово начинается с соответствующего выходного токена начального типа и потенциально может продолжаться одним или более выходным(и) токеном(ами) продолжающего типа.
[95] Например, декодирующая часть 134 может выводить первый выходной токен 221, который может быть идентифицирован как некоторый определенный выходной токен начального типа. Декодирующая часть 134 может выводить второй выходной токен 222, который может быть идентифицирован как некоторый определенный выходной токен продолжающего типа. Декодирующая часть 134 может выводить третий выходной токен 223, который может быть идентифицирован как некоторый определенный выходной токен продолжающего типа. Декодирующая часть 134 может выводить четвертый выходной токен 224, который может быть идентифицирован как некоторый определенный выходной токен начального типа. Электронное устройство 104 может быть выполнено с возможностью использования информации, указывающей типы выходных токенов, для определения первой последовательности 212 выходных токенов, соответствующей первому возможному переводу исходного слова 204.
[96] Например, электронное устройство 104 может определять, что, поскольку четвертый выходной токен 224 идентифицируется как некоторый определенный выходной токен начального типа, первый возможный перевод исходного слова 204 начинается с первого выходного токена 221 и заканчивается третьим выходным токеном 223, поскольку четвертый выходной токен 224 соответствует началу следующего слова. В результате электронное устройство 104 может быть выполнено с возможностью определения того, что первая последовательность 212 выходных токенов, подпоследовательность в последовательности 210 выходных токенов, соответствует первому возможному переводу исходного слова 204 на целевой язык.
[97] Электронное устройство 104 выполнено с возможностью сравнения первой последовательности 212 выходных токенов, представляющих первый возможный перевод, с по меньшей мере одним предопределенным правилом для определения того, является ли этот первый возможный перевод желательным для обеспечения в качестве перевода исходного слова 204 на целевой язык.
[98] В по меньшей мере одном варианте осуществления настоящей технологии электронное устройство 104 может быть выполнено с возможностью осуществления доступа к словарю 140 и сравнения первого возможного перевода, соответствующего первой последовательности 212 выходных токенов, с этим словарем слов, содержащимся в нем. В этом варианте осуществления можно сказать, что предопределенным правилом, которое электронное устройство 104 выполнено с возможности проверки, является совпадение между некоторым определенным словом из предопределенного словаря слов и некоторым определенным возможным переводом. Также можно сказать, что электронное устройство 104, применяющее предопределенное правило, выполнено с возможностью проверки того, совпадает ли определенный возможный перевод с одним из слов из предопределенного словаря слов.
[99] Если никакого совпадения между словарем слов и первым возможным переводом нет, электронное устройство 104 может быть выполнено с возможностью определения того, что этот первый возможный перевод является нежелательным. В некоторых вариантах осуществления выполнение такого сравнения электронным устройством 104 может позволить электронному устройству 104 определить, является ли первый возможный перевод неологизмом.
[100] Как упоминалось ранее, словарь 140 может быть реализован как структура данных, содержащая предопределенный словарь слов. Например, слова из предопределенного словаря слов могут быть предварительно отобраны человеком-оператором. В некоторых вариантах осуществления предопределенный словарь слов может быть предопределен оператором системы перевода, связанной с сервером 112. Например, указание предопределенного словаря слов может быть обеспечено электронному устройству 104 через сеть 110 связи в момент времени, когда электронное устройство 104 находится на связи с сервером 112.
[101] В некоторых вариантах осуществления настоящей технологии предопределенный словарь слов может содержать наименования компаний, акронимы и по меньшей мере некоторые неологизмы, которые являются желательными для человека-оператора в качестве кандидата на перевод. Например, неологизм, такой как «LGBTQism», может рассматриваться оператором как желательный, и оператор может включать такой желаемый неологизм в предопределенный словарь слов.
[102] Предположим, что после сравнения первой последовательности 212 выходных токенов со словарем 140 электронное устройство 104 совпадения не нашло. В таком случае электронное устройство 104 может приводить в действие декодирующую часть 134 для генерирования второго возможного перевода. Например, электронное устройство 104 может приводить в действие декодирующую часть 134 для возврата в ее некоторое определенное предыдущее состояние, так что декодирующая часть 134 генерирует вторую, другую, последовательность выходных токенов.
[103] Как проиллюстрировано на Фигуре 3, электронное устройство 104 может приводить в действие декодирующую часть 134 для отката в свое второе состояние, состояние перед генерированием последнего из первой последовательности 212 выходных токенов, то есть во второе состояние декодирующей части 134, в котором она находилась перед генерированием третьего выходного токена 223. Например, с этой целью электронное устройство 104 может осуществить доступ к ранее сохраненным данным, связанным с декодирующей частью 134, в запоминающем устройстве.
[104] Декодирующая часть 134 выполнена с возможностью генерирования новых выходных токенов (в дополнение к первому выходному токену 221 и второму выходному токену 222), запрещая при этом следующему новому выходному токену быть идентичным третьему выходному токену 223.
[105] В этом примере предположим, что декодирующая часть 134 может выводить новый выходной токен 321, идентифицируемый как некоторый определенный выходной токен продолжающего типа, новый выходной токен 322, идентифицируемый как некоторый определенный выходной токен продолжающего типа, и новый выходной токен 323, идентифицируемый как некоторый определенный выходной токен начального типа. Таким образом, после процедуры отката можно сказать, что электронное устройство 104 генерирует новые выходные токены в дополнение к первому выходному токену 221 и второму выходному токену 222, которые вместе изображены как частично новая последовательность 310 выходных токенов.
[106] Электронное устройство 104 может быть выполнено с возможностью использования информации, указывающей типы выходных токенов из частично новой последовательности 310 выходных токенов, для определения второй последовательности 312 выходных токенов, соответствующей второму возможному переводу исходного слова 204, как описано выше.
[107] Электронное устройство 104 может быть выполнено с возможностью сравнения второго возможного перевода исходного слова 204 со словарем 140. Если совпадение найдено, электронное устройство 104 может идентифицировать второй возможный перевод исходного слова 204 как правильный перевод исходного слова 204 для обеспечения пользователю 102. Если совпадение не найдено, электронное устройство 104 может быть выполнено с возможностью выполнения другой процедуры отката для генерирования третьей последовательности выходных токенов, соответствующей третьему возможному переводу исходного слова 204, и так далее.
[108] Следует отметить, что электронное устройство 104 может быть выполнено с возможностью откатывать декодирующую часть 134 в ее второе состояние более одного раза для генерирования дополнительных кандидатов на перевод. Это означает, что электронное устройство 104 может приводить в действие декодирующую часть 134 для генерирования более одной частично новой последовательности выходных токенов (например, частично новой последовательности 310 выходных токенов), все из которых начинаются с первого выходного токена 221 и второго выходного токена 222. Однако, как упомянуто выше, эти более одной частично новые последовательности выходных токенов, генерируемые после соответствующих откатов во второе состояние декодирующей части 134, будут иметь другие выходные токены, идущие после упомянутого второго выходного токена 222.
[109] Также следует отметить, что электронному устройству 104 необязательно необходимо выполнять откат во второе состояние декодирующей части 134 для генерирования дополнительных кандидатов. Например, электронное устройство 104 может быть выполнено с возможностью выполнения отката декодирующей части в ее первое состояние, то есть в состояние декодирующей части 134 перед генерированием второго выходного токена 222. После такого отката в первое состояние декодирующей части 134 (в отличие от ее второго состояния) декодирующая часть 134 может быть выполнена с возможностью генерирования другой частично новой последовательности выходных токенов, аналогично тому, как генерируется частично новая последовательность 310 токенов, но при этом эта другая частично новая последовательность выходных токенов начинается с первого выходного токена 221 и продолжается новым выходным токеном, который отличается от второго выходного токена 222.
[110] Следовательно, в некоторых вариантах осуществления можно сказать, что электронное устройство 104 может приводить в действие декодирующую часть 134 для отката в ее некоторое определенное предыдущее состояние, которое является состоянием декодирующей части 134 перед генерированием первого из по меньшей мере один последнего выходного токена из первой последовательности 212 выходных токенов. В примере, показанном на Фигуре 3, упомянутым по меньшей мере одним последним выходным токеном из первой последовательности 212 выходных токенов является третий выходной токен 223. Однако, как упоминалось выше, по меньшей мере одним последним выходным токеном из первой последовательности 212 выходных токенов может быть второй выходной токен 222 и третий выходной токен 223 (в примерах, где декодирующую часть откатывают в ее первое состояние).
[111] В некоторых вариантах осуществления настоящей технологии электронное устройство 104 может быть выполнено с возможностью выполнения предопределенного числа процедур отката, если не найдено совпадение между сгенерированными таким образом кандидатами на перевод и словарем 140. Например, электронное устройство 104 может быть выполнено с возможностью отката декодирующей части 134 в ее второе состояние три раза, что позволяет сгенерировать три новых кандидата на перевод для исходного слова 204, и отката декодирующей части 134 в ее первое состояние шесть раз, что позволяет сгенерировать шесть новых кандидатов в дополнение к упомянутым трем новым кандидатам на переводы. В этом примере декодирующая часть 134 может сгенерировать всего десять кандидатов на перевод для исходного слова 204, то есть первый кандидат, сгенерированный перед упомянутыми откатами, и девять новых кандидатов после соответствующих откатов.
[112] Предполагается, что в некоторых вариантах осуществления, если не найдено совпадение между предопределенным числом сгенерированных таким образом возможных переводов исходного слова 204 и словарем 140, электронное устройство 104 может быть выполнено с возможностью выбора первого возможного перевода, сгенерированного декодирующей частью 134, в качестве правильного перевода исходного слова 204.
[113] Со ссылкой на Фигуру 4 обеспечено схематичное представление способа 400, исполняемого электронным устройством 104. В контексте настоящей технологии электронное устройство 104 выполнено с возможностью исполнения модели 130 перевода. Можно сказать, что электронное устройство 104 выполнено с возможностью локального исполнения модели 130 перевода.
[114] В некоторых вариантах осуществления настоящей технологии модель перевода может быть построена путем обучения NN для перевода предложений с исходного языка на целевой язык. Исходный язык и целевой язык могут быть выбраны оператором во время фазы обучения NN. Предполагается, что модель 130 перевода может содержать кодирующую часть 132, выполненную с возможностью кодирования входных данных в их компактное представление, и декодирующую часть 134, выполненную с возможностью использования этого компактного представления и других внешних входных данных для декодирования данных и, тем самым, генерирования выходных данных модели 130 перевода. В некоторых вариантах осуществления настоящей технологии декодер выполнен с возможностью исполнения механизма 136 внимания для обращения внимания на ранее сгенерированные выходные токены при генерировании текущего выходного токена. Можно сказать, что декодирующая часть 134 может быть выполнена с возможностью выполнения жадного декодирования данных. Также можно сказать, что декодирующая часть 134 может быть реализована как жадный декодер, который выполнен с возможностью избирательного отката в его предыдущие состояния для генерирования множества возможных переводов некоторого определенного исходного слова. Электронное устройство 104 может быть выполнено с возможностью избирательного привидения в действие откатов декодирующей части на основе одного или более предопределенных правил. В одном варианте осуществления, по меньшей мере одно предопределенное правило может удовлетворяться, когда некоторый определенный возможный перевод совпадает со словом из предопределенного словаря слов, локально хранимого в запоминающем устройстве электронного устройства 104. Электронное устройство 104 также может быть выполнено с возможностью осуществления доступа к запоминающему устройству при откате декодирующей части 134 в одно или более ее предыдущих состояний.
[115] В некоторых вариантах осуществления настоящей технологии электронное устройство 104 может быть выполнено с возможностью выполнения перевода без осуществления доступа к серверу 112. Предполагается, что локальная модель 103 перевода (например, обученная NN) имеет коэффициент емкости ниже предопределенного порога. Также можно сказать, что коэффициент емкости локальной модели 130 перевода уступает коэффициенту емкости удаленной модели 120 перевода, исполняемой сервером 112. Различные этапы способа 400 теперь будут описаны более подробно ниже.
ЭТАП 402: разбиение исходного слова на последовательность входных токенов
[116] Способ 400 начинается с этапа 402 с электронным устройством 104, выполненным с возможностью разбиения исходного слова 204 на последовательность 206 входных токенов. В некоторых вариантах осуществления настоящей технологии можно сказать, что электронное устройство 104 может быть выполнено с возможностью использования алгоритма разбиения слов для генерирования последовательности словесных под-единиц на основе исходного слова 204. Следует отметить, что последовательность 206 входных токенов может быть введена в модель 130 перевода через входной слой (не пронумерован) кодирующей части 132.
ЭТАП 404: генерирование, используя кодирующую часть, последовательности векторных представлений для соответствующих из последовательности входных токенов
[117] Способ 400 переходит на этап 404 с электронным устройством 104, выполненным с возможностью генерирования, используя кодирующую часть 132, последовательности 208 векторных представлений для соответствующих из последовательности 206 входных токенов.
[118] В некоторых вариантах осуществления можно сказать, что кодирующая часть 132 модели 130 перевода выполнена с возможностью (i) приема некоторой определенной последовательности входных токенов, генерируемых на основе текста на исходном языке, и (ii) получения компактного представления этой входной последовательности, пытаясь обобщить или сжать всю ее информацию. Эти компактные представления могут быть введены в декодирующую часть 134 модели 130 перевода в дополнение к другим входным данным, как описано в данном документе.
ЭТАП 406: генерирование, используя декодирующую часть, первой последовательности выходных токенов на основе последовательности векторных представлений
[119] Способ 400 переходит на этап 406 с электронным устройством 104, выполненным с возможностью генерирования, используя декодирующую часть 134, первой последовательности 212 выходных токенов на основе последовательности 208 векторных представлений. Следует отметить, что первая последовательность 212 выходных токенов представляет первое слово-кандидат. Первым словом-кандидатом является возможный перевод исходного слова 204 на целевой язык.
[120] В некоторых вариантах осуществления можно сказать, что электронное устройство 104 может быть выполнено с возможностью генерирования соответствующих выходных токенов из первой последовательности 212 выходных токенов на основе последовательности 208 векторного представления и информации, указывающей ранее сгенерированные выходные токены из первой последовательности 212 выходных токенов.
[121] В других вариантах осуществления настоящей технологии декодирующая часть 134 содержит механизм 136 внимания. Электронное устройство 104, генерирующее первую последовательность 212 выходных токенов, может быть выполнено с возможностью генерирования, используя декодирующую часть 134, первого выходного токена 221 в первой последовательности 212 на основе последовательности 208 векторных представлений. Электронное устройство 104 может быть выполнено с возможностью обеспечения указания первого выходного токена 221 механизму 136 внимания декодирующей части 134 (например, внешние входные данные). Электронное устройство 104 может быть выполнено с возможностью генерирования, используя декодирующую часть 134, второго выходного токена 222 в первой последовательности 212 на основе последовательности 208 векторных представлений и указания первого выходного токена 221. Первым выходным токеном 221 является предыдущий выходной токен относительно второго выходного токена 222 в первой последовательности 212. Второй выходной токен 222 генерируется декодирующей частью 134 с учетом по меньшей мере предыдущего выходного токена.
ЭТАП 408: в ответ на несоответствие первого слова-кандидата по меньшей мере одному предопределенному правилу, приведение в действие декодирующей части для генерирования второй последовательности выходных токенов
[122] Способ 400 переходит на этап 408 с электронным устройством 104, выполненным с возможностью, в ответ на несоответствие первого слова-кандидата по меньшей мере одному предопределенному правилу, приведения в действие декодирующей части 134 для генерирования второй последовательности 312 выходных токенов. Вторая последовательность 312 имеет по меньшей мере один последний выходной токен, отличный от по меньшей мере одного последнего выходного токена первой последовательности 212. Вторая последовательность 312 представляет второе слово-кандидат. Второе слово-кандидат является вторым возможным переводом исходного слова 204 на целевой язык.
[123] В некоторых вариантах осуществления настоящей технологии способ 400 может содержать электронное устройство 104, выполненное с возможностью определения того, что первое слово-кандидат не соответствует упомянутому по меньшей мере одному предопределенному правилу. Например, электронное устройство 104 может быть выполнено с возможностью определения того, что одно предопределенное правило удовлетворяется, если некоторое определенное слово-кандидат совпадает с некоторым словом из предопределенного словаря слов. Следует отметить, что предопределенный словарь слов может храниться локально в электронном устройстве 104. Например, предопределенный словарь слов может храниться в структурированном виде (например, как словарь 140) в запоминающем устройстве электронного устройства 104.
[124] Предполагается, что электронное устройство 104, определяющее, соответствует ли первое слово-кандидат упомянутому по меньшей мере одному предопределенному правилу, может быть выполнено с возможностью сравнения первого слова-кандидата с предопределенным словарем слов.
[125] В некоторых вариантах осуществления настоящей технологии электронное устройство 104, приводящее в действие декодирующую часть 134 для генерирования второй последовательности 312, может быть выполнено с возможностью приведения в действие декодирующей части 134 для возврата в ее предыдущее состояние. Предыдущим состоянием является состояние декодирующей части 134 перед генерированием первого из по меньшей мере одного последнего выходного токена из первой последовательности 212.
[126] В некоторых вариантах осуществления электронное устройство 104, приводящее в действие декодирующую часть 134 для возврата в предыдущее состояние, может быть выполнено с возможностью осуществления доступа к ранее сохраненным данным, связанным с декодирующей частью 134, в запоминающем устройстве. Например, электронное устройство 104 может быть выполнено с возможностью локального хранения данных, указывающих соответствующие состояния декодирующей части 134 во время генерирования первой последовательности 212 выходных токенов, в запоминающем устройстве электронного устройства 104. Можно сказать, что электронное устройство 104, приводящее в действие декодирующую часть 134 для возврата в предыдущее состояние, может соответствовать электронному устройству 104, приводящему в действие процедуру отката декодирующей части 134.
[127] В неограничивающем примере, показанном на Фигурах 2 и 3, по меньшей мере одним последним выходным токеном из первой последовательности 212 является один последний выходной токен из первой последовательности 212 и который соответствует третьему выходному токену 223. В этом примере электронное устройство 104 выполнено с возможностью приведения в действие декодирующей части 134 для возврата в ее второе состояние, состояние декодирующей части 134 перед генерированием третьего выходного токена 223 и/или состояние декодирующей части 134 после генерирования второго выходного токена 222.
[128] Следует отметить, что электронное устройство 104 может быть выполнено с возможностью генерирования, используя декодирующую часть 134 в предыдущем состоянии, первого из по меньшей мере одного последнего выходного токена второй последовательности 312, при этом запрещая этому первому из по меньшей мере одного последнего выходного токена второй последовательности 312 быть идентичным первому из по меньшей мере одного последнего выходного токена первой последовательности 212.
[129] В неограничивающем примере, показанном на Фигурах 2 и 3, первым из по меньшей мере одного последнего выходного токена второй последовательности 312, генерируемым декодирующей частью 134, является новый выходной токен 321. В этом примере декодирующей части 134 может быть запрещено генерировать новый выходной токен 321, чтобы он был идентичен третьему выходному токену 223.
[130] Следует отметить, что первая последовательность 212 и вторая последовательность 312 могут не содержать одинаковое число выходных токенов. Например, первая последовательность 212 содержит три выходных токена, тогда как вторая последовательность 312 содержит четыре выходных токена. Однако следует отметить, что вторая последовательность 312 может именоваться частично другой последовательностью выходных токенов по сравнению с первой последовательностью 212 выходных токенов, поскольку и первая последовательность 212, и вторая последовательность 312 обе начинаются с первого выходного токена 221 и второго выходного токена 222.
[131] Кроме того, в некоторых вариантах осуществления упомянутый по меньшей мере один последний выходной токен в первой последовательности 212 может представлять собой по меньшей мере два последних выходных токена в первой последовательности 212. Это означает, что, когда электронное устройство 104 приводит в действие декодирующую часть 134 для возврата в свое предыдущее состояние, электронное устройство 104 может приводить в действие декодирующую часть 134 для возврата в другие предыдущие состояния, помимо ее второго состояния. Например, электронное устройство 104 может выполнять откат декодирующей части 134 в свое первое состояние, перед генерированием второго выходного токена 222 и/или после генерирования первого выходного токена 221. В таком примере другая вторая последовательность выходных токенов может быть сгенерирована декодирующей частью 134, при этом эта другая вторая последовательность выходных токенов начинается с первого выходного токена 221, например первая последовательность 212, но продолжается новым выходным токеном, который отличается от второго выходного токена 222.
ЭТАП 410: в ответ на соответствие второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определение того, что это второе слово-кандидат является целевым словом
[132] Способ 400 переходит на этап 410 с электронным устройством 104, выполненным с возможностью, в ответ на соответствие второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определения того, что это второе слово-кандидат является целевым словом. Электронное устройство 104 может быть выполнено с возможностью отображать целевое слово пользователю 102 как перевод исходного слова 204.
[133] В некоторых вариантах осуществления электронное устройство 104 может быть выполнено с возможностью сравнения второго слова-кандидата с предопределенным словарем слов. В дополнительных вариантах осуществления, в ответ на несоответствие второго слова-кандидата по меньшей мере одному предопределенному правилу, электронное устройство 104 может быть выполнено с возможностью приведения в действие декодирующей части 134 для генерирования другой второй последовательности выходных токенов. Другая вторая последовательность имеет по меньшей мере один последний выходной токен, отличный от (i) по меньшей мере одного последнего выходного токена первой последовательности и (ii) по меньшей мере одного последнего выходного токена второй последовательности. Вторая последовательность представляет другое второе слово-кандидат.
[134] Электронное устройство 104 может быть выполнено с возможностью, в ответ на соответствие другого второго слова-кандидата упомянутому по меньшей мере одному предопределенному правилу, определения того, что это другое второе слово-кандидат является целевым словом.
[135] В некоторых вариантах осуществления электронное устройство 104 может быть выполнено с возможностью приведения в действие декодирующей части 134 для генерирования предопределенного числа вторых последовательностей выходных токенов, аналогично тому, как электронное устройство 104 выполнено с возможностью приведения в действие декодирующей части 134 для генерирования второй последовательности 312 и/или другой второй последовательности. Упомянутое предопределенное число вторых последовательностей может содержать вторую последовательность и другую вторую последовательность и представляет предопределенное число вторых слов-кандидатов. Предопределенное число вторых последовательностей может быть определено оператором. Электронное устройство 104 может быть выполнено с возможностью, в ответ на то, что ни одно из предопределенного числа вторых слов-кандидатов не соответствует упомянутому по меньшей мере одному предопределенному правилу, определения того, что упомянутое первое слово-кандидат является целевым словом.
[136] Модификации и улучшения вышеописанных реализаций настоящей технологии могут стать очевидными для специалистов в данной области техники. Предшествующее описание предназначено для того, чтобы быть примерным, а не ограничивающим. Поэтому подразумевается, что объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.