Лучевой поиск для seq2seq модели
В задачах машинного перевода часто используется модель seq2seq (sequence-to-sequence). Данная модель в режиме тестирования последовательно выдаёт распределения по вероятностям слов на текущем шаге t. Более подробно можно прочитать в предыдущей заметке. Далее я буду предполагать знакомство с этой моделью.
Сейчас нас будет интересовать механизм работы модели в режиме тестирования. Поскольку модель выдаёт не детерминированные предсказания, а только распределения по словам, то существует очень много последовательностей слов
Одним из самых распространенных методов является «лучевой» поиск
Обозначения:
Псевдокод:
1. Выбираем размер «луча» k.
2. Выбираем функцию оценки для текущего шага f.
3. Инициализируем общий счётчик оценки A размером T х k
4. Инициализируем матрицу скрытых состояний декодера
По t=0,..T:
По i=1,..k:
По всем возможным словам v=1,..V:
Дополнительные материалы можно посмотреть здесь: 1. Поиск в пространстве состояний 2. A Continuous Relaxation of Beam Search for End-to-end Training of Neural Sequence Models 3. Формулы из заметки можно взять здесь.
Есть вопрос? Напишите в комментариях!