写点什么

Google 开源表格解析器 TAPAS:使用表格数据回答自然语言问题

2020 年 6 月 02 日

Google开源表格解析器TAPAS:使用表格数据回答自然语言问题

Google 开源了表格解析器(简称:TAPAS),它是一个使用表格数据回答自然语言问题的深度学习系统。TAPAS 接受了从维基百科提取的 620 万个表格数据的训练,在几个基准环境上其性能都达到甚至超过当下最先进的其他系统。


Google 的联合创始人 Thomas Müller 最近在一篇博客中对 TAPAS 的工作原理做了简单概述。提供一份数字形式的表格数据,如运动比赛结果数据或者财务统计数据,那么 TAPAS 就可以使用这个表格数据推断出自然语言问题的答案。举个例子,如果提供一份运动锦标赛的数据列表,那么可能 TAPAS 就能回答“哪个队获得的冠军数最多?”问题。过去解决类似问题的方式,是将自然语言的查询直接转换为类似SQL这样的软件查询语言,然后运行在数据库中。而 TAPAS 可以直接在数据上进行操作,且在常见问题基准测试中,其性能都超过了之前的模型。在 Microsoft 的顺序问答(SQA)数据集测试中,其性能相比于之前的模型提高了 12 个百分点以上;在标准的维基表格问题(WTQ)数据集的测试中,其性能也提高了 4 个百分点以上。


对于如何使用表格数据回答自然语言问题,早期很多 AI 系统都是通过一种被称为语义解析的方式解决的。这种方式是将自然语言的问题转换成一种“逻辑形态”——其本质上是将人类语言转换成编程语言。而对于表格数据的问题,这种逻辑形态通常就是诸如 SQL 之类的查询语言了。不管是Microsoft还是Salesforce都开发过类似的系统。但是根据 Google 团队的说法,语义解析的一个缺点是,它和所有的监督式学习一样,需要一个手工标记的数据集; 只有在这种情况下,才能将自然语言问题映射成逻辑形态。谷歌团队发现这一步骤完全是可以跳过的,因此 TAPAS 是直接输出“一个表格单元格的子集和一个可能的数据聚合操作(译者注:如求和、求平均,为空等)”。



图片来源:https://ai.googleblog.com/2020/04/using-neural-networks-to-find-answers.html


TAPAS 是基于BERT(谷歌的 NLP 系统)的。经过训练,该系统可以使用自然语言回答自然语言的问题。在这种情况下,BERT系统训练时的输入数据同时包含了问题和答案。但对于使用数字数据回答问题的 TAPAS 来说,训练的输入数据同时包括问题和表的数字数据,这些数据会被平铺成长长的一个序列。由于数据被平铺了,所以表格就丢掉了与数据结构相关的信息。因此,训练的输入数据还要包含一个嵌入层,该嵌入层是每个单元格的行号、列号以及在列中的排序信息的编码。该模型会输出两组数据集合:一组是表中每个单元可能是答案的概率值,任何概率大于 0.5 的单元格都将包含在最终结果中;另一组则是可选择的操作集合,例如:求和、求平均(如果需要的话,为空的操作也可以在集合里面)。


TAPAS 接受了从维基百科中提取的 620 万个数据表的预训练,这批数据表包含了从文章标题、文章描述、表格标题以及其他相关文本片段中提取的问题。然后,使用特定的基准数据集对该模型进行微调。Google 团队使用了三个基准数据集: SQA、WTQ 和 Salesforce 的WikiSQL。在 SQA 上,TAPAS 达到了 67.2% 的准确率,比之前最高水平提高了 12 个百分点;在 WTQ 上它达到了 48.8%的准确率,比之前的系统提高了 4 个百分点;在 WikiSQL 上 TAPAS 的得分为 83.6%,和最高的 83.9%非常接近。


Google 的训练代码和预训练模型都托管在Github上,同时还提供了一个Colab 教程


原文链接


https://www.infoq.com/news/2020/05/google-natural-language-tables/


2020 年 6 月 02 日 09:191126

评论

发布
暂无评论
发现更多内容

还不懂JVM的设计原理与实现?赶紧跟着字节大牛“身临其境”

周老师

Java 编程 程序员 架构 面试

百度被绿了?

程序员生活志

百度 互联网 头条

Spring 5 中文解析核心篇-IoC容器之BeanDefinition继承与容器拓展点

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之自定义Bean性质

青年IT男

Spring5 Spring Framework

敏捷转型谁先动:老总,项目经理or团队

华为云开发者社区

项目管理 敏捷 敏捷开发 团队 华为云

Spring 5 中文解析核心篇-IoC容器之JSR330标准注解

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之基于Java容器配置

青年IT男

Spring5 Spring Framework

欢迎观看 AzureShow

亮小猪

云计算 开源 技术社区 azure 视频

关于MySQL参数,这些你要知道

Simon

MySQL 参数

再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报

YourBatman

Jackson Fastjson 安全漏洞 CVE-2020-24616

Spring 5 中文解析核心篇-IoC容器之依赖关系

青年IT男

Spring5 Spring Framework

区块链usdt支付平台搭建|OTC承兑跑分系统开发

WX13823153201

区块链usdt支付平台搭建

面试官问:Spring Boot中Tomcat是怎么启动的

Java小咖秀

tomcat 面试 springboot

跟随美团技术大牛的脚步,感受虚拟机源码及调优所带来的独特魅力

周老师

Java 编程 程序员 架构 面试

mPaas 厂商push不通排查指南

阿里云金融线TAM SRE专家服务团队

android push

联盟:互联网时代的人才变革

非著名程序员

互联网 个人成长 人才 人才发展 突破圈层,个体崛起

深挖 Redis 6.0 源码—— SDS

yanglbme

redis 源码 源码分析

Spring 5 中文解析核心篇-IoC容器之Bean作用域

青年IT男

Spring5 Spring Framework

承兑商USDT支付系统平台开发|跑分系统搭建

WX13823153201

数字货币交易所系统开发|交易所搭建源码

WX13823153201

终端传感了解吗?18个知识点为你扫盲

华为云开发者社区

IoT 信息化 传感器 传输协议 无线传输器

话题讨论 | 你的桌面上会放哪些有趣的小摆件?

InfoQ写作平台官方

工作 话题讨论 办公室

Spring 5 中文解析核心篇-IoC容器之类路径扫描和组件管理

青年IT男

Spring5 Spring Framework

Spring 5 中文解析核心篇-IoC容器之Environment抽象

青年IT男

Spring5 Spring Framework

Java集合源码学习笔记,Java程序员面试必备基础知识

Java成神之路

Java 程序员 面试 集合 架构师

Pod安装神策SDK报错Remote branch v2.1.3 not found in upstream origin

凌宇之蓝

ios 小程序flutter, 跨平台 CocoaPods pod React Native

你真的懂AQS吗?透彻理解AQS源码分析系列之AQS基础一

InfoQ_d2212957090d

AQS

Spring 5 中文解析核心篇-IoC容器之IoC容器和Bean概述

青年IT男

Spring5 Spring Framework

在Alibaba广受喜爱的“Java突击宝典”简直太牛了

Java成神之路

Java 阿里巴巴 程序员 面试 架构师

《我要进大厂》之mysql夺命连环13问

艾小仙

Java MySQL 面试题 Java 分布式 大厂

Spring 5 中文解析核心篇-IoC容器之基于注解的容器配置

青年IT男

Spring5 Spring Framework

Google开源表格解析器TAPAS:使用表格数据回答自然语言问题-InfoQ