Проблема с моделью кодер-декодер возникает, когда мы начинаем работать с длинными предложениями или длинными абзацами. context-vector не может уловить значение каждого входного слова предложения и не может понять суть перевода с одного языка на другой.
Оглавление
- Как люди переводят язык
- Базовая интуиция внимания
- Работа внимания
- Как вычислить alpha_ij?
- Заключение
1. Как люди переводят язык
Люди читают набор из нескольких слов, присутствующих в предложении, а затем переводят их на другой язык и продолжают повторять этот процесс, пока он не будет завершен. Они уделяют внимание подмножеству слов, присутствующих в предложении, затем переводят их, а затем переключают свое внимание на следующее подмножество слов.
2. Базовая интуиция внимания
Мы используем двунаправленный RNN (без части softmax) в сети кодировщика и однонаправленный RNN в сети декодера, причина использования двунаправленного заключается в том, что вывод будет зависеть от набора слов, а декодер является однонаправленным, поскольку он будет генерировать одно слово, за которым следует другое слово. Синие ячейки в сети кодировщика — это передние единицы, а зеленые ячейки — обратные единицы. Выходные данные скрытых векторов h¹ — › и h¹‹ — объединяются (h^t= h¹ — › + h¹‹ — )
3. Работа внимания
Предположим, что y1, y2, y3, y4 являются выходными данными модели декодера, то есть словами на ассамском языке. Теперь вывод y2 будет зависеть не только от слов x1 и x2, но и от слов после x2, которые равны x3 и x4. Чтобы добиться этого понимания, мы используем двунаправленную RNN, которая поможет нам фиксировать информацию от последнего слова до первого.
Теперь вектор контекста«C» является входом в сеть декодера, и для каждого генерируемого вывода есть входной вектор контекста. Каждый выход из сети кодировщика будет подключаться ко всем векторам контекста для генерации выходных данных в сети декодера. Например:
Контекстный вектор C1 представляет собой взвешенную сумму выходных данных, которые мы получаем от модели кодировщика. Tx — это гиперпараметр, в этом примере мы считаем его равным 4, и в качестве регуляризации мы хотим, чтобы значения alpha_i были неотрицательными, а сумма alpha_i должна быть равна 1. Эти ограничения не позволят значениям aplha_i достигая -бесконечности или + бесконечности.
4. Как вычислить alpha_ji?
Большой вопрос здесь заключается в том, чтобы спроектировать alpha_ji так, чтобы он удовлетворял упомянутым выше ограничениям. Теперь давайте определим alpha_ji как:
Теперь e_ji является функцией S_j-1 и h_i, поэтому alpha_ji зависит от e_ji и функция e_ji зависят от выходных данных модели кодировщика в i_th момент времени h_i и входных данных декодера S_j-1. функция представляет собой простую нейронную сеть, и с помощью обратного распространения мы получим требуемые веса.
5. Вывод
По мере увеличения длины предложения оценка BLEU (точность перевода) для RNNsearch-50 остается неизменной при использовании Tx = 50.
Основным недостатком является временная сложность, которая составляет O(длина входного предложения x длина выходного предложения)