MovieQA: Understanding Stories in Movies through Question-Answering心得体会

在之前研读了《Progressive Attention Memory Network for Movie Story Question Answering》这篇关于电影问答的论文后,想要对文中所涉及的数据集有更深一步的了解,所以找到了这篇《MovieQA: Understanding Stories in Movies through Question-Answering》,发表于CVPR2016,主要介绍了MovieQA这一数据集,提供了一些智能基准,并扩展了现有的质量检查技术,以分析任务的难度。
文章链接:MovieQA: Understanding Stories in Movies through Question-Answering
一、文章引入
深度学习的快速发展以及大量可用的标记数据已大大推动了许多视觉任务的性能,例如图像标记,对象检测和分割,动作识别以及图像/视频字幕。 我们离诸如视觉障碍者的辅助解决方案或认知机器人之类的应用程序更近了,这些应用程序需要通过在一个通用框架中推理所有这些任务来全面了解视觉世界。 但是,理想情况下,真正智能的机器还可以推断出人类行为(例如动机,意图和情感)背后的高级语义,以便做出适当的反应并可能进行交流。
电影为我们提供了人们生活中的快照,并将它们链接到故事中,使经验丰富的观众可以对角色,角色及其背后的动机有一个高层次的了解。我们的目标是创建一个问答数据库,以评估机器对复杂视频(例如电影)及其随附文本的理解。我们认为,这些数据将有助于将自动语义理解推向更高水平,这是真正理解这种复杂性故事所必需的。本文介绍了MovieQA,这是一个关于电影的大规模问答集。包含来自408个具有高度语义多样性的电影的14,944个多项选择题,包括五个欺骗选项,其中只有一个是正确的。在其中的140部电影中,我们使用时间戳标明了问题和答案在视频中的位置。问题的范围从仅凭视觉即可解决的简单的“谁”对”谁“做了“什么”到只能通过利用可视信息和对话框来解决的关于“为什么”和“如何”发生的问题。
MovieQA数据集包含多种信息源:视频片段,字幕,脚本,情节和DVS,如图1所示。通过各种统计数据和智能基准来分析数据,这些数据可以模拟“学生”的差异。”进行测验。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
图一:显示来自The Matrix的示例QA,并在时间轴中将其本地化。
二、MovieQA数据集介绍
本文的目标是创建一个具有挑战性的基准,以评估对较长时间数据的语义理解。 我们收集的数据集具有非常丰富的信息资源,可以在这一充满挑战的领域中加以利用。 我们的数据包括自动系统必须回答的有关电影的测验。 对于每部电影,测验由一组问题组成,每个问题有5个选择题答案,其中只有一个是正确的。 该系统可以访问各种文本和视觉信息源, 收集了408副字幕电影,并从Wikipedia中以情节摘要的形式获得了其扩展的摘要。 检索了imsdb的脚本,这些脚本可用于49%(199)的电影。 一部分电影(60)带有提供的DVS转录。
Plot synopses是影迷们在看完电影后写的电影摘要。 内容提要的细节差异很大,范围从1到20个段落,但重点在于描述与故事直接相关的内容。 它们很少包含详细的视觉信息(例如角色外观),而更着重于描述电影事件和角色互动。 我们利用情节来收集测验。
Videos and subtitles平均一部电影长约2小时,有超过198K帧和近2000张照片。视频仅包含有关“谁”对“谁”做了“做什么”的信息,但可能缺少解释发生原因的信息。 对话起着重要作用,只有这两种方式共同使我们能够充分理解故事。 请注意,字幕不包含演讲者信息。 在MovieQA数据集中所提供的为视频剪辑而不是完整的电影。
DVS是一项服务,通过在对话框之间插入相关描述来向视障人士讲述电影场景。 这些描述包含有关场景的足够“视觉”信息,它们使视障者可以观看电影。 因此,DVS可以充当完美视觉系统的代理,并且是答案的另一个来源。
Scripts收集的脚本由编剧编写,并作为电影制作的准则。 它们通常包含场景的详细描述,并且与字幕不同,包含对话框和演讲者信息。 因此,剧本与DVS +字幕相比,即使内容不丰富,也很相似。但是由于导演可能渴望艺术自由,剧本并不总是完全忠实于电影。
2.1 QA收集方法
由于视频很难提供给注释者,而且价格昂贵,因此使用情节概要作为电影的代替。 在创建测验时,注释者仅引用故事情节,因此被自动强制为询问类似故事的问题。 我们将注释工作分为两个主要部分,以确保所收集数据的高质量。
Q and correct A
首先要求注释者从大列表中选择一部电影,并向其一次显示一段情节摘要。 对于每个段落,注释者可以自由地形成任意数量和类型的问题。 要求每个注释者提供正确的答案,并且还要在情节提要段落中标记最少的句子集,这些句子可用于框架和回答问题。 这被视为在情节中定位QA的真实依据。
文中要求注释者为每个问题提供背景信息,以便参加测验的人能够仅通过观看电影来回答问题(无需访问情节提要)。 这样做的目的是确保视频和故事中可以本地化的问题,而不是诸如“他们在说什么?”之类的通用问题。 我们对注释者进行了大约一到两个小时的培训,并为他们提供了重新访问和更正数据的选项。 该策略使我们能够收集更周到和复杂的质量保证,而不是简短的问题和单个单词的答案。
Multiple answer choices
在数据收集的第二步中,我们为每个问题收集了多项选择答案。 一次向注释者显示了一个段落和一个问题,但没有给出正确的答案。 然后要求他们正确回答问题的同时提供4个错误答案。 这些答案是在同一段落中的事实,或者是常识性的答案,还允许注释者重新制定或更正问题。 通过这样来理清第一步中收到的所有问题。 来自验证集和测试集的所有QA都经过了另一轮清理。
Time-stamp to video
收集过程中要求内部注释者通过标记句子描述的视频的开始和结束(以秒为单位),将情节提要中的每个句子与视频对齐。 冗长而复杂的情节句子通常与多个非连续的视频剪辑对齐。 每部电影的注释大约需要2个小时。 由于我们使每个QA都与情节摘要中的一个句子对齐,因此用于绘制对齐方式的视频将QA与视频剪辑链接起来。 我们提供这些剪辑作为基准测试的一部分。
2.2 数据统计
表1概述了该领域中流行的和最新的问题回答数据集。 大多数数据集(MCTest除外)使用的答案很短,因此仅限于涵盖较简单的视觉/文字形式的理解。MovieQA数据集不仅具有长句式的答案,而且还是首批以电影形式使用视频的方法。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
表一:各种质量检查数据集的比较。 前三列描述了故事的呈现方式。 AType:答案类型; AW:答案中的平均单词数; MC(N):有N个答案的多项选择; FITB:填空(估计信息)。
Multi-choice QA
我们从408部电影中总共收集了14,944个质量检查。每个问题都有一个正确的答案和四个欺骗性的答案。表2给出了数据集的概述以及有关训练/验证/测试拆分的信息,这些信息将用于评估自动训练的QA模型。平均而言,与大多数其他质量检查数据集不同,我们的问题和答案相当长,分别约为9和5个字。我们的数据集基于视频的答案拆分,支持140部电影,我们将情节简介与视频对齐。请注意,QA方法需要查看较长的视频剪辑(约200s)来回答问题。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
表二:MovieQA数据集统计信息。 我们的数据集支持两种模式的答案:文字和视频。 我们根据电影和问题的数量将其拆分为训练集,验证集和测试集,在总列中显示具有标准差的当前平均值。
图二给出了根据问题的第一个单词划分的问题数量(气泡区域)以及有关问题和答案中单词数量的信息。特别令人感兴趣的是需要冗长答案的“why”问题,正确答案中的平均单词数最多;相反,答案中的“who”问题是正确答案为简短的人名。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
图二:MovieQA数据集中基于的平均单词数问题中的第一个单词。 气泡区域表示#QA。
代替问题中的第一个单词,对QA进行分类的一种特殊方法是基于答案类型。 我们在图3中进行了这种分析。请注意基于推理的问题(为什么,如何,摘要)是我们数据的很大一部分。 在左下象限中,我们看到典型的问题类型,仅凭视觉就可以回答。 但是请注意,即使是推理问题也通常需要视觉,因为问题上下文提供了场景的视觉描述(例如,“约翰为什么要追着玛丽?”)。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
图三:有关基于答案类型的MovieQA问题的统计信息。
三、多项选择问答
本文研究了许多用于质量检查的智能基准,还研究了数据中的固有偏差,并尝试仅根据诸如单词长度或答案多样性之类的答案特征来回答测验。
正式地,用S表示Story,它可以采用任何可用信息源的形式,例如情节,字幕或视频。 每个故事都有一组问题,我们假设学生一次读一个问题qS。 令{aSj}Mj = 1是与qS对应的多项选择答案(只有其中一个是正确的)的集合,在我们的数据集中M = 5。
多项选择题回答的一般问题可以通过三元评分函数f(S,qS,aS)来表述。 此功能根据给定的故事和问题评估答案的“质量”。 因此,我们的目标是为问题qS选择最佳答案aS
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
3.1.The Hasty Student
我们首先考虑f忽略了故事,并试图根据潜在的偏见和相似性直接回答问题。 我们称这种基线为“紧急学生”,因为他/她不关心阅读/观看实际故事。 一个仓促的学生的极端情况是只看答案就试图回答这个问题。 这里,f(S,q,aj)= gH1(aj | a),其中gH1(·)捕获了答案的某些属性。
Answer length探索使用多个选择中的单词数来找到正确的答案,并探索数据集中的偏向。 如图2所示,正确答案要稍长一些,因为通常难以构筑长欺骗性答案。 我们通过以下方式选择答案:(i)选择最长的答案;(ii)选择最短的答案或(iii)选择长度最不同的答案。
Within answer similarity/difference在仍然只看答案的同时,我们根据它们的表示来计算所有答案之间的距离。 然后,我们选择所有答案中最相似或最独特的答案。
Q and A similarity考虑一个仓促的学生,它同时考虑问题和答案,f(S,q,aj)= gH2(q,aj)。 我们计算问题与每个答案之间的相似度,并选择得分最高的答案。
3.2. The Searching Student
当仓促的学生忽略故事时,我们考虑一个试图通过找到故事S的子集来回答问题的学生,该子集S与问题和答案最相似。 得分函数f为问题和答案相似性的分解。 我们提出了两个相似度函数:一个简单的窗口余弦相似度,另一个使用神经体系结构。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
Cosine similarity with a sliding window我们的目标是在故事S中找到H句(或帧)的最佳窗口,以最大化故事与问题以及故事与答案之间的相似性。 我们定义相似性函数:
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
其中sk表示故事S中的一个句子(或镜头)。我们使用gss(s,q)= x(s)Tx(q)作为两个句子(帧)的(规范化)表示之间的点积。
Searching student with a convolutional brain (SSCB)
代替将f(S,q,aj)分解为两个相似性函数gI(S,q)和gI(S,aj)的固定(未加权)和,我们建立了学习该函数的神经网络。假设storyS的长度为n,例如,情节句子或n个视频镜头,则gI(S,q)和gI(S,aj)可以看作是长度为n的两个向量,其第k个条目为gss(sk,q) 。我们进一步将所有[gI(S,aj)] j合并为5个矩阵的5个答案。将向量gI(S,q)复制5次,然后将问题和答案矩阵堆叠在一起,以获得大小为n×5×2的张量。
我们的神经相似模型是卷积神经网络(CNN),如图4所示,它采用上述张量,并应用h = 10、1×1卷积的耦合层来近似函数φ(gI(S,q), gI(S,aj))。此外,我们并入了内核大小为3的最大池化层,以允许对故事窗口内的相似性进行评分。最后的卷积输出是形状为(n /3,5)的张量,我们在故事情节上应用均值池和最大值池,将它们相加,并使用softmax进行预测。使用交叉熵损失和Adam优化器训练网络。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
图四:神经相似性架构
3.3. Memory Network for Complex QA
原始MemN2N的输入是一个故事和问题。回答仅限于单个单词,可以通过从20-40个单词的词汇表V中选择最可能的单词来完成。这不适用于MovieQA,因为我们的数据集没有执行基于词汇的回答。
使用嵌入词B∈Rd×|V|将问题q编码为向量u∈Rd。在这里,d是嵌入维,而u是通过对问题中单词的表示进行平均池化而获得的。同时,使用单词嵌入A和C对story sl的句子进行编码,以分别提供两个不同的句子表示ml和cl。 ml(故事中句子l的表示形式)与u结合使用,以产生类似于注意力的机制,该机制通过softmax函数选择故事中与问题最相似的句子:
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
概率pl用于对第二句嵌入cl进行加权,输出MovieQA: Understanding Stories in Movies through Question-Answering心得体会通过在整个故事中合并加权的句子表示获得。 最后,线性投影W∈R |V|×d对问题u和故事表示o进行解码,以为每个词汇单词提供软评分
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
从a中选择得分最高的单词ˆ a作为答案。 训练的自由参数是针对不同单词的嵌入B,A,C,W,这些嵌入可以在不同的层之间共享。
由于其固定的输出答案集,当前形式的MemN2N不适用于开放自然语言答案的多项选择答案。 文中提出了两个关键的修改,以使网络适合我们的任务。
MemN2N for natural language answers 为了使MemN2N能够对用自然语言编写的多个答案进行排名,我们添加了一个附加层F,它将每个多选答案aj映射到向量gj。 请注意,F与嵌入B,A和C类似,但是其作用是回答而不是问题或故事。 为了预测正确答案,我们计算答案g,嵌入问题的u和故事表示o之间的相似度:
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
并选择最可能的答案正确。 在我们一般的QA公式中,这相当于
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
其中gM1使用问题关注故事的某些部分,而第二个功能gM2直接考虑问题和答案之间的相似性。
Weight sharing and fixed word embeddings
原始的MemN2N直接基于问答任务来学习每个单词的嵌入。但是,要将其扩展到像我们这样的大词汇量数据集,则需要大量的训练数据。例如,训练一个词汇量为14,000(仅从情节提要获得)且d = 100的模型将需要为每个嵌入学习1.4M参数。为了防止过度拟合,我们首先共享存储网络的所有单词嵌入B,A,C,F。然而,即使一个嵌入仍然需要大量参数。
我们进行了以下重要修改,使我们可以将内存网络用于我们的数据集。我们删除B,A,C,F,并用嵌入Z∈Rd1×|V|的固定(预训练)词替换它们。从Word2Vec模型获得并学习一个共享的线性投影层T∈Rd2×d1,以将所有句子(故事,问题和答案)映射到一个公共空间。此处,d1是Word2Vec嵌入的尺寸,而d2是投影尺寸。因此,新的编码是
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
使用单位矩阵d1×d1或使用PCA来将T的维数从d1= 300降低到d2= 100来初始化T。使用随机梯度下降法(批次大小为32)进行训练。
3.4. Representations for Text and Video
TF-IDF是信息检索中流行且成功的功能。 在本文中,我们将来自不同电影的情节(或其他形式的文本)视为文档,并计算每个单词的权重。 我们将所有单词设置为小写,使用词干,然后计算词汇量V,该词汇量由在文档中出现次数超过θ次的单词w组成。 我们以一袋单词的形式表示每个句子(或问题或答案),每个单词的TF-IDF得分。
Word2Vec TF-IDF的缺点是它无法捕获单词之间的相似性。 本文使用skip-gram模型,并在大约1200个电影情节上对其进行训练,以获得特定领域的300维单词嵌入。 然后通过均值池的词嵌入来表示一个句子。 我们对结果向量进行归一化以具有单位范数。
SkipThoughts使用均值合并Word2Vec的句子表示会丢弃单词顺序,而SkipThoughts使用递归神经网络来捕获底层句子的语义。 我们使用SkipThoughts的预训练模型来计算4800维句子表示。
Video为了回答视频中的问题,我们学习了画面和句子之间的嵌入,它在公共空间中映射了两种形式。 在这种联合空间中,可以通过简单的点积对两种模态之间的相似性进行评分。 这使我们能够将所有建议的问题解答技术应用于其原始形式。
为了学习联合嵌入,我们使用GoogLeNet架构以及混合CNN来提取逐帧特征,并平均存储镜头中所有帧的表示。 嵌入是镜头表示和句子一侧单词嵌入的LSTM的线性映射,使用MovieDescription数据集上的排名损失进行训练。
四、 QA Evaluation
我们用MovieQA数据集上提出的方法提出问题的答案研究了各种信息源如何影响性能,以及用f编码的不同复杂程度如何影响自动QA的质量。
4.1. The Hasty Student
表3的第一部分显示了尝试根据答案长度回答问题时三个模型的性能。 值得注意的是,总是选择最长的答案比随机(20%)的效果更好(25.3%)。 表3的第二部分显示了使用基于答案内特征的相似性时的结果。 我们看到,当表示形式很通用并试图捕获句子的语义时,与其他答案最相似的答案很可能是正确的(Word2Vec,SkipThoughts)。 在所有功能上,最明显的答案表现都比随机表现差。 在表3的最后部分中,我们看到在问题和答案之间计算基于特征的相似度不足以回答问题。 特别是,TF-IDF的性能要比随机的差,因为问题中的单词很少出现在答案中。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
表三:The Hasty Student的答题准确性
Hasty Turker为了分析我们的多项选择QA的欺骗性质,我们(通过AMT)在200个QA子集中测试了人类。 实验者没有以任何形式看到这个故事,并被要求根据问题和选择来选择最佳答案。 我们向10个实验者询问了每个问题,如果他们的回答与大多数人一致,则奖励每个人。 我们观察到,如果不访问故事,人类将获得27.6%的准确性。 我们怀疑这种偏见是由于某些实验人员可能看过了这部电影。 删除此类问题并重新评估135个QA子集,可将性能降低到24.7%。 这表明了本文数据集QA确保真正的困难。
4.2. Searching Student
Cosine similarity with window表4的第一部分使用不同的表示形式和文字故事介绍了拟议的余弦相似度的结果。使用图来回答问题要胜过其他来源(字幕,脚本和DVS),因为使用图来收集质量保证,注释者通常会从图上复制单词。
我们在表4的以下各行中显示了使用Word2Vec或SkipThought表示形式的结果,SkipThoughts的性能比更接近的TF-IDF和Word2Vec差。我们怀疑,尽管SkipThoughts擅长捕捉句子的整体语义,但专有名词(名称,位置)通常很难区分。图4给出了基于第一个问题的准确性分解。 TF-IDF和Word2Vec的性能相当好,但是,我们在“ Who”和“ Why”问题之间看到了更大的差异。 “ Who”问题需要区分名称,“ Why”答案通常很长,且均值池破坏了语义。实际上,Word2Vec在可能使用同义词指示位置的“哪里”问题上表现最佳。 SkipThoughts在“为什么”问题上表现最佳,其中句子语义有助于改善回答。
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
表四:基于文本的质量检查的准确性
MovieQA: Understanding Stories in Movies through Question-Answering心得体会
图四:情节句子相对于问题第一个单词的不同特征表示的准确性。
SSCB 表4的中间各行显示了我们的神经相似性模型的结果。 在这里,我们通过CNN提出了结合所有文本表示形式(SSCB融合)的其他结果。 我们将训练集拆分为90%训练/ 10%开发,以便同一部电影的所有问题和答案都在同一拆分中,在训练集中训练我们的模型,并在开发中监控性能。 验证集和测试集都被支持。 在训练期间,我们还将创建多个模型副本,并选择具有最佳验证性能的模型副本。 表4显示,在大多数任务上,神经模型的性能优于简单的余弦相似度,而当使用情节摘要作为故事时,融合方法可实现最高的性能。 忽略绘图的情况,对于大多数显示我们数据集难度的模态,准确性的上限大约为30%。