基于枢轴语言的图像描述生成研究

2019-04-17 03:56李军辉周国栋
中文信息学报 2019年3期
关键词:语料英文预测

张 凯,李军辉,周国栋

(苏州大学 计算机科学与技术学院,江苏 苏州 215006)

0 引言

自然语言处理(Natural Language Processing, NLP)和计算机视觉(Computer Vision, CV)是当前人工智能领域研究的两大热点。而跨领域研究则已经成为了未来研究的一种趋势,引起了研究者极大的兴趣。图像的语言描述(Image caption)是结合计算机视觉和自然语言处理的一项跨领域研究,该技术最早由Farhadi[1]等人提出,给定二元组(I, S),其中I表示图像,S表示对该图像的描述,模型要完成I->S的映射。学习到图片对应的描述,然后用训练完成的模型实现随机给的一张图像,描述图像的内容。“看图说话”对正常人来说非常简单,但这对于计算机来说是一项极大的挑战,计算机不仅仅要识别图片的内容,还要用人类的逻辑思维描述出人类可读的句子。

当前图像描述生成的主流方法是基于神经网络的方法,需要大量图像到目标语言的训练数据才能获得较好的性能。由于图像描述语料的目标端语言仅为英文,目前图像描述生成的研究仅局限于英文图像描述的生成。但是在很多情况下,图像到目标语言为非英文的标注语料资源为零,因此研究图像到目标语言为非英文的描述生成是一项严峻的挑战。本文提出在只有图像到英文描述语料,而没有图像到中文描述语料的情况下,如何利用机器翻译技术进行图片的跨语言描述生成,即生成图像的中文描述。基于这种假设,本文提出两种方法生成图像的中文描述。一种是串行法,该方法先训练图像到英文描述模型,然后利用训练好的模型,为随机给定的一张图像,生成其对应的英文描述,再利用翻译模型将得到的英文描述翻译成中文描述;另外一种构建伪语料法,该方法先利用翻译模型将图片-英文描述语料中的英文描述翻译成中文描述,这样得到同等规模的图像-中文描述伪标注语料;这样可以训练图像到中文描述模型,然后利用训练好的模型,随机给定一张图像,生成其对应的中文描述。

对于第二种构建伪语料方法而言,在训练的时候考虑到一个英文单词可能对应于一个中文短语,因此,生成中文描述的时候,必须结合中文的词组的形式,可以先将中文句子分词,进行基于词的图像中文描述生成;又考虑到中文中每个字都可以和其他字组合成不同的词,因此每个字都是一个独立的个体,也可以不用对句子分词而进行基于字的图像中文描述生成。

1 相关工作

本节先描述图像描述生成技术的相关工作,再描述机器翻译领域基于枢轴语言的翻译技术。

与神经机器翻译类似,图像描述(image caption)采用的神经网络模型通常由编码器和解码器两部分组成。编码器使用卷积神经网络(CNN) 将每张图片转化为一个固定长度的向量,也称图像的隐层表示;解码器使用循环神经网络(RNN)将编码器输出的固定长度的向量解析为目标语言的句子。Mao[2]等人在基于传统CNN编码器-RNN解码器的神经网络模型的基础上,提出并使用多模态空间为图像和文本建立联系。Vinyals[3]等人提出了神经图像描述(Neural Image Caption,NIC)模型, 该模型将图像和单词投影到多模态空间,并使用长短时记忆网络生成英文描述。Jia[4]等人提出了gLSTM模型,该模型使用语义信息指导长短时记忆网络生成描述。Xu[5]等人将注意力机制引入解码过程,使得描述生成网络能够捕捉图像的局部信息。Li[6]等人构建了首个中文图像摘要数据集 Flickr8kCN,并提出中文摘要生成模型 CS-NIC,该方法使用GoogleNet[7]对图像进行编码,并使用长短时记忆网络(LSTM)对图像描述生成过程建模。

在零资源或低资源的情况下,利用其它语言训练神经机器翻译模型近年来引起了广泛关注。Orhan Firat[8]等人提出多途径、多语言神经机器翻译,所提出的方法使得单个神经翻译模型能够在多种语言之间进行翻译,其中许多参数只与语言数量成线性增长。通过在所有语言对之间共享单个关注机制来实现。Cheng[9]等人提出基于轴的神经机器翻译,为了提高源端到目标端翻译质量,同时提高源端到轴和轴到目标端的翻译质量。Nakayama[10]等人实现零资源机器翻译,利用图像作为轴心,并训练多模态编码器以共享通用的语义表示。

目前并未发现零资源情况下,图像描述生成方面的研究。

2 图像中文描述生成方法

在本文提出的两种图像中文描述生成方法中,都包含两部分模块,分别对应翻译模型和图像描述生成模型。翻译模型将英文描述翻译成中文描述,图像生成描述模型将图像生成相应语言的描述。目前具有代表性的翻译模型包括基于RNN和注意力机制的序列到序列模型[11]、基于CNN的序列到序列模型[12]以及基于自注意力机制的序列到序列模型[13]。由于翻译模型本身并不是本文的研究重点,本文调用谷歌翻译API (https: //translate.google.cn) 获取描述的中文翻译。

2.1 图像描述生成模型

图像描述生成模型利用编码-解码的架构。首先编码器对图像进行编码,提取图像视觉特征;再使用解码器对视觉特征进行解码,生成句子。给定一张图像和对应的描述,编码器—解码器模型直接用式(1)最大化目标。

(1)

其中θ是模型要训练的参数,I表示图片,

S={S0,…SN}表示对应图像的描述。因为S表示任意长度的句子,它的长度不固定。利用链式法则,可以将联合概率分布的对数可能性分解为有序条件:

(2)

本文使用卷积神经网络(CNN)和长短时记忆网络(LSTM)对图像中文描述生成过程建模。在t=-1时刻,X-1=CNN(I)表示LSTM在这一时刻接收图像内容,t>-1时,网络的计算过程为ht=LSTM(xt,ht-1),其中xt∈Rm为t时刻的输入,即xt=WeSt,St∈Rn为图像对应描述的每个词编码成one-hot[14]向量,其维度大小等于字典的大小n。在每个句子序列中我们用S0表示特殊的开始符,用SN表示特殊的结束符。We∈Rn×m表示词向量字典,m表示词向量大小,ht∈Rd为隐藏单元状态, LSTM(·) 函数表示为式(3)。

(3)

其中it∈Rd为输入门,ft∈Rd为遗忘门,ot∈Rd为输出门,ct∈Rd为单元状态门,Wi、f、o、c∈Rc×m和Ui、f、o、c∈Rc×d矩阵为要训练的参数,c为词向量长度,d为隐藏状态长度,(c=d)。公式(3)得到的隐

藏单元状态和全连接层网络的权重矩阵Wnet∈Rd×n相乘,馈送给Softmax函数,产生所有单词的概率分布,如式(4)所示。

Pt+1=Softmax (Wnetht)

(4)

其中Wnet是要训练的参数。

模型的损失值是每一个正确单词的预测概率的对数负值总和,如式(5)所示。

(5)

2.2 串行法图像中文描述生成

串行法首先训练图像到英文描述生成的模型,再利用训练好的模型,将随机给定的图片,预测图片生成的英文描述。然后将预测的英文描述使用翻译模型翻译成中文描述。

图1是串行法图像中文描述生成框架,首先将给定的一张图像经过CNN提取图像特征,图像对应的英文描述句子加上特殊的开始符,编码成one-hot[14]向量,图中用圆球表示。接着将图像特征和编码向量用LSTM解码,图像特征作为LSTM的初始值,只在零时刻使用,编码向量作为LSTM的输入。生成英文描述的概率用PN,N={0,1...}表示。最后得到英文描述,利用翻译模型翻译成中文描述。

图1 串行法图像中文描述生成的模型框架

2.3 构建伪语料法图像中文描述生成

构建伪语料的方法是先将图像对应的英文描述用翻译模型翻译成中文描述,形成图像和中文描述的伪标注语料,接着用该伪标注语料训练图像到中文描述生成模型。这种方法可以直接由图像得到它对应的中文描述。考虑到生成中文描述的方式,本文提出了两种训练生成模型的方法,分别是基于词的方法和基于字的方法。

2.3.1 基于词的中文描述生成

基于词的模型框架,是将中文描述以词的形式进行编码。比如给定一句中文描述[一本书在街道旁的木凳上],其分词结果为[“一本” “书” “在” “街道” “旁”“的”“木凳”“上”]。

图2表示基于词的训练模型框架,首先是将英文描述使用翻译模型得到中文句子,然后将中文句子分词并且加上特殊的开始符,将处理后的句子编码成one-hot向量;图像特征使用CNN提取。类似地,训练过程中,图像特征作为LSTM的初始值,只在零时刻使用,编码向量作为LSTM的输入。生成中文描述的概率用PN,N={0,1...}表示。最后得到中文描述。

图2 基于词的模型框架

2.3.2 基于字的中文描述生成

基于字的方法是将中文描述以字为单位进行编码。比如给定一句中文描述[一本书在街道旁的木凳上],将整个句子切分成字的形式[“一” “本” “书” “在” “街” “道” “旁” “的”“木”“凳”“上”]。基于字的模型除了中文句子形成one-hot向量时是以每个字为单位之外,其余和基于词的模型是一致的。

3 实验与分析

3.1 数据集

本文使用的数据集为MSCOCO2014[15],其中训练集包含82 783张图片,对应的英文句子描述共有414 114句,平均每张图片对应5句不同的英文描述;开发集包含40 504张图片,共202 655句英文描述,类似地每张图片对应5句不同的英文描述;测试集包含40 775张图片。特别地,为了评估中文描述生成的性能,我们从测试集随机选取500张图片,参照英文描述标注的方法,从不同角度由人工标注,为每张图片标注5句不同的中文描述。因此,本文使用的测试集中仅限于这人工标注中文描述的500张图片。

3.2 实验设置

3.2.1 视觉特征提取网络设置

视觉特征提取网络CNN(I)完成I-> V(I)的特征映射,其中I为输入的图像,输出为视觉特征向量V(I)。视觉特征的提取使用Inception-Resnet-v2[16]和InceptionV3[17]两种结构,两种结构均在大规模单标签分类任务ImageNet[18]上进行训练。本文使用两种已经训练好的结构提取视觉特征,用两种结构的网络隐藏层的输出来表示提取到的视觉特征。首先对图像进行缩放、裁剪、调整对比度清晰度得到大小为299×299的三通道RGB图像,然后使用这两种结构进行图像特征提取。

• CNN模型使用Inception-Resnet-v2[14]时,隐藏层的输出(32×8×8×1536)作为提取到的视觉特征。将视觉特征使用卷积核大小为(8×8)的平均池化层、平铺之后得到(32×1536)的视觉特征。其中32是批处理的个数。再使用输出为512的全连接层将得到的视觉特征映射为(32×512)的特征矩阵作为最终的视觉特征。

• CNN模型使用InceptionV3[15]时,隐藏层的输出(32×2048)作为提取到的视觉特征,再使用输出为512的全连接层将得到的视觉特征映射为(32×512)的特征矩阵作为最终的视觉特征。

3.2.2 两种图像描述生成方法设置

在串行法图像中文描述生成方法中,需要建立图像到英文描述的生成模型。为此,本文对图像英文描述句子进行断词处理,对每个句子加入开始符“”,词汇大小n设置为12 000,未登陆词用表示。词向量长度m为512,解码器LSTM的隐蔽状态长度d也设置为512;词向量和模型参数的初始值在区间[-0.08,0.08]按均匀分布得到,实验采用初始学习率为2.0的随机梯度下降算法,学习衰减率为0.5。在测试的时候,本文使用大小为4的柱状搜索算法[19]。批处理大小为32。在训练过程中我们使用Dropout正则化和归一化处理来提高模型的泛化能力[20]。在构建伪语料法图像中文描述生成方法中,需要建立图像到中文描述的生成模型。在基于词的中文描述生成时,使用结巴分词工具(https: //pypi.python.org/pypi/jieba)获取句子的分词结果。在建立图像到基于词和基于字的中文描述生成方法中,目标端词汇的大小都设置为16 000,未登录词用表示。其他参数设置与串行法建立的图像到英文描述的生成模型一致。

3.2.3 评测指标

本文的评测指标使用BLEU_1,2,3,4[21]、METEOR[22]、ROUGE_L[23]和CIDEr[24]七种指标衡量图像描述生成结果的质量。其中BLEU一般是用在机器翻译评测翻译质量的,反映了生成结果与参考答案之间的N元文法准确率。METEOR测量基于单精度加权调和平均数和单字召回率。ROUGE_L与BLEU类似,它是基于召回率的相似度衡量方法。CIDEr是基于共识的评价方法,优于上述其他指标。此外,为了减少分词错误对评测的影响,本文在评测图像到中文描述的性能时,中文端都是以字为单位进行评测。

3.3 结果与分析

以下我们分别报告并比较本文提出的两种方法生成的中文描述的质量。

3.3.1 串行法图像中文描述生成实验结果

表1给出了串行法图像中文描述生成的实验结果。从中可以看出,Inception-Resnet-v2视觉特征提取算法取得的性能要优于InceptionV3,这与大规模单标签分类任务的观察结果一致[16]。

本文的串行法图像中文描述生成共包含两个环节分别是图像的英文描述生成以及英文描述的中文翻译。为了更清晰地理解这两个环节的性能,表2分别给出了英文描述生成的实验结果,以及假定英文描述没有错误情况下,中文描述生成的结果,即翻译模型在测试集上的性能。如表2所示,Inception-Resnet-v2视觉特征抽取方法在第一个环节得到的英文描述性能BLEU_4值为0.274,表明自动生成的英文描述与人工标注存在着一定的差距。另一方面,基于正确的英文描述标注,Gold EN-ZH的BLEU_4性能达到0.708,这说明机器翻译在短句翻译上能够取得较好的性能,这也与机器翻译领域的研究一致[25]。综合表1和表2,可以发现,当英文描述由正确描述变为自动描述时,中文描述的性能BLEU_4值由0.708急剧下降为0.315,这也说明图像描述生成任务本身较中英机器翻译任务更具挑战性。

表1 串行法图像中文描述生成实验结果

表2 图像英文描述生成实验结果(Image-EN)以及正确英文描述情况下的中文描述生成实验结果(Gold EN-ZH)

3.3.2 构建伪语料法图像中文描述生成实验结果

以下分析,视觉特征抽取方法均使用Inception-Resnet-v2。

表3给出了构建伪语料法图像中文描述生成的实验结果,分为基于词和基于字的中文描述生成。从表中可以看出,一方面,基于字的性能要优于基于词的性能。例如,从基于词到基于字BLEU_4从0.328提高到0.341,METEOR从0.268提高到0.271。另一方面,无论是基于词还是基于字,Inception-Resnet-v2视觉特征提取算法的性能均优于InceptionV3,这和串行法得到的结论一致。

表3 构建伪语料法图像中文描述生成实验结果

从表1和表3可以看出,构建伪语料的方法性能明显优于串行法。例如,从串行法到构建伪语料法,BLEU_4从0.315提高到0.341,METEOR的值从0.256提高到0.271。

3.3.3 实例分析

图3给出了两张图片生成的图像描述结果。其中0和1分别表示人工标注的英文描述和中文描述。2表示串行法中得到的自动英文描述,3表示串行法中自动英文描述经过翻译模型得到的中文描述。4和5是在构建伪语料方法下基于词和基于字的方法分别得到的结果。从图中可以看出,两种方法得到的结果和人工标注的结果相比,都存在一定的预测错误。例如,左边的图片,在串行法中,由于自动生成的英文描述存在着不常用的表达句式“on top of a body of water”,导致翻译得到的中文描述存在生硬及不自然的表达“在水体顶部”。相对而言,构建伪语料法得到的中文描述在表达上更加自然,特别地,构建伪语料法中基于字的模型得到的中文描述最好。

图3 inception-Resnet-v2模型下预测的结果

表4给出在构建伪语料的方法中,基于词和基于字的中文描述概率最高的四种预测结果及其概率,第一行表示人工标注的中文描述,称为金标(Gold),第二行是基于词的结果及其概率,第三行是基于字的结果及其概率。其中CNN模型采用Inception-Resnet-v2特征提取方法。基于词的预测结果为“一个婴儿拿着牙刷和牙膏。”,错误地识别了图像中并没有的物体牙膏”,同时遗漏“牙刷”的数量修饰词“一把”;另一方面,基于字的预测结果为“一 个 年 轻 的 孩 子 拿 着 一 把 牙 刷 。”,正确地预测了“牙刷”的数量修饰词“一把”,但将“婴儿”不是很准确地预测为“一 个 年 轻 的 孩 子”。

表5给出基于词和基于字的情况下,随机给定的一张图片,模型预测的图像的中文描述及其概率,以及每个字或词预测下一个字或词的概率,即模型经过softmax得到一个词或字的概率。第一行表示人工标注的中文描述,称为金标(Gold),第一列表示要预测描述的图片,第二列表示基于词的情况下模型预测的结果和概率,第三列表示基于字的情况下,模型预测的结果和概率。在本例子中,基于词和基于字的预测结果差异性很小,仅在介词选择上不同。基于词预测的中文描述为“雪地 里”,而基于字预测的中文描述使用更加准确的介词“雪 地 上”。另外,基于词预测的中文描述概率(p=0.008 602)高于基于字预测的中文描述概率(p=0.007 592),这说明虽然基于字的预测结果长度一般要长于基于词的预测结果,但预测结果概率相差不大。

表4 构建伪语料法中基于词和基于字的模型预测结果及其概率

表5 基于词和基于字的情况下模型预测结果

4 结论与未来工作

本文提出了以英文为枢轴语言的图像中文描述生成的两种方法: 串行法和构建伪语料法。实验结果表明构建伪语料法得到的系统性能高于串行法。另外本文在构建伪语料法的前提下,比较了基于词和基于字的中文描述生成方法,实验结果表明使用基于字的方法优于基于词的方法。

不论本文的串行法还是构建伪语料法,图像描述生成都仅为一种语言(英文或中文)。在未来工作中,我们将考虑同时输出两门语言的描述,通过共享图像的表示向量,目标端的两门语言之间存在语义相近的特点,能够帮助同时取得两门语言上更好的描述。

猜你喜欢
语料英文预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
基于归一化点向互信息的低资源平行语料过滤方法*
濒危语言与汉语平行语料库动态构建技术研究
对外汉语教学领域可比语料库的构建及应用研究
——以“把”字句的句法语义标注及应用研究为例
英文摘要
英文摘要
英文摘要