基于场景词分析的可纠错视觉问答方法

2022-12-30 07:51肖婧文姜士玲温俊芳胡艺馨王秋艳宋庆增
计算机工程与设计 2022年12期
关键词:物体模块文本

肖婧文,姜士玲,温俊芳,胡艺馨,王秋艳,宋庆增

(天津工业大学 计算机科学与技术学院,天津 300387)

0 引 言

目前已有很多学者提出了多种新的模型来处理视觉问答(visual question answering,VQA)任务。Hu等[1]提出了基于神经网络的端到端的视觉推理方法,可以动态地预测与问题语句描述相关的区域。Lee等[2]提出了堆叠式交叉注意力网络,使用自底向上的注意力机制检测图片中需要关注的信息。Wenya Guo等[3]提出了一个基于再关注框架的方法,可以通过答案重建初始注意图,从而更好地理解问题。

然而,图片中不存在任何物体与问句直接对应的时候,会导致错误的匹配及回答。比如,当问题语句包含“婚礼”这类场景词的时候,因其不是实际物体,即使图片中存在婚礼通常包含的“神父”、“教堂”、“花”等与婚礼有关的物体,现有的基于物体检测的深度学习算法也无法进行准确的匹配。

本文针对上述不足,提出了一种基于场景词分析的视觉问答方法。本文的方法通过结合VQA语句理解、文本匹配、概率分析回答等模块,提高了面向图片集的视觉问答任务的回答准确率。

1 基于场景词分析的可纠错视觉问答方法

如图1所示,本文提出的方法可以分成VQA语句理解模块、文本匹配模块、概率分析模块。①VQA语句理解模块主要采用基于注意力机制的one-shot深度学习模型,基于物体检测生成第一次答案。当第一次答案被用户质疑(希望得到其它答案)或者否定的时候,将启动如下两个模块。②文本匹配模块,首先检测并提取图片及其相关信息中所有出现的物体,然后将这些物体与问题语句进行语义匹配。③概率分析回答模块通过匹配算法,首先生成候选结果集,之后对选项进行分析,最后选择最高置信度的答案作为最终答案。

图1 本文模型的概述

1.1 基础视觉问答语句理解模块

该模块基于Liang等[4]提出的一种神经网络模型进行搭建,用于推理图片及问题信息,最后可视化每个子模块的结果。注意力机制动态地观察在全局信息中应该注意哪些子模块生成的结果。基础VQA模块的子模块包含模块生成器、模块处理器和分类器,处理视觉特征和文本特征。

1.1.1 问句-图像模块的生成

模块生成器使用卷积神经网络对输入的所有图片进行编码,再用循环神经网络对所有问句进行编码。序列编码器使用长短记忆网络(long short-term memory,LSTM)对图片序列和问句序列进行编码,获得这些序列之间的关联信息。

1.1.2 注意力网络模块

如图2所示,本文的模型使用注意力机制来捕获图片序列和问题序列之间的相互联系。图片上下文注意层旨在让模型基于问题的各个词语寻找关联的图片上下文范围和时间步长。首先引进关于时间的关联矩阵D∈RL*L,L是序列的最大长度,D是一个对称矩阵Dij,代表一个问题的第i步和第j步内部的关联性。每个上下文Dij(∀i,j∈[1,L]), 然后进行如下计算

(1)

式中:wd∈R2a*1,wo∈R4a*2a属于模型的参数,S是定义的相似函数,oip表示图像(p=1)序列或文本(p=2)序列的第i个时间步长矢量表示,Q代表问题,共有M个单词,是切片运算的符号,主要用在向量空间中获取全部的元素。时间相关矩阵获取了问题、图片和文本序列的时间相关性。

(2)

(3)

(4)

(5)

(6)

图2 本文的注意力机制和经典VQA注意机制的比较

1.1.3 输出模块

1.2 文本相似性匹配模块

文本匹配在很多自然语言处理(NLP)任务中起到重要作用,例如问题解答(QA),信息检索(IR)[7]和许多其它任务。在QA匹配任务中,问句与答案可能是因果关系匹配,而不是简单的语义匹配(例如同义词[8]),这导致问句和答案之间的语义距离很大。与文本匹配不同的是,本文的任务是要找出图片上标注的文本与问句文本在语义上是否相等。本文针对相册里的图片,基于其场景词,生成多个不同含义关系的语句。每个句子有一定的意义,所有的语句都是根据图像的内容来判断,再与问句进行匹配,并以置信度最高的答案为最后的输出。

本文利用对象检测器通过注意力机制去理解场景。视觉场景不仅仅是孤立的一个个物体,物体之间的关系也组成了有关这个场景的丰富的文本信息。比如,两张图片中有一个喂猫的男人和站在猫旁边的男人,即使是完美的检测器也很难感知到喂猫的男人与站在猫旁边的男人之间的细微差别,也会在两个语义上不同的图像上产生相似的输出(猫、男人)。所以在本文中,使用基于场景图生成[9]的模型(图片可视化的图形结构),该模型将图像作为输入,能够提取出所有的物体并生成一个场景图,预测图片中所有物体还有它们之间的关系。将图的迭代问题使用标准RNN解决,通过消息传递来迭代地改进其预测,使用联合推断模型可以利用上下文行为去更好地预测对象及其之间的关系。本文的方法将图片解析为场景图,然后对多个对象进行推理,解决图像中出现场景词的问题,将场景图形映射到图像以计算图像和问题之间的相似性。

该模块建立一个场景图,将检测出来的物体作为节点,将物体之间的成对关系作为边,利用结构化知识进行解释和推理[10]。由于生成出来的场景图不能直接使用,所以需要将它们转换为多个视觉-文本对,之后将视觉文本传送给双向LSTM。

接着用一个语义匹配模型来估计答案概率分布Pr(P|B,Q)。 如图3所示,本文将相似性匹配模型应用在场景语句中,给出一对问句Q和视觉文本描述V,单词嵌入把单词转变成d维向量,使用双向LSTM读取表示每个输入句子的单词向量,随后衡量这些语义之间的相似性,输出得分。

图3 语句相似度匹配模型概述

(7)

下一层称为上下文表示层,这一层将上下文信息融入到视觉文本对和问题的每个时间步的表示中,采用双向LSTM为每个问句开始编码。由N个单词组成的问题首先被转换为Glove向量序列,同时将双向LSTM应用到视觉文本对里,由M个单词组成的视觉文本序列同样先被转换为Glove向量序列。接着采用空间加权匹配如式(8)

m=fm(u1,u2;W)

(8)

u1和u2为两个D维空间矢量,W为可学习参数。m为选择的特征的数量,且返回值m为一个l维矢量m=[m1…m2…ml]。

然后经过两个加权向量之间的余弦相似性来匹配如式(9)

mk=cosine(Wk∘u1,Wk∘u2)

(9)

从第k层来看,每个元素mk∈m是一个匹配值,并且它是通过两个加权矢量之间的余弦相似性来计算的。

1.3 概率分析回答模块

本文设计的概率分析模块,通过推理和分析生成多个描述,然后与问题进行匹配,匹配完后产生得分,选出每个匹配后得分最高的作为候选信息,对每个候选信息语句进行排序。之后,经过概率分析器分析与选项中选项置信度最高的结果作为最后的答案进行输出。

为了能够从选项中选出最终结果,本文的方法将对这些结果正确的概率进行分析。在对问句与语句进行匹配结束后,需要对匹配结果进行排序,排序函数为Timsort算法[11],Timsort算法根据得分从高到低进行排序。算法是将归并排序和插入排序进行融合而得到的排序算法,它的执行效率很高。Timsort算法找到数据中已经排好序的块,把每一个已经有序的分区称为一个Block,每个Block最少要有2个元素。针对升序和降序区别出每个Block,然后按规则合并这些Block,排序方法的输入是一个个有序排列块,针对这些 Block 序列,每次选取一个 Block出来按规则进行合并。每次合并会将两个Block合并成一个 Block,合并的结果保存到栈中。一直进行归并,直到遍历完所有的Block,这时将栈上剩余的Block合并到只剩一个Block为止。

如果经过匹配的结果答案概率,相似度得分最大的概率作为最终的候选结果。如果不在4个选项中,把最高的概率当成最终的答案的话,可能会使模型找不到正确的答案,从而在选项中随便选择一个,导致回答错误。所以,对得分前五的数据进行处理,与选项进行结合,选出最佳答案。

排名在第一位的固然最有可能成为正确答案,但是排名靠前的如果并不是正确答案,意味着和其相似的答案正确概率也不高。例如,在图4中答案部分,经过前面的描述与问题相似性匹配后,样本图片2的桌子相似性得分最高,但是在选项中并没有桌子这个选项,所以相似性最高的并不能作为最终选择。其它候选答案也有可能是与选项最符合的答案,样本图片1板凳的相似性得分低于桌子的相似性得分,但选项中存在板凳的而没有桌子选项,所以可以得出的答案为含有板凳的选项。由上可知,本文的模型选取相似度前五的成为候选答案,寻找和选项相似性最高作为最终输出的答案,提供答案的多样性。

图4 概率分析回答模块概述

(10)

其中,P(Q) 是从4个选项中作为候选答案。

2 实验及结果分析

2.1 实验环境

为了验证本文方法的推理能力,选择MemexQA数据集和Visual7w数据集作为测试数据集。MemexQA数据集[12]由20 860个问题和大约13 591张个人照片组成。模型在14 156个随机选择的QA对的训练集上训练,并在一组3539个QA对上进行测试。MemexQA数据集提供4个答案选项,每个问题只有一个正确答案。Visual7w数据集[13]由7万个问题组成,问题类型有“是什么”,“问地点”,“问时间”,“问是谁”,“问原因”以及“怎么了”。其中有28 020个验证问题和42 031个测试问题,每个问题有4个答案选择,通过正确回答问题的百分比来衡量结果。

本文使用场景图在MemexQA数据集和Visual7w数据集进行了训练。由于一般预测关系的方法都是单独地推测每两两物体间的联系(位置),疏忽了场景中的其它物体间的联系,即邻近文本的内容对推测关系的关联能力。本文使用的模型不是孤立地推断场景图的每个组件,而是在场景图的物体之间传递包含上下文信息的消息。本文的方法以图片作为输入,产生一个场景图以及描述。该场景图由对象类别,它们的边界框以及对象对之间的语义关系组成。图5显示了图片生成场景图的结果,可以通过场景图了解各物体之间的关系。将图像和对象边界框作为输入,并生成对象类标签(实线椭圆)和每对对象之间的关系谓词(虚线椭圆)。

图5 图片生成场景图的结果

2.2 在MemexQA数据集上的结果

实验运用对比方法如下:LSTM、Embedding、Embedding+LSTM、Embedding+LSTM+Concat、DMN+[14]、Soft attention、MCB Pooling[15]和FVTA[4]。表1为各方法在MemexQA数据集上的精度对比。由表1可见,相比现有方法,本文方法达到85.4%的精度。

表1 各方法在MemexQA数据集不同分支上的结果

当第一个答案出错时,本文的方法通过再次向模型输入问题。本文选择的所有方法都是两次回答。在MemexQA中有3539个问题,把问题和图片输入网络,本文的模型在第一次机会得到2366个正确答案。对于错误答案,将问题再次输入并使用本文的方法作为第二次机会,对问题中含有场景词的进行语义再分析。本文的方法在第一次回答错误的1173个答案中纠正了656个,而现有方法都无法在第二次纠正错误答案。结果表明,本文的方法可以在第二次机会中纠正错误答案,并且和现有模型相比获得更好的准确度。它表明本文的方法具有更优的结果,因为它可以解决问题中出现场景词不容易用一个物体去解释的问题。

本文模型在14 156个随机选择的QA对的训练集上训练。如表2所示,在MemexQA数据集上,利用单个GPU(NVIDIA GeForce GTX 1650),本文的模型训练大概需要1 h,iBOWIMG基线模型训练约40 min;VQA注意力模型BIDAF[5]训练约1.6 h(一个epoch)。本文的模型训练时间介于基线模型和纯注意力模型之间。在测试过程中,由于本文的模型会在第一个答案出错时,再次向模型输入问题,纠正错误答案,所以测试时间会相比于所基于的基础模型慢一倍左右,本文模型在3539个QA对上测试大概需要15 min。因此本文模型更适用于对回答速度要求相对不高,可以通过用户的反馈,在图片集上需要找到精确结果的场景。

表2 各模型训练和测试的时间

MemexQA数据集还为每个问题提供了事实真相照片。通过比较注意权重最高的照片和真实照片之间的相关性,以正确回答问题。理想的VQA模型不仅应具有回答问题的高精度,而且还可以找到与真实证据高度相关的照片。表3列出了检查模型是否将焦点放在正确的照片上的准确性。本文的方法在寻找问题的相关照片方面胜过其它模型。结果表明,所提出的方法可以捕获用于回答问题的重要信息。

表3 各方法找到真实图片的结果

为了进行定性比较,本文选择一些代表性问题,并根据图6中显示,本文的方法与其它方法回答的答案和检索到的图像。如第一个示例所示,系统必须找到正确的照片并在视觉上识别物体以回答问题“我们上一次去婚礼是什么时候?”。本文的关注重点在于有关婚礼的正确照片上,还理解有关婚礼之间的联系,从而正确回答了这个问题。而对于其它模型可能输出错误的图像并得到错误的答案。此示例显示了本文在理解有关场景词方面对相关性进行建模的性能,胜过现有的模型。对于每个问题,都会显示答案和从相册中找到足以证明回答的图像。正确的图像和答案在第一个位置,不正确的答案在后边的位置。

图6 不同模型在MemexQA数据集上的定性比较

2.3 在Visual7w数据集上的结果

Visual7w数据集是Visual Genome的子集,其中包含附加注释。每个问题会有4个选项作为候选答案,其中只有一个是正确答案。另外,问题中提到的所有对象都是可视化的,即与它们在图像中的描绘的边框相关联。为了公平地比较,仅与单个模型的性能进行比较,而没有使用其它大型数据集(例如Visual Gnome)进行预训练,而且也没有额外的数据,没有额外的语言嵌入参与。

在此数据集上,实验运用对比方法如下:BOW、LSTM[16]、LSTM+Att[13]、MCB Pooling[15]、MLP(A,Q,I)[17]、Ensemble-All[18]、POS+Att[19]。

首先,对比了BOW基线的两种变体,第一个版本使用图像、问题和答案;第二个版本不使用图像,分别对它们进行训练,在这两种情况下,使用默认的Adam优化器在50次~60次迭代训练中即可达到收敛。接着对比了LSTM,LSTM只处理文本信息,无可视化信息,通过序列化输出的方式得到答案。LSTM+Att模型,该模型在LSTM体系结构中添加了空间注意机制,用于与图像信息一起对问题进行联合编码,以提高问题编码的精度。最后本文探索了结合词性(POS)标签指导的注意力机制,对比了POS+Att模型,该模型可以捕获语言-视觉交互并执行联合推理。

如表4所示,在Visual7w上,本文方法和现有方法的定量结果,将问题分为6种类型,分别为“是什么”,“问地点”,“问时间”,“问是谁”,“问原因”,“怎么了”。6种问题类型的模型准确性分别对应表中的2到7列,总体准确性对应表的最后一列。对于每种单独的问题类型,本文的模型回答准确性均有所提高,整体检测精度能达到74.4%。

表4 各方法在Visual7w数据集上不同分支上的结果

3 结束语

本文构建了一个模型来解决VQA中关于场景词的潜在语义信息问题。当第一次分析场景词是错误的时候,还有另一次机会重新分析场景词来得到答案。本文构建的模块化框架用于回答视觉文本序列的问题,主要使用LSTM训练语义结构化表示向量,使得简易的度量可以捕捉语句相似性。本文的方法不仅可以预测正确的答案,还可以找到能帮助用户理解验证答案的结果,从而达到了更好的效果。在实际应用当中,给出第二个答案的能力对于人机交互也很重要,AI机器能再次确认图片中可能出现的物体,通过深刻理解两个语义之间的含义,能使AI变得更加聪明。

在未来的工作中,将计划研究如何针对更多的含有场景词的句式,从而进一步提高模型的实用性。同时,也需要研究如何利用场景中的物体标签的概率分布[20],来进一步提高图片识别精度,从而提高匹配及回答精度。

猜你喜欢
物体模块文本
28通道收发处理模块设计
“选修3—3”模块的复习备考
文本联读学概括 细致观察促写作
深刻理解物体的平衡
作为“文本链”的元电影
基于doc2vec和TF-IDF的相似文本识别
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?
悬浮的鸡蛋
走进文本 走近大师 走出文本 走向生活