注意力训练图解,注意力训练手段

首页 > 经验 > 作者:YD1662024-01-27 22:45:06

通过注意力机制,模型就能够有选择地关注输入序列中有用的部分,从而在解码器和编码器之间对齐。

之后,神经机器翻译所面临的问题,基本上也都有了解决方案。

2016年,谷歌推出了首个基于神经机器翻译的翻译系统。

现在,神经机器翻译已经成为了主流翻译工具的核心方法。

在这段发展历程中,RNN和LSTM,已经有了大量的介绍。注意力机制到底是怎么运作的呢?它到底有何魔力?

接下来请你收看——

图解注意力运作机制

注意力一共分类两种。一种是全局注意力,使用所有编码器隐藏状态。另一种是局部注意力,使用的是编码器隐藏状态的子集。在这篇文章中,提到的注意力,都是全局注意力。

在开始之前,需要看换一下仅基于seq2seq方法的模型是如何翻译的。

以一个将文本从德语翻译成英语的翻译员为例。

注意力训练图解,注意力训练手段(9)

使用“seq2seq”方法的话,他会从头开始逐字逐句阅读德语文本,然后逐字逐句将文本翻译成英语。如果句子特别长的话,他在翻译的时候,可能就已经忘了之前文本上的内容了。

如果使用seq2seq 注意力的方法,他在逐字逐句阅读德语文本的时候,会写下关键词。然后,利用这些关键词,将文本翻译成英语。

在模型中,注意力会为每个单词打一个分,将焦点放在不同的单词上。然后,基于softmax得分,使用编码器隐藏状态的加权和,来聚合编码器隐藏状态,以获得语境向量。

注意力层的实现可以分为6个步骤。

第一步:准备隐藏状态

首先,准备第一个解码器的隐藏状态(红色)和所有可用的编码器的隐藏状态(绿色)。在我们的例子中,有4个编码器的隐藏状态和当前解码器的隐藏状态。

注意力训练图解,注意力训练手段(10)

第二步:获取每个编码器隐藏状态的分数

通过评分函数来获取每个编码器隐藏状态的分数(标量)。在这个例子中,评分函数是解码器和编码器隐藏状态之间的点积。

注意力训练图解,注意力训练手段(11)

decoder_hidden = [10, 5, 10]

encoder_hidden score

---------------------

[0, 1, 1] 15 (= 10×0 5×1 10×1, the dot product)

[5, 0, 1] 60

[1, 1, 0] 15

[0, 5, 1] 35

在上面的例子中,编码器隐藏状态[5,0,1]的注意力分数为60,很高。这意味着要翻译的下一个词将受到这个编码器隐藏状态的严重影响。

第三步:通过softmax层运行所有得分

我们将得分放到softmax函数层,使softmax得分(标量)之和为1。这些得分代表注意力的分布。

注意力训练图解,注意力训练手段(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.