天天看点

NExt-QA度量和VQA算法杂谈前言一、NExt-QA数据集简介二、Evaluation总结References

文章目录

  • 前言
  • 一、NExt-QA数据集简介
  • 二、Evaluation
    • 1.WUP score的计算(两个词汇之间的相似度计算)
    • 2.WUPS score的计算(两个短句之间的相似度计算)
  • 总结
  • References

前言

最近一直在看VQA相关的内容,看到了一篇CVPR2021的文章《NExT-QA: Next Phase of Question-Answering to Explaining Temporal Actions》[1],文中作者提出了一个新的富有挑战的数据集NExT-QA,并将目前VQA方向SOTA的方法在其上面进行了实验,从而验证了该数据集的难度,其中的Open-ended QA个人觉得可能是未来的一个研究方向,打算从这篇文章作为切入点逐步深入VQA的研究。

一、NExt-QA数据集简介

Next-QA主要focus on在三种类型的QA,分别是:causal(48%), Tempral(29%), Descriptive(23%),而其中的问题主要分为两类: Multi-choice和Open-ended QA。Multi-choice就是给出一个问题后会给几个不同的选择让模型从中进行选择正确的答案,类似于分类问题,而Open-ended QA则不给任何可供选择的答案,使得模型生成尽可能较为简介的答案,可以看作是生成问题。而如果要使得模型具有更泛化的能力,具备时序判断、描述、因果推理等能力的强AI,个人觉得Open-ended QA会比Multi-choice实际得多。(未完待续。。。)

NExt-QA度量和VQA算法杂谈前言一、NExt-QA数据集简介二、Evaluation总结References

二、Evaluation

那么如何评估Open-ended QA呢?比如我根据视频问“这个小女孩摔倒以后妈妈接着做了什么?” “跑过去把小女孩扶了起来”和“把小女孩扶起来”,这两个答案显然是不同的,但语义是非常相似的,那么如何评估两个回答的相似度呢?

NExT-QA使用了Wu-Palmer similarity(WUPS)score[2] 作为计算模型产生的结果和ground truth(人工产生的问答)之间的相似度。

WUPS score借鉴Wu-Palmer(WUP) score,WUP score主要是计算两个词之间的相似度 比如pen和pencil虽然不一样 但在语义上有一定的相似度,而WUPS score将其扩展到了短语或者说短句之间相似度的衡量。下面就简单介绍一下这两个相似度衡量的计算。

1.WUP score的计算(两个词汇之间的相似度计算)

WUP score(Wu-Palmer )[3] 是1994年Zhibo Wu和Martha Palmer两人提出的,如下图所示假设两个concept(其实就可以说是两个词汇)在一个语义网络如WordNet[4]上一部分是下图,则计算两个词汇之间语义相似度的公式就是如下所示,其中N1是词汇1到根节点的路径长度,N2是词汇2到根节点的路径长度,而N3是两个C1和C2的公共祖先节点到根节点的路径长度。其实这个相似度也很容易理解,也就是C1和C2在离根节点距离越远且C1和C2之间越近相似度越高,离根节点越远(N3较大)其实就是语义粒度更细,互相离得更近(N1和N2相对较小)说明在这个粒度下更相近。

NExt-QA度量和VQA算法杂谈前言一、NExt-QA数据集简介二、Evaluation总结References
NExt-QA度量和VQA算法杂谈前言一、NExt-QA数据集简介二、Evaluation总结References

2.WUPS score的计算(两个短句之间的相似度计算)

WUPS score的计算方式如下所示,外层的加和求平均就和计算预测正确的平均精度是一样的,例如猫狗识别的精度,假如100张图片,N就是100,而sigma里面的项如果预测正确就是1,预测错误就是0,这种就是非0即1的计算精度的方式。下面说回来正题,WUPS score因为是计算两个短语或者短句之间的相似度 采用这种方式显然是不合理的,前面已经举例说明了,因此就需要更合理的度量方式,作者就采用了如下所示的计算方法,大A所有ansers的集合,T就是Ground Truth的集合,计算这个集合的预测精度,需要计算每一个相似度然后求平均,就只看里面的Ai代表的就是一个answer,Ti就是一个Ground Truth,两个计算相似度就是该模型的answer回答的准确度,小a就可以看作answer中的一个单词,小t可以看作是人工标注的短语答案的一个单词,这个累乘其实就是逐个拿出预测短句中的单词和真实标注的单词计算相似度得分然后进行累乘,中间还有一个max操作个人理解是为了匹配不同位置的词 然后选择最大相似度的词作为该词的匹配,说白了就是answer中拿出一个单词逐个与ground truth中每个词计算语义相似度取出最大的进行累乘,然后同理逐个拿出ground truth中的词与answer中每个词计算相似度取出最大的进行累乘,注意:这两个累乘计算结果是不一样的,刚开始读到这里的时候我一度以为这两个累乘的结果不是一样的吗。然后WUP的计算在前文已经介绍过了这里不再说了。

NExt-QA度量和VQA算法杂谈前言一、NExt-QA数据集简介二、Evaluation总结References

总结

本文以NExt-QA数据集作为入门VQA的切入点,介绍度量方式和目前VQA方向SOTA的算法,未完待续,会持续更新,如有错误敬请赐教!

References

[1] NExT-QA: Next Phase of Question-Answering to Explaining Temporal Actions, CVPR 2021.

[2] A Multi-World Approach to Question Answering about Real-World Scenes based on Uncertain Input, NIPS 2014.

[3] VERB SEMANTICS AND LEXICAL SELECTION, 1994.

[4] WordNet: A Lexical Database for English, 1995.

VQA

继续阅读