CIKM2022 | ChiQA-一个基于20万个真实用户问题的图片问答数据集
机器之心 2022-11-07 17:30 发表于北京
机器之心发布
作者:QQ浏览器搜索技术中心
近年来,随着问答技术和多模态理解技术的蓬勃发展,视觉问答任务(Visual Question Answering)变得越来越受关注。诸如 VQA、CLEVER、Visual-7W 等大规模视觉问答数据集陆续发布,极大地推动了视觉问答任务的迭代发展。然而,当前大部分视觉问答数据都是人工合成问题,如 “她的眼睛是什么颜色” 这种标注者在看到图片后虚构设计出的。人工产生的数据会相对简单、低质甚至有偏。因此,在这项工作中,我们基于 QQ 浏览器中用户真实的问题,提出了一个基于中文的大规模图片问答数据集:ChiQA。
ChiQA 包含有超过 4 万个真实用户 query 和超过 20 万个问题 - 图像对。数据和一些 baseline 模型已经公布在GitHub。相关研究已经被 CIKM2022 长文录用。
论文地址:https://arxiv.org/abs/2208.03030
Github地址:https://github.com/benywon/ChiQA
对比单模态问答任务
ChiQA的三个显著特性
问答系统(Question Answering) 是人工智能和智能语言处理中非常重要的任务之一。近年来,随着大规模数据集(如 SQuAD、NaturalQuestions)的发布以及大规模预训练语言模型(如 BERT、GPT)的提出,问答任务得到了飞速的发展。然而,当前大部分问答任务都是单模态的,即问题、资源以及答案都是基于文本的。然而,从认知智能以及实际应用的角度来说,多模态资源如图像在很多时候往往能提供更为丰富的信息和答案。例如,对于一个问题:iPhone13 的尺寸是多少?一个针对 iPhone13 不同型号的尺寸对比图会更加清楚和直观。还有一些例子如下图所示:
图一:一些适合用图片回答用户问题的例子
最近几年,针对多模态理解的问答数据和任务被相继提出。如 VQA1.0 和 2.0、CLEVR、GQA 等等。在大部分图像问答数据集中,系统提供一些人工生成或者真实的图像给标注者,标注者需要人工写出一些针对特定属性或者实体的问题。然而,这种数据收集过程不可避免的有很多缺陷:
1)所有的问题都是图像相关的(image-dependent),即标注者看到图片之后提出问题。在大规模数据构建过程中,人工生成的问题往往会缺乏多样性,而且往往由于标注者的主观因素会产生偏置。在这种先看资源,再提问的数据上训练的模型往往可以不用看背景资源只看问题而轻易达到非常好的效果;
2)其次,在传统的 VQA 数据中,答案往往是一个简单的实体、关系或者简单对特定区域的描述。然而对于实际的图像问答任务中,很多文本性答案是不必要的,例如对于问题:“羊驼长什么样”,提供一个冗长的答案描述羊驼的外表显得非常冗余。其次,这种简短的实体描述往往会让标注者只关注到局部关系,而很少注意真正整体结构上的一些信息;
3)最后,大部分之前的资源往往是专注于英文,在中文领域的图像问答数据很少。
在这个工作中,针对以上几个问题,我们提出了一个大规模的中文图像问答数据集 - ChiQA(Chinese Image Question Answering)。我们通过手机 QQ 浏览器中用户真实的搜索词出发,通过特定 API 检索到相关的若干张图片,然后将图片交由经过专业培训的标注人员进行三级标注,以表示该图片是否能完美回答(2 分)、部分回答(1 分)以及不能回答(0 分)用户的问题。对于 ChiQA 来说,有三个显著的特点:
- 真实问题,真实图片:ChiQA 中的图片来源于随机用户的查询。这些查询是开放域中随机的用户 query,这些 query 非常多样,而且 query 的领域分布非常广泛。这样随机的多样性 query 保证了我们的数据中的问题不会有偏;
- 可回答性:对于问答任务来说,可回答性是一个非常重要的方面。在 ChiQA 中我们不要求标注人员给出最终的答案:因为这样往往会引入一些额外的偏置,比如标注人员的常识。相反的,我们着重于可回答性,即图片对于问题是否可以回答。这种可回答性可以让 ChiQA 的标注人员既需要理解 query,也需要理解图片;
- 无偏的:因为随机 query 中也会存在 28 定律,即一些高频或者单一的问题往往会出现很多次,数据中这种简单模式的问题会占据大多数,造成数据中真正跨模态理解的偏置。因此,我们在数据收集过程中引入了两阶段的主动学习过程,在第一阶段随机 query 标注完成后,我们训练了一个简单的模型,然后用这个模型挑选出 "更难" 的一些模型,从而让二阶段的标注数据中数据的丰富度和难度相对更高。
图二:ChiQA 和业界其他一些图像问答数据的对比
最终我们收集了超过 40000 个问题,每个问题都有大约 5 个相关的图片,即总量超过 20 万的问题 - 图片对。每个问题都有若干张图片,我们对每个图片以2-1-0进行三挡打分。
一些 ChiQA 中的例子如下图所示:
图三:ChiQA 中一些样本的示例。
数据收集:所有问题均来源于用户真实查询
整个数据的收集过程可以分为四步,整体流程图如下:
图四:数据收集过程
对于 ChiQA 来说,其一大特色是所有的问题都来源于用户真实的查询。然而,如果我们随机从搜索引擎用户的搜索日志中采样用户的查询,那么大部分查询都是没有问答意图的。
因此我们首先需要过滤出有问答意图的 query。在这个工作中,我们采用了一种内部构造的弱监督方法训练了一个二分类器,来判定一个 query 是不是有问答意图。人工评测这个意图模型能够达到 90% 的精度以及 80% 的召回。我们通过这个模型对用户的 query 进行采样,得到了大约 7.5 万个经过模型判定具有问答意图的用户 query 进入下一轮。
图像收集&标注过程和经验
得到了问题之后,我们将这些问题发送给谷歌提供的开放 API(Google Images API - SerpApi)进行相关图像检索。谷歌 API 对每个 query 会返回最相关的 100 个图像。为了保证最后数据的质量,我们去掉了那些长度或者宽度小于 200 像素的 query以及那些过长或者过宽的图像。
得到了原始图像之后,我们取经过过滤后的前 5 个图片,并让标注人员标注这个 query 和对应的 5 个图片。我们内部专门为本任务设计了一个标注界面,如下图所示。
图五:ChiQA 的标注界面
在标注过程中,我们让标注人员标注三个方面:
1) 问题标注
由于本工作主要着眼于图片问答,而事实上在普通的用户问题中很多都和图片问答无关(或者很难用图片来回答)。因此我们首先让标注人员标注这个问题是不是可以算作一个图片问答的问题。例如:
如果一个问题是“xxx 和 xxx 的差别”,那么这个问题就会被认为是一个具有图像问答意图的问题;
如果一个问题是模糊的、具有歧义的或者包含有没有事实根据推论的观点,那么这个问题就会被归类于无图像问答意图,并且不会参与到后续图片标注的过程中。
一些 query 标注的例子如图 6 所示:
图 6:query 标注的示例
2) 图片标注
对于上一步中有效的 query,我们对其 5 个候选 query 进行标注。标注的标准是三级 0-1-2 标注,其中:
0 分表示这个图片完全不能用来回答这个问题,2 分表示这个图片质量过关并且可以完全独立的回答这个问题。而 1 分的图片则介于这两者之间,表示这个图片和这个 query 相关,但是却无法直接回答,用户可能需要更多的查询或者推理才能得到最终的答案。一些 0 分、1 分、2 分的例子如下图所示:
图七:对于问题“如何使用不同介词”,图片标注打分的示例
3) 质量控制
我们在整个标注过程中采用了严格的质量控制方案。具体来说,我们首先会邀请 3 个质量团队进行试标注,选择标注质量最好的那个团队来标注余下所有的数据。其次,在标注过程中,我们会将标注数据分批,每一批次的数据我们会采样其中五分之一的数据进行人工校验,如果数据的合格率小于 90%,那么这一批次的数据将会被打回重新进行标注,直到数据精度达到 90%。
主动学习的数据标注
让结果更无偏
经过数据收集的工作,我们发现如果随机对数据进行采样和标注,那么数据中往往会存在一些简单的模式,这种简单的模式大量存在于数据中可能会对最终的模型造成偏置影响。因此,我们设计了一个主动学习的标注过程。具体来说,我们首先将让标注人员标注一批数据,这一批数据标注完成之后,我们就用这一批数据训练一个跨膜态的文本图像匹配模型。模型训练完毕之后,我们开始用这个模型来 “选择” 新的样本:如果模型对这个新的样本预测非常不确定(即最后分类预测的熵特别大),那么我们认为这个样本相对模型较难,因此有较大概率保留到下一轮中间,反之说明模型对这个数据已经很置信了,那么这个模型以较小的概率保留到下一轮中。
我们发现主动学习数据选择过程确实使数据集更无偏。我们发现第一阶段的标记数据包含一些难以察觉的偏置。例如,包含 “的技巧” 字的问题标记为有效问题,但几乎所有相应的图像被标记为无法回答(即 0 分),因此模型很可能不看图片直接根据 query 中的问题就预测出最终的结果。而这种主动学习的过程降低了这种可能性,这种高置信度且有偏的窍门(shortcut)在下一轮中很难被选择上,从而降低了这种模式的影响面。
测试集标注
我们随机从标注数据中筛选出来 2500 条数据,并且让不同的标注者重新标注。如果标注的结果和之前的结果一样,则这个数据被保留为测试集,要是不一样,我们让一个对任务非常了解的“专家”重新标注这个数据,最终得到了 2362 条测试数据以及超过 4 万条训练数据。训练集和测试集的统计信息如下图所示:
图八:ChiQA 中训练集和测试集的统计信息