基于类时序注意力机制的图像描述方法①
2021-08-02段海龙吴春雷王雷全
段海龙,吴春雷,王雷全
(中国石油大学(华东) 计算机科学与技术学院,青岛 266580)
1 引言
图像描述是计算机视觉的主要任务之一,其主要目的是为计算机提供图像,计算机可以将图片与图片中各对象之间的关系结合起来自动生成相应的自然语言描述.这是一项非常具有挑战性的任务[1–4].随着深度学习的发展,注意力机制已经广泛应用于图像描述,在该领域常用的编码器-解码器框架中起着举足轻重的作用.然而,当前的解码框架并未较清楚地分析图像特征与长短期记忆神经网络(Long Short-Term Memory,LSTM)隐藏状态之间的相关性,这也可能导致累积误差.众所周知,单词是由LSTM的隐藏状态直接指导生成,如果隐藏状态与特征向量之间的相关性不够清晰,则很难指导生成正确的单词.目前的注意力机制,往往忽略了前一时刻和后一时刻注意力结果对当前时刻的影响,导致生成的句子不是很理想,因为对于一个句子,单词与单词之间具有一定的相关性,当前时刻生成的单词会受到前后时刻生成单词的影响.
为了在一定程度上解决该问题,本文提出了类时序注意力网络(Similar Temporal Attention Network,STAN),该网络扩展了传统的注意力机制,目的是加强注意力结果与隐藏状态在不同时刻的相关性.首先,STAN 对图像进行编码并提取其自下而上的特征,然后将编码后的图像特征传递给LSTM 进行解码,同时对LSTM的隐藏状态和图像特征施加注意力,最后通过注意力融合槽(AFS)将两个相邻LSTM片段的注意力结果引入到下一时刻的网络循环中,以增强注意力结果与隐藏状态之间的相关性.
本文中,创新点可以总结归纳为如下3 点:
1)本文设计一种新的类时序注意力网络来进行图像描述,该网络扩展了传统的注意力机制,以增强注意力在不同时刻与隐藏状态之间的相关性.
2)本文提出注意力融合槽(Attention Fusion Slot,AFS)的概念,它可以用于实现不同时刻注意力结果之间的跳跃连接.我们设计了隐藏状态开关(Hidden State Switch,HSS)来指导生成单词,将其与AFS 相结合,在一定程度上可以解决累积误差的问题.
3)通过大量的实验对提出的模型进行了分析与验证.MSCOCO 数据集上的实验结果表明了所提出的基于类时序注意力机制的图像描述方法的有效性.
2 相关工作
2.1 图像描述
近年来,随着深度学习技术的发展,有关图像描述的文献越来越多.早期的图像描述方法基于规则-模板[5,6],是一种经典方法.该方法通过目标检测技术[7–9]将视觉概念,对象和属性转换为单词和短语,然后将它们组合成具有固定语言模型的句子.另一种比较主流的方法是基于神经网络的编码器-解码器框架,受机器翻译的启发发展而来[10].如何通过改进网络架构来提高模型性能已逐渐成为图像描述领域的主流研究方向.
当前,最流行的图像特征提取工具是自下而上的注意力模型[11],该模型已在许多文章中被使用,本文也是如此.相信随着技术的进一步发展,更加有效的图像特征提取方法会被提出.另外,近年来出现了许多有关场景图的文章.Yang 等人[12]通过图卷积将每个对象及其自身属性与其他对象之间的关系集成在一起,搭建出场景图并规范化网络模型的输入.同时,提出了词典D的概念,经过文本语料库训练之后,再用来初始化描述模型,目的是在语料库中引入一些先验知识.场景图和先验知识的引入有效地促进了图像描述的发展.当然,图像描述领域最常见的文章是关于注意力机制的改进和网络结构的创新.尽管场景图是一个非常热门的话题,但由于发展刚起步不久,相对而言,此类论文较少.此外,强化学习已逐渐发展成为一种有效的模型性能改进方法.Rennie 等人[13]使用强化学习来优化图像描述模型,并提出了自关键序列训练(SCST)方法,该方法使用测试阶段模型的输出对奖励进行归一化处理,而不是评估基准模型的归一化奖励.
2.2 注意力机制
注意力模型(Attention Mechanism,AM)[14,15]最初用于机器翻译,现已成为神经网络领域的重要概念.如今,注意力机制已成为深度学习神经网络的重要组成部分,并且在自然语言处理,统计学习,语音翻译和计算机视觉领域具有大量的应用.注意力机制源自人类的视觉直觉,人类视觉快速扫描图像全局以获得需要关注的目标区域,即所谓的关注焦点,也即是目标区域具有更多的关注资源,在抑制其他无用信息的同时,更多地关注目标的详细信息.注意力机制首先计算每个候选向量的重要性得分,然后通过Softmax 函数将其标准化为权重,最后将这些权重应用于候选向量以生成注意力结果,即加权平均向量[16].注意力机制有许多扩展的变体.Yang 等人[17]提出了堆叠式注意力网络,该网络通过多次迭代来实现对图像的区域关注.Lu 等人[18]提出了一种带有视觉标记的自适应注意力模型,在每个时间步长,模型都会决定是更依赖图像还是更依赖视觉标记.此外,视觉哨兵会存储解码器已经知道的信息.Chen 等人[19]基于编码器-解码器模型层设计了空间和通道注意力卷积神经网络(CNN),该网络使得原始的CNN 多层特征图能够自适应句子上下文.Vaswani等人[20]放弃了基于卷积神经网络(CNN)或循环神经网络(RNN)的传统编码器-解码器模型,通过单独使用注意力,在不影响最终实验结果的前提下达到减少计算量、提高并行效率的目的.Huang 等人[21]提出了一个“双重注意力”(AoA)模块,该模块扩展了常规的注意力机制来进一步确定注意力结果和查询之间的相关性.但是,网络框架的创新和注意力机制的改进都相对比较简单,同时,注意力机制和循环神经网络结合不够紧密.注意力本身没有时序性,但是将其嵌入神经网络后,我们可以认为该注意力具有时序性,那么如何使注意力机制更有效地集成到神经网络中,是一个值得思考的问题.
3 类时序注意力网络
3.1 整体框架
本文使用自下而上的注意力模型[11](由目标检测区域特征提取框架Faster RCNN和ResNet-101 [22] CNN组合而成)来提取图像特征V,然后将所有视觉特征馈入LSTM 进行字幕生成.其中,解码框架采用两个连续的LSTM 作为循环单元,并且对每一时刻的隐藏状态和图像特征施加注意力,以增强它们之间的相关性.由于单词是由隐藏状态来指导生成,因此单词与图像特征之间的相关性也需要增强.整个网络架构如图1所示.
图1 网络架构
给定一组图像特征V,本文提出的描述模型仍使用传统的软注意力方法,在生成自然语言的过程中给每个图像特征施加权重.该模型主要由两个LSTM 层组成.本文将在3.2 节详细介绍注意力融合槽如何与两个LSTM 层组合生成单词.首先,本文通过以下公式表示当前LSTM的隐藏状态:
其中,xt是LSTM 在时刻t的输入向量,ht−1是LSTM 在时刻t的输出向量,vˆt−1表示上一时刻的注意力结果,初始化为0.为了方便表示,本文对于LSTM 存储单元的单元状态忽略不计,统一使用式(1)表示在时刻t处每一层LSTM的输入和输出向量.
3.2 类时序注意力层
对于描述模型,本文将第1个LSTM 层称为类时序注意力层,将第2个LSTM 层称为语言注意力层,使用V表示图像特征.类时序注意力模型的输入如3.1 节所示,是通过前一时刻语言注意力模型的输出向量与均值特征级联运算得到,表示为输入如下式所示:
当在时刻t获得类时序注意力层的输出h1t时,对相应的k个图像特征vi施加注意力权重.同时,为了加强隐藏状态与图像特征之间的相关性,我们通过注意力融合槽(AFS)将前一时刻类时序注意力层和语言注意力层的输出引入到当前时刻.如图2所示,其具体公式如下:
图2 类时序注意力模型
其中,Wv∈ℜH×V,Wh∈ℜH×M和Wa∈ℜH分别是学习参数.对图像特征和隐藏状态施加注意力之后,用表示类时序注意力层的输出结果,用表示语言注意力层的输出结果.λ1和λ2是超参数,设置为0.5.另外,vˆt是由下述公式计算得到:
3.3 语言注意力层
语言注意力层的输入由施加注意力之后的图像特征和类时序注意力层的输出级联而成,用下式表示:
本文认为前一时刻LSTM 隐藏状态中包含的信息对当前时刻单词的生成具有促进作用.为了充分利用LSTM 隐藏状态之间的关系,本文设计了隐藏状态开关(HSS),如图3所示.计算公式如下.
图3 语言注意力模型
其中,λh是学习参数,Sh表示HSS的状态,Sh=0 表示HSS的状态为“OFF”,Sh=1 表示HSS的状态为“ON”.对于单词序列(y1,…,yT),本文使用符号y1:T统一进行表示.通过以下公式来表示在时间步长t处单词分布的概率:
3.4 目标函数
在训练过程中,对于给定的标签序列和带有参数η的字幕模型,本文仍然使用最小化交叉熵损失:
交叉熵训练结束后,本文将采用目前比较流行的强化学习方法来训练和优化最终模型.为了尽量减少负面期望得分,对交叉熵训练得到的最终模型进行重新训练和初始化.计算公式如下:
其中,Sr是得分函数(例如CIDEr).这种损耗的梯度可以近似为:
4 实验
4.1 数据集
本文在图像描述领域官方数据集MSCOCO 上评估和验证基于类时序注意力机制的图像描述模型[23].MSCOCO 数据集包含123287 张图片,其中82783 张图片作为训练集,40504 张图片作为验证集,每张图片对应5个标签.此外,为了方便研究人员评估模型,MSCOCO 官方提供了40775 张图片作为在线测试集.“Karpathy”数据集[24]用于模型线下评估和测试,其中5000 张图片作为验证集,5000 张图片作为测试集,其余图片作为训练集.本文首先将所有标签语句转换为小写,然后过滤掉出现次数少于5 次的单词,最后得到一个含有9487个单词的字典.在实验过程中,使用领域常用评估策略,包括BLEU[25],METEOR[26],ROUGE-L[22],CIDEr[27]和SPICE[28],来评估所提出的方法,并与其他方法进行比较.
其中,BLEU为机器翻译中常用的双语精度评估方法,是用于评估模型生成的句子和实际句子的差异的指标,取值范围在0.0 到1.0 之间,如果两个句子完美匹配,那么BLEU是1.0,反之,BLEU为0.0.METEOR是精度召回率评估方法,基于单精度的加权调和平均数和单字召回率,解决一些BLEU 标准中固有的缺陷,也是机器翻译常用的评估方法之一.ROUGE-L是召回率评估方法,采用召回率作为指标,将模型生成的句子与实际句子的n元组贡献统计量作为评判依据.CIDEr是基于共识的图像描述评估方法,将句子看作“文档”,并将其表示成向量,然后计算实际句子与模型生成的句子的余弦相似度,作为打分.SPICE是基于语义的图像描述评估方法,以名词为中心,通过度量实际句子与模型生成句子的场景图相似度来对两个句子做语义匹配.
4.2 实验结果
如图4所示,是本文提出的方法训练的模型与基线模型在MSCOCO 数据集上的结果比较,可以看出,对于同一张图片,该模型生成的描述与图片内容契合度更高,语言的准确性和流利性更好.
图4 实验结果对比
如表1所示,对于所提出的方法,本文在MSCOCO数据集上进行了离线测试.实验结果表明,与基线模型(Top-Down 模型)[11]和其他方法相比,本文训练的模型具有更优越的性能.从表1的离线测试结果中可以看到,与基线模型相比,本文的方法训练的模型的评估指标都有所提高,尤其是CIDEr 提高了2.7个百分点.本文训练的模型通过AFS 使注意力机制具有了时序性,可以与循环神经网络更加紧密地连接,产生包含更丰富有效信息的隐藏状态向量,从而生成更高质量的自然语言描述.
表1 MSCOCO 数据集上的实验结果对比
4.3 实验分析
本文在Top-Down 模型的基础上,进一步完善了注意力机制,在MSCOCO 官方数据集上取得了较好的结果.在实验过程中,我们发现语言注意力层的隐藏状态和类时间注意力层的隐藏状态可以按一定比例融合以获得新的状态向量.此向量生成单词的质量比单独使用语言注意力层的隐藏状态略好.因此,我们设计了HSS来微调隐藏状态.表2是HSS 状态对模型性能的影响.
表2 HSS 对模型的影响
在实验过程中,如表3所示,本文选择了4个模型进行集成实验,分别为Model1,Model2,Model3,Model4,相应的集成权重参数分别为m1,m2,m3,m4.调参过程如表4所示.为方便起见,本文设置HSS的状态为“ON”.
表3 选取4个模型进行集成实验
其中,Modela表示用Model1,Model2和Model3做集成实验,Modelb表示用Model1,Model2和Model4做集成实验,ma,mb表示模型对应的权重参数.
从表4中不难看出,对于参与集成的模型,性能最佳的模型将被赋予最高的权重,性能稍低的模型将被赋予较低的权重,这样可以获得比较理想的集成效果.
表4 调参过程及实验结果
5 结论与展望
本文提出了一种新型类时序注意力网络用于图像描述,该网络扩展了传统的注意力机制,以增强注意力结果与隐藏状态在不同时刻之间的相关性.此外,提出“注意力融合槽”(AFS)的概念,用于实现不同时刻注意力结果之间的跳跃连接.设计隐藏状态开关,用于指导单词的产生,结合AFS 在一定程度上解决了累积误差的问题.同时,进行了广泛的实验验证分析该方法.在未来的工作中,本团队会继续研究注意力机制和模型框架的改进方式,并考虑引入场景图来进一步提升模型性能.