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

相关文章

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.