注意力模型和Bleu评分
注意力模型——Attention Model
由于在较长的文本序列中,RNN模型不能较好地记忆整个长句子,机器翻译的准确率较低,我们提出注意力模型的方法,每次只翻译句子的一部分,并将注意力分配给句子的不同部分
以机器翻译为例,我们使用一个双向的RNN网络计算对于生成第k个输出时,各自为每个输入数据赋予的权重,即注意力。再将注意力作为输入之一,输入到另一个RNN网络当中,进行机器翻译,网络结构如下所示:
α
<
t
,
t
′
>
意
为
在
预
测
y
^
<
t
>
时
分
配
给
a
<
t
′
>
的
注
意
力
\alpha ^{<t,t'>}意为在预测\hat y^{<t>}时分配给a^{<t'>}的注意力
α<t,t′>意为在预测y^<t>时分配给a<t′>的注意力
注意,有如下几个条件
a
<
t
′
>
=
(
a
←
<
t
′
>
,
a
→
<
t
′
>
)
a^{<t'>} = ( a^{\leftarrow<t'>} , a^{\rightarrow <t'>})
a<t′>=(a←<t′>,a→<t′>)
∑
t
′
α
<
1
,
t
′
>
=
1
(
归
一
化
的
注
意
力
)
\sum _{t'} \alpha^{<1,t'>} = 1(归一化的注意力)
t′∑α<1,t′>=1(归一化的注意力)
c
<
1
>
=
∑
t
′
α
<
1
,
t
′
>
a
<
t
′
>
c^{<1>} = \sum_{t'} \alpha^{<1,t'>}a^{<t'>}
c<1>=t′∑α<1,t′>a<t′>
其实是在翻译的不同阶段(可以理解为时间步)中,将各词对翻译的影响进行权重化,从而造成翻译时有所侧重的效果,在这样的一个思路下,注意力模型应该是针对词汇的分布式表示而提出的,不适用于独热码的词汇表示。
明确了适用范围和大致流程,我们来看一下alpha 这个东西,到底是怎么来的。
首先,注意力的权重必然与预测的位置、注意力关注的位置这两方面有关。
对于预测的位置,其实就是y<t>,这是与第二层(输出层)的h<t-1>相匹配的。
对于注意力关注的位置,其实是第一层RNN网络的词汇关注情况,而这是与a<t’>相匹配的。
将预测位置t和关注位置t’上的信息结合起来,得到e<t,t’>,这是我们所说的注意力的前身,由于注意力整体是存在归一化的约束的,故而我们在求得注意力alpha前,需要对e<t,t’>进行归一化操作。
α
<
t
,
t
′
>
=
e
x
p
(
e
<
t
,
t
′
>
)
∑
t
′
=
1
T
x
e
x
p
(
e
<
t
,
t
′
>
)
\alpha ^{<t,t'>} = \frac {exp(e^{<t,t'>})}{\sum ^{Tx}_{t' = 1}exp(e^{<t,t'>})}
α<t,t′>=∑t′=1Txexp(e<t,t′>)exp(e<t,t′>)
计算注意力alpha的流程如下所示:
Bleu得分
Bleu得分是用于评估机器翻译系统的一个评价指标。
常见的准确度评价:
由于评价翻译准确程度的过程中,只关注翻译得到的单个单词是否出现在人工翻译的语句中,存在较大的偶然性,评分结果也不甚准确,故而我们引入Bleu得分进行衡量。
Bleu得分,即综合考虑连续的1到4个单词在人工翻译中出现的频率(翻译准确度)而给出的一种评分指标。
下面以考虑一元词组和二元词组为例,对Bleu得分进行解释。
在一元词组中,两个人工翻译语句和一个机器翻译语句如下
计算其modified precision,相较precision,将每个单词的计数上限设置为该单词在若干句(本例为两个)人工翻译例句中出现的最大频次。
在本句中,一元词汇的Bleu得分:
Modified Precision=2/7
关于二元词组,机器翻译中出现的词汇单元如下所示:
翻译语句中的词组总数为2+1+1+1+1 = 6
在人工翻译中的准确率为1+0+1+1+1 = 4
其MP值为Countclip(“the”) / Count(“the”) = 4/6 = 2/3
同理,有n元词组的准确度
自然地,为了综合评价其翻译情况,我们有指数化其n个精确度之和的想法。
但,在翻译过程中,我们希望得到一个较长的句子,起码不要比人工的句子短太多,对吧
于是,我们对Bleu得分加上了一个过短的惩罚
关于BP,Brevity Penalty
在机翻长于人工翻译时,得分的指标不做改动,BP值为1
在机翻短于人工翻译时,得分的指标将在原Bleu得分的基础上,乘上一个BP值。这个BP值是指数形式的:exp(1-length_MT/length_PT)