KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会

前段时间看了movieQA相关论文后,想要继续了解关于videoQA的相关知识,所以找到了这篇《KnowIT VQA:Answering Knowledge-Based Questions about Videos》。提出了一个新的数据集,用于视频中基于知识的视觉问题解答,并提出了一种视频推理模型,其中将多模式视频信息与有关任务的特定知识结合在一起。
文章链接:KnowIT VQA:Answering Knowledge-Based Questions about Videos
代码链接:https://github.com/noagarcia/knowit-rock
一、文章引入
1.1 VQA存在的两个重大局限性

  1. 图片特征只能体现静态信息,忽略了时间的连贯性(temporal coherence)。
  2. 视觉内容本身有时不能提供回答问题所需的全部信息。

为了解决这些局限性,视频问答(VideoQA)和基于知识的视觉问答通过提出特定的数据集和模型而独立出现。但是,仍然缺少用于解决VQA中多问题类型的通用框架。
文中提出了一个通用的框架(general framework)将VideoQA和KBVQA结合,回答该数据集的问题不仅需要对视频的理解,也需要知识的推理。此外,论文还提出了一个解决该问题的两步模型(two-piece model): 1.获取、处理并将特定的知识映射到一个连续的表示中。2.将视频和语言内容与获得的知识以一种多模态的方式融合在一起来预测答案。
二、KnowIT VQA 数据集
该视频数据集将基于知识的问题和视觉、文本和时间一致性推理结合了起来,这些问题需要从观看系列节目中获得的经验来回答。此数据集所有视频均是从生活大爆炸中片段截取得到。
2.1 Video Collection
数据集来自生活大爆炸的前九集,共207集,每集20min左右。 收集了字幕(subtitles),和文字记录(transcripts)。字幕是用时间信息标注的,而文字记录将对话与角色联系起来。transcripts还包含场景信息,用于将每一集分割成视频场景。数据集将场景统一分割为20秒的片段(clip),共得到12264个片段。
2.2 QA Generation
作者使用了AMT。让对《生活大爆炸》比较了解的工作人员去编写knowledge-based questions,目标是提出一些只有熟悉该电视剧的人才能回答的问题,但对于新观众而言很难。工作人员被要求用一个问题、与之对应的正确答案和 三个错误但相关的答案来注释每个clip。
2.3 Knowledge Annotations
作者将知识定义为不包含在给定视频片段中的信息。在数据集中,他们对每一个QA pair都进行了以下注释:

  1. KNOWLEDGE: 回答问题所需要的信息.
  2. KNOWLEDGE TYPE: 记录该知识是来自于哪一集中,或者在该剧中反复出现。从下图可以看出分布趋势:KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第1张图片
  3. QUESTION TYPE:
    visual-based (22%), 即依靠视频的帧(video frames)即可找到答案
    textual-based (12%), 依靠字幕信息可以找到答案
    temporalbased (4%), 答案可以从当前视频片段的特定时间中预测出来
    knowledge-based (62%), 无法从当前clip找到答案,但在剧中其它地方可以找到。
    在测试集中,不提供QUESTION TYPE。

2.4 Data Splits
文中从1,087个视频剪辑中收集了24,282个样本,并将这些片段随机分成训练集,验证集和测试集,以便将来自同一情节的问题和片段分配给同一集合。下表详细列出了每个分组中的情节,片段和QA对的数量,以及正确答案(CA)比错误答案(WA)稍长,这是QA数据集中的常见偏见。
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第2张图片
2.5 Dataset Comparison
在下表中,我们将数据集与其他VideoQA和KBVQA数据集进行了比较。
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第3张图片
三、Human Evaluation
作者对KnowIT VQA测试集进行了人工评估,其目的有四个:

  1. 评估视频片段是否与回答问题相关
  2. 评估这些问题是否需要知识来回答
  3. 评估知识注释对于回答数据集中的问题是否有用
  4. 得出human baseline

他们在AMT上雇佣工人,并将工人们对该剧的认知程度分为两组:masters-至少看过该剧的前九季, rookies-完全没有看过一集生活大爆炸。他们进行了以下两个任务:

  1. Evaluation on the questions:将masters和rookies进一步各自分成3组提供不同的数据选择答案:Blind (only QAs), Subs (QAs and subtitles), and Video (QAs, subtitles, and clips)。

对于测试集中的每个问题,他们要求工作人员选择正确的答案(4选1),并从以下六个选项中选出他们选择该选项的理由:
The answer is in the subtitles,
The answer is in the image,
The answer is common-sense knowledge,
I know the episode,
I have no idea about the answer,
The question is too vague to be answered.
六个选项的分布如下:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第4张图片
对每个group来说,每个问题都有3个工人来回答,各组准确率如下所示:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第5张图片

  1. Evaluation on the knowledge:他们通过人类验证了自己数据集的Knowledge Annotation是有效的。他们让rookies组在提供subtitles and video clip的情况下回答问题,回答完问题后,展示相关知识,让他们再回答一次。准确率从0.683升到了0.823。

四、ROCK模型
文中提出了ROCK(收集的知识的检索)模型,该模型用于解决视频中基于知识的视觉问题解答,如下图所示。ROCK是基于表示知识库中的节目信息的语言实例的可用性, ROCK检索并融合了语言和时空视频表示形式,以便对问题进行推理并预测正确的答案。
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第6张图片
4.1 Knowledge Base
作者在构造数据集的同时,也构造了一个知识库用来模拟人们在观看该剧时学习到的知识。其实就是把工人们在数据收集阶段中标识的KNOWLEDGE文本收集起来,最后删除冗余。
由于尚不清楚如何以结构化方式(例如知识图)捕获此类复杂过程,因此作者构建了一个KB,K = {wj | j = 1,…,N},以使知识实例wj表示为自然语言。 我们还执行了清理过程,以删除几乎重复的实例,将N从24,282减少到19,821。
Knowledge Base Cleaning为了删除KB中几乎重复的样本,我们计算了KNOWLEDGE实例之间的相似度。 对于每个wj∈K,我们创建一个输入语句w’j作为字符串的串联:
在这里插入图片描述
其中[CLS]是表示序列开始的令牌,[SEP]是表示结束的令牌。 我们将w’j标记为60个token在这里插入图片描述的序列。 假设BERTP(·)是一个预训练的BERT网络,该网络将一系列令牌序列作为输入并输出与[CLS]令牌相对应的向量。 我们得到wj的高维投影pj为:
在这里插入图片描述
为了测量一对实例wi,wj∈K之间的相似性,我们将相似性得分βij记为:
在这里插入图片描述
其中sim(·,·)是余弦相似度。然后构建一个无向图(顶点表示知识文本,边表示文本相似度),无向图中保存余弦相似度>0.998的边和顶点。然后求出连通分量,对每个连通分量,我们只随机保存一个顶点(知识文本),删除掉其他的顶点。这样我们就得到了删除冗余的Knowledge Base。
4.2 Knowledge Retrieval Module
该模型的具体以做法就是,对每个问题 qi , 将其与之对应的4个答案 aic,c ∈ {0,1,2,3} 进行拼接。再将拼接得到的每一个文本,与知识库中的每个知识文本wij进行拼接。如下公式所示:
在这里插入图片描述
随后,模型将xijtokennize后放入BERT-scoring模型中,其输出经过一层全连接网络(激活函数sigmoid),得到问题与知识的相关性分数sij:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第7张图片
对于该知识提取模型,其损失函数如下:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第8张图片
Prior Score Computation
虽然初步的实验表明,答案的顺序aic对结果没有很大的影响,但对于一个不变的模型,他们会根据一个先验的相关性评分对答案进行自动排序。其具体做法就是,对每个q,将其与四个a分别拼接成4个文本,放入BERT后经过全连接层得出分数,将分数按照降序排序,根据排序结果安排Retrieval Module中拼接答案的先后顺序。
为了防止模型针对不同的候选答案顺序产生不同的输出,我们通过根据先验得分ξc对答案ac(c = {0,1,2,3})进行排序来创建答案顺序不变模型。
对于给定的问题q,可通过预测ac的分数作为正确答案来获得ξc。 我们首先构建一个输入语句ec作为字符串的串联:
在这里插入图片描述
我们将ec令牌化为120个令牌的序列,即ec。 如果BERTE(·)表示一个BERT网络,其输出是与[CLS]令牌相对应的向量,则ξc为:
在这里插入图片描述
最后,将c = {0,1,2,3}的所有ξc降序排列为ξ,并根据αc=δ排列答案,其中δ是ξ中δ最高得分的位置。
4.3 Video Reasoning Module
该模块将检索到的知识实例与视频内容的多模态表示联合处理,预测正确答案。这个过程包括三个部分:视觉表示、语言表示和答案预测。
Visual Representation: 我们从clip中提取nf帧,并采用四个不同的技术进行特征提取。

  1. Image features: 使用ResNet-50对每帧做特征提取,然后将各帧的features拼接起来,并经过全连接层映射到512维。
  2. Concepts features: 使用bottomup object detector 得到一系列objects列表。
  3. Facial features: 使用3到18张主要演员的照片来训练面部识别网络.
  4. Caption features: 对每一个帧,都声称一个caption来描述图片内容。这些captions会被传向Language representation 模块

Language Representation:这里使用了一个fine tune BERT模型,把它称作BERT-reasoning。
在这里插入图片描述
也就是说,对每个q,将其与caps、w、subs、a拼接后(注意:对于一个q而言,需要拼接四次生成4个yc),将其传入BERTR模型:
在这里插入图片描述
AnswerPrediction将visiual representation,记为v与uc进行拼接,传入一个全连接层:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第9张图片
损失函数是在最后一层softmax后计算交叉熵:
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第10张图片
五、实验结果
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第11张图片
KnowIT VQA:Answering Knowledge-Based Questions about Videos心得体会_第12张图片

你可能感兴趣的:(深度学习,vqa)