论文链接:
https://jingchenchen.github.io/files/papers/2020/AAAI_Decom_VQA.pdf
一、研究动机
视觉问答(Visual Question Answering, VQA)是计算机视觉领域与自然语言处理领域的一个交叉任务。在此任务中,模型需要根据图像内容回答与图像相关的问题。VQA任务在在线教育和盲人视觉助理等应用场景有着广阔的应用前景。
比如在线教育平台的虚拟老师可以根据图1(a)中的图片回答低年级学生的一系列问题,比如“图中有几个小朋友?”,“图上画的是什么季节?”。盲人的视觉助理可以接收盲人拍摄的如图1(b)所示的图片并对盲人的问题:“你看到停车场对面的野餐桌了吗(Do you see picnic tables across the parking lot?)”进行回答:“没有(No)”。
最近的研究[2-4]表明,大多数现有的VQA模型过度依赖于问题和答案之间的表面相关性(语言先验)而忽略了图像信息。无论给出什么图像,它们都频繁的对有关颜色的问题回答“白色”,对有关运动的问题回答“网球”,对以“这里是否有一个(is there a)”开头的问题回答“是”。大多数VQA模型包括三个部分:提取图像和问题的表达,融合图像和问题的表达以获得的它们的联合表达,以及利用联合表达预测最终答案。但是,这些模型没有明确地区分和利用问题中的不同信息,因此不可避免地利用问题中的疑问词和答案的共现性(co-occurences)来推断答案。
本文作者提出为问题中的不同信息学习分解的语言表达并利用这些分解的表达来克服语言先验。
一个问题答案对通常包含三种信息:问题类型,指代对象和预期概念。对于判断题(yes/no question)预期概念蕴含在问题中,对于其他问题(non-yes/noquestion),预期概念在答案中。人类可以轻松地识别和利用问题中的不同信息来推断答案,并且不受语言先验的影响。
例如,如果一个人被要求回答一个问题:“男人的衬衫是白色的吗?(Is the man’s shirt white?)”,他或她一看到“是(is)”,就知道这是一个判断题,可能的答案为“是”和“否”。然后他或她可以通过短语“男人的衬衫(man's shirt)” 定位图像中的衬衫,并根据衬衫判断答案是否为“白色”(问题中预期的概念)。
此过程也适用于其他问题,例如“男人的衬衫是什么颜色的?(What color is the man’s shirt?)”。唯一的区别在于,他或她除了通过“什么颜色(what color)”知道问题是关于颜色的以外,几个特定的概念如白色,黑色和蓝色会浮现在他或她的脑海中作为备选答案以供判断。受此启发,作者期望建立一种能够灵活地学习和利用问题中不同信息的分解表达的模型以减轻语言先验的影响。
为此,作者提出了一种基于语言注意力的VQA方法。如图2所示,该方法包括语言注意力模块,问题识别模块,对象指代模块和视觉验证模块。语言注意力模块将问题解析为三个短语表达:类型表达,对象表达和概念表达。这些分解的语言表达将被分别输入到后续的模块。问题识别模块使用类型表达来识别问题类型和可能的答案集合(是/否或特定概念如颜色或数字)。
通过度量类型表达与候选答案之间的相关性,该模块生成一个表达候选答案是否可能是正确答案的Q&A掩码。对象指代模块采用自上而下的注意力机制[5]以对象表达为指导来关注图像中的相关区域。对于判断题,视觉验证模块度量所关注的区域和概念表达之间的相关性,并通过阈值比较来推断答案。对于其他问题,由问题识别模块发现的可能答案作为需要被验证的概念。该模块度量关注区域和所有可能的答案的相关性,然后将其与Q&A掩码融合以推断最终答案。
通过识别和利用问题中的不同信息,该方法将基于语言的概念发现和基于视觉的概念验证从答案推理过程中解耦。因此,问题和答案之间的表面相关性不会在答案推断过程中占主导地位,并且模型必须利用图像内容从可能的答案集中推断出最终答案。另外,受益于模块化设计,该方法实现了透明的回答过程。四个模块的中间结果(分解的短语,Q& A掩码,所关注的区域和视觉分数)可以作为模型得出特定答案的解释。
二、方法
如图2所示,文章提出的方法包括四个模块:
(a)将问题解析为类型表达,对象表达和概念表达的语言注意力模块;
(b)使用类型表达来识别问题类型和可能的答案的问题识别模块;
(c)使用对象表达来关注图像的相关区域的对象指代模块;
(d)用于度量所关注区域和概念表达之间的相关性以推断答案的视觉验证模块。
2.1 语言注意力模块
作者设计了一个如图3所示的语言注意力模块以获得分解的语言表达。语言注意力模块将硬注意力机制和软注意力机制相结合,以将判断题的概念表达与类型表达分离。软注意力机制自适应地对所有单词的嵌入赋予权重,然后将其聚合为短语表达,而硬注意力机制只利用其中一部分单词的嵌入。如图3所示,语言注意力模块使用三种类型的注意力,类型注意力,对象注意力和概念注意力来分别学习这三种分解表达。
对于问题Q,作者利用软注意力机制来计算其类型表达:
为了确保类型注意力关注到疑问词,作者使用VQA数据集中提供的基于疑问词的问题类别作为监督信息来指导类型学习,并引入一个问题类别识别损失:
作者进一步引入一个标量β作为阈值,以过滤与问题类型相关的单词。将每个单词的类型注意力权重与β进行比较,可以获得所有的权重小于β的单词。这些词与指代对象和预期概念相关。进而两种注意力机制被用于计算对象表达和概念表达:
对于答案,GRU被用于来获取其表达。
2.2 问题识别模块
给定类型表达,首先通过问题识别损失来识别问题类型:
其中CE代表交叉熵函数。
对于判断题,其可能答案为“是”和“否”,对于其他问题,通过度量问题与候选答案之间的相关性可以确定其可能答案。作者为每个其他问题生成一个Q&A掩码,其中每个元素表示对应的候选答案为正确答案的可能性。作者计算问题Q与所有候选答案之间的相关性并利用sigmoid函数得到Q&A掩码。
为了有效地指导掩码的生成,作者在数据集中搜索每个问题类别的所有可能答案,以获得Q&A掩码的真值M。对于每个问题类别,可能的答案标记为1,否则标记为0。作者用KL散度度量真值与掩码的距离并提出掩码生成损失:
2.3 对象指代模块
对象指代模块使用对象表达利用自上而下的注意力机制来关注与图像中的问题相关的区域。给定图像的局部特征和对象表达,作者计算这些局部特征与问题的对象表达的相关性,并加权求和得到最终的视觉表达:
2.4 视觉验证模块
视觉验证模块根据关注区域判断预期视觉概念的存在性以推断出最终答案。对于判断题,作者直接计算被关注区域的视觉表达与概念表达的视觉分数。对于其他问题,作者计算被关注的区域和所有候选答案之间的视觉得分并将其与Q&A掩码融合得到每个答案的总体得分。特别的,给定图像I和问题Q,候选答案正确的概率为:
最终的总体验证损失为:
在训练阶段,上述所有损失共同指导模型学习。在测试阶段,作者首先通过公式4确定问题类型。然后,对判断问题,计算视觉得分并将其与0.5进行比较,以得出最终答案。对非是/否的问题,模型将所有候选答案作为输入,并选择总体得分最高的答案作为答案。
三、实验
作者在VQA-CP v2数据集上使用标准VQA评估指标来评估其方法的有效性。VQA-CP v2是一个专门用于评估模型受语言先验影响的数据库,通过重新组织VQA v2的训练集和验证集可以得到VQA-CP v2 数据集的训练集和测试集。
在VQA-CP v2数据集中,每个问题类别的答案分布(例如“what number”和“is there”)在测试集与训练集中是不同的。因此,过度依赖于语言先验的VQA模型在此数据集中表现不佳。为了实验的完整性,作者也报告了在VQA v2数据集的验证集的结果。
表1列出了所提出的方法和最新的VQA模型在VQA-CP v2数据集和VQA v2数据集上的结果。结果表明,本文提出的方法好于其他对比方法。通过学习和利用分解后的语言表达,该方法可以从答案推理过程中解耦基于语言的概念发现和基于视觉的概念验证。对于判断题,语言注意力模块将概念表达与疑问词明确分开。因此,模型需要基于图像内容来验证问题中的视觉概念是否存在,以推断出答案,而不是依赖于疑问词。对于其他问题,问题识别模块识别出的可能答案将通过参与区域进行验证。得分最高的答案作为预测结果。因此,模型需要利用图像内容来选择最相关的答案。总而言之,该方法保证了该模型必须利用图像的视觉信息来从可能的答案集中推断出正确的答案,从而显著减轻了语言先验的影响。
为了评估方法中的各个重要组成部分的有效性,作者通过消融这些组成部分得到不同版本的模型。表2中列出了这些模型在VQA-CP v2数据集的结果。
作者首先调研语言注意力模块的有效性。为此,作者将语言注意力模块替换为原始的GRU网络,并得到一个记为“Ours w/o LA”的模型,其中“w/o”表示“无”。“Ours w/o LA”通过GRU获取句子级别的问题表达并将其输入后续模块。
作者进一步用普通的模块化软注意力机制替换了语言注意力模块,并获得了一个名为“Ours w/o threshold”的模型。如表2所示,“Ours w/o LA”在所有三个子集中的表现都比完整模型差。这证明了学习分解表达来克服语言先验的有效性。“Ours w/o threshold”比“Ours w/o LA”表现更好,但仍然比完整模型差很多。这证明了简单地使用模块化的软注意力来学习分解表达而不添加任何约束,会导致模型仍然容易受到语言先验的影响。
然后,作者对问题识别模块中的掩码生成过程的影响进行了研究。作者排除了掩码生成过程,并将得到的模型记为“Ours w/o mask”,该模型直接选择视觉分数最高的答案作为最终答案。从表2中,可以发现Q &A掩码为“other”子集带来了实质性的改进。没有Q&A掩码的模型在“number”和“other”子集中的表现远远低于完整模型。
最后,图4给出了所提出的方法与其基础模型UpDn[5]的定性比较结果。对于每个示例,左上方显示了VQA-CP v2数据集的测试集中的一个输入问题以及图像和真实答案(GT)。右上方显示了语言注意力模块的语言注意图。最下面的一行分别显示了两种方法的用于对象指代的视觉注意图以及预测答案。权重最高的区域用绿色矩形标记。这些示例显示了所提出的模型在问题解析和视觉定位上的有效性。可以发现,所提出方法可以正确识别问题中的各种信息,并且比UpDn更准确地定位图像中的相关区域,并推断出正确的答案。
四、总结
本文作者提出了一种基于语言注意力的VQA方法。该方法学习问题的分解语言表达,以克服语言先验问题。使用语言注意力模块,可以将问题灵活地解析为三个短语表达。这些表达被适当地用于从答案推理过程中解耦基于语言的概念发现和基于视觉的概念验证。因此该方法保证了问题和答案之间的表面相关性不能支配回答过程,并且模型必须利用图像来推断答案。
此外,该方法可以实现更透明的回答过程,并提供有意义的中间结果。在VQA-CP数据集上的实验结果证明了该方法的有效性。
参考目录:
[1] Vizwiz: nearly real-time answers tovisual questions. In Proceedings of the 23nd annual ACM symposium on Userinterface software and technology, 333–342. ACM.
[2] Kafle, K., and Kanan, C. 2017. Ananalysis of visual question answering algorithms. In Proceedings of the IEEEInternational Conference on Computer Vision (ICCV), 1983–1991.
[3] Agrawal, A.; Batra, D.; Parikh, D.; andKembhavi, A. 2018. Don’t just assume; look and answer: Overcoming priors forvisual question answering. In Proceedings of IEEE Conference on Computer Visionand Pattern Recognition (CVPR), 4971–4980.
[4] Selvaraju, R. R.; Lee, S.; Shen, Y.;Jin, H.; Batra, D.; and Parikh, D. 2019. Taking a hint: Leveraging explanationsto make vision and language models more grounded. In Proceedings of the IEEE InternationalConference on Computer Vision (ICCV).
[5] Anderson, P.; He, X.; Buehler, C.;Teney, D.; Johnson, M.; Gould, S.; and Zhang, L. 2018. Bottom-up and top-downattention for image captioning and visual question answering. In Proceedings ofIEEE Conference on Computer Vision and Pattern Recognition (CVPR).