Васяева Т.А., Золушкин Ю.А., Мартыненко Т.В., Шуватова Е.А. Нейросетевая модель автоматизированного перевода. В статье рассмотрены подходы к реализации автоматизированных систем перевода, современные примеры таких систем и принципы их работы. Проанализированы актуальные проблемы автоматизированного перевода, показано, что нейросетевые модели имеют преимущества. Реализована нейросетевая модель автоматизированного перевода с использованием рекуррентных нейронных сетей. Для разработки и обучения нейронной сети использован язык программирования Python. Обучение модели и описанные эксперименты выполнены на корпусе данных WMT. Реализованная модель имеет архитектуру кодер-декодер.
Vasyueva T.A., Zolushkin Yu.A., Martynenko T.V., Shuvatova E.A. Neural network model of automated translation. The article discusses approaches to the implementation of automated translation systems, modern examples of such systems and the principles of their work. The actual problems of automated translation are analyzed, it is shown that neural network models have advantages. Implemented neural network model of automated translation using recurrent neural networks. The programming language Python was used to develop and train the neural network. Model training and the described experiments were performed on the WMT data corpus. The implemented model has an encoder-decoder architecture.
автоматизированный перевод, нейросетевая модель, кодер-декодер, рекуррентные нейронные сети, глубокое обучение, машинное обучение, обучение с подкреплением, параллельные тексты, Python
automated translation, neural network model, encoder-decoder, recurrent neural networks, deep learning, machine learning, reinforcement learning, parallel texts, Python
Поскольку мир становится все более глобализированным, потребность в точном и эффективном переводе как никогда высока. Качественный перевод важен в различных областях:
Исследования в области автоматизированного перевода, одного из направлений работы в области обработки естественного языка, ведутся очень давно. Первые модели и разработанные на их основе системы были реализованы еще в 1950-х годах. Решением задачи машинного перевода могут быть: правиловые системы (rule-based) (1950-е годы); статистические модели (statistics-based) (1960-2010); нейронные модели (neural-based) (2010-е годы - настоящее время).
В последние годы эффективным решением стал нейросетевой перевод, использующий возможности искусственного интеллекта. Рассмотрим некоторые из наиболее известных современных систем автоматизированного перевода и основные принципы их работы.
Несмотря на хорошие результаты нейросетевого перевода в настоящее время продолжаются исследования по следующим направлениям:
В связи с этим, дальнейшие исследования в области построения языковых моделей и реализации на их основе систем автоматизированного перевода являются актуальными и перспективными.
Задача машинного перевода формально описывается так: у нас есть source предложение – это предложение на языке, с которого мы должны перевести и target предложение – это предложение на языке, на который мы должны привести.
\[\text{source} = x_1, x_2, \dots, x_n\] \[\text{target} = y_1, y_2, \dots, y_n\]
Задача машинного перевода найти наиболее вероятную последовательность на target языке при условии входящей последовательности на source языке.
Target предсказанной модели перевода это argmax по всем target то есть по всем переводам, которые вообще могут соответствовать предложению source. То есть самый вероятный перевод предложения:
\[ \begin{aligned} P(\text{target} \mid \text{source}) = &P(y_1, y_2, \dots, y_n \mid \text{source}) = \\ &P(y_1 \mid \text{source}) \cdot P(y_2 \mid y_1, \text{source}) \cdots P(y_n \mid y_1, \dots, y_{n-1}, \text{source}) \end{aligned} \]
Необходимо получить переводы \(\text{source}\) предложения на \(\text{target}\) язык, который может сгенерировать наша модель и выбирать из них с максимальной вероятностью. То есть тот, который вероятнее всего является действительно переводом предложения source на target.
\[\arg\max_{\text{target}} P(\text{target} \mid \text{source}, \theta)\]
Одним из основных аспектов, влияющих на качество моделей машинного перевода, является выбор набора данных (датасета). Рассмотрим наиболее современные и открытые датасеты параллельных текстов, использующиеся при создании моделей обработки естественного языка (табл. 1).
| Название датасета | Разработчик | Объем |
|---|---|---|
| WikiMatrix | Meta Research | 135 миллионов параллельных предложений |
| CCMatrix | Meta Research | 4.5 миллиарда параллельных предложений |
| News-Commentary | Barrault et al. | 109 текстов |
| WMT | Bojar et al. | 42.3 миллионов параллельных предложений |
| MASSIVE | Amazon | 1 миллион текстов |
Следует отметить, что нацеленность датасета MASSIVE [1] на парадигму MMNLU (massively multilingual natural-language understanding) делает набор данных чрезмерно тяжеловесным.
WikiMatrix [2] наиболее часто применяются при обучении систем машинного перевода между разными языками без необходимости переходить на английский язык.
WMT [3] является наиболее часто используемым для построения моделей машинного обучения, содержит тексты на русском и английском языках, и использован для исследований в данной работе.
Перед разработкой модели, необходимо выполнить следующие этапы: токенизация; нормализация; фильтрация; векторизация.
В [4] последовательно рассмотрены перечисленные этапы обработки естественного языка, выполнено их описание, реализация и тестирование. Также в статье [4] проведен анализ методов преобразования слов, таких как Embedding и One-hot-encoding. Для решения задачи нейронного переводчика было выбрано векторное представление слов Embedding.
Получение векторных представлений слов, на корпусе параллельных данных WMT 2020, с использованием word2vec описано в [5]. В работе [5] выполнена реализация на языке программирования Python с использованием облачного сервиса на основе Jupyter Notebook – Google Colab.
Нейросетевая модель для перевода, это языковая модель с ограничениями, т.е. модель не просто генерирует нормальные предложения, а они являются переводом конкретного предложения. Наиболее распространенными моделями являются модели кодер-декодер (рис. 1), которые обычно используют рекуррентную нейронную сеть (RNN).
Рисунок 1 – Sequence-to-sequence модель для машинного перевода
Нейросетевая модель для перевода состоит из двух частей: энкодера и декодера. Энкодер (нейросетевая языковая модель) собирает информацию о предложении на source языке. Декодер использует информацию, собранную энкодером, чтобы сгенерировать предложение-перевод на target языке.
Входное/исходное предложение X вводится в кодер по одному слову за раз. Необходимо добавить маркеры начала последовательности (<sos>) и конца последовательности (<eos>) к началу и концу предложения соответственно. На каждом шаге входом в кодер RNN является как текущее слово, \(x_t\) так и скрытое состояние из предыдущего шага, \(h_{t-1}\), и кодер RNN выводит новое скрытое состояние \(h_t\). Скрытое состояние в упрощенном понимании является векторным представлением предложения. RNN можно представить как функцию как от \(x_t\), так и от \(h_{t-1}\):
\[h_t = \text{EncoderRNN}(x_t, h_{t-1})\]
В качестве RNN может быть выбрана любая рекуррентная архитектура, такая как LSTM [6] или GRU.
Начальное скрытое состояние, \(h_0\), обычно либо инициализируется нулями, либо значением, полученным при обучении.
Как только последнее слово \(x_T\) передано в RNN, скрытое состояние \(h_T\) используется в качестве вектора контекста, то есть \(h_T = z\). Это векторное представление всего исходного предложения.
После получения вектора контекста z, необходимо начать его декодирование, чтобы получить целевое предложение. Как и в описанном выше случае, необходимо добавить маркеры начала и конца последовательности к предложению. На каждом шаге входом в декодер RNN является текущее слово \(y_t\), а также скрытое состояние предыдущего шага \(s_{t-1}\), где начальное скрытое состояние декодера \(s_0\) представляет собой вектор контекста, \(s_0 = z = h_T\), т. е. начальное скрытое состояние декодера является конечным скрытым состоянием кодера. Таким образом, подобно кодеру, декодер можно представить как:
\[s_t = \text{DecoderRNN}(y_t, s_{t-1})\]
В декодере нужно перейти от скрытого состояния к реальному слову, поэтому на каждом шаге необходимо использовать \(s_t\) для предсказания (пропуская его через линейный слой), что является следующим словом в последовательности \(\hat{y}\).
\[\hat{y} = s_t\]
Маркер <sos> используется для первого ввода в декодер \(y_1\). Для последующих вводов \(y_{t-1}\), в некоторых случаях необходимо использовать следующее слово в последовательности \(y_t\), а иногда использовать слово, предсказанное декодером \(\hat{y}_{t-1}\).
Данный подход соответствует обучению с подкреплением (teacher forcing).
| Название параметра | Значение |
|---|---|
| Оптимизатор | Adam |
| Количество эпох | 40 |
| Критерий (loss) | Кросс энтропия |
| Размер батча | 64 |
| Размер эмбеддинга | 256 |
| Размер скрытого слоя | 512 |
| Дропаут | 0.5 |
| Коэффициент обучения с подкреплением | 0.5 |
Реализация структуры нейронной сети на языке python представлена на рис. 2. Результаты обучения представлены на рисунках 3 и 4.
Рисунок 2 – Структура нейронной сети
Рисунок 3 - График изменения ошибки во время обучения нейронной сети
Рисунок 4 - График изменения ошибки обучения от количества эпох
Оценка качества полученного перевода осуществлялась с использованием метрики BLEU [7].
Результатом работы является разработанная нейросетевая модель автоматизированного перевода. Выполнена математическая постановка задачи к переводу текстов. Выбран корпус данных для обучения модели. В работе использованы реализованные ранее [4] этапы обработки текста и реализация модуля получения векторных представлений слов [5]. Разработан модуль нейросетевого перевода, обучена модель для перевода текстов.