Press "Enter" to skip to content

AAAI 2020 开源论文 | 语义感知BERT(SemBERT)

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

作者丨张倬胜

学校丨上海交通大学硕士生

研究方向丨自然语言理解

 

本文从计算语言学角度,提出使用显性语义角色信息来改善深度语言模型的建模性能,将语义角色标注用于机器阅读理解和推理任务中,提供更加丰富和精准的语义信息。本论文来自上海交通大学与云从科技联合创新实验室,录用于 AAAI 2020。

 

 

论文地址: https://arxiv.org/abs/1909.02209

 

开源代码: https://github.com/cooelf/

 

引言

 

机器阅读理解的目标是教会机器学习并理解人类语言、像人一样思考与交流,是深度学习促进自然语言处理的研究和工程应用后兴起的实用性任务。机器阅读理解融合了文本上的知识表达、语义理解和一定程度上基于知识的推理等一系列挑战。

 

上下文表示是文本理解的核心模块,最新基于大规模预训练的深度语言模型有效集成了语境化特征,在大量的自然语言处理任务上获得巨大的成功,尤其是在各种机器阅读理解和自然语言推理任务。

 

然而,许多研究者发现当前许多机器阅读理解模型未能“真正”地理解语义信息,在一些人类易懂的题目上机器容易犯错。现有的语言表示模型(包括 ELMO、GPT、BERT、XLNet 等),只利用了简单的上下文特征,如字符或子词嵌入,缺乏对结构化语言学信息的考虑,而这些信息可以为语言表达提供丰富的语义和结构化知识,构建更加精确的文本表征。

 

为了增强自然语言理解,本文提出通过预训练的语义角色标注模型引入显式的上下文语义标签信息,并 引入一种改进的语言表示模型——语义感知 BERT (SemBERT) ,它能够在 BERT 为基础的骨架网络上,显性地融合上下文语义信息。SemBERT 保持了 BERT 的易用性,只需进行适应性的微调,而无需对特定任务进行大幅度的模型修改。

 

与 BERT 相比,SemBERT 在概念上同样简单,但性能却更为强大。SemBERT 在 10 项自然语言理解任务上显着地提升了基准模型,甚至达到了最佳的水平。

 

 

▲  SemBERT模型架构

 

SemBERT 模型包括三个部分:

 

1)语义角色标注器,用于对文本进行标注,给输入的句子标注谓词-论元结构(词级别);

 

2)序列编码模块,其中使用预训练的语言模型构建输入原始文本的向量表示,通过 CNN 将子词级表示重构为词级别实现与标签对齐;同时,将语义角色标签向量化,构建语义标签向量表示;

 

3)语义集成模块,用于将文本表示与语义标签向量表示集成融合,以获得可用于下游任务的联合表示。

 

 

▲  SemBERT输入数据结构

 

1. 语义角色标注

 

语义角色标注(SRL)旨在发现句子的谓词-论元结构。它以句子的谓词为中心,分析句子中各成分与谓词之间的关系,即句子的谓词(Predicate)- 论元(Argument)结构。

 

谓词是对主语的陈述或说明,指出“做什幺”、“是什幺”或“怎幺样,代表了一个事件的核心,跟谓词搭配的名词称为论元。语义角色是指论元在动词所指事件中担任的角色。主要有:施事者(Agent)、受事者(Patient)、客体(Theme)、经验者(Experiencer)、受益者(Beneficiary)、工具(Instrument)、处所(Location)、目标(Goal)和来源(Source)等。

 

例如:对于文本 {reconstructing dormitories will not be approved by cavanaugh},由于包含 2 个谓词,因此对应 2 个谓词-论元结构序列。

 

[ARG1: reconstructing dormitories] [ARGM-MOD: will] [ARGM-NEG: not] be [V: approved] [ARG0: by cavanaugh]

 

[V: reconstructing] [ARG1: dormitories] will not be approved by cavanaugh}

 

2. 编码模块

 

主要分别将自然语言文本和语义角色标签序列向量化:

 

1)文本序列: 原始文本序列 X 首先被 BERT 的子词切分器切分为子词。然后输入到 Transformer,得到具有上下文的文本向量表示。

 

2)标签序列: 对于与谓词数量相对应的 m 个标签序列  ,每个序列  长度等于原始句子 X 的长度 n。将标签向量输入到 BiGRU 层以获得以上 m 个标签序列在向量空间的表示,然后我们将 m 个标签序列拼接起来,并将它们输入到全连接层,获得多个标签序列的融合表示。

 

 

3. 语义集成模块

 

该集成模块融合了文本序列表示和标签表示。由于原始的预训练 BERT 基于子词序列(Subword-level),而我们引入的语义标签基于词级别(word-level),因此我们在融合前需要将词语标签对齐。我们将每个词语的子词分组,并使用卷积神经网络(CNN)提取每个词语所对应的的子词特征,从而获得全局词级别的表示。

 

我们以一个词为例:假设词语 由一系列子词  组成,其中 l 是词语的子词数量。经过 BERT 编码后,将子词 的向量表示为 ,将其输入到卷积神经网络 Conv1D 后通过 ReLU 激活和最大池化得到词级别的表示。

 

 

然后将词级别对齐的文本序列向量和提取的标签序列向量融合得到语义增强的语言表示。

 

实验结果

 

我们的模型在 10 个基准数据集中进行了评估,这些数据集涉及自然语言推理,机器阅读理解,语义相似性和文本分类等多种任务。

 

 

▲  GLUE实验结果

 

 

▲  SQuAD实验结果

 

 

▲  SNLI实验结果

 

结果分析

 

GLUE 上的实验显示了 SemBERT 在所有任务上均有效增强 BERT,并且获得了领先的结果。SemBERT 模型简单且有效,通过极少的参数增长,取得了与更复杂的模型相接近,甚至超越了多任务学习模型的性能。对于 SQuAD,SemBERT 在 EM 和 F1 指标上均优于 BERT 基准模型,超越了所有已发表的工作,并取得了与排行榜中的一些未发表的、更复杂模型可比的性能。而在 SNLI 数据集上的实验显示 SemBERT 达到了该数据集上的最佳性能,甚至超过所有 Ensemble (SNLI 排行榜: https://nlp.stanford.edu/projects/snli/ )。

 

本工作揭示了显性语义信息在自然语言理解上的有效性,这表明显式上下文语义可以与最新的预训练语言表示有效地集成融合,从而进一步提高性能。除了这项工作中验证的各种任务之外,SemBERT 还可以轻松地适应其他语言。

 

SRL 是 NLP 的一项基本任务,CoNLL 2009 提供了 7 个 SRL 树库,因此可以方便地训练主要语言的标签。对于那些没有可用的树库的场景,可以有效地应用无监督的 SRL 方法。对于跨领域问题,我们所研究的数据集(GLUE 和 SQuAD)涵盖了非常不同的领域,并且实验表明我们的方法仍然有效。

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注