system: [SYSTEM]

user: 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所示。 图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)所示。 cos ( θ ) = I 1 I 2 ‖ I 1 ‖ ‖ I 2 ‖ = ∑ k = 1 n i 1 k ⋅ i 2 k ∑ k = 1 n i 1 k 2 ∑ k = 1 n i 2 k 2 (10) 其中I 1 和I 2 是图像特征的向量表示，记为 I 1 = { i 11 ， ⋯ ， i 1 n } 和 I 2 = { i 21 ， ⋯ ， i 2 n } 。 图5展示了图像#(183)和#(174)的检索结果。最上方的一张图像是测试图像，中间区域的10张图像是检索得到的与测试图像最相似的图像，最下方是10张图像对应的关键词信息。结果表明，VGG-16模型能够准确提取图像的特征，通过余弦相似度计算的方式能够有效检索出相似的图像从而确定测试图像的关键词信息。 图5. 图像#(183)和#(174)的检索结果 4.5. 文本编码器 对于词语的语义表示，一种有效的方式是将词语映射到高维度的词向量。所有这些词向量构成一个词向量空间，词向量之间的余弦距离可以反映词语之间的语义相似度。因此，连续词袋模型(Continuous Bag-of-Words， CBOW) [ 26 ] 可以满足要求。通过在大规模的语料库中训练词向量模型，可以使得词向量模型包含丰富的语义信息从而可以充分表示文本信息。 我们利用Genism [ 27 ] 工具库部署了一个词向量模型用做文本编码器。我们设置了窗口大小为5，词向量维度为512。然后在维基百科中文数据集上对词向量模型进行了训练。通过训练后，我们获得了一个词向量模型，该模型可以将词语表示为一个512维的向量。为了观察模型的性能，我们测试了与词语“座位”最相似的词语，如图6所示。 图6. 与“座椅”语义相似的词语分布 此外，为了观察词向量的分布情况，我们随机选择100个词语的词向量表示通过TSNE工具降维可视化，如图7所示。 图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 CIDE 模型 B@1 B@2 B@3 B@4 ROUGE-L CIDEr NIC 0.311 0.212 0.161 0.075 0.076 0.337 Soft attention 0.330 0.214 0.153 0.079 0.092 0.342 本文模型 0.418 0.287 0.165 0.107 0.153 0.394 表1. 模型在BLEU-n (n = 1， 2， 3， 4)，ROUGE-L和CIDEr上的评估结果 由表1结果可以看出，本文模型在各个评估指标上的评估结果比NIC、Soft Attention的性能好。通过引入关键词信息，可以加强图像到图像描述的映射。图8展示了同一张图像在不同关键词信息下的描述情况，结果显示不同的关键词对图像描述的侧重点产生了一定的作用。 图8. 不同关键词信息对图像描述的影响