Декодер в системе Moses работает на основе алгоритма лучевого поиска (beam search). Важными состовлящими его работы являются прореживание, оценка будущих издержек и генерация списка n-лучших вариантов.
У каждой строки на иностранном языке существуют возможные переводы для составляющих ее фраз. Такие возможные переводы называются вариантами перевода. Варианты перевода хранятся, основываясь на следующей информации:
- — первое иностранное слово фразы
- — последнее иностранное слово фразы
- — перевод фразы на английский
- — вероятность такого перевода
Основной алгоритм
Строки на целевом языке генерруются слева направо, изначально — в форме гипотез. Исходная гипотеза расширяется за счет новых вариантов перевода. Процесс перевода состоит в том, что фразы иностранного языка заменяются на фразы английского, причем оценивается вероятность каждой из таких замен. При этом, слова исходного языка заменяются на звездочки. В результате, выбирается перевод с наибольшим произведением вероятностей.
Опишем процесс лучевого поиска более формально. Поиск начинается в исходном состоянии, в котором ни одно иностранное слово не переведено и не сгенерировано ни одной английской фразы. Новые состояния формируются с помощью перевода непереведенных еще фраз исходного языка. Таким образом, происходит генерация строки на целевом языке. Вероятность нового состояния высчитывается как произведение вероятности старого состояния, умноженная на вероятность перевода, перестановок и языковой модели добавляемого перевода.
Рисунок 2. Работа декодера.
Каждая гипотеза представляется с помощью:
- — обратной ссылки на лучшее предыдущее состояние (необходимо для поиска наулучшего перевода предложения),
- — иностранных слов, переведенных к этому моменту,
- — двух послених сгенерированных слов целевого языка (необходима для вычисления будущих издержек языковой модели),
- -конец последней переведенной фразы на иностранном языке (необходимо для будущих издержек перестановок),
- — последняя добавленная фраза на целевом языке (необходимо для считывания перевода из последовательности гипотез),
- — издержки к этому моменту,
- — оценка будущих издержек (вычисляется заранее и хранится в памяти из соображений эффективности).
Финальные гипотезы включают в себя перевод всех слов строки на исходном языке. Из них выбирается состояние с наибольшей вероятностью.