Это 25-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления
поиск луча
В предыдущей статье seq2seq и механизм внимания мы упоминали, что кодировщик, наконец, выводит фоновый вектор.c, фоновый вектор кодирует входную последовательностьx1,x2,...,xTИнформация. Предположим, что выходная последовательность в обучающих данных равнаy1,y2,...,yT', вероятность генерации выходной последовательности равна
P(y1,y2,...,yT')=t'=1∏T'P(yt'∣y1,...,yt'−1,c)
Для вывода машинного перевода, если набор словарного запаса выходного языкаYразмер∣Y∣, длина выходной последовательностиT', то возможные виды выходных последовательностейO(∣Y∣T'). Чтобы найти выходную последовательность с наибольшей вероятностью генерации, один из подходов состоит в том, чтобы вычислить всеO(∣Y∣T')Вероятность генерации каждой возможной последовательности и вывод последовательности с наибольшей вероятностью. Мы называем эту последовательность оптимальной последовательностью. Но этот подход требует больших вычислительных ресурсов (например,1000010=1×1040)
Декодер, который мы представили до сих пор, выдает только слово с наибольшей вероятностью генерации в каждый момент времени. в любой моментt', мы начинаем с∣Y∣выходное слово поиска слов
yt'=yt'еYargmaxP(yt'∣y1,…,yt'−1,c)
Таким образом, вычислительные затраты на поискO(∣Y∣×T')значительное снижение (например,10000×10=1×105), но это не гарантирует, что будет найдена оптимальная последовательность
Поиск луча находится где-то посередине. Давайте посмотрим на пример
Предполагая, что словарь выходной последовательности содержит только 5 слов:Y={A,B,C,D,E}. Гиперпараметр поиска луча называется шириной луча. Взяв в качестве примера ширину луча, равную 2, пусть длина выходной последовательности равна 3. Если время 1 генерирует вероятностьP(yt'∣c)Два самых больших словаAиC, мы на время 2 для всехy2еYрассчитываются отдельноP(y2∣A,c)иP(y2∣C,c), возьмите две самые большие из 10 рассчитанных вероятностей, предполагая, чтоP(B∣A,c)иP(E∣C,c). Тогда мы в момент 3 для всехy3еYрассчитываются отдельноP(y3∣A,B,c)иP(y3∣C,E,c), возьмите две самые большие из 10 рассчитанных вероятностей, предполагая, чтоP(D∣A,B,c)иP(C∣A,B,c)
Далее мы можем вывести последовательность:A,C,AB,CE,ABD,ABCПоследовательности-кандидаты, заканчивающиеся специальным символом EOS, отфильтровываются. Затем возьмите следующую последовательность с наивысшим баллом в качестве последней последовательности-кандидата в последовательности-кандидате:
Lα1logP(y1,…,yL)=Lα1t'=1∑LlogP(yt'∣y1,…,yt'−1,c),
вLдлина последовательности-кандидата,αКак правило, его можно выбрать равным 0,75. в знаменателеLαсостоит в том, чтобы оштрафовать член логарифмического сложения в счете более длинной последовательности
Оцените результаты перевода
В 2002 году команда IBM предложила индикатор для оценки результатов перевода, названный BLEU (Bilingual Evaluation Understudy).
Предполагатьk- максимальная длина n-граммы, которую мы хотим оценить, например.k=4. Точность n-граммовpnОтношение количества эталонных выходных данных для соответствия количеству n-грамм в выходных данных модели к количеству n-грамм в выходных данных модели. Например, эталонный выход (истинное значение) — ABCDEF, а выход модели — ABBCD. Такp1=4/5,p2=3/4,p3=1/3,p4=0. ПредполагатьlenrefиlenMTколичество слов в эталонном выводе и выводе модели соответственно. Тогда BLEU определяется как
exp(min(0,1−lenMTlenref))i=1∏kpn1/2n
Следует отметить, что сnувеличивается, вес n-граммовой точности увеличивается сpn1/2nИндекс уменьшается и увеличивается. Например
0.51/2≈0.7, 0.51/4≈0.84, 0.51/16≈0.96
Другими словами, за совпадение 4 граммов должно быть больше вознаграждения, чем за совпадение 1 грамма. Кроме того, чем короче вывод модели, тем легче получить более высокую точность n-грамм. Следовательно, коэффициенты, предшествующие члену умножения в формуле BLEU, предназначены для штрафа за более короткие выходные данные. Например, когдаk=2, эталонный выход — ABCDEF, а выход модели — AB. В это времяp1=p2=1,иexp(1−6/2)≈0.135, поэтому BLEU=0,135. Когда выход модели также ABCDEF, BLEU=1