自从神经网络模型在自然语言处理任务(Neural Language Process,NLP)中得到不断的应用,该任务得到了飞速的发展。近几年,由于在多项NLP任务上取得了巨大的进步,预训练语言模型开始得到广泛的关注。比如ELMo、GPT以及BERT。本文通过将预训练语言模型和知识图谱信息相结合,充分利用语义语法和背景知识等特征,相比于普通的预训练语言模型,在多个知识驱动的NLP任务上得到了巨大的提升。
论文地址:
https://arxiv.org/pdf/1905.07129.pdf
引言
在大规模语料库上进行预训练的神经语言表示模型,如BERT等,能够很好地从文本中捕捉到丰富的语义信息。接着通过精调,可以在各种各样的NLP任务上进一步提升效果。然而,现有的预训练语言模型很少考虑引入知识图谱(Knowledge Graphs, KGs)信息。知识图谱可以提供丰富的结构化知识信息以便更好地理解语言。如果能将知识图谱融入到预训练语言模型中,对于模型对自然语言的表示能力能有进一步的提升。
数据集
论文使用英文维基作为预训练的数据集,其中包含4500M的子词以及140M的实体。
论文使用的任务数据集如图1和图2所示,
论文还在GLUE基准测试集上对八种任务进行了测试,它们分别是MNLI-(m/mm),QQP,QNLI, SST-2,CoLA,STS-B,MRPC和RTE。
模型细节
要将知识图谱融入到预训练语言模型中面临着两个挑战。
1)如何对知识图谱信息进行编码
2)如何将异构信息融合
如何对知识图谱信息进行编码可以分为两个子问题。
首先是如何通过给定文本抽取关系实体表示。论文使用开源工具TAGME,将给定文本中的命名实体与知识图谱中的实体建立映射关系。再将知识信息通过信息实体引入预训练模型中。
其次是如何表示结构化信息。论文使用知识编码算法对知识图谱的图结构进行编码,再将编码信息作为输入输入到语言模型中。
论文提出了名为ERNIE(Enhanced Language Representation with Informative Entities )的预训练语言模型,其整体结构图如图3所示。
图3(a)中,T-Encoder是针对文本的编码器,K-Encoder是针对知识融合的编码器。精确来说,针对一个给定的序列
w
1
,
.
.
.
,
w
n
{w_1,...,w_n}
w1,...,wn以及其所对应的实体序列
e
1
,
.
.
.
,
e
n
{e_1,...,e_n}
e1,...,en,编码器首先将token编码,segment编码以及每一个token对应的位置信息编码进行求和作为模型的输入编码,其计算公式如下,
T-Encoder和BERT结构相同,是一个多层的双向Transformer编码器。
经过
w
1
,
.
.
.
,
w
n
{w_1,...,w_n}
w1,...,wn的计算,ERNIE使用了一个K-Encoder将知识信息融入语言表示中去。对于实体序列
e
1
,
.
.
.
,
e
n
{e_1,...,e_n}
e1,...,en,论文先使用预训练的TransE模型计算它们的embedding信息,再将
w
1
,
.
.
.
,
w
n
{w_1,...,w_n}
w1,...,wn和
e
1
,
.
.
.
,
e
n
{e_1,...,e_n}
e1,...,en共同送入K-Encoder进行融合计算,其计算公式如下,
K-Encoder包含多层的聚合器,对于第i个聚合器,其输入编码w和实体编码e可以表示u为,
然后,第i个聚合器使用一个信息融合层将二者进行融合,其表达式为,
其中,
h
j
h_j
hj表示信息融合后的隐层状态。
θ
\theta
θ表示一个非线性激活函数,通常使用GLEU函数。
训练细节
论文设计了一个新的预训练任务,叫做Denoising Entity Auto-encoder (dEA)。要求模型根据输入预测序列中的实体,
其预训练方式和BERT相似,随机替换5%的实体,随机遮掉15%的实体,维持剩下的80%不变,如下图所示。
实验结果
论文在5类数据集,多项任务上进行了实验。
结论
论文提出了一种通过引入知识图谱信息增强语言表示能力的预训练语言模型ERNIE。这个预训练语言模型在需要知识驱动的NLP任务上相比较不使用知识图谱的语言模型提升巨大。随着NLP技术的不断进步,一方面要依赖于大规模语料训练下的预训练语言模型,另一方面也需要借助外部知识的引入帮助NLP模型获取传统数据不具有的额外知识信息。
扫码识别关注,获取更多论文解读