数据集:

google/wit

英文

WIT 数据集的数据卡

数据集摘要

基于维基百科的图像文本(WIT)数据集是一个大型的多模式、多语言数据集。WIT由一个由37.6万个包含超过1150万个独特图像的实体丰富的图像文本示例组成,涵盖108个维基百科语言。其规模使得WIT可以作为多模态机器学习模型的预训练数据集使用。

WIT的几个独特优势:

  • 通过图像文本示例数量来说是当前最大的多模态数据集。
  • 是迄今为止第一个包含大量多语言内容的数据集,涵盖100多种语言。
  • 包含各种概念和真实世界实体的集合。
  • 提供具有挑战性的真实世界测试集。

数据集预处理

默认情况下,该数据集不会下载图像到本地,而是提供图像的URL。要获取图像,请使用以下代码:

from concurrent.futures import ThreadPoolExecutor
from functools import partial
import io
import urllib

import PIL.Image

from datasets import load_dataset
from datasets.utils.file_utils import get_datasets_user_agent


def fetch_single_image(image_url, timeout=None, retries=0):
    for _ in range(retries + 1):
        try:
            request = urllib.request.Request(
                image_url,
                data=None,
                headers={"user-agent": get_datasets_user_agent()},
            )
            with urllib.request.urlopen(request, timeout=timeout) as req:
                image = PIL.Image.open(io.BytesIO(req.read()))
            break
        except Exception:
            image = None
    return image


def fetch_images(batch, num_threads, timeout=None, retries=0):
    fetch_single_image_with_args = partial(fetch_single_image, timeout=timeout, retries=retries)
    with ThreadPoolExecutor(max_workers=num_threads) as executor:
        batch["image"] = list(executor.map(fetch_single_image_with_args, batch["image_url"]))
    return batch


num_threads = 20
dset = load_dataset("wit")
dset = dset.map(fetch_images, batched=True, batch_size=100, fn_kwargs={"num_threads": num_threads})

支持的任务和排行榜

  • 图像字幕生成:可以使用此数据集训练生成图像字幕的模型,目标是根据图像预测相应的字幕。
  • 文本检索:在此任务中,需要构建一个模型来检索与图像最相近的文本。

在这些任务中,可以使用 caption_reference_description 、 caption_attribution_description 和 caption_alt_text_description 字段的任意组合作为输入文本/字幕。

语言

此数据集包含所有维基百科语言的示例,以下是其统计信息:

Image-Text # Lang Uniq. Images # Lang
total > 1M 9 images > 1M 6
total > 500K 10 images > 500K 12
total > 100K 36 images > 100K 35
total > 50K 15 images > 50K 17
total > 14K 38 images > 13K 38

数据集结构

数据实例

{
  'language': 'en',
  'page_url': 'https://en.wikipedia.org/wiki/Oxydactylus',
  'image_url': 'https://upload.wikimedia.org/wikipedia/commons/5/5f/Oxydactylus_longipes_fm.jpg',
  'page_title': 'Oxydactylus',
  'section_title': None,
  'hierarchical_section_title': 'Oxydactylus',
  'caption_reference_description': None,
  'caption_attribution_description': 'English: Mounted skeleton of Oxydactylus longipes in the Field Museum of Natural History.',
  'caption_alt_text_description': None,
  'mime_type': 'image/jpeg',
  'original_height': 3564,
  'original_width': 2748,
  'is_main_image': True,
  'attribution_passes_lang_id': True,
  'page_changed_recently': True,
  'context_page_description': 'Oxydactylus is an extinct genus of camelid endemic to North America. It lived from the Late Oligocene to the Middle Miocene, existing for approximately 14 million years. The name is from the Ancient Greek οξύς and δάκτυλος.\nThey had very long legs and necks, and were probably adapted to eating high vegetation, much like modern giraffes. Unlike modern camelids, they had hooves, rather than tough sole-pads, and splayed toes.',
  'context_section_description': 'Oxydactylus is an extinct genus of camelid endemic to North America. It lived from the Late Oligocene to the Middle Miocene (28.4–13.7 mya), existing for approximately 14 million years. The name is from the Ancient Greek οξύς (oxys, "sharp")and δάκτυλος (daktylos, "finger").\n \nThey had very long legs and necks, and were probably adapted to eating high vegetation, much like modern giraffes. Unlike modern camelids, they had hooves, rather than tough sole-pads, and splayed toes.'
}

数据字段

  • 语言:表示维基百科页面的语言代码。
  • 页面URL:维基百科页面的URL。
  • 图片URL:维基百科图像的URL。
  • 页面标题:维基百科页面的标题。
  • 部分标题:部分的标题。
  • 层次结构部分标题:层次结构部分的标题。
  • 引用描述的字幕:显示在图像下方的维基页面上的字幕。
  • 归因描述的字幕:在维基媒体图像页面上找到的文本。此文本适用于所有维基百科中该图像的出现,因此可以使用不同于原始页面文章的语言。
  • 替代文本描述的字幕:与图像相关联的“替代”文本。虽然通常不可见,但通常用于辅助功能/屏幕阅读器。
  • MIME类型:与图像关联的MIME类型。
  • 原始高度:图像高度。
  • 原始宽度:图像宽度。
  • 是否为主图像:确定图像是否是页面的第一张图像。通常在使用Web浏览器时显示在页面的右上部分。
  • 归因通过LangID:将 language 字段与属性语言(在属性描述的前缀中写明)进行比较。
  • 页面最近更改:[需要更多信息]
  • 上下文页面描述:页面描述对应于页面的简要描述。它提供了对页面范围的简洁解释。
  • 上下文部分描述:图像部分中的文本。

图注:WIT标注示例。

关于字段内容的详细信息可以直接在 paper, figure 5 and table 12. 中找到。

数据拆分

所有数据都由 train 拆分进行保存,共有37046386行。

数据集创建

策划理由

来自 repository

多模态视觉语言模型依靠丰富的数据集帮助他们学习对图像和文本之间的关系进行建模。具有大型图像文本数据集可以显著提高性能,这已经得到了最近研究的证明。此外,现有数据集中的语言覆盖不足(主要只有英文),也限制了多语言多模态空间的研究 - 我们认为这是一个失去的机会,因为利用图像(作为一种语言无关的媒介)有助于提高我们对多语言文本的理解的潜力。

为了解决这些挑战并推动多语言、多模态学习的研究,我们创建了基于维基百科的图像文本(WIT)数据集。WIT通过从维基百科文章和维基媒体图像链接中提取与图像相关的多个不同文本(如上图所示)来创建。在此过程中还进行了严格的筛选,仅保留高质量的图像文本集。

最终的数据集包含超过3760万个图像文本集合 - 使WIT成为迄今为止最大的多模态数据集(截至撰写本文) ,具有无与伦比的多语言覆盖范围 - 每种108种语言中的12K+示例(53种语言有超过10万个图像文本对)。

源数据

初始数据收集和规范化

来自 paper, section 3.1

我们从所有维基百科内容页面开始(即忽略其他具有讨论、评论等的页面)。这些页面大约有124M个,涵盖279种语言。

谁是源语言的生产者?

文本来自维基百科。

注释

注释过程

使用自动过程构建了WIT,但经过了人工验证。

来自 paper, section 3.7

为了进一步验证WIT数据集的质量,我们进行了一项研究,使用(众包)人工标注者。如图3所示,我们要求标注者回答3个问题。给定一张图像和页面标题,标注者首先通过前两个问题(顺序随机化)评估归因描述和引用描述的质量。第三个问题了解页描述和标题与文本描述的相关质量。每个回答都有一个3级评分:如果文本完美描述了图像,则为“Yes”;如果足够解释性,则为“Maybe”;如果与图像无关或图像不合适,则为“No”。

谁是注释者?

[需要更多信息]

个人和敏感信息

[需要更多信息]

使用数据的注意事项

数据对社会的影响

[需要更多信息]

偏见讨论

来自 paper, section 3.4

最后,我们发现某些图像文本组合出现非常频繁。这些通常是与主要文章页面无关的通用图像。常见的例子包括旗帜、徽标、地图、徽记等等。为了防止数据偏颇,我们对所有这样的图像进行了大量的欠采样

其他已知限制

[需要更多信息]

附加信息

数据集策划者

[需要更多信息]

许可信息

[需要更多信息]

引用信息

@article{srinivasan2021wit,
  title={WIT: Wikipedia-based Image Text Dataset for Multimodal Multilingual Machine Learning},
  author={Srinivasan, Krishna and Raman, Karthik and Chen, Jiecao and Bendersky, Michael and Najork, Marc},
  journal={arXiv preprint arXiv:2103.01913},
  year={2021}
}

贡献者

感谢 @thomasw21 @nateraw hassiahk 添加了这个数据集。