Поиск луча в модели Seq2Seq

задняя часть

1. Представьте

При разработке системы перевода с моделью Seq2Seq предполагается, что вводится предложение на французском языке, а выводится на английском языке. В разделе Вывод декодера выберите другие слова, и результаты вывода (перевода) будут другими.

Вот пример со следующим рисунком:

在这里插入图片描述

Французское предложение переводится в 4 разных английских предложения с помощью модели Seq2Seq. Какой результат мы должны выбрать в качестве окончательного результата?

На приведенном выше рисунке дана формула, в которойxозначает французское предложение,yПредставляет окончательное английское предложение, состоящее из каждого слова, а разные комбинации y представляют разные переводы, то есть y1~yn представляет последовательность слов.

Ключом к решению этой проблемы является поиск подходящего значения y, чтобы максимизировать значение формулы на графике.

Но как именно?

Здесь мы вводим метод:Beam Search.

2. Алгоритм поиска луча: Поиск луча

Ранее мы представили贪心算法, это самое простое: каждый раз слово с наибольшим значением выходной вероятности выбирается для формирования последовательности слов, как показано на следующем рисунке.

在这里插入图片描述

集束搜索и贪心算法Аналогично, разница в том, что он выбирает последовательности N слов с наибольшим значением выходной вероятности каждый раз, N относится к集束宽度(Beam Width). В следующем примере предполагается, что ширина пучка N=2.

在这里插入图片描述

  1. На первом шаге в первом выводе выбираются 2 слова с наибольшими значениями вероятности. Как показано на рисунке, на этом шаге выбираются A и C.

  2. Второй шаг - использовать A и C в качестве входных данных LSTM по очереди, чтобы получить вероятность каждого слова (два набора выходных данных) и выбрать два слова с наибольшим значением вероятности в двух наборах выходных данных. Как показано на рисунке, на этом этапе выбираются B и E.

  3. Второй шаг - использовать B и E в качестве входных данных LSTM по очереди, чтобы получить вероятность каждого слова (два набора выходных данных) и выбрать два слова с наибольшим значением вероятности в двух наборах выходных данных. Как показано на рисунке, на этом шаге выбираются D и D.

  4. Конечным результатом являются два предложения, ABD и CED.

Видно, что если ширина пучка N=1, то集束搜索эквивалентно贪心算法.

3. Преимущества алгоритма

集束搜索Полученное решение не является оптимальным решением, но при определенной ширине можно искать N субоптимальных решений. Такие алгоритмы часто используются в больших системах, где нет единственного правильного решения. Например, распознавание речи, машинный перевод, автоматический ответ на вопрос. Такая система имеет сложные алгоритмы, большой объем данных и высокую размерность VC. Таким образом, основная цель системы состоит не в том, чтобы найти оптимальное решение, а в том, чтобы использовать наибольшую скорость для поиска ближайшего правильного решения в качестве вывода.

Ссылаться на

Оригинальная статья, первоначально опубликованная:blog.CSDN.net/общее желание/AR…