唐都钰、孙一博作者

你已经是个成熟的表格了,该学会自然语言处理了

编者按:在我们的生活中,用语音查询天气,用必应搜索信息,这些常见的场景都离不开一种应用广泛的数据存储方式——表格(table)。如果让表格更智能一些,将是怎么样的呢?在这篇文章中,微软亚洲研究院自然语言计算组将为我们介绍基于表格的自然语言理解与生成方向的一系列工作。

表格(table)是一种应用广泛的数据存储方式,被广泛用于存储和展示结构化数据。由于表格数据结构清晰、易于维护、时效性强,它们通常是搜索引擎和智能对话系统的重要答案来源。例如,现代搜索引擎(如必应搜索引擎)基于互联网表格直接生成问题对应的答案;虚拟语音助手(如微软Cortana、亚马逊Alexa等)结合表格和自然语言理解技术回答人们的语音请求,例如查询天气、预定日程等。

我们将在本文中介绍我们在基于表格的自然语言理解与生成方向的一系列工作,包括检索(retrieval)语义解析(semantic parsing)问题生成(question generation)对话(conversation)文本生成(text generation)等五个部分。除了检索任务,其余四个任务的目标均是在给定表格的基础上进行自然语言理解和生成:

  • 检索:从表格集合中找到与输入问题最相关的表格;

  • 义解析:将自然语言问题转换成可被机器理解的语义表示(meaning representation,在本文中是SQL语句),在表格中执行该表示即可获得答案;

  • 问题生成:可看作语义解析的逆过程,能减轻语义解析器对大量标注训练数据的依赖;

  • 对话:主要用于多轮对话场景的语义解析任务,需有效解决上下文中的省略和指代现象;

  • 文本生成:使用自然语言描述表格中(如给定的一行)的内容。

让我们用一张图概括本文接下来所要涉及的内容。

检索 Retrieval

对于给定的自然语言q和给定的表格全集T={T1, T2, .., Tn},表格检索任务的目的是从T中找到与q内容最相关的表格,如下图所示。每个表格通常由三部分构成:表头/列名(table header)、表格单元(table cell)和表格标题(table caption)。

表格检索的关键在于衡量自然语言问题和表格之间的语义相关程度。一个基本的做法是把表格看做文档,使用文本检索中常用的字符串相似度计算方法(如BM25)计算自然语言问题和表格之间的相似度。也有学者使用更多样的特征,如表格的行数、列数、问题和表格标题的匹配程度等。

为了更好地融入表格的结构信息,我们提出了一个基于神经网络的表格检索模型,在语义向量空间内分别计算问题和表头、问题和列名、问题和表格单元的匹配程度,如下图所示。由于问题和表格标题都是词序列,我们均使用双向GRU把二者分别表示为向量表示,最终使用线性层计算二者的相关度。由于表头和表格单元不存在序列关系,任意交换表格的两列或两行应保证具有相同的语义表示,所以我们使用Attention计算问题和表头以及问题和表格单元的相关度。

由于目前表格检索的公开数据集有限,因此我们构建了一个包含21,113个自然语言问题和273,816个表格的数据集。在该数据集上,我们对比了基于BM25的系统、基于手工定义特征的系统以及基于神经网络的系统,结果如下表所示。

可以看出基于神经网络的算法与手工设计的特征性能相近,二者相结合可以进一步提高系统的性能。

更多细节请参照论文:

Yibo Sun, Zhao Yan, Duyu Tang, Nan Duan, Bing Qin. Content-Based Table Retrieval for Web Queries. 2018. Neurocomputing.

语义解析 Semantic Parsing

给定一张网络表格,或一个关系数据库表,或一个关于表的自然语言问句,语义解析的输出是机器可以理解并执行的规范语义表示(formal meaning representation),在本小节我们使用SQL语句作为规范语义表示,执行该SQL语句即可从表中得到问题的答案。

目前,生成任务比较流行的方法是基于序列到序列(sequence to sequence)架构的神经模型,一般由一个编码器(encoder)和一个解码器(decoder)组成。编码器负责建模句子表示,解码器则根据编码器得到的问句表示来逐个从词表中挑选出一个个符号进行生成。

然而, SQL语句遵循一定的语法规则,一条SQL查询语句通常由3种类型的元素组成,即SQL关键词(如SELECT, WHERE, >, < 等)、表格的列名和WHERE语句中的条件值(通常为数字或表格单元)。因此,我们在解码器端融入SQL的语法信息,具体由一个门单元和三个频道组成。门单元负责判断该时刻即将输出符号的类型,三个频道分别为Column、value、SQL频道,在每个频道中分别预测表中列名称、表中单元格名称和SQL语法关键字。该算法在WikiSQL数据集上性能优于多个强对比算法。

更多细节可以参考论文:

Yibo Sun, Duyu Tang, Nan Duan, Jianshu Ji, Guihong Cao, Xiaocheng Feng, Bing Qin, Ting Liu and Ming Zhou. Semantic Parsing with Syntax- and Table-Aware SQL Generation. 2018. ACL.

问题生成 Question Generation

统计机器学习算法的性能通常受有指导训练数据量的影响。例如,我们使用上一小节提出的语义解析算法,在有不同指导训练数据的条件下观察模型的性能(这里的有指导训练数据指的是人工标注的“问题-SQL”对)。下表中x轴是log scale的训练数据量,可以发现语义解析的准确率与训练数据量之间存在Log的关系。

基于上述观察,我们希望使用少量的有指导训练数据,达到同样的语义分析准确率。为此,我们提出了一个基于问题生成的语义分析训练框架,如下图所示。给定一个表格,我们首先使用一个基于规则的SQL采样器生成SQL语句,随后用一个在小规模有指导数据上训练的问题生成模型生成多个高置信度的问题,将新生成的数据与小规模的有指导数据结合,共同训练语义分析模型。另外,问题生成模型是基于Seq2Seq模型,为了增加生成问题的多样性我们在解码器端加入了隐含变量。

更多细节可以参考论文:

Daya Guo, Yibo Sun, Duyu Tang, Nan Duan, Jian Yin, Hong Chi, James Cao, Peng Chen and Ming Zhou. Question Generation from SQL Queries Improves Neural Semantic Parsing. 2018. EMNLP.

我们在WikiSQL数据集上进行实验,使用上一章中所介绍的算法(STAMP)作为基本模型。从下表可以看出,融合问题生成模型的训练算法可以在30%训练数据的条件下达到传统训练算法100%训练数据的性能。使用该算法,在100%训练数据的条件下会进一步提升模型的性能。

对话 Conversational Semantic Parsing

前面我们介绍的语义解析算法针对的都是单轮问答场景,即用户针对一个表格每次问一个独立的问题。而在对话场景下,人们会在前一个问题的基础上继续提问,通常人们会使用指代或省略使对话更加简洁和连贯。例如,在下图的例子中,第2个问句中的”that year”指代第一个问句中提及的年份;第3个问题更是直接省略了问题的意图。

针对多轮对话场景下的语义分析,我们以Sequence-to-Action的形式生成问题的语义表示,在该模式下生成一个语义表示等价于一个动作序列,Sequence-to-Action在单轮和多轮语义分析任务中均被验证是非常有效的方法。

具体地,我们在Mohit Iyyer等人发表在ACL 2017上的研究Search-based Neural Structured Learning for Sequential Question Answering的基础上定义了如下表的动作集合,作为我们Sequence-to-Action模型的语法基础。A1-A4的目的是根据当前语句的内容预测SELECT语句中的列名、WHERE语句中的列名、WHERE语句中的操作符(如=, >, <)和WHERE语句中的条件值;A5-A7的目的是从上一句的历史语义表示中复制部分内容到当前语句的语义表示中。

我们以下图为例介绍模型的工作原理。输入历史问题和当前问题,该模型首先使用Controller模块预测当前问句的动作序列骨架(即未实例化的动作序列),随后使用特定的模型(如基于Attention的column prediction模块)去实例化骨架中的每个单元。当模型预测A5-A7(如下图中所展示的A6),模型实现了复制历史语义表示的功能。

更多细节请参考论文:

Yibo Sun, Duyu Tang, Nan Duan, Jingjing Xu, Xiaocheng Feng, Bing Qin. Knowledge-Aware Conversational Semantic Parsing Over Web Tables. 2018. Arxiv.

自然语言生成
Table-to-Text Generation

很多场景都需要用自然语言形式呈现答案。因此我们基于表格的文本生成工作,目的是用自然语言描述表格中(如给定的一行)的内容。以下图为例,给定表格中的一行,输出一句完整的描述内容。

我们的模型基于Sequence-to-Sequence框架,如下图所示。为了考虑表格的结构性(如打乱表格的各列不改变其表示),我们在编码器模块没有使用序列化的形式去建模各个列的表示;为了有效从表格中复制低频词到输出序列,我们设计了基于表格结构的复制机制。

具体内容请参考论文:

Junwei Bao, Duyu Tang, Nan Duan, Zhao Yan, Yuanhua Lv, Ming Zhou, Tiejun Zhao. Table-to-Text: Describing Table Region with Natural Language. 2018. AAAI.

本文介绍了我们在基于表格的自然语言理解与生成相关的5项工作。目前,与表格相关的自然语言处理研究刚刚起步,方法尚未成熟,对应的标注数据集也相对有限,我们希望与业界研究者们一起共同探索新的方法和模型,推动该领域的进一步发展。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

理论对话系统信息检索文本生成语义解析神经网络NLP
6
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面,智能多媒体,大数据与知识挖掘,人工智能,云和边缘计算,计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的研究,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
最佳匹配25技术

在信息检索领域,Okapi BM25(BM代表最佳匹配)是搜索引擎根据其与给定搜索查询的相关性对匹配文档进行排名的排名函数。它基于Stephen E. Robertson,KarenSpärckJones等人在70年代和80年代开发的概率检索框架。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

关系数据库技术

关系数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

序列到序列技术

语法分析器技术

在计算机科学和语言学中,语法分析是根据某种给定的形式文法对由单词序列构成的输入文本进行分析并确定其语法结构的一种过程。 语法分析器通常是作为编译器或解释器的组件出现的,它的作用是进行语法检查、并构建由输入的单词组成的数据结构。

自然语言生成技术

自然语言生成(NLG)是自然语言处理的一部分,从知识库或逻辑形式等等机器表述系统去生成自然语言。这种形式表述当作心理表述的模型时,心理语言学家会选用语言产出这个术语。自然语言生成系统可以说是一种将资料转换成自然语言表述的翻译器。不过产生最终语言的方法不同于编译程式,因为自然语言多样的表达。NLG出现已久,但是商业NLG技术直到最近才变得普及。自然语言生成可以视为自然语言理解的反向: 自然语言理解系统须要厘清输入句的意涵,从而产生机器表述语言;自然语言生成系统须要决定如何把概念转化成语言。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

推荐文章
暂无评论
暂无评论~