Результаты поиска и оценки луча

алгоритм

Это 25-й день моего участия в августовском испытании обновлений. Ознакомьтесь с подробностями мероприятия: Испытание августовского обновления

поиск луча

В предыдущей статье seq2seq и механизм внимания мы упоминали, что кодировщик, наконец, выводит фоновый вектор.c\boldsymbol{c}, фоновый вектор кодирует входную последовательностьx1,x2,...,xT\boldsymbol{x}_1,\boldsymbol{x}_2,...,\boldsymbol{x}_TИнформация. Предположим, что выходная последовательность в обучающих данных равнаy1,y2,...,yT'\boldsymbol{y}_1,\boldsymbol{y}_2,...,\boldsymbol{y}_{T'}, вероятность генерации выходной последовательности равна

P(y1,y2,...,yT')=t'=1T'P(yt'y1,...,yt'1,c)P(\boldsymbol{y}_1,\boldsymbol{y}_2,...,\boldsymbol{y}_{T'})=\prod_{t'=1}^{T'}P(\boldsymbol{y}_{t'}\mid \boldsymbol{y}_1,...,\boldsymbol{y}_{t'-1},\boldsymbol{c})

Для вывода машинного перевода, если набор словарного запаса выходного языкаY\mathcal{Y}размерY|\mathcal{Y}|, длина выходной последовательностиT'T', то возможные виды выходных последовательностейO(YT')O(|\mathcal{Y}|^{T'}). Чтобы найти выходную последовательность с наибольшей вероятностью генерации, один из подходов состоит в том, чтобы вычислить всеO(YT')O(|\mathcal{Y}|^{T'})Вероятность генерации каждой возможной последовательности и вывод последовательности с наибольшей вероятностью. Мы называем эту последовательность оптимальной последовательностью. Но этот подход требует больших вычислительных ресурсов (например,1000010=1×104010000^{10}=1\times10^{40})

Декодер, который мы представили до сих пор, выдает только слово с наибольшей вероятностью генерации в каждый момент времени. в любой моментt't', мы начинаем сY|\mathcal{Y}|выходное слово поиска слов

yt'=argmaxyt'еYP(yt'y1,,yt'1,c)\boldsymbol{y}_{t'} = \operatorname*{argmax}_{\boldsymbol{y}_{t'} \in \mathcal{Y}} P(\boldsymbol{y}_{t'} \mid \boldsymbol{y}_{1}, \ldots, \boldsymbol{y}_{t'-1}, \boldsymbol{c})

Таким образом, вычислительные затраты на поискO(Y×T')O(|\mathcal{Y}|\times T')значительное снижение (например,10000×10=1×10510000\times 10=1\times 10^{5}), но это не гарантирует, что будет найдена оптимальная последовательность

Поиск луча находится где-то посередине. Давайте посмотрим на пример

Предполагая, что словарь выходной последовательности содержит только 5 слов:Y={A,B,C,D,E}\mathcal{Y}=\{A,B,C,D,E\}. Гиперпараметр поиска луча называется шириной луча. Взяв в качестве примера ширину луча, равную 2, пусть длина выходной последовательности равна 3. Если время 1 генерирует вероятностьP(yt'c)P(\boldsymbol{y}_{t'}\mid \boldsymbol{c})Два самых больших словаAAиCC, мы на время 2 для всехy2еY\boldsymbol{y}_{2}\in \mathcal{Y}рассчитываются отдельноP(y2A,c)P(\boldsymbol{y}_2\mid A,\boldsymbol{c})иP(y2C,c)P(\boldsymbol{y}_{2}\mid C,\boldsymbol{c}), возьмите две самые большие из 10 рассчитанных вероятностей, предполагая, чтоP(BA,c)P(B\mid A,\boldsymbol{c})иP(EC,c)P(E\mid C,\boldsymbol{c}). Тогда мы в момент 3 для всехy3еY\boldsymbol{y}_{3}\in \mathcal{Y}рассчитываются отдельноP(y3A,B,c)P(\boldsymbol{y}_3\mid A,B,\boldsymbol{c})иP(y3C,E,c)P(\boldsymbol{y}_3\mid C,E,\boldsymbol{c}), возьмите две самые большие из 10 рассчитанных вероятностей, предполагая, чтоP(DA,B,c)P(D\mid A,B,\boldsymbol{c})иP(CA,B,c)P(C\mid A,B,\boldsymbol{c})

Далее мы можем вывести последовательность:AA,CC,ABAB,CECE,ABDABD,ABCABCПоследовательности-кандидаты, заканчивающиеся специальным символом EOS, отфильтровываются. Затем возьмите следующую последовательность с наивысшим баллом в качестве последней последовательности-кандидата в последовательности-кандидате:

1LαlogP(y1,,yL)=1Lαt'=1LlogP(yt'y1,,yt'1,c),\frac{1}{L^\alpha} \log P(\boldsymbol{y}_1, \ldots, \boldsymbol{y}_{L}) = \frac{1}{L^\alpha} \sum_{t'=1}^L \log P(\boldsymbol{y}_{t'} \mid \boldsymbol{y}_1, \ldots, \boldsymbol{y}_{t'-1}, \boldsymbol{c}),

вLLдлина последовательности-кандидата,α\alphaКак правило, его можно выбрать равным 0,75. в знаменателеLαL^{\alpha}состоит в том, чтобы оштрафовать член логарифмического сложения в счете более длинной последовательности

Оцените результаты перевода

В 2002 году команда IBM предложила индикатор для оценки результатов перевода, названный BLEU (Bilingual Evaluation Understudy).

Предполагатьkk- максимальная длина n-граммы, которую мы хотим оценить, например.k=4k=4. Точность n-граммовpnp_nОтношение количества эталонных выходных данных для соответствия количеству n-грамм в выходных данных модели к количеству n-грамм в выходных данных модели. Например, эталонный выход (истинное значение) — ABCDEF, а выход модели — ABBCD. Такp1=4/5,p2=3/4,p3=1/3,p4=0p_1=4/5,p_2=3/4,p_3=1/3,p_4=0. Предполагатьlenref\text{len}_{\text{ref}}иlenMT\text{len}_{\text{MT}}количество слов в эталонном выводе и выводе модели соответственно. Тогда BLEU определяется как

exp(min(0,1lenreflenMT))i=1kpn1/2n\exp(\min(0, 1-\frac{\text{len}_{\text{ref}}}{\text{len}_{\text{MT}}}))\prod_{i=1}^{k}p_{n}^{1/2^n}

Следует отметить, что сnnувеличивается, вес n-граммовой точности увеличивается сpn1/2np_{n}^{1/2^n}Индекс уменьшается и увеличивается. Например

0.51/20.7, 0.51/40.84, 0.51/160.960.5^{1/2}\approx 0.7,\ 0.5^{1/4}\approx 0.84,\ 0.5^{1/16}\approx0.96

Другими словами, за совпадение 4 граммов должно быть больше вознаграждения, чем за совпадение 1 грамма. Кроме того, чем короче вывод модели, тем легче получить более высокую точность n-грамм. Следовательно, коэффициенты, предшествующие члену умножения в формуле BLEU, предназначены для штрафа за более короткие выходные данные. Например, когдаk=2k=2, эталонный выход — ABCDEF, а выход модели — AB. В это времяp1=p2=1p_1=p_2=1exp(16/2)0.135\exp(1-6/2)\approx0.135, поэтому BLEU=0,135. Когда выход модели также ABCDEF, BLEU=1