当前VQA模型极度依赖于训练集中的语言Bias,本文提出新的model-agnostic问题编码器,Visually-Grounded Question Encoder(VGQE,下同)。VGQE平等的利用了视觉和语言模态的信息,加在三个VQA模型上的VGQE能够在VQAv2数据集以及VQA-CPv2数据集上提升模型性能。重点指出了不像之前的方法并未在VQAv2数据集上降低模型的性能,反而增加了这些模型的性能。
视觉问答所需要的能力:目标检测与识别,物体计数,基于知识的推理,细粒度识别,常识推理等。因此这样一种多领域任务能够衡量出计算机是否能够达到与人类同等的能力。
提出数据集→文献证明存在语言bias→泛化能力差→原因:VQA数据集存在语言bias→解决方法:有一些方法尝试减少语言长尾的分布,另一些方法尝试提高模型的visual-grounding能力。但目前这些方法都导致了模型在VQAv2数据集上性能的下降。
接下来叙述一下现有VQA模型的一般思路,点出这些模型的问题表示并未依赖于图像的ground,而是直接依赖于答案(相同的答案太多以至于和问题绑定在一起),这使得模型会学习问题类型和答案之间的强烈关联,导致模型过度拟合最频繁的答案所关联的问题表示,因此忽略了图像模态。
本文提出一种一般化的问题编码器VGQE,其不仅通过问题中的语言信息来编码问题,而且能够利用图像中的视觉信息进行编码。下图给出了VGQE与传统VQA编码问题的模型对比,
VGQE,对于每一个问题词,都会去寻找到最重要的视觉特征并产生视觉定位的词嵌入向量,因此产生的向量既包含问题信息又包含视觉信息。然后将这些视觉定位的词嵌入向量通过一个RNN(嵌入到VGQE内部)来进一步编码问题。由于VGQE会考虑到视觉对象的不同,因此能够减少训练集中的特定问题样式和最频繁的答案之间的关联。
VGQE的优点:能够非常简单地融入到现有的VQA模型中去,从而替代传统的基于语言的问题编码器;应用到MUREL、UpDn、BAN,能够提升这些模型的性能;在VQA-CPv2上,性能很强;不像其他方法在VQAv2数据集上使得模型在精度上下降,反而提高了这些模型的性能,我觉得这一点才是最牛皮的。
简单说明一下数据集Bias的由来,且无可避免,然后举出了一些,点出本文重点关注的是VQA模型中的语言Bias及其解决方法。
通过上述这些方法的对比,要么是减少语言侧的影响,要么通过标注数据来提升视觉定位的效果,但是这些方法在降低Bias的同时也使得在VQAv2上的性能下降,相反作者提出的方法(采用视觉定位的问题表示来提高问题的表示能力)在其他模型上都有着性能提高的表现,并且不需要外部的数据标注或者微调。
再回过头来说作者的VGQE,同时利用视觉和语言模态来产生基于视觉定位的问题表示。与之类似的方法有FiLM,虽然FiLM使用了互补的信息,但利用的是问题上下文来影响图像编码,作者提出的VGQE是将视觉信息嵌入到问题编码中。
首先概括框架,本文采用RNN作为VQA的基础模型,但是问题编码的RNN换成了VGQE。VGQE的输入为当前词的词嵌入向量以及图像中相关的视觉概念,然后输出视觉定位的问题词嵌入向量,这些词嵌入向量之后通过一个RNN结构来编码序列信息。下一段讲解一般的VQA模型的输入表示,图像特征 V = { v i ∈ R d v } i ∈ [ 1 , k ] V={\{}v_i \in {\mathbb R^{d_v}}{\}}_{i\in [1,k]} V={vi∈Rdv}i∈[1,k]、标签特征 L = { l i ∈ R d w } i ∈ [ 1 , k ] L={{\{}l_i \in \mathbb R^{d_w}{\}}_{i\in[1,k]}} L={li∈Rdw}i∈[1,k],第 t t h t^th tth个问题词的特征 q t ∈ R d w q_t\in \mathbb R^{d_w} qt∈Rdw
上面这幅图是VGQE的基本单元,输入为 V , L , q t , h t − 1 V,L,q_t,h_{t-1} V,L,qt,ht−1,输出为 h t h_t ht,即
h t = V G Q E ( V , L , q t , h t − 1 ) h_{t}=VGQE(V,L,q_t,h_{t-1}) ht=VGQE(V,L,qt,ht−1)下面就是对VGQE的解析,拆分为VGW和GRU/LSTM模块,其中VGW负责获取与当前词 q t q_{t} qt相关的视觉定位语义词向量 g t {g_t} gt。循环神经网络这一块没提,估计也就是个nn.LSTM或者nn.GRU搞定的事情,所以全文重点主要是对VGW模块的解析。
该模块又得划分成Attention和Fusion子模块:
Ben-Younes, H., Cadene, R., Thome, N., Cord, M.: Block: Bilinear superdiagonal fusion for visual question answering and visual relationship detection. In: Proceedings of the AAAI Conference on Arti cial Intelligence. vol. 33, pp. 8102-8109 (2019)
用公式表示为: g t = F m ( f t , q ^ t ; Θ ) g_{t}=F_{m}\left(f_{t}, \hat{q}_{t} ; \Theta\right) gt=Fm(ft,q^t;Θ),其中 Θ \Theta Θ为训练参数, q ^ t = W ( q t ) \hat{q}_{t}=W(q_t) q^t=W(qt)为两层线性层,起到改变维度的作用。重点来了:对于相同的词汇,例如,那么问题词中的“黄绿“”就会根据 g t g_{t} gt的不同而区分开来。
本文搭建的网络图,主要是把原来的问题分支RNN给替换成了本文提出的VGQE,而VGQE里面的RNN采用GRU来搭建。
采用了RUBi相同的Baseline网络,即简化版的MUREL:
Cadene, R., Ben-Younes, H., Cord, M., Thome, N.: Murel: Multimodal relational reasoning for visual question answering. In: IEEE Conference on Computer Vision and Pattern Recognition. pp. 1989{1998 (2019)
VQAv2数据集和VQA CPv2数据集,采用2048维度的UpDn特征,预训练的Glove词向量,Adam优化器。
同表4.1。
不吹不黑,光凭增强VQAv2数据集的能力足够打到一众选手。
如果目标标签包含两个词,对两个词的词向量相加;RNN1024隐藏层,512词嵌入向量维度,BLOCK融合采用15个chunks,投影空间维度1000,输出维度2048。
写在后面
已经记不清这篇开头是什么时候的了,只是知道鸽了好久,本以为半个月一篇,忙起来真是顾不了~~