AI2等提出自动知识图谱构建模型COMET,接近人类表现

知识图谱是人工智能研究的热门领域。它能够提供先验知识,使机器学习在常识的基础上更加智能。然而,自动化的知识图谱构建一直是该领域需要解决的难题。传统的抽取方法(extractive method)被认为效果不佳,需要大量人力投入和调整。近期,艾伦人工智能实验室和微软的研究人员提出了一种利用预训练语言模型自动构建常识型知识图谱的方法,已接近人类的表现。论文已被 NLP 顶会 ACL 2019 接收。


链接:https://arxiv.org/pdf/1906.05317v1.pdf

自动知识图谱的构建一般关注百科知识,从而被限定在一个定义好的实体和可建模关系的空间内。但是,常识知识并不能很好地符合「实体 1-关系-实体 2」这样常用的知识图谱构建结构。

同时,近期深度语境语言模型(即预训练语言模型)的研究进展有助于探索新的模式——一种超越传统抽取方法(extractive method)的常识知识图谱构建方法。这些大规模语言模型在调整底层语言表示来解决末端任务时展现出了卓越性能,在多个复杂问题上达到当前最佳表现。

研究人员将自动知识图谱构建视为常识生成任务,并探索了大型语言模型生成自动构建常识知识图谱所需知识的能力。他们提出了 COMmonsEnse Transformers (COMET),可以根据自然语言生成丰富多样的常识描述。COMET 使用现有的三元组作为知识的种子集进行训练。基于这些种子集,预训练语言模型调整其学得语言表示,用于生成知识,并输出高质量的新型三元组。研究表明,深度预训练语言模型可以生成常识知识图谱所需的显式知识,并取得了很好的结果。实验显示,COMET 可以生成被人类评价为「高质量」的知识,在 ATOMIC 上可以达到 77.5% 的精确度,在 ConceptNet 上可以达到 91.7% 的精确度,已经接近人类在这些资源中的表现。研究结果说明,使用生成常识模型进行自动常识知识图谱补全很快可以成为抽取模型的有效替代方法。

图 1:COMET 从一个已有知识图谱中学习(实线),并生成新的节点和边(虚线)。

模型架构

任务

COMET 使用知识三元组作为种子集进行预训练,并使用训练好的语言模型构建常识知识图谱。三元组向 COMET 提供知识图谱的结构和关系信息,COMET 则调整预训练语言模型的语言表示,从而在种子知识图谱中添加新的节点和边。

具体来说,假设 COMET 获得的训练知识图谱是自然语言三元组,形式如 {s,r,o}。在这个三元组中,s 是三元组的 subject,r 是实体关系,o 是三元组的 object。例如,和「taking a nap」(睡一小会儿)有关的 ConceptNet 三元组是这样的:s=「take a nap」,r=Causes,o=「have energy」。自动构建知识图谱的任务就是根据 s 和 r 生成 o。

Transformer

研究人员使用 Radford et al. (2018) (GPT) 中的 Transformer 语言模型架构,GPT 使用了具备多头缩放点乘注意力机制的多个 transformer 模块。

输入编码

在模型的输入部分,研究人员将三元组 {s, r, o} 表示为三元组中每一项所包含单词的序列,如下所示(X 表示输入单词):

由于 transformer 中没有 token 顺序的概念,因此,对于序列中每个 token 的绝对位置建模了位置嵌入向量 p_t。对于任意输入词 x_t ∈ X,输入编码是其词嵌入向量 e_t 和在序列中的绝对位置嵌入向量 p_t 的和:

COMET 模型架构

该模型遵循 Radford et al.(2018) 的GPT 模型架构,研究人员用 12 层、768 个隐藏层维度、12 个注意力头初始化 COMET。Dropout 率为 0.1,使用 GeLU 作为激活函数。训练批大小为 64。

图 2:模型架构图示。a)多头注意力模块;b)Transformer 模块内部的计算方法;c)对每个 token 进行处理的方式。

模型训练

COMET 用于根据给定的 subject s 和关系 r,生成三元组中的 object o。具体来说,给定构成 s 和 r 的 token [X^s,X^r] 作为输入,COMET 模型需要生成所有组成 o 的 token X^o。

损失函数

COMET 需要最大化预测 X^o 的条件似然:

下图 3 展示了在不同训练任务中,s、r 和 o 中 token 的组织形式。


图 3:输入 token 设置。对于 ATOMIC 数据集,输入的顺序为:先是三元组 subject 的 token X^s,紧接着是 [MASK] token,然后是关系 token X^r,最后是三元组 object 的 token X^o。对于 ConceptNet 数据集,则需要在关系实体 X^r 和 object token X^o 之间再加入一个 [MASK] token,因为 X^r 在 ConceptNet 中可能有很多个 token。

数据集

COMET 使用现有的三元组作为知识的种子集进行训练,来学习构建常识知识图谱。该研究使用了 ATOMIC 和 ConceptNet 作为知识种子集。

ATOMIC 数据集有 87 万个三元组,包括围绕一些特定事件提示(如「X 去商店」)的大量社会常识知识。具体来说,ATOMIC 将常识分为九个维度,包括事件的起因(例如,「X 需要开车到那里」)、事件对主体的影响(例如,「获得食物」),以及其对另一参与方的直接或间接影响(例如,「其他人可以吃饱」)。

在刚才的例子中(「X 去商店」)是 s,而维度(「X 要...」)是实体关系 r,而起因/影响(「获得食物」)是 o。该研究使用了 710k 个三元组作为训练集,80k 作为验证集,87k 作为测试集。

ConceptNet 是由 Open Mind Common Sense(OMCS)构成的数据集。三元组是典型的「s-r-o」结构(例如,「睡一会儿-导致-获得能量」)。最可信的 1200 个三元组被用于构建测试集,另外 1200 个构成两个验证集,还有 100k 的训练集。这个数据集总共有 34 个关系类型。

实验结果

ATOMIC 实验结果


表 1:对各个模型生成 ATOMIC 常识的质量和新颖程度进行自动评估的结果。

表 2:对各个模型生成 ATOMIC 常识的人类打分结果。

表 5:从 ATOMIC 验证集中随机抽取的新生成。新生成指的是不在训练集中的三元组。每个三元组都由人类评估并判断是否合理。

ConceptNet 实验结果

表 6:ConceptNET 生成结果。

表 7:从 ConceptNet 的验证集随机抽取的新生成。

理论自然语言处理ACL 2019ACLAI2知识图谱
4
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

Dropout技术

神经网络训练中防止过拟合的一种技术

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

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