吴 禹, 靳华中
(湖北工业大学计算机学院, 湖北 武汉 430068)
图像描述生成是一个融合计算机视觉、自然语言处理和机器学习的综合问题。图像描述生成方法使用符合人类语言习惯的句子描述图像。算法模型在检测图像中的目标的同时,还要对目标的视觉元素,如目标的动作和属性有一定的认知。在此基础上,通过理解目标之间的相互关系,构建图像的场景,目的是生成具有语义关系的、符合自然语言习惯的描述句子。
目前图像描述生成模型普遍采用编码器-解码器框架。编码器利用卷积神经网络(CNN)从图像中提取图像特征[1],解码器使用循环神经网络作为语言模型来预测文本,引入注意力机制,有效地选择视觉特征向量来初始化语言模型隐藏状态[2],提高视觉信息处理效率,在客观指标上展现出明显优势。但在语言模型的构建上存在不足,使得语义信息不能充分表达。文献[3]将图像特征向量与每个单词的嵌入连接起来,以便为以后生成的单词保留视觉信息,但难以解决RNN梯度消散问题。文献[4]提出通过与自动重构网络(ARnet)耦合来增加相邻隐藏状态之间的相关性。并嵌入上一隐藏层状态解码更多语义特征信息,然而使用欧几里得距离的正则化方法可能会直接减少每个隐藏状态的L2范数,使得评价指标没有获得较大改善。文献[5]在自下而上和自上而下的组合注意力机制的基础上融入图文匹配模型 (Stacked Cross Attention Network,SCAN)[6]对注意力机制的训练过程进行弱监督,增强了注意力机制对单词和图像区域的对应能力,但难以表征图像目标之间语义关系。这些方法的语言模型普遍只将当前单词隐藏状态作为输入,并仅针对一种输出状态计算结果,忽略了相邻单词之间的文本层级结构,容易在最终生成的文本中带来累积的错误。
而在自然语言处理领域,已有文献利用文本层级结构进行语言建模。文献[7]引入了句法距离这一概念来引导语言模型完成句法解析任务,但算法实现的复杂度较高,很难在实际情况中使用。文献[8]使用具有不同时间尺度的递归模型获取层次结构,更新RNN的隐藏状态,但需要施加预定义的层次结构。受此启发,本文在解码器阶段构建双层LSTM网络,第一层视觉选择LSTM融合注意力机制,从整体上得到图像中目标之间的语义信息,同时能够从细节得到图像特征信息。第二层语言模型LSTM使用有序长短时记忆网络[9],在训练过程利用文本层级结构预测描述,增强语言模型表达能力,从而生成更符合自然语言习惯的描述。
在自然语言处理领域中,语言的表现形式遵循一定的层级结构[10],组成语句的各个单位处于语义层面,构成树状的文本层级结构[11],即自然语言是由处在不同层级结构的单位要素组成的层级装置。如图1所示,在英文句子中,单词可以认为是最低层级的结构,词组次之。
图 1 文本层级结构示例
语言与其他数据一个显著的区别就在于其本身拥有一定的层级结构,因为语言的组成受到语法规则限制,低层级的语义单元组成高层级的语义单元,而最高层级的语义单元就代表了整个句子的含义。人们曾经试图对语言的这种结构进行建模,利用语法规则进行语义解析,建立语义分析树,再根据解析的结果从下而上递归获得句子的表征。单位结构层级越高,在句子中的跨度就越大。这意味着编码时能区分高低层级的信息;其次,高层级的信息意味着它要在高层级对应的编码区间保留更久,而低层级的信息则意味着它在对应的区间更容易被遗忘。
针对语言的层级结构,文献[9]提出了有序长短时记忆网络(Ordered Neurons Long Short-Term Memory,ON-LSTM)。传统LSTM网络中,神经元通常都是无序的,运算过程中涉及到的所有向量的位置按照相同方式重新打乱,权重的顺序也将相应地打乱,输出结果可以只是原来向量的重新排序,信息量不变。有序长短时记忆网络则把神经元的序信息利用起来,按排序分区间更新状态,使其表示一些特定的结构。用这种结构来表征文本层级信息,使ON-LSTM在训练中自然地学习到文本的层级结构,从而增强语言模型表达能力。算法流程如图2所示。
图 2 有序长短时记忆网络算法流程
具体过程为:ON-LSTM单元状态ct按照向量索引值进行排序,语法层次较高的信息储存在ct上面的维度中,较低的则储存在下面的维度。定义两个one -hot向量代表历史信息最低层级lf和当前信息最高层级li,分区间更新规则为:1)lf
经过以上规则分区间更新ct,文本高层信息更新频率较低,在模型循环过程中能保留较长距离,文本底层信息在每一个时间步内都可能更新。从而通过定序嵌入层级结构,即按信息跨越幅度分组更新输入文本序列的层级结构。如图3所示,对于给定语言序列[x1,x2,x3]及其句法树,ON-LSTM通过上述算法流程,动态分配其隐藏状态向量的维数,用以对应表示给定文本[x1,x2,x3]的层级结构。
图 3 文本层级结构表征
本节提出了基于文本层级结构的图像描述生成算法,如图3所示,模型采用编码器-解码器架构,编码器提取图像特征,解码器接收特征进行解码,生成图像的最终描述。在编码器阶段,用CNN对图像进行特征提取,并根据神经网络卷积层特性分别获取图像对应的全局特征和局部特征。然后,在第二个阶段使用注意力机制和双层有序长短时记忆网络将初始图像全局特征和局部特征信息相融合,将融合后的信息特征输入ON-LSTM进行解码。
图 4 本文模型框架结构
在编码器阶段应用了两种不同尺度的图像特征,分别为局部特征和全局特征,全局特征包含图像目标语义关系,引导第一层视觉LSTM关注特定目标;局部信息包含目标具体特征,引导第二层语言LSTM解码准确信息。这两种不同尺度的图像特征全部由解码器经过预先训练好的卷积神经网络提取得到。在本文中用f表示局部特征,则有:
f={f1,f2,…,fk},fk∈1*r
其中,{f1,f2,…,fk}表示k个局部特征,fk∈1*r表示每个图像区域的特征维度为1*r。局部特征通过全局平均池化得到图像的全局特征
在attend部分中输入为所有的图像特征f={f1,f2,…,fk},fk∈1*r和视觉选择 LSTM的输出具体使用的是两层全连接层,attend模块的输出ct的计算过程如下式所示:
(1)
αt=softmax(zt)
(2)
(3)
式(1)中,Wa、Wg分别表示两个全连接层的映射矩阵,输出结果如经过式(2)一层softmax得到对某一区域关注度αt。在(3)式中,关注度用α
其中cusum为累积函数,以主动分配维度来存储长期或短期信息,避免在高级维度和低级维度之间进行严格划分。将单元状态的维度动态地重新分配给每个节点,迫使神经元在不同的时间尺度上代表信息。给定任意序列[y1,y2,…,yn],cusum计算公式如下:
cusum([y1,y2,…,yn])=
[y1,y1+y2,…,y1+y2+…yn]
本文采用的数据集为微软COCO2014,包含三部分内容,训练集、验证集和测试集。各部分数据集由图像和json文件组成,json文件包含对每幅图像的5个英文描述。数据集包含的图像总共82 783张,对应的英文描述为413 915个。
描述文本的预处理阶段过程为:1)图像描述中的特殊符号“&”用“and”代替,标点符号用空格代替;2)使用图像id、图像文件名和图像描述建立描述句库,通过检索图像信息来查找图像描述;3)使用数据集描述出现单词建立词汇表,词汇表向量每一维度对应数据集中单词,语言模型通过检索词汇表索引值生成描述单词。
本文图像描述生成方法在tensorflow平台上建立。采用小批量梯度下降法对损失函数进行优化,提高模型训练的收敛速度。学习速率为0.01,迭代次数为100次,最小批次为128次。
目前图像自动标注领域常用的评价标准主要分为5类,分别是BLUE、METEOR、ROUGE、CIDEr和SPICE。这5类标准能对模型生成的图像描述进行量化标准的客观评价。在本文实验中采用BLUE、METEOR和CIDEr对生成描述进行评分。
表1 MSCOCO数据集实验对比
实验结果证明,本文模型在BLUE、METEOR和CIDEr评价指标上要优于NIC、mRNN、Log BIliner[12]和Soft-Attend模型。
在实验结果可视化对比中,图5中本文模型对比mRNN模型,mRNN模型生成描述句法树高度为6,叶子结点数为7,本文模型生成描述句法树高度为7,叶子结点数为11。生成描述将“field”生成为“hillside”,并生成了“lush green”加以修饰,即提取到了更为复杂的语义特征,使描述更加生动。图5中本文模型对比soft-attend模型,soft-attend模型生成描述句法树高度为5,叶子结点数为8,本文模型生成描述句法树高度为6,叶子结点数为11。预测了“in the ocean”这一空间背景信息,从整体上提取到更丰富的语义信息,模型语义表达能力较soft-attend更强。
图 5 实验结果可视化对比
针对现有采用编码器-解码器框架的图像描述生成算法,在解码阶段由于语言模型结构简单,解码表达能力较弱,容易造成语义缺失的问题。本文方法通过引入有序长短时记忆网络构建双层LSTM架构,来改进现有模型解码器,使模型能够显式的提取描述文本层级结构,解码出更丰富的语义特征。本文改进的方法在MSCOCO数据集上进行训练和测试,实验结果表明,改进的算法能够有效提取文本层级结构,充分利用图像空间信息与内容语义对齐来改善语言模型解码表达能力,最终提高了图像描述实验效果,生成更加符合自然语言习惯的描述语句。