ToTTo:受控的表到文本生成数据集

2023-10-12 02:10

本文主要是介绍ToTTo:受控的表到文本生成数据集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文 / Ankur Parikh 和 Xuezhi Wang,Google Research 研究员

在过去几年中,自然语言生成 (Neural Language Generation, NLG) 方向取得了很大的进步,相关的研究已被应用在生成文本摘要等任务中。然而,尽管神经网络已可以生成流畅的文本,但仍然容易产生幻觉(Hallucination,如:生成通顺但与原文不相关的内容),导致无法将这些系统部署在对准确性有较高要求的许多场景。

  • 幻觉
    https://arxiv.org/abs/1707.08052

以 Wikibio 数据集为例,向神经基线模型分配一个任务,使其总结比利时足球运动员 Constant Vanden Stock 的 Wikipedia 信息框内容,但该模型得出了他是一名美国花样滑冰运动员错误结论

  • Wikibio 数据集
    https://arxiv.org/abs/1603.07771

  • 基线模型
    https://arxiv.org/abs/1704.04368

评估所生成文本对源内容契合程度非常具有挑战性,但如果将源内容结构化(例如,以表格形式),那么这一过程在一定程度上会变得容易一些。此外,结构化数据还可以测试模型的推理能力和数字推断能力。但现有的大规模结构化数据集往往含有噪声(即无法完全根据表格式数据推断出作为参考的句子),因此无法通过现有数据集对模型开发中的幻觉进行客观测量。

在“ToTTo:受控的表到文本生成数据集”(ToTTo: A Controlled Table-to-Text Generation Dataset) 一文中,我们提出了一个开放域表到文本生成数据集,并使用全新的注释处理方式(通过句子修订)以及一个用于评估模型幻觉的受控文本生成任务构建该数据集。

  • ToTTo:受控的表到文本生成数据集
    https://arxiv.org/abs/2004.14373

ToTTo 为“Table-To-Text”(表到文本)的缩写,包含训练样本 121,000 个,以及用于开发和测试的样本各 7,500 个。由于注释的准确性,此数据集适合作为高精度文本生成研究中的挑战性 benchmark。数据集和代码已在我们的 GitHub 仓库上开源。

  • GitHub 仓库
    https://github.com/google-research-datasets/totto

表到文本生成

ToTTo 引入了一项受控的 (Controlled) 生成任务,在该任务中,将包含一组选定单元格的 Wikipedia 表用作源材料,生成一句话总结表中的单元格内容。下方示例说明了该任务中的挑战,如数字推理、大型开放域词汇表和不同的表结构等。

例如,在此 ToTTo 数据集中,给定源表及其中突出显示的单元格集(左侧),目标则是生成一句话,如“目标句子”(右侧)。请注意,生成目标句子需要进行数字推断(十一个 NFL 赛季)并理解 NFL(美国国家橄榄球联盟) 领域

注释策略

设计一种根据表格数据注释出自然且简明的句子极具挑战性。一种办法是:如 Wikibio 和 RotoWire 等许多数据集会启发式地将自然生成的文本与表配对,但是这个过程会引入噪声,因此很难区分幻觉主要是由数据噪声还是模型缺陷导致的。另一种办法是:让标注者从头开始编写契合表内容的目标句子,但这样得到的目标句子在结构和风格方面往往缺乏多样性。

相比之下,ToTTo 使用一种全新的数据注释策略,标注者分阶段修订现有的 Wikipedia 句子。这样一来,目标句子就能变得简洁自然,同时表现出有趣多样的语言特性。

数据收集和注释处理的第一步是从 Wikipedia 收集表。在这一步中,给定表会启发式地与相关页面上下文的总结句配对,如页面文本和表之间单词重叠以及引用表格数据的超链接。此总结句可能包含表上没有的信息,也可能包含所指示先行词仅存在于表中(而非句子本身)的代词。

然后,标注者会突出显示表中与总结句相关的单元格,并删除该句中与表无关的短语。标注者还会对句子进行去语境化处理(例如,正确替换/定向代词),以便根据需要生成语法正确的独立句子。

我们的研究表明,标注者在上述任务中能够实现高度一致:突出显示的单元格的 Fleiss Kappa 为 0.856,最终目标句子的 BLEU 为 67.0。

数据集分析

我们对 ToTTo 数据集中超过 44 个类别进行了主题分析,发现体育和国家/地区主题包含一系列细粒度主题,例如体育中的足球/奥林匹克主题以及国家/地区中的人口/建筑物主题,总共占数据集的 56.4%。另外的 44% 的主题范围更广泛,包括表演艺术、交通与娱乐。

此外,我们还随机选取了 100 多个样本,对数据集中不同类型的语言现象展开人工分析。下表汇总了部分需要参考页面和分区标题的样本,以及数据集中可能会对当前系统构成全新挑战的一些语言现象。

语言现象百分比
需要参考页面标题82%
需要参考分区标题19%
需要参考表说明3%
推理(逻辑、数字、时间等)21%
跨行/列/单元格比较13%
需要背景信息12%

基线模型结果

我们列出了文献中三个最先进模型(BERT-to-BERT、 Pointer Generator 和 Puduppully 于 2019 发表的模型)在两个评估指标 BLEU 和 PARENT 上的一些基线结果。除了报告基于整个测试集的分数外,我们还基于一个更具挑战性的子集(由域外样本组成)评估了每个模型。如下表所示,BERT-to-BERT 模型在 BLEU 和 PARENT 这两个指标上的表现都优于其他两个模型。此外,所有模型在挑战性子集上的表现都相当不理想,这表示域外泛化仍具挑战性。


BLEUPARENTBLEUPARENT
模型总体总体挑战挑战
BERT-to-BERT43.952.634.846.7
Pointer Generator41.651.632.245.2
Puduppully 等人于 2019 年发表的模型19.229.213.925.8

  • BERT-to-BERT
    https://arxiv.org/abs/1907.12461

  • Pointer Generator 
    https://arxiv.org/abs/1704.04368

  • Puduppully 于 2019 发表的模型
    https://arxiv.org/abs/1809.00582

   

虽然自动指标可以在一定程度上表明性能,但目前尚不足以评估文本生成系统中的幻象。为更好地理解幻象,我们假设差异表示幻象,并在此前提下手动评估最高性能基线,以确定目标句子对源表内容的忠实度。为计算“专家”性能,我们为多参考测试集中的各个样本设定一个参考模型,并要求标注者比较该样本与其他参考模型的忠实度。如结果所示,最高性能基线下,出现幻象信息的概率约为 20%。

 忠实度忠实度
模型(总体)(挑战)
专家93.691.4
BERT-to-BERT76.274.2

模型错误与挑战

下表列出了观察到的模型错误,重点说明 ToTTo 数据集的一些更具挑战性的方面。我们发现,即便使用简洁明了的参考,最先进的模型在应对幻觉、数字推理和罕见主题时仍会遇到困难(以红色标记的错误)。最后一个示例表明,即使模型输出正确,有时也无法像原始参考(包含更多表相关推理,以蓝色显示)那样信息丰富。

参考模型预测
在 1939 年库里杯中,西部省在开普敦以 17–6 的比分输给了德兰士瓦。第一届库里杯于 1939 年在新大陆德兰士瓦 1 举行,西部省以 17–6 的比分赢得了比赛。
IBM 公司在 2000 年发布了第二代微型硬盘,其容量增加到 512 MB 和 1 GB。2000 年有 512 块微型硬盘模型:1 千兆字节。
1956 年世界摩托车锦标赛赛季包括 6 场大奖赛,每场包含 5 个级别:500cc、350cc、250cc、125cc 和边车 500cc。1956 年世界摩托车锦标赛赛季包括 8 场大奖赛,每场包含 5 个级别:500cc、350cc、250cc、125cc 和边车 500cc。
在 Travis Kelce 的最后一个大学赛季中,他在接球次数 (45)、接球码数 (722)、单次接球码数 (16.0) 和接球达阵次数 (8) 方面创下了个人的职业生涯记录。Travis Kelce 以 45 次,共计 722 码(平均为 16.0 码)的接球和 8 次达阵结束了 2012 年赛季。

结论

在这项研究中,我们提出了 ToTTo,这是一个表到文本的大型英语数据集,不仅会提供受控的生成任务,还会提供基于迭代句子修订的数据注释处理。我们还提供了几个最先进的基线,并证明了 ToTTo 数据集有助于研究建模以及开发可更好地检测模型改进情况的评估指标。

除了提及的任务,我们希望我们的数据集也可以为其他任务提供帮助,如表理解和句子修订等。您可通过我们的 GitHub 仓库获取 ToTTo。

  • GitHub 仓库(或“阅读原文”)
    https://github.com/google-research-datasets/totto

致谢

作者要感谢 Ming-Wei Chang、Jonathan H. Clark、Kenton Lee 和 Jennimaria Palomaki 提供的深刻探讨和支持。同时非常感谢 Ashwin Kakarla 及其团队在注释工作中的帮助。

更多 AI 相关阅读:

  • 推出 RxR:多语言指令跟随导航基准数据集

  • 利用 AutoML 进行时间序列预测

  • 大型语言模型中的隐私考量

  • 推出 Pr-VIPE:识别图像和视频中的姿态相似度

  • 基于端到端可迁移深度强化学习的图优化

 点击屏末 | 阅读原文 | 即刻访问 GitHub

这篇关于ToTTo:受控的表到文本生成数据集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/192482

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat