【摘要】
视频描述生成是一种序列到序列的任务,其输入为视频帧序列,输出为语义文本序列,多项研究使用循环神经网络构造出encoder-decoder结构训练视频描述生成模型,以往的模型由于使用单词级交叉熵损失进行训练而不能和句子级别的评测指标很好地相关。Pasunuru等人通过加入蕴含奖励机制结合两个文本之间的逻辑关系对生成文本序列的可能性进行增强或减弱,从而改善了基于短语匹配的评测指标。然而,他们的模型在推理生成的caption和ground truth之间的逻辑关系时,采用了Parikh等人的方法,Parikh等人的方法是将输入的文本向量作为一个词袋向量(将所有词语都装进一个词袋里,不考虑它们的语法和顺序,即每一个词语都是独立的),将生成的caption和ground truth之间做一个简单的软对齐将句子进行分解,把对整个句子的逻辑关系推理转化为对语义相似单词之间的并行推理,最终对单词之间的推理结果进行整合得到两个语句之间的逻辑关系。
我们认为Parikh等人的方法没有考虑单词之间的语法和顺序,丢失了句子的序列化信息,而且无法跟踪文本序列中的长距离信息和依赖关系而使得对两个文本之间逻辑关系推理的准确性不高。所以我们对文本蕴含推理这一部分进行了改进,在对模型生成语义描述文本和数据集中的标注文本之间的逻辑关系进行推理时,使用双向长短期记忆网络(BiLSTM)对输入的语义文本向量进行编码,从而有效地记录和保留距离较远的语义信息和依赖关系,并对编码后的向量进行局部推理信息增强处理,进一步提升了预测文本和数据集中标注文本之间逻辑关系的准确性,我们还将改进后的蕴含奖励机制应用到视频描述生成强化任务中,在视频描述生成的四个评测指标(BLEU-4、ROUGE、METEOR和CIDEr)上都较之前的模型有所提升。
【研究背景】
大多数的研究都将视频描述生成看作是一项序列到序列的任务,将一个视频作为输入,通过encoder-decoder结构预测出针对该视频中内容的语义描述。对视频内容进行语义描述主要由两步组成:第一步是利用循环神经网络(多用LSTM、GRU等)对视频的多帧图像序列进行编码;第二步是使用循环神经网络逐一地生成针对视频内容描述的单词,直到看到句子结束标记,根据最大似然估计的算法预测生成整个句子。在这样的视频描述生成模型中,解码器每一个时刻的输出都是由它上一个时刻的输出和编码器的最末一个的隐藏状态决定的,但是每一时刻的输出往往只跟图像帧序列中的某几项的内容有关,因此很多研究方法在在encoder-decoder的过程中还引入了注意力机制,在解码器逐个生成词语的过程中,对视频中每一帧进行线性加权,这样一来,在解码的过程中就能有目的性地关注所对应的帧,从而提高了视频描述预测生成的准确率。
【模型框架】
将一个视频在MSR-VTT数据集中对应的语义描述作为前提(premise),加入attention机制的seq2seq模型生成的caption作为假设(hypothesis),用双向长短期记忆网络(Bi-RNN)来编码输入的前提和假设,再使用软对齐的方式将前提向量表达和假设向量表达进行对齐并计算出词相似度矩阵,通过句子相互表示进行局部推理并对局部推理信息进行增强,最后使用双向长短期记忆网络对前提和假设之间的推理关系进行预测,最终将推理关系得分作为奖励回馈给加入attention机制的seq2seq模型进行优化。
【强化蕴含奖励模型】
强化蕴含奖励模型主要分为输入编码、局部推理和推理组合三个模块。
【1-输入编码】
首先定义符号表示,定义两个句子
a
=
(
a
1
,
a
2
,
…
a
l
a
)
a=\left(a_{1}, a_{2}, \ldots a_{l_{a}}\right)
a=(a1,a2,…ala)和
b
=
(
b
1
,
b
2
,
…
b
l
b
)
b=\left(b_{1}, b_{2}, \ldots b_{l_{b}}\right)
b=(b1,b2,…blb),其中a表示前提,b表示假设。
a
i
,
b
j
∈
R
l
a_{i}, b_{j} \in \mathbb{R}^{l}
ai,bj∈Rl是
l
l
l维的词向量嵌入,使用了预训练的GloVe Embedding模型。目标是预测标签y,标签y表示前提和假设之间的逻辑关系。
我们使用双向长短期记忆网络(BiLSTM)来编码输入的前提(premise)和假设(hypothesis),我们将BiLSTM在输入文本上在第i个时刻产生的隐藏状态记作
a
ˉ
i
\bar{a}_{i}
aˉi,将BiLSTM在输入文本上在第i个时刻产生的隐藏状态记作
b
ˉ
i
\bar{b}_{i}
bˉi,即
a
ˉ
i
=
B
i
L
S
T
M
(
a
,
i
)
,
∀
i
∈
[
1
,
…
,
l
a
]
\bar{a}_{i}=B i L S T M(a, i), \forall i \in\left[1, \ldots, l_{a}\right]
aˉi=BiLSTM(a,i),∀i∈[1,…,la]
b
ˉ
i
=
B
i
L
S
T
M
(
b
,
i
)
,
∀
i
∈
[
1
,
…
,
l
b
]
\bar{b}_{i}=B i L S T M(b, i), \forall i \in\left[1, \ldots, l_{b}\right]
bˉi=BiLSTM(b,i),∀i∈[1,…,lb]
在学习对文本序列的表示时,BiLSTM使用门和记忆单元来控制序列中语义向量被记忆的长短,从而有效地记录和保留距离较远的有用的语义信息。双向长短期记忆网络分别从前和后开始运行前向和后向LSTM,然后连接这两个记忆网络在每个时刻生成的隐藏层状态以计算该时刻的隐藏层状态。
【2-局部推理】
局部推理需要对前提和假设中的相关子实体采用某种形式的硬对齐或软对齐来实现,在深度学习网络中,往往使用软对齐来进行计算。Parikh等人将此阶段展开为:将输入的文本向量作为一个BOW向量(将所有词语都装进一个词袋里,不考虑它们的语法和顺序,即每一个词语都是独立的),单独计算句子之间的对齐,使每个词与假设(或前提)的内容软对齐。
在我们的模型中,注意力权重被定义为前提和假设之间隐藏层状态元组
<
a
ˉ
i
,
b
ˉ
j
>
<\bar{a}_{i}, \quad \bar{b}_{j}>
<aˉi,bˉj>的相似性,即:
e
i
j
=
a
ˉ
i
T
b
ˉ
j
e_{i j}=\bar{a}_{i}^{T} \bar{b}_{j}
eij=aˉiTbˉj
单词之间的逻辑关系由上式中的attention权重确定,
a
ˉ
i
\bar{a}_{i}
aˉi(已经对单词本身以及上下文进行过编码后的向量)是前提句中的语义向量,使用注意力权重
e
i
j
e_{i j}
eij来识别和组合假设中的相关语义, 即:
a
~
i
=
∑
j
=
1
l
b
exp
(
e
i
j
)
∑
k
=
1
l
b
exp
(
e
i
k
)
b
ˉ
j
,
∀
i
∈
[
1
,
…
,
l
a
]
\tilde{\mathbf{a}}_{\mathbf{i}}=\sum_{\mathbf{j}=1}^{l_{\mathbf{b}}} \frac{\exp \left(\mathbf{e}_{\mathbf{ij}}\right)}{\sum_{\mathbf{k}=1}^{l_ b} \exp \left(\mathbf{e}_{\mathbf{i} \mathbf{k}}\right)} \bar{b}_{j}, \forall i \in\left[1, \ldots, l_{a}\right]
a~i=∑j=1lb∑k=1lbexp(eik)exp(eij)bˉj,∀i∈[1,…,la]
在上式中,对
a
~
i
\tilde{a}_{i}
a~i的计算通过对
{
b
ˉ
j
}
j
=
1
l
b
\left\{\bar{b}_{j}\right\}_{j=1}^{l_{b}}
{bˉj}j=1lb中的每一项乘以一个权重并求和来实现,即选取跟
a
ˉ
i
\bar{a}_{i}
aˉi相近程度高的
{
b
ˉ
j
}
j
=
1
l
b
\left\{\bar{b}_{j}\right\}_{j=1}^{l_{b}}
{bˉj}j=1lb中的词组来计算
a
~
i
\tilde{a}_{i}
a~i。同理,对于假设中的隐藏层状态
b
ˉ
j
\bar{b}_{j}
bˉj,也使用注意力权重
e
i
j
e_{i j}
eij来识别和组合前提中的相关语义,即:
b
~
j
=
∑
i
=
1
l
a
exp
(
e
i
j
)
∑
k
=
1
l
a
exp
(
e
k
j
)
a
ˉ
i
,
∀
j
∈
[
1
,
…
,
l
b
]
\tilde{b}_{j}=\sum_{i=1}^{l_{a}} \frac{\exp \left(e_{i j}\right)}{\sum_{k=1}^{l_a} \exp \left(e_{k j}\right)} \bar{a}_{i}, \forall j \in\left[1, \ldots, l_{b}\right]
b~j=∑i=1la∑k=1laexp(ekj)exp(eij)aˉi,∀j∈[1,…,lb]
为了进一步体现局部信息之间的差异性,利于后续的学习过程,我们还进一步增强了收集到的局部信息。我们计算了元组<
a
ˉ
,
a
~
\bar{a}, \tilde{a}
aˉ,a~>和元组<
b
ˉ
,
b
~
\bar{b}, \tilde{b}
bˉ,b~>之间的差、以及对应元素相乘(对两个向量对应的每一位分别进行做乘法,不计算总和,运算后的结果是一个和进行计算的向量维度相同的向量),希望通过这样的操作可以帮助增加元组中元素之间的局部推理信息以及诸如矛盾之类的推理关系。然后将计算后的差和点积分别与原始向量
a
ˉ
,
a
~
\bar{a}, \tilde{a}
aˉ,a~,或与
b
ˉ
,
b
~
\bar{b}, \tilde{b}
bˉ,b~拼接起来。即:
m
a
=
[
a
ˉ
;
a
~
;
a
ˉ
−
a
~
;
a
ˉ
⊙
a
~
]
m
b
=
[
b
ˉ
;
b
~
;
b
ˉ
−
b
~
;
b
ˉ
⊙
b
~
]
\begin{aligned} m_{a} &=[\bar{a} ; \tilde{a} ; \bar{a}-\tilde{a} ; \bar{a} \odot \tilde{a}] \\ m_{b} &=[\bar{b} ; \tilde{b} ; \bar{b}-\tilde{b} ; \bar{b} \odot \tilde{b}] \end{aligned}
mamb=[aˉ;a~;aˉ−a~;aˉ⊙a~]=[bˉ;b~;bˉ−b~;bˉ⊙b~]
【3-推理组合】
为了确定前提和假设之间的整体推断关系,我们使用BiLSTM来组合增强的局部推理信息
m
a
m_{a}
ma和
m
b
m_{b}
mb。这里的BiLSTM用于描述局部推理信息
m
a
m_{a}
ma和
m
b
m_{b}
mb及其上下文,以便进行后续的推理组合,即:
v
a
,
i
=
B
i
L
S
T
M
(
m
a
,
i
)
v_{a, i}=B i L S T M\left(m_{a}, i\right)
va,i=BiLSTM(ma,i)
v
b
,
i
=
B
i
L
S
T
M
(
m
b
,
i
)
v_{b, i}=B i L S T M\left(m_{b}, i\right)
vb,i=BiLSTM(mb,i)
我们的模型将上述获得的向量传入一个池化层计算出平均池化和最大池化,并连接所有这些向量以形成最终的长度固定的向量v:
v
a
,
a
v
e
=
∑
i
=
1
l
a
v
a
,
i
l
a
\mathrm{v}_{\mathrm{a}, \mathrm{ave}}=\sum_{\mathrm{i}=1}^{l_{\mathrm{a}}} \frac{\mathrm{v}_{\mathrm{a}, \mathrm{i}}}{l_a}
va,ave=∑i=1lalava,i
v
b
,
ave
=
∑
j
=
1
l
b
v
b
,
j
l
b
v_{b, \text { ave }}=\sum_{j=1}^{l_{b}} \frac{v_{b, j}}{l_{b}}
vb, ave =∑j=1lblbvb,j
v
a
,
max
=
max
i
v
a
,
i
,
∀
i
∈
[
1
,
…
,
l
a
]
\mathrm{v}_{\mathrm{a}, \max }=\max _{\mathrm{i}} \mathrm{v}_{\mathrm{a}, \mathrm{i}}, \forall \mathrm{i} \in\left[1, \ldots, l_{\mathrm{a}}\right]
va,max=maxiva,i,∀i∈[1,…,la]
v
b
,
max
=
max
j
v
b
,
j
,
∀
j
∈
[
1
,
…
,
l
b
]
\mathrm{v}_{\mathrm{b}, \max }=\max _{\mathrm{j}} \mathrm{v}_{\mathrm{b}, \mathrm{j}}, \forall \mathrm{j} \in\left[1, \ldots, l_{\mathrm{b}}\right]
vb,max=maxjvb,j,∀j∈[1,…,lb]
v
=
[
v
a
,
a
v
e
;
v
a
,
m
a
x
;
v
b
,
a
v
e
;
v
b
,
max
]
v=\left[v_{a, a v e} ; v_{a, m a x} ; v_{b, a v e} ; v_{b, \max }\right]
v=[va,ave;va,max;vb,ave;vb,max]
最后将v喂给多层感知器进行整体逻辑关系的预测,得到最终的生成的caption和ground truth之间的逻辑关系的概率。然后将这个概率值作为强化学习中的奖励,对模型增加或降低单词概率来鼓励或阻止生成分布。
【改进蕴含奖励的video caption强化模型】
在这一节中,我们将我们提出的改进的强化蕴含奖励机制用于视频描述生成任务中,搭建了改进蕴含奖励的视频描述生成强化模型。
视频描述生成的研究目标是对给定的视频自动生成一段针对该视频的语义描述,其中包括对时间序列和动作序列的附加建模,该任务不仅需要识别视频中的目标以及理解目标之间的关系,还需要用一句符合语法的话来描述识别到的物体和物体之间的关系。本课题中的视频描述生成模型与当前的主流的研究方法类似,对于输入的视频片段,通过将语义描述的概率最大化来训练一个视频描述生成模型。即通过所给的视频图像序列,预测出输出的语义文本序列的条件概率,即:
p
(
y
1
,
y
2
…
,
y
m
∣
x
1
,
x
2
,
…
,
x
n
)
\mathrm{p}\left(\mathrm{y}_{1}, \mathrm{y}_{2} \ldots, \mathrm{y}_{\mathrm{m}} | \mathrm{x}_{1}, \mathrm{x}_{2}, \ldots, \mathrm{x}_{\mathrm{n}}\right)
p(y1,y2…,ym∣x1,x2,…,xn)
【1-加入attention机制的seq2seq模型】
给定的视频首先被输入到encoder-decoder框架中。编码部分用于顺序读入视频帧序列,并将每一帧图像转化为一个包含输入信息的长度固定的向量,在我们的模型中,编码序列的长度被设定为50个时间步,每个时间步读入一帧图像,并用“0”填补长度不到50的视频图像帧序列。在编码阶段,使用双向长短期记忆网络(Bi-LSTM)顺序读入输入的视频帧序列,之所以使用Bi-LSTM,是因为在某些情况之下,当前的输出不仅仅依赖于之前序列中的内容,还有可能要依赖之后序列中的内容。
由于encoder-decoder模型在解码时是根据encoder生成的固定的语义向量C生成输出语义文本序列的,而LSTM网络计算完当前时刻的隐藏层状态后,无法获取之前所有时间步的隐藏层状态,encoder要将整个输入视频图像信息全都进行编码,并将编码后的信息压缩到一个长度固定的向量中,所以往往都会使用encoder的末尾的隐藏状态作为语义向量输入到decoder中。这样会导致语义向量不能完全覆盖到整个输入序列的信息,所以引入了注意力(attention)机制。
加入attention机制后的模型与之前的encoder-decoder模型最大的不同就是它不需要把所有输入的序列信息都进行编码并压缩到一个长度固定的语义向量中去。加入注意力机制后,编码器将输入的序列进行编码,将其处理为一个向量序列,在解码器中,每一步都会从编码产生的向量序列中选择一个子序列并对它进行进一步的处理。通过这种方式,解码器的每一个输出都能充分利用输入序列所保存和记录的信息。
在decoder部分采用长短期记忆网络并加入了attention机制,条件概率定义为:
p
(
y
i
∣
y
1
,
…
,
y
i
−
1
,
X
)
=
g
(
y
i
−
1
,
s
i
,
c
i
)
\mathrm{p}\left(\mathrm{y}_{\mathrm{i}} | \mathrm{y}_{1}, \ldots, \mathrm{y}_{\mathrm{i}-1}, \mathrm{X}\right)=\mathrm{g}\left(\mathrm{y}_{\mathrm{i}-1}, \mathrm{s}_{\mathrm{i}}, \mathrm{c}_{\mathrm{i}}\right)
p(yi∣y1,…,yi−1,X)=g(yi−1,si,ci)
s
i
s_i
si表示decoder在第i个时刻的隐藏状态,产生方法为:
s
i
=
f
(
s
i
−
1
,
y
i
−
1
,
c
i
)
\mathrm{s}_{\mathrm{i}}=\mathrm{f}\left(\mathrm{s}_{\mathrm{i}-1}, \mathrm{y}_{\mathrm{i}-1}, \mathrm{c}_{\mathrm{i}}\right)
si=f(si−1,yi−1,ci)
其中,
c
i
c_i
ci是由编码器产生的隐藏层状态向量序列
h
1
,
…
,
h
T
x
\mathrm{h}_{1}, \ldots, \mathrm{h}_{\mathrm{T}_{\mathrm{x}}}
h1,…,hTx加权得到的,也就是说第i个输出对编码器产生的隐藏层状态向量序列上分配不同的注意,对encoder产生的隐藏状态向量加权求和,即可得到
c
i
c_i
ci:
c
i
=
∑
j
T
x
α
i
j
h
j
c_{i}=\sum_{j}^{T_{x}} \alpha_{i j} h_{j}
ci=∑jTxαijhj
α
i
j
\alpha_{i j}
αij的值越大,表示第i个输出对于第j个输入分配的注意就越多,生成的第i个输出受第j个输入的影响也越大。这也就意味着在生成每一个词语
y
i
y_i
yi的时候,之前固定不变的语义向量C被转换为根据当前所生成的单词而不断改变的语义向量序列
c
i
c_i
ci。上式中权重
α
i
j
\alpha_{i j}
αij是由第i-1个输出的隐藏状态
s
i
−
1
s_{i-1}
si−1和encoder中各个隐藏的状态一起决定的,即:
α
i
j
=
exp
(
e
i
j
)
∑
k
=
1
T
x
exp
(
e
i
k
)
\alpha_{i j}=\frac{\exp \left(e_{i j}\right)}{\sum_{k=1}^{T_{x}} \exp \left(e_{i k}\right)}
αij=∑k=1Txexp(eik)exp(eij)
其中,
e
i
j
=
f
(
s
i
−
1
,
h
j
)
e_{i j}=f\left(s_{i-1}, h_{j}\right)
eij=f(si−1,hj),即
s
i
−
1
s_{i-1}
si−1先与编码器中的每个隐藏层状态h进行计算得到一个数值,然后再使用softmax函数得到在第i个时刻的输出为
T
x
T_x
Tx个编码器的隐藏层状态分配的注意力。
【2-基于策略梯度的强化学习算法】
由于以往的视频描述生成模型仍然使用单词级交叉熵损失进行训练,这与最终评估任务的句子集度量不能很好的相关。为了直接优化句子级别的度量指标,Pasunuru等人提出使用基于策略梯度的强化学习方法对序列级的数据进行训练,使视频描述生成模型直接优化句子级的度量。
为了直接优化sentence-level的测试指标,因此使用策略梯度
p
θ
p_{\theta}
pθ,其中
θ
{\theta}
θ是模型参数。基线模型作为一个agent与环境(video和caption)进行交互。在每一个时间步,agent生成一个单词,当agent生成序列结束标记后,会得到一个reward。目标就是最大程度地减少负面奖励函数的期望,即:
L
(
θ
)
=
−
E
w
s
∼
p
θ
[
r
(
w
s
)
]
L(\theta)=-\mathbb{E}_{w^{s} \sim p_{\theta}}\left[r\left(w^{s}\right)\right]
L(θ)=−Ews∼pθ[r(ws)]。其中,
w
s
w^{s}
ws是从模型中采样得到的单词序列。基于奖励的损失函数的梯度为:
∇
θ
L
(
θ
)
=
−
E
w
s
∼
p
θ
[
r
(
w
s
)
⋅
∇
θ
log
p
θ
(
w
s
)
]
\nabla_{\theta} L(\theta)=-\mathbb{E}_{w^{s} \sim p_{\theta}}\left[r\left(w^{s}\right) \cdot \nabla_{\theta} \log p_{\theta}\left(w^{s}\right)\right]
∇θL(θ)=−Ews∼pθ[r(ws)⋅∇θlogpθ(ws)]。
基于强化的损失无法保证生成caption的可读性和流利性,所以使用强化学习损失和交叉熵损失的混合损失函数,即
L
M
I
X
E
D
=
(
1
−
γ
)
L
X
E
+
γ
L
R
L
L_{\mathrm{MIXED}}=(1-\gamma) L_{\mathrm{XE}}+\gamma L_{\mathrm{RL}}
LMIXED=(1−γ)LXE+γLRL。
γ
\gamma
γ是用于平衡两种损失的调整参数。这种混合损失可以改善仅把强化损失作为奖励的指标的结果,但同时也加入了交叉熵损失,从而确保了更好的可读性和流畅性。为了实现退火和更快地收敛,从优化的交叉熵损失基线模型开始,然后着手优化上述混合损失函数。
【实验】
数据集:在实验中,我们使用了描述视频内容的MSR-VTT数据集对我们的模型进行训练和评估,并使用了文本蕴含的数据集SNLI对我们改进的强化蕴含奖励机制进行了训练。
- MSR-VTT数据集:MSR-VTT 数据集是2016年在CVPR提出的一个大型的视频语义描述数据集,该视频标注数据集里的视频片段还包含了音频和文字信息。该数据集包含10,000个视频片段,被分为训练集、验证集和测试集三个部分,分割比例为65%:30%:5%,其中6,513个视频片段被用做训练,497个视频片段被用做验证,其余的视频片段被用来测试。对每个视频都有20个语句描述。此外,MSR-VTT还提供了每个视频片段的种类信息,共20种。
- SNLI数据集:SNLI数据集包含570,000个人工手写英文句子对,其中,训练集包括550,000个句子对,验证集包括10,000个句子对,测试集包括10,000个句子对。用于自然语言推理。针对前提与假设之间是否存在逻辑关系,人工标注了三种标签——蕴含、矛盾和中立。最终的标签是综合了5个专家的意见,根据少数服从多数的原则得到的。
评测指标:对于对视频进行语义描述的评测,和机器翻译评测是类似的,有四个标准的评测指标,分别是BLEU、METEOR、ROUGE和CIDEr。
- BLEU:BLEU是机器翻译领域的一种非常重要的评测标准,要计算这个指标,需要使用机器所翻译好的文本(称作candidate docs)以及一些专业翻译人员所翻译的文本(称作reference docs),从本质上来讲BLEU就是被用来衡量机器翻译文本和事实文本之间的相近程度的评测标准,取值在0-1的范围之间,越靠近1就表示机器翻译的结果越好。主要思想是通过计算并统计同时出现在机器翻译文的本和事实文本中n-gram的数量,并将统计到的结果除以机器翻译的句子中词语的数量,所得到的结果就是机器翻译的文本和参考文本之间的相似度。BLEU在对于文本库层次有较好匹配的句子上表现比较好,但是随着n的增加,在句子层次上的相关性会越来越差。因此,BLEU度量指标在个别语句上或许表现不佳。BLEU的优点在于它考虑的层次是n-gram而不是一个单独的词语,即考虑了更长的匹配信息;但BLEU的不足之处在于n元组的重要程度不会经过一定的处理去影响评测得分。例动词匹配的重要性从直觉上来讲应该是大于冠词的,但BLEU就无法考虑到这一点。
- METEOR:有研究证明基于查全率基础上的标准对比于那些单纯基于精确度的标准(如BLEU)而言,度量结果和人为判断的结果有相对较高的相似性。METEOR标准被表示为对应最佳机器翻译的句子和参考句子之间的查全率和精准度的加权调和平均。与BLEU不同的是,METEOR同时既考虑了基于一整个文本库上的精准度,又考虑了基于一整个文本库上的查全率,最终得出度量标准。
- ROUGE:ROUGE通过语义表达中n元词的共同出现的信息对生成的语义描述进行度量,是一种基于n-gram查全率的度量方法,也就是系统算法生成的摘要与参考摘要相同的N-gram数/参考摘要中的N-gram总数。
- CIDEr:CIDEr不同于BLEU、METEOR、ROUGE这些源于机器翻译任务的评价指标,该标准是Vedantm在2015年的CVPR上所提出的专门针对图像描述生成问题的评测标准。一些研究者认为过去的多种评价方法虽然和人类评价有较强的相关性,但无法统一到一个度量标准之下来评价它们与人的相似性。为了使这个问题得以解决,从而评价自动生成的语义描述与人工描述的句子的相似性,Vedantm等人提出了基于共识的评测标准,其基本工作原理是通过度量计算机自动生成的语义描述与其他人工描述的语句之间的相似度来评价相似性,他们还证明了CIDEr在与人工描述的匹配度方面要优于上述的评价指标。CIDEr首先对n元词在参考文本描述中出现的频率进行统计,如果n元词在语料库中出现的次数较多,则应该减少其权重,因为它所包含的信息可能比较少。通过词频-逆文件频率(TF-IDF)对每一个n-grams的重要程度进行计算,TF-IDF是一种计算某个词是否能代表一个文本的技术,常用来评估一个词组对一个文件库中某个文件是否重要以及有多重要。一个词语在一个文件中的重要的程度随它在该文件中出现的次数的增加而增大,反之随着它在整个语料库中出现的频率的增加而减小。也就是说一个词语在某个文本中出现的频率越多,并且同时又在整个语料库中出现的频率越少,就证明这个词语更能代表该文本。词频(TF)表示的是某一个单词在某个文件中总共出现的频率,通常会对词频进行标准化(一般用该词语出现的次数除以整个文本中单词的总数)处理,从而避免它倾向于比较长的文本(即不管该词语是否重要,相同的一个词语在较长的文本中可能往往比其在较短的文本中有着更高的词频)。某一个词语的IDF等于文件库当中的文件的总的数量和包含该词语的文本的总数量的商的值,再将得到的结果求取对数运算得到。如果一个单词在一个文件中出现的次数越高,并且在整个文件集合中的频率越低,则可以产生出值越高的TF-IDF。所以TF-IDF的作用就是消除掉比较常见的词语,而保留那些重要的词语。通过计算待评价的句子 c i c_i ci和参考句子集合 S i = { s i 1 , s i 2 , … , s i m } \mathrm{S}_{i}=\left\{s_{i 1}, s_{i 2}, \ldots, s_{i m}\right\} Si={si1,si2,…,sim}之间的词频-逆文件频率的空间距离(余弦值)来衡量两者之间的相关性: CIDEr n ( c i , S i ) = 1 m Σ j g n ( c i ) g n ( s i j ) ∥ g n ( c i ) ∥ ∥ g n ( s i j ) ∥ \operatorname{CIDEr}_{n}\left(c_{i}, S_{i}\right)=\frac{1}{m} \Sigma_{j} \frac{g^{n}\left(c_{i}\right) g^{n}\left(s_{i j}\right)}{\left\|g^{n}\left(c_{i}\right)\right\|\left\|g^{n}\left(s_{i j}\right)\right\|} CIDErn(ci,Si)=m1Σj∥gn(ci)∥∥gn(sij)∥gn(ci)gn(sij)。其中 g n ( c i ) , g n ( s i j ) g^{n}\left(c_{i}\right), g^{n}\left(s_{i j}\right) gn(ci),gn(sij)为待评测语句和参考语句集合TF-IDF向量。
【实验细节】
对于我们实验的每个主要模型,使用不同的初始化随机种子运行模型5次并获取解码器的每个时间步输出的平均概率。我们使用步长大小固定的LSTM-decoder框架,编码器步长为50,解码器步长为20,每个LSTM的隐藏单元的数量为1024;使用Inception-v4提取视频每一帧的特征,词嵌入的大小设为512,并且我们将Inception-v4提取到的1536维的图像特征向下投影到512维。
我们使用Adam优化器,基线模型的交叉熵损失的学习率定为0.0001,所有可训练的权重都初始化为在[-0.08,0.08]的范围内均匀分布。在测试时,beam-search的大小定为5。所有基于奖励的模型都使用混合损失优化,在混合损失优化中,我们训练基于交叉熵损失和强化学习损失的加权(γ)组合的模型,γ=0.9990,混合损失优化的学习率为1×10-5。