王雪枫,张雪松,王 峰,石方宇,赵 佳
(阜阳师范大学 计算机与信息工程学院,安徽 阜阳 236037)
视觉问答(visual question answering,VQA)是一项具有挑战性的任务,它将计算机视觉与自然语言处理相互结合,将给定的图像和问题作为输入,通过视觉问答模型得到自然语言答案。受益于神经网络、计算机视觉和自然语言处理等技术的发展以及相关大型标准数据集和知识数据库的不断完善,近些年出现了大量的VQA 研究成果。目前视觉问答相关的方法可以分为以下几种:模态融合模型,注意力模型,模块化组合模型,外部知识模型,鲁棒性模型和关系推理模型等。下文中将对这些成果进行分类分析,并对视觉问答技术的未来发展方向进行展望。相较于其他综述类文章[1-4],本文给出的模型分类更加全面,方法更加新颖,意见更具有可行性。
Kafle 等人[3]将视觉问答算法分为问题特征提取,图像特征提取,特征融合三个步骤,目前最常用的视觉问答任务[4]流程如图1 所示。伴随着自然语言处理技术的发展,问题特征的提取方法经历了词袋模型到LSTM,GRU[5]+GloVe[6],到现在的Transformer[7],BERT[8]等技术的发展过程。而图像特征提取技术,从最开始的VGGNet[9],到GoogLeNet[10],ResNet[11],再到现在基于锚框的Faster R-CNN[12],它伴随了神经网络在图像检测领域的发展。图像特征提取方法来自图像处理技术,问题特征提取的方法来自自然语言处理技术,所以视觉问答的关键内容就在于特征融合。
图1 视觉问答任务的基本模型框架
视觉问答任务大多数是根据数据驱动训练,所以好的数据集能使模型具有更好的泛化能力。随着视觉问答任务相关技术的发展,如表1 所示,VQA 数据集可以分为自然场景数据集DAQUAR[13],Visual Genome[14]等;合成场景数据集VQA2.0[15],CLEVR[16]等;外部知识的数据集FVQA[17],OK-VQA[18]等;还有消除语言偏见的数据集VQA-CP 2.0[19]以及其他类型数据集。其中,VQA 2.0 数据集目前应用最为广泛,它的图像内容丰富,既包含来自微软COCO 的真实场景也包含了抽象场景。
表1 视觉问答中典型的数据集
视觉问答算法由Malinowski 等人[5]首次提出,使用语义分割算法得到图片内的主体和对应区域,再通过贝叶斯算法将图像分割后的区域与经过语法解析后的问题关联,进而预测答案概率。随着相关理论的发展,近些年又提出了一些新颖的模型方法。
视觉问答中模态融合的方法通常采用线性分类器或多层感知机,将来自图像和文本两种不同模态进行相互连接。例如Goyal 等人[15]将问题中每个词表达成One-Hot 向量,输入至LSTM 网络,输出问题的表达特征,并使用GoogLeNet 网络将对应的图像表达成相同维度的特征,然后对2 个特征进行Hadamard 乘积,即矩阵对应维度值做点乘操作。
Fukui 等人[20]提出将双线性池化方法(MCBP)应用到视觉问答任务中,并与注意力方法结合融入到模型框架中。在此基础上,Yu 等人又提出了MFB[21]和MFH[22]等改进方法。双线性模型可以帮助学习问题语义和视觉内容结合的高级信息,却带来了维度爆炸问题,而且两种模态融合方式较为简单,对复杂交互建模的表示能力不强。于是,Ben-younes 等人先后提出了 MUTAN[23],BLOCK[24]等分解算法,MUTAN 基于Tucker 分解,BLOCK 基于块张量分解,这种分解技术使用块项秩的概念来定义张量的复杂度。
模态融合是目前大多数VQA 的基础,但是仅仅使用模态融合无法推理图像与问题之间的关系,提高模型精确度的能力有限。
虽然MUTAN 等方法对多模态的特征进行了分解,但实际上仍是以整体特征作为输入,在特征提取阶段引入的噪声没有消除。注意力模型由于能够对图像的不同区域和问题的不同单词赋予不同权重,取得了较好的效果。Yang 等人[25]较早地提出了一种问题引导图像的堆叠注意力网络模型,使用问题查询的方法逐步缩小图像相关区域,最后将最高关注层的图像特征和最后一个问题查询向量结合起来预测答案。基于这种思想,Lu 等人[26]提出了一种分层级的共同注意模型,在问题引导图像注意的同时使用图像引导问题注意。作为视觉问答经典模型之一,Updn 模型[27]提出自上而下和自下而上方法提高了模型在图像区域上的注意力,模型结构如图2 所示。
图2 Updn 模型的注意力结构图
随着自然语言处理技术的发展,Vaswani 等人[7]将Transformer 方法引入到视觉问答中。Gao等人[28]提出的DFAF 模型就是基于Transformer框架中的Scaled Dot-Product 方法,在模态间通过这种方法实现了协同注意,并通过引入门机制实现了模态内受另一模态影响的自注意。
Scaled Dot-Product 方法计算过程如下:
其中Q,K,V分别是视觉区域和单词特征转化的查询特征、键特征和值特征。f是计算相似度的函数,S是相似度分数,d是图像或问题维度,Feature 是得到注意后的特征向量。
视觉问答任务中效果较好的模型,大多属于软注意力模型[26-30],因为其可以直接求导,进行梯度反向传播,但是它在计数问题上表现很差。基于注意力的预训练模型[31-33]不仅大幅度提高了模型精确率,而且可以与其他方法结合用于下游多模态任务中,局限性在于这种方法参数过多,训练成本高,时间长。
单纯使用注意力机制来回答问题,并不能解释回答问题的过程。模块化结构可以进行“深度监督”,即可以按深度层次优化那些依赖于内部模块输出结果的目标或对象。
Andreas 等人[34]提出了NMN(Neural Module Networks)的方法,NMN 模型由多个模块化网络组合而成,根据VQA 数据集中每个问题定制一个网络模型。首先利用解析树对问题进行解析,然后将问题送入不同且相互独立的模块,将输出加入LSTM 问题编码器取均值来获得最终答案。该方法能够比传统方法更好地推理,处理更长的问题,但是局限性在于模块结合采用问题简化的方式,忽略了一些语法线索。
DMN(Dynamic Memory Networks)[35]是具有特定模块化结构的神经网络,常被应用在文本问答领域。Xiong 等人[36]将DMN 用于VQA,模型由四个独立的模块组成,输入模块将输入文本数据转化为向量。问题模块使用GRU 计算问题的向量表达,插入式记忆模块检索问题答案。答案模块根据记忆模块生成的最终记忆向量预测模型输出。相较于NMN 模型,在二分类问题的结果上表现类似,在计数问题上表现稍差一些,但是其他类型的问题都有明显提高。
不可解释性是深度学习的共同问题。模块化的神经网络模型能够合理地解释回答问题的过程。使用外部知识库并结合模块化模型是构建更具可解释性模型的方法之一。
目前的VQA 任务是根据统计学意义得到结果,当测试集出现训练集之外的知识时,这个基于统计学习的模型将无法给出正确的答案。想要实现真正的“AI-complete”,通常需要丰富的先验知识。例如回答一幅图像中的红色柱子(消防栓)作用是什么,经典的视觉问答算法只能识别出红色柱子是消防栓,而无法回答它的作用是灭火。
如图3 所示,目前含有外部知识的视觉问答模型从图片特征提取相关属性用于从知识数据库中获得相关事实,从问题特征中提取事实中的关系用于过滤部分事实,进一步减少相关事实的数量。然后将图像特征,问题特征以及相关事实共同输入到模型中,得到答案。
图3 外部知识模型结构
基于对外部知识的需求,Wu 等人[37]较早地提出了一种使用外部知识的“Ahab”模型,从预训练的图片中提取与图片相关性排名前五的属性,分别生成关于属性的描述。将从DBpedia[38]数据库得到的相关事实,统一送到LSTM 编码器中,使用单词序列生成方式得到答案。这种方法的缺点在于仅仅提取离散文本描述,无法进行知识的关系推理。Narasimhan 等人[39]提出图卷积与多层感知机相结合的方法,虽然解决了上面的问题,却因为每个节点都引入了全部而且相同的视觉信息带来噪声,并且每个节点都是视觉-问题-实体的共同嵌入,无法灵活地在不同模态中捕获线索。
为了解决上述问题,Zhu 等人[40]首先对多个模态(图像,语义,事实)进行卷积图的设计,然后在跨模态知识汇聚之前,先进行每个模态内的知识选择,并采用一种隐式的基于注意力机制的异构图卷积网络方法来关联不同模态信息,从不同层的图中自适应地收集互补线索并进行汇聚。最后,在事实图上执行事实对事实的聚合,对所有实体进行推理。迭代进行内模态知识选择和跨模态知识推理,以获得最终的实体表示。通过输出分类器中概率最高的实体作为答案。
基于外部知识的视觉问答方法还处于发展阶段,相关数据集规模有限。构建耦合数据与知识的新模型和补充知识库将增强模型推理能力并极大地促进视觉问答及其他多模态任务发展。
视觉问答具有语言先验等多种鲁棒性问题[41]。视觉问答中的语言先验是指模型在回答问题时更依赖于问题,很少依赖图像。为了缓解语言先验,VQA 2.0 数据集在VQA 1.0 的基础上为每个问题增加不同图像。而Agrawal 等人将VQA 2.0 重新分割成训练集与验证集分布不同的VQA-CP v2 数据集,VQA-CP v2[19]成为目前处理语言先验的主要数据集。
早期处理方法是增强视觉灵敏度的单支路方法[42-43],这类方法直接引入了人类注意力以增强视觉重要性,以平衡视觉与问题之间的关系,但是收集人工注释的成本较高。融合仅问题模型的双支路方法,将仅问题模型与基础视觉问答模型以不同策略结合,具体结合策略包括嵌入[44],融合[45]和对抗[46-47]等方法。但是这类方法存在两个问题:一,这种方法与其他处理语言先验能力强的模型结合使用时可能会阻碍模型学习正偏[48-49]。二,Teney 等人[50]指出,这些方法利用了VQA-CP v2中训练集和测试集答案分布明显不同的特殊结构。最新处理语言先验的方法主要是通过生成反事实样本[51],自监督学习[52]和答案重排序[53]等方法。
鲁棒性相关的方法虽然没有取得注意力机制那样好的效果,但是它解决了VQA 问题中的语言先验性强,视觉不可解释性等一些无法避免的缺点。而且处理语言先验是视觉问答中近两年研究的最热门方向,已经成为视觉问答中标志性分支,它指出了视觉稳定中数据分布不平衡的问题,而数据分布不平衡也是机器学习面临的共同话题。
Cadène 等人[54]认为注意力可以集中在与问题相关的图像区域上,但这种简单的机制忽略了图像区域的空间和语义的关联,不足以对复杂的推理特征或者高层次的任务进行建模。引入原子推理原语MuRel Cell,通过丰富的矢量表示问题和图像区域之间的交互,并通过成对组合来建模区域关系。将细胞合并到一个完整的MuRel 网络中,可以逐步细化视觉和问题交互。
Li 等人[55]认为图像和自然语言之间存在语义鸿沟,MuRel 模型只是考虑了对象间隐性关系,隐性关系的可解释性不如显性关系,不足以解决复杂的图像和语义对齐关系。例如一组斑马图像中,模型可以识别斑马的黑白色,但是不能识别哪个像素来自哪个斑马。对于问题:“最右边的斑马是幼年吗?斑马在吃草吗?”VQA 不仅要识别物体即斑马和周围环境,还要识别图像关于动作以及位置的语义。因此,作者提出了能够学习显性关系和隐性关系的图注意网络模型的关系编码器,该模型可以捕获静态对象或不同区域对象间关系。
对视觉问答任务进行复杂的关系推理是非常有必要的,因为目前关系推理的方式很难准确地表达出图片和问题本身以及他们之间的所有关系,可以利用外部知识筛选出问题依赖的主谓宾等语法关系。
本节指出了现有视觉问答模型的局限性,并且重点分析了视觉问答中准确率偏低的计数问题。
表2 展示了第2 节提到的不同类别的主要模型方法,可以看出,目前VQA 技术已经发展出很多类型的模型方法,很难确定哪种方法更好。虽然目前的视觉问答研究取得了一些成就,但是就目前发展形势来看,还是面临着一些局限性:
表2 部分主要视觉问答模型比较
(1)整体准确率不高,明显低于人类水平,距离高水平的人工智能视觉问答系统还有很长的距离。
(2)OK-VQA 数据集的模型准确率明显比较低,这展示出VQA 在外部知识方向上发展的潜在可能。
(3)模型推理出的正确答案未必是依据图像的关键区域或问题的关键单词,需要更深层次推理[56]。
由于计数在视觉问答准确率计算中偏低,本文专门分析了计数问题准确率低的原因,通过VQA 官网提供的评估方法输出了准确率低于20%的问题类型(表3 仅展示了准确率最差的5个number 问题),发现计数问题准确率不高的原因在于:
表3 准确率最差的5 个number 类型问题统计
(1)方法能力的局限性:区别于标准的计数问题,对于VQA 模型方法来说,没有明确的标签标定需要计数对象的位置。
(2)VQA 系统的复杂性:表现在不仅要处理计数类问题,同时还要兼顾其他复杂的问题,这些类型的问题可能需要识别图片中的数字与文本。
(3)正确采样的困难性:真实场景的图像中,对某个对象区域可能存在多次重叠采样。
通过对各种模型方法的比较,以及目前方法的局限性和讨论,相信未来的视觉问答还可以从以下几个方向发展:
(1)关系推理,之前的方法都无法推测中间过程,利用图卷积能够帮助模型推理出对回答有用的关键单词和图像区域。可以将图像内容进行关系推理模块添加到现有的增加仅问题支路的方法上,提高视觉内容在推理过程中的重要性。
(2)处理语言先验,解决语言先验性问题不应该像其他模型一样仅增加模型复杂度,而是应该从平衡数据集分布的角度考虑[57],解决视觉问答中的‘长尾’问题[58]。除了调整权重的方法,还可以通过重采样[59],降采样[60],迁移学习[61]以及通过问题类型偏见平衡数据分布。
(3)预训练模型:外部知识结合图像模态使用的技术不够成熟,在视觉问答中的发展受阻。使用Transformer 的预训练模型得到了青睐,但是这种预训练方法参数规模过于庞大。可以使用大型的图像和文本模态交互的方法CLIP[62]降低模型复杂度,并结合知识蒸馏提高模型精确率。
(4)扩展任务:作为深度学习的一部分,视觉问答中的一些经典方法,比如预训练模型方法还可以用于图像描述,视觉常识推理(VCR)等其他多模态任务中,视觉问答中处理语言先验的方法可以用于其他数据分布不平衡的机器学习任务中。
本文首先对视觉问答相关知识做了说明,详细分析了不同类别的经典模型。讨论了相关方法目前的局限性,指出了一些可行的方向。本文还通过VQA 官网提供的评估方法输出了VQA 2.0数据集最差的前5 的问题类型,分析了在准确率计算中,number 类型问题答案准确率不高的原因,对视觉问答技术的未来发展方向进行展望。
综上,虽然目前的视觉问答研究取得了一些成就,但是仍面临外部知识推理能力不强、不可解释性、整体的准确率较低等局限性。除此之外,视觉问答任务还存在着计数准确率尤其偏低等其他问题。要想实现真正的通用人工智能,任重而道远。未来的工作中,处理语言先验和外部知识推理等是值得继续深入研究的方向。