FVQA: Fact-based Visual Question Answering
上一篇写了含有外部知识的视觉问答相关的较早的一篇论文的阅读笔记:Ask Me Anything: Free-form Visual Question Answering Based on Knowledge from External Sources。主要介绍了如何利用含有外部知识的信息对视觉问答进行处理,使用的数据集是DBpedia。缺点在于仅仅从数据集中提取离散的文本描述,忽略了结构化的表达,也就是说,没有办法进行关系推理,没有说明为什么是这个外部知识,从数据库中找到仅仅是相关的描述。
数据库
而这一篇文章主要讲解了如何建立一个更大的知识数据库(基于三个数据库DBpedia,ConceptNet,WebChild:),作者还自己建立了一个专门的基于事实的问题收集系统。所以,**从某种意义上说,该数据集是基于fact去针对性构建的。**值得一提的是WebChild这个数据集被被认为是一种常识性知识的形式,被大多数现有的KBs所忽视,因为它涉及诸如更快、更大和更重等比较关系。(曾经在知乎看到一篇关系推理的名词解释的文章,就说到了更大,更快和更重等词语在关系推理中的意义。),所以,这篇文章中的FVQA数据集也被后续的文章所使用。
方法
模型的第一部分检测图像中的视觉概念,然后将他们与知识库对齐并连接到subgraph中。第二步将自然语言式的问题映射到一个查询类型,然后相应地确定关键的关系类型,视觉概念和答案源。再根据上面的信息构建一个特殊的查询会去请求上一步当中建立好的图,找到所有满足条件的事实。最后通过关键词筛选得到对应问题的答案。
图像信息用来提取视觉概念,这里的视觉概念分为三类Object,Scene,Action,当然这些不同的视觉概念也是在不同的数据集上提取或训练好,进行分类的。比如,Object主要是在MSCOCO上用faster RCNN提取特征,共有326个;Scene主要是在 MIT places上使用vggnet16训练,最后总共得到221个场景;而action共有24类,比如散步,游泳,爬树等。而提取好这些特征后,后期主要用来查询,没有在进行处理,问题似乎也是,对问题进行一个处理分类后,得到需要的查询词,就开始进行Question-Query Mapping了,最后查询所有符合关系的结果,再与问题进行匹配,得到答案。
结果
文章采用Accuracy、WUPS(0.9)、WUPS(0.0)来评价模型的性能。WUPS[6](Wu-Palmer Similarity)根据两个单词在一个分类树中的最长公共子序列来计算相似性。如果预测单词和标准答案单词的相似性低于设定的阈值则候选答案的评分为0。
存在问题
和之前写过的博客里面用到的VQA方法不同,这篇文章的方法,更像是在外部知识库中查询答案,将问题转化成关键词,然后在候选事实中根据关键词匹配检索出对应的支撑事实的方式,但是如果视觉概念没有被问题完全提及(比如同义词和同形异义词)或者事实图中未捕获提及的信息(比如它问红色的柱子是什么,却没有提到消防栓),那这类方法就会因为匹配而产生误差。
在刚刚接触视觉问答的时候也想过这种方法,就是说不是注意力的方法,或者甚至说不是深度学习的方法,不用经过训练,不用模态融合,就是建立一种结构化查询的机制,直接提取图像和问题特征然后去查询。当时感觉不靠谱,是种幻想,没想到确实从一开始就有人这样做。
另外在这之前还有一篇相关论文推荐一下:Explicit Knowledge-based Reasoning for Visual Question Answering