1. 引言
随着互联网的发展,图文内容已经成为互联网上的主要表现形式。图文内容的呈现形式可以提高网民的阅读体验。汽车门户网站通常会发布汽车产品信息来吸引网民的关注,从而促进产品的推广。这些内容通常由许多图像和相应的描述组成,而目前这些图像描述通常由人工进行撰写,然后发布到互联网上。对于大量图文信息需求量的情况,手动撰写描述是一项耗时且枯燥的工作。因此,图像描述自动生成技术具有很大的实用价值。它可以加速图文内容的生产和发布,从而吸引人们的关注。近年来,由于在神经机器翻译的成功应用 [1],编码–解码框架被应用于图像描述生成技术中。
与基于MSCOCO [2] 和Flickr30k [3] 等数据集的研究不同,本文基于实际应用为汽车图像生成相应的中文描述句子。在我们的应用需求中,输入一组图像,然后为这组图像生成描述语句。对于相似的图像,我们希望生成倾向不同侧重点的描述句子,以实现内容的多样性。因此对于同一幅图像,我们期望控制其描述的侧重点。
考虑到我们数据集的特点,许多相似的图像可能具有不同侧重点的图像描述。例如,两张相似的图片(a)和(b),图片(a)的描述是“发动机并没有显得多么暴躁,风格沉稳舒适。”,图片(b)的描述是“变速箱很聪明,为新车的行驶质感添色不少。”。它们具有完全不一样的侧重点的描述。
针对上述情况,我们需要研究为同一张图像生成不同侧重点的图像描述句子的方法。在实际应用中面临的挑战是如何确定图像的可能存在的侧重点和如何引导描述生成过程从而在相应的侧重点生成描述句子。
为了解决这个问题,我们提出了一种新的方法,该方法利用多模态融合的思想,将文本信息和图像信息融合作为方法的输入。文本信息是图像信息的补充,用于指导模型往不同的侧重点生成描述句子。本文的主要贡献如下:
1) 提出了一种新的图像描述生成方法,该方法将关键词文本信息和图像信息相融合作为图像描述的输入,通过关键词信息来指导模型往不同的侧重点生成图像描述。
2) 我们使用自行开发的爬虫采集的真实数据集进行了实验。该数据集由2100个图像–关键词–描述对组成,每个图像对应一个中文描述和关键词列表。
2. 相关工作
近年来,随着深度学习的发展,编码–解码框架被广泛应用于图像描述生成领域,它将图像编码成视觉特征图,然后再由解码器将提取到的图像特征解码成自然语言句子。然而,基础的编码–解码框架仅捕获整个图像的全局特征,而在解码端每个步骤生成的单词通常与图像的特定区域相关 [4] [5]。为了解决图像特征和词语的对齐问题,学者在编码–解码框架中引入了注意力机制 [6] - [14]。例如,文献 [7] 提出了“软注意机制”和“硬注意机制”两种类型的注意力机制,使得解码器能够在每个时间步注意到图像不同的区域特征。其他一些研究也集中在视觉注意力机制上。然而,这些视觉注意机制通常没有考虑图像和文本之间的任何相关性。文献 [12] 提出了一种基于文本的视觉注意模型,该模型通过消除由先前生成的文本表示的显著对象来消除无关信息。注意力机制能够使得模型在每个时间步关注不同区域的特征,以便在解码器每个时间步对齐视觉和文本特征。
除了引入注意力机制外,很多研究基于编码器或解码器进行了改进。例如,文献 [14] 使用多实例学习(Multiple instance learning, MIL)来训练一个视觉单词检测器,其输出被视为最大熵语言模型的条件输入。文献 [15] 提出了一种新的特征提取方法,通过目标检测算法将图像特征提取为低层特征,由图像特征训练的属性检测器将属性特征提取为高层特征。文献 [16] 提出了一种由粗到细的方法,将原始图像描述分解为骨架句子及其属性,然后分别生成骨架句子和属性短语。
一些方法直接针对模型的评价指标对模型进行优化。由于这些指标通常是不可微的,因此几乎所有这些方法都是通过使用强化学习进行优化的 [17] [18]。
受到多模态数据融合的启发,我们的模型使用图像和文本特征作为输入,通过文本特征作为图像特征的补充可以加强图像到图像描述的映射,根据不同的文本特征指导图像描述的侧重点。
3. 关键词信息指导的图像描述生成模型
3.1. 模型总体结构
图1和图2展示了我们提出的模型的结构。图1是训练阶段的模型结构,图2是测试阶段的模型结构。在训练阶段,模型的输入包括图像和关键词信息,其中图像和关键词信息都是从训练集中直接获得。而测试阶段仅仅输入图像,关键词信息由关键词模块根据输入图像预测获得。因此总体模型大致可分为图像编码器、关键词预测模块、文本编码器和解码器四个模块。

Figure 1. The structure of the model during training
图1. 训练阶段的模型结构

Figure 2. The structure of the model during testing
图2. 测试阶段的模型结构
图像编码器:图像编码器主要对输入的图像进行特征提取。得益于深度卷积神经网络强大的特征提取能力,我们使用深度卷积神经网络作为图像编码器。我们选择了VGG-16 [19] 模型的最后一个卷积层的输出特征图作为图像的特征,其维度为W × H × D,然后将其转化成L × D。L是图像特征的区域个数,每个区域的特征由一个维度为D的向量表示。
关键词预测器:关键词预测器用于预测输入图像的关键词信息,从而在测试阶段判断输入图像可能的关键词信息。在测试阶段,对于关键词信息的输入,如果人为地给出关键词信息,可能会造成关键词信息与图像不相关的情况。因此,有必要确定图像中可能存在的关键词信息。
文本编码器:文本编码器主要用于提取关键词文本信息的特征。关键词信息是由1~4个中文词语组成的文本信息。关键词信息包含了图像描述语句中的一些关键信息。每一个词语由文本编码器编码成一个D维词向量。然后,我们以按位相加的方式将这些词语的词向量相加作为关键词信息的特征表示。
解码器:解码器用于将编码器获得的特征向量解码成自然语言句子。解码器由一个注意力机制(Attention mechanism)和循环神经网络(Recurrent neural network, RNN)组成。其中,注意力机制由一个单层的全连接神经网络实现。RNN被广泛应用于自然语言处理领域,它比较擅长处理时间序列问题。然而,传统的RNN模型会出现梯度消失的问题。因此,我们部署了长短时记忆神经网络(Long-short term memory, LSTM) [20] 作为将特征解码成自然语言句子。LSTM引入了一个核心单元Cell,Cell的状态由三个门控制,分别为遗忘门、输入门和输出门。通过三个门控制历史信息的遗忘和保留,其公式如(1)~(5)所示。
(1)
(2)
(3)
(4)
(5)
其中,
,
,
分别表示t时刻遗忘门、输入门和输出门的状态;
表示t时刻模型的隐藏状态;
表示t时刻Cell状态的更新;
是Sigmoid激活函数;
是可训练的模型参数矩阵;
是偏置值。
由于引入了注意力机制,在LSTM的每个时间步都会产生不同的上下文向量。给定一张图像和它的关键词信息,图像由卷积神经网络提取特征,记为
。关键词特征由文本编码器提取,记为
。
关键词特征作为图像信息的补充,我们将关键词特征拼接到图像的每个区域特征后面,然后将其输入到解码端,如图3所示。
注意力机制被用于在每个时间步结合LSTM的上一个隐藏状态计算输入特征的不同区域的关注度,公式如(6)~(8)所示。
(6)
(7)
(8)
其中eti是t时刻注意力机制的输出;αti是t时刻输入特征的区域i的权重;zt是t时刻输入到LSTM模型的上下文向量。上下文向量将结合当前时刻的词语嵌入向量一同输入到LSTM模型。在每个时间步,LSTM模型的隐藏状态ht会被输入到一个softmax函数中,然后产生一个所有词语的概率分布,概率最高的词语则为当前时间步生成的词语。

Figure 3. Image and text feature fusion
图3. 图像和文本特征融合
3.2. 训练和测试过程
在训练阶段,我们采用了分步的训练方式。图像编码器和关键词编码器都是单独训练,然后再通过编码器对输入数据进行特征提取来训练LSTM模型。总体大致流程分为图像预处理、特征提取、图像–文本特征融合和梯度下降优化模型参数。
图像预处理:图像预处理包括图像裁剪和归一化处理。图像编码器要求输入图像的大小一致,因此需要对图像进行尺寸的统一。此外,归一化可以加快模型的收敛速度。
特征提取:特征提取包括图像特征提取和关键词特征提取,我们通过图像编码器对图像特征进行提取,文本编码器对关键词信息进行特征提取。
图像–文本特征融合:由于输入特征包含图像特征和关键词文本特征。在对图像特征和关键词特征进行提取后,我们将图像特征和关键词特征进行拼接融合作为解码器的输入。
梯度下降:为了训练模型,我们采用了有监督的学习方法。在LSTM生成下一个词语的时候,模型会根据当前输入x和历史状态St−1做出动作at的概率分布p(at|x, st−1)。在训练过程中,梯度下降算法通过最小化交叉熵损失函数对模型参数进行更新,公式如(9)所示。
(9)
其中x是模型的输入;S是图像描述句子;θ是模型的参数。我们使用梯度下降算法对模型参数进行更新。
在测试阶段,关键词信息不是直接从训练集中获取,这不同于训练阶段。在测试阶段,输入数据仅有图像,关键词信息通过关键词预测模块确定测试图像可能存在的关键词信息。产生的候选关键词分别结合图像信息输入到模型生成描述句子。
4. 实验结果与分析
4.1. 评价指标
实验结果通过双语互评辅助工具(Bilingual Evaluation Understudy, BLEU) [21]、ROUGE [22] 和CIDEr [23] 进行评估。BLEU的分数通过计算生成句子和参考句子之间的n-gram匹配精度得到。我们使用uni-gram、bi-gram、tri-gram和4-gram计算BLEU评分,分别标记为BLEU-1、BLEU-2、BLEU-3和BLEU-4。ROUGE是一种基于n-gram共现信息的面向召回的评价方法。它有一系列的评价方法,包括ROUGE-N (N = 1, 2, 3, 4)、ROUGE-L、ROUGE-S等。我们选择ROUGE-L来评估我们的结果,因为它基于最长的公共子序列,并且适合于短句。此外,CIDEr是专门为图像标记问题而设计的。该指标将每个句子视为一个“文档”,并将其表示为一个术语频率逆文档频率(Term Frequency Inverse Document Frequency, TF-IDF)向量。通过计算每个n-gram的权重,计算参考句子与模型生成的句子的余弦相似度来度量图像标签的一致性。
4.2. 数据集
我们在一个汽车图像数据集上对提出的方法进行了实验。我们开发了一个爬虫程序采集了一些图像数据,原始图像格式如图4所示。
每张图像上带有对图像的描述,我们对这些图像进行了重写以避免太长和口语化表述,然后对图像进行截取以使得图像不再附有文本描述。经过处理后,我们获得了一个“图像–描述句子”映射关系的数据集。对于关键词信息的提取,我们将数据集中所有的描述句子合并成一个文档,然后使用Jieba [24] 工具库中的关键词提取接口提取了该文档的关键词。关键词按照权重由高到低排列,然后我们遍历了每个描述句子中的词语以确定词语是否是关键词。通过处理,我们为图像确定了其描述的关键词,关键词是一个集合,由1~4个词语组成。
对数据进行处理后,我们构建了一个“图像–关键词–描述句子”映射关系的数据集。数据集的大小为2100条数据,我们随机选择2000条作为训练集,100条作为测试集。由于图像到描述的映射关系较弱,即使生成的描述质量很好,通顺流畅,如果和测试图像的参考描述差别很大,那模型性能很难在评估结果得到体现,因此本文在与测试图像最相似的20张图像的描述句子中随机选择5条作为测试图像的参考描述。这些信息写入了一个JSON文件中,其结构如下所示:
{
images: [
{file_name: [file name], height: [height of image], width: [width of image], id: [image ID], keywords: [keywords of image]}, ......
],
annotations: [
{image_id: [image ID], id: [description ID], “description : [Chinese description]}
], ......
}
4.3. 图像编码器
在本文中,我们使用了在ImageNet [25] 图像数据集上进行了预训练的VGG-16作为图像编码器。我们选择了最后一个卷积层的输出作为图像的特征。其维度为14 × 14 × 512。512是特征图的通道数目, 14×14 是特征图的尺寸的大小,分别表示特征图的高度和宽度。
4.4. 关键词预测
对于测试图像关键词预测,我们通过图像检索的方式实现。通过VGG-16模型提取了测试图像和训练数据集中的图像的特征。其中,VGG-16和图像编码器是同一个模型。然后将图像的特征转化成向量表示,通过计算测试图像的特征向量和训练数据集中图像的特征向量的余弦相似度,找到训练数据集中前10个和测试图像最相似的图像,将这10个图像的关键词信息作为测试图像的候选关键词信息。余弦相似度计算公式如(10)所示。
(10)
其中I1和I2是图像特征的向量表示,记为
和
。
图5展示了图像#(183)和#(174)的检索结果。最上方的一张图像是测试图像,中间区域的10张图像是检索得到的与测试图像最相似的图像,最下方是10张图像对应的关键词信息。结果表明,VGG-16模型能够准确提取图像的特征,通过余弦相似度计算的方式能够有效检索出相似的图像从而确定测试图像的关键词信息。

Figure 5. Retrieval results of image #(183) and #(174)
图5. 图像#(183)和#(174)的检索结果
4.5. 文本编码器
对于词语的语义表示,一种有效的方式是将词语映射到高维度的词向量。所有这些词向量构成一个词向量空间,词向量之间的余弦距离可以反映词语之间的语义相似度。因此,连续词袋模型(Continuous Bag-of-Words, CBOW) [26] 可以满足要求。通过在大规模的语料库中训练词向量模型,可以使得词向量模型包含丰富的语义信息从而可以充分表示文本信息。
我们利用Genism [27] 工具库部署了一个词向量模型用做文本编码器。我们设置了窗口大小为5,词向量维度为512。然后在维基百科中文数据集上对词向量模型进行了训练。通过训练后,我们获得了一个词向量模型,该模型可以将词语表示为一个512维的向量。为了观察模型的性能,我们测试了与词语“座位”最相似的词语,如图6所示。
Figure 6. Word distribution similar to “seat”
图6. 与“座椅”语义相似的词语分布
此外,为了观察词向量的分布情况,我们随机选择100个词语的词向量表示通过TSNE工具降维可视化,如图7所示。
图6显示词向量模型可以有效找出与“座椅”相似的词语,图7中语义相近的词语,如“方向”、“指向”、“转向”等词语集中在很近的位置。结果显示,词向量模型可以很好地对词语进行表征。
4.6. 图像描述生成
训练完编码器后,再结合解码器进行训练。解码器的主要模型是LSTM,其目的是将编码器得到的上下文向量解码成自然语言句子。对于LSTM模型的训练,我们做出了如下处理。首先,将所有的描述句子进行分词处理,构建了一个包含2561个词语的词典,每个词都映射到一个整型的数字,表示该词在词典中的位置。在模型中,对于词语的表示,采用2561 × 512维的嵌入矩阵表示,每个词语由一个512维的词向量表示,该嵌入矩阵使用均匀分布初始化器初始化,然后在模型训练的过程中不断优化。LSTM的隐藏单元的维度设置为512,隐藏层层数为1。初始学习率设置为0.001,采用Adam梯度下降优化算法对模型参数进行更新。我们在初始学习率为0.001时迭代了5000次,然后使用学习率0.0005迭代了4000次。我们在NIC和Soft Attention方法上做了对比实验。本文模型采用了10组关键词分别结合图像作为输入,然后使用BLEU、Rouge-L和CIDEr评价方法对模型进行评价。NIC方法是基础的编码–解码模型,Soft Attention方法是在NIC方法的基础上引入了软注意力机制。评估结果如表1所示。

Table 1. Evaluation of experiments on BLEU-n (n = 1, 2, 3, 4), ROUGE-L and CIDEr
表1. 模型在BLEU-n (n = 1, 2, 3, 4),ROUGE-L和CIDEr上的评估结果
由表1结果可以看出,本文模型在各个评估指标上的评估结果比NIC、Soft Attention的性能好。通过引入关键词信息,可以加强图像到图像描述的映射。图8展示了同一张图像在不同关键词信息下的描述情况,结果显示不同的关键词对图像描述的侧重点产生了一定的作用。

Figure 8. Effect of different keyword information on image description
图8. 不同关键词信息对图像描述的影响
5. 总结
本文提出了一种将图像和关键词信息一起输入从而生成图像描述句子的新方法。根据实验结果,本文模型的性能比NIC和Soft Attention模型要好,能够生成流畅通顺的图像描述句子,并且同一张图像结合不同的关键词信息可以控制描述的侧重点,一定程度上增加了图像描述的多样性。虽然我们取得了一定的进展,但还存在一些问题,数据集不够大,生成的描述句子偏短。未来我们会扩充数据集,同时对模型进行优化以获取更好的性能从而满足实际的应用需求。