使用神经网络在表格中查找答案

2020 年 5 月 31 日 THU数据派


来源:TensorFlow

本文约 2481字 ,建议阅读 6分钟
介绍如何通过自然语言进行查询,从表格中找到所需的内容,从而提升信息的可用性和实用性。

绝大多数的信息都以表格为形式进行存储,并包含于网页、数据库或是文档中。从消费类商品的技术规格到金融和国家发展统计数据、体育赛事结果等等,都可能使用表格存储。目前,人们需要通过手动查看这类表格才能找到问题的答案,或者需要通过某项服务来获得特定问题的答案(如体育赛事结果)。如果可以通过自然语言进行查询,这些信息的可用性和实用性都将得到大幅提升。


例如,下图展示了一个表格以及人们可能会询问的一些问题。这些问题的答案能在表格的一个或多个单元格内找到(“哪位摔跤手卫冕次数最多?”),或者需要结合多个单元格计算得出(“有多少世界冠军仅卫冕过一次?”)。

表格和带有预期答案的问题:答案可以从表格中直接找出 (#1, #4),或通过计算得出 (#2, #3)


最近许多对于此类问题的解决方法都应用了传统的语义分析,将自然语言问题转换为类似 SQL 的数据库查询,通过对数据库执行查询来获取答案。例如,问题“有多少世界冠军仅卫冕过一次?”将映射到类似“select count(*) where column("No. of reigns") == 1;”的查询,然后执行该查询来生成答案。这类方法通常需要大量的工程设计才能生成句法和语义上都有效的查询,并且针对性极强,很难扩展到任意问题(如体育赛事结果)。


收录在 ACL 2020 的论文《TAPAS:通过预训练进行弱监督表格解析(TAPAS:Weakly Supervised Table Parsing via Pre-training)”中,我们采用了不同的方法,通过对 BERT 架构进行扩展,将问题与表格数据结构一起编码,从而生成一个可直接指向答案的模型。与创建仅适用于单一表格样式的模型不同,这种方法生成的模型可广泛应用于来自各种领域的表格。在对数百万个维基百科表格进行预训练之后,我们发现,此方法在处理 3 类学术表格问题-答案 (QA) 数据集时在准确率方面表现出优势。


另外,为促进在这一领域展开更多卓有成效的研究,我们已开源了用于训练和测试这些模型的代码,以及已用维基百科表格进行预训练的模型,相关代码请参阅我们的 GitHub 代码库


如何处理问题


为了处理“排名前两位的摔跤手卫冕冠军的平均时间?”这个问题,我们的模型使用 BERT 模型通过对问题和表格内容合并进行逐行编码,并特殊嵌入向量进行扩展,以对表格结构进行编码。


同时,利用基于 Transformer 的 BERT 模型,对关键信息添加的额外嵌入向量可用于对结构化输入进行编码。我们依靠已习得的嵌入向量编码列索引、行索引,以及一个表示数字列中元素排序的特殊排名进行索引。下方图片显示了以上所有内容如何一并在输入端完成添加并返回给 Transformer 层。下方图表通过左侧表格说明问题的编码方式。每个单元格的 token 都有一个特殊的嵌入向量,以指明其所在的行、列,以及列中的数字排名。

BERT 层输入:每个输入 token 都表示为其单词、绝对位置、句段(无论是属于问题还是表格)、列和行以及数字排名(如果该列按其数字值排序,则为单元格所处的位置)的嵌入向量总和


模型有两个输出:
  1. 对于每个表格单元格,输出一个分数,指明该单元格将成为答案一部分的概率;
  2. 输出一个聚合运算,指明采用哪种运算(如有)来生成最终答案。


下表显示具体操作,对于问题“排名前两位的摔跤手卫冕冠军的平均时间?”,该模型应选择“合并天数”列的前两个单元格和具有较高概率的“求平均值”进行运算。

模型示意图:BERT 层对问题和表格同时进行编码。模型输出每个聚合运算的概率和每个表格单元格的选择概率。对于“排名前两位的摔跤手卫冕冠军的平均时间?”这个问题,“求平均值”运算以及编号为 3749 和 3103 的单元格应有很高的概率


预训练


使用类似于在文本训练的 BERT 方法,我们在从英文维基百科中提取的 620 万个表格文本上对模型进行了预训练。在预训练期间,模型学习恢复表格和文本中已被掩码替换的单词。我们发现,模型可以按相对较高的精度完成此操作(对于训练期间未曾见过的表格,正确还原了 71.4% 的掩码 token)。


仅从答案中学习


在微调期间,模型学习如何回答表格中的问题。此学习可通过使用 强监督 或者 弱监督 训练完成。如果进行强监督学习训练,对于给定的表格和问题,则必须为模型提供单元格和可选择的聚合运算(如求和或计数),这是一个费时费力的过程。最常见的情况是,使用 弱监督 进行训练,在训练中仅提供正确答案(例如,对上述示例中的问题,正确答案是 3426)。在这种训练中,模型将尝试找到聚合运算以及可产生接近正确答案的单元格。通过计算对所有可能的聚合决策的期望值,并将其与真实结果进行比较,即可完成此操作。弱监督训练允许非专家提供训练模型所需的数据,并且比强监督训练花费的时间更少,因而帮助很大。


结果


我们将模型应用于三个数据集——SQA、WikiTableQuestions (WTQ) 和 WikiSQL,并将其与解析表格式数据的前三大最先进 (SOTA) 模型进行了性能比较。对比模型包括用于 WikiSQL 的 Min et al (2019)、用于 WTQ 的 Wang et al. (2019),以及我们之前用于 SQA 的自建模型 (Mueller et al., 2019)。对于所有数据集,我们报告了用于弱监督训练环境的测试集的答案准确率。对于 SQA 和 WIkiSQL,我们使用了在维基百科上进行预训练的基础模型,而对于 WTQ,我们发现对 SQA 数据进行额外的预训练很有益处。我们表现最好的模型比以前用于 SQA 的最先进 (SOTA) 模型高出 12 分以上,比以前用于 WTQ 的最先进 (SOTA) 模型高出 4 分以上,并且性能与 WikiSQL 上发布的最佳模型性能相当。

弱监督环境下对三个学术性 TableQA 数据集的测试答案准确率


致谢


此项研究由苏黎世 Google AI 语言小组的 Jonathan Herzig、Paweł Krzysztof Nowak、Thomas Müller、Francesco Piccinno 和 Julian Martin Eisenschlos 协作完成。我们在此感谢 Yasemin Altun、Srini Narayanan、Slav Petrov、William Cohen、Massimo Nicosia、Syrine Krichene 和 Jordan Boyd-Graber 就本文提出的建设性评论与建议。


如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

  • 最近许多
    https://www.aclweb.org/anthology/P15-1142/

  • 解决方法
    https://www.aclweb.org/anthology/N19-1273

  • TAPAS:通过预训练进行弱监督表格解析
    https://arxiv.org/abs/2004.02349

  • GitHub 代码库
    https://github.com/google-research/tapas

  • SQA
    https://www.microsoft.com/en-us/download/details.aspx?id=54253

  • WTQ
    https://nlp.stanford.edu/blog/wikitablequestions-a-complex-real-world-question-understanding-dataset/

  • WikiSQL
    https://github.com/salesforce/WikiSQL

  • Min et al (2019)
    https://www.aclweb.org/anthology/D19-1284

  • Wang et al. (2019)
    https://www.aclweb.org/anthology/D19-1391

  • Mueller et al., 2019
    https://www.aclweb.org/anthology/D19-1603


——END——


登录查看更多
0

相关内容

谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【综述】关键词生成,附10页pdf论文下载
专知会员服务
52+阅读 · 2019年11月20日
论文浅尝 | 基于复杂查询图编码的知识库问答
开放知识图谱
17+阅读 · 2019年7月22日
史上最全 OpenCV 活体检测教程!
无人机
5+阅读 · 2019年4月10日
谷歌发布问答系统新语料,同时发布相关挑战赛
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
计算文本相似度常用的四种方法
论智
33+阅读 · 2018年5月18日
【知识图谱】 一个有效的知识图谱是如何构建的?
产业智能官
57+阅读 · 2018年4月5日
已删除
生物探索
3+阅读 · 2018年2月10日
KBQA从入门到放弃—入门篇 | 每周话题精选 #08
PaperWeekly
14+阅读 · 2017年8月8日
Arxiv
14+阅读 · 2020年1月27日
Arxiv
6+阅读 · 2019年8月22日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Phrase-Based & Neural Unsupervised Machine Translation
Arxiv
3+阅读 · 2018年4月18日
VIP会员
相关资讯
论文浅尝 | 基于复杂查询图编码的知识库问答
开放知识图谱
17+阅读 · 2019年7月22日
史上最全 OpenCV 活体检测教程!
无人机
5+阅读 · 2019年4月10日
谷歌发布问答系统新语料,同时发布相关挑战赛
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
计算文本相似度常用的四种方法
论智
33+阅读 · 2018年5月18日
【知识图谱】 一个有效的知识图谱是如何构建的?
产业智能官
57+阅读 · 2018年4月5日
已删除
生物探索
3+阅读 · 2018年2月10日
KBQA从入门到放弃—入门篇 | 每周话题精选 #08
PaperWeekly
14+阅读 · 2017年8月8日
相关论文
Top
微信扫码咨询专知VIP会员