天天看点

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction

  • 前言
  • 知识图谱自动构建要素
  • 论文解决的问题
  • 论文方法
    • Module1 -- COMET and GPT model
    • Module2 -- Transformer block
  • 实验结果与评价
    • 数据集介绍
    • 实验结果

前言

知识图谱(Knowledge Graph)自Google提出来之后,从一开始的Google搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟其相关。自动构建知识图谱,使得图谱可以不断的增加新的节点和关系补全,对于不同领域的应用而言都具有及其重要的意义。

本文将通过对发表在ACL 2019年的文献“COMET: Commonsense Transformers for Automatic Knowledge Graph Construction”进行研读分享,以补充知识图谱自动构建研究工作的内容。详细如下:

论文链接: https://arxiv.org/pdf/1906.05317.pdf

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

知识图谱自动构建要素

在正式介绍本篇工作之前,我们首先通过了解知识图谱构建的基本技术路线进行说明(注:本部分不讨论其中涉及的具体方法)。

IEEE & AAAS Fellow,明略科技首席科学家吴信东教授在2019知识图谱前沿技术论坛的分享内容中提到,知识图谱的总体架构中包含两个核心要素:一为后台的领域知识库,二为强化学习配合人机交互实现图谱的自动纠错和自主学习,如下图所示。

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

结合对相关研究工作的深入了解,以及从0到1的构建一个领域知识图谱的经历可以发现,知识图谱在构建设计之时,便需要有针对领域需求的考虑,以便设计能够很好地应用于下游任务(如检索和推荐等)。这就意味着,知识图谱构建之初由于领域知识的存储量,以及需求的进一步增加或修改,会对已经构建好的知识图谱提出提出扩展更新的需求。

笔者认为,这也是知识图谱自动构建研究工作中最为直接的意义体现。

论文解决的问题

下图为论文中给出的所要解决的任务:

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
待解决问题

进行拆解后,可将其表示为:

对于已有知识库中的形如( s s s, r r r, o o o)的三元组集合,其中 s s s 表示subject, r r r 表示relation, o o o 表示object.

给定查询三元组的 s s s, 和 r r r 作为输入, 生成符合该三元组的 o o o.

结果如左图所示,虚线表示新生成的节点和关系.

论文方法

从论文中关于方法的介绍来看,本文提出的方法可使用如下一句话进行概括,即:

The solution introduces the architecture of GPT model, uses multiple transformer blocks of multi-headed scaled dot product attention and FC layers to encode input text.
论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

这里使用文中给出的框架图作为进一步阐述的依据,其中上图(c)中为本文提出的方法COMET的框架结构,让若对GPT模型稍有了解的话,可以判断出这里的结构与GPT model一致;而框架图中的Block则表示Transformer这一模型(即multiple transformer blocks),用作提取特征,对应上图(b)所示;对于transformer block中的self-attention部分,文中采用了multi-head attention (采用scaled dot production,即缩放点积的方式计算),对应上图(a)所示。

Module1 – COMET and GPT model

结合本文提出的问题,在这里笔者借助GPT模型的输入 / 输出结构,并对COMET模型作进一步阐述:

以下图为例,GPT模型,其含义可表示为生成式的预训练过程。因此在第一阶段预训练时,会生成多个训练样本以预测对应样本的当前输出结果。如给定训练样本1:Second law of robotics: ,预测输出结果为 “a”.

  • Generaating training examples
    论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

    并且,由于第一阶段使用语言模型进行预训练属于无监督形式,故而通过最大化如下似然函数以获得生成下个单词的概率。

    L ( U ) = ∑ l o g P ( u i ∣ u i − k , . . . , u i − 1 ; Θ ) L(U)=\sum logP(u_{i}|u_{i-k},...,u_{i-1};\Theta) L(U)=∑logP(ui​∣ui−k​,...,ui−1​;Θ)

  • Training process
    论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
    注:其中关于GPT模型更为详细的图解,可参见链接:http://jalammar.github.io/how-gpt3-works-visualizations-animations/

基于此,结合本文研究问题,可进一步将COMET模型看作是预测新生成新的节点是否能够构成合理的三元组。总结如下:

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

(1)Input token for training model:在给定三元组中的subject以及relation的情况下,预测生成三元组的object是否正确。可将subject token (即 s s s tokens)和relation token(即 r r r token)作为输入训练样本。值得注意的是,由于 s s s tokens可能存在由某一短语词组表示,因此在 s s s tokens与 r r r token之间添加一个mask token用作区分.

(2)模型输入向量表示:由于三元组的表示以( s s s, r r r, t t t),不能随意更换位置,否则该三元组可能无法成立。因此,在训练时,与GPT模型一致,也需要考虑输入字符之间的位置编码信息,因此,模型输入向量表示由word embedding e t e_{t} et​与位置编码postion mebdding p t p_{t} pt​之和组成。

(3)损失函数:与GPT模型一致,模型训练的损失函数由似然函数估计表示,如上图所示.

Module2 – Transformer block

对于模型中采用的多个Transformer block,可以通过下图 (b) 进行表示:

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

可用如下式子表示:

g ~ l = M U L T I A T T E N ( h l − 1 ) \widetilde{g}^{l}=MULTIATTEN(h^{l-1}) g

​l=MULTIATTEN(hl−1)

g l = L A Y E R N O R M ( g ~ l + h l − 1 ) g^{l}=LAYERNORM(\widetilde{g}^{l}+h^{l-1}) gl=LAYERNORM(g

​l+hl−1)

h ~ l = F F N ( g l ) \widetilde{h}^{l}=FFN(g^{l}) h

l=FFN(gl)

h l = L A Y E R N O R M ( h ~ l + g l ) h^{l}=LAYERNORM(\widetilde{h}^{l}+g^{l}) hl=LAYERNORM(h

l+gl)

如图(b)显示,其中较为重要的一层为多头注意力机制(即自注意力层),其模型结构如图 (a) 所示,用来表示针对当前输入的token与在处理下游任务时,应当更加“关注”之前已经输入的“哪一个”token。

笔者参考Transformer结构的图解,在此阐述自注意力层如何起到作用:

(注:更为详细的Transformer图解,参见:http://jalammar.github.io/illustrated-transformer/)

  • 首先,对于当前输入的token由word embedding和postion embedding嵌入表示为 h h h,分别利用三个不同的矩阵,即 W Q W^{Q} WQ, W K W^{K} WK, W V W^{V} WV,分别获取查询向量 Q Q Q, 键向量 K K K,以及值向量 V V V.
  • 利用矩阵运算,进行缩放点积(scaled dot product)可以得到 h h h 的经过自注意力之后的输出 Z Z Z.

值得注意的是,缩放点积与其他计算方式(如additive attention 和 dot product attention)的区别,笔者认为仅仅是根据结果进行选择。一般地,若 d K d_{K} dK​很小,那additive attention 和 dot product attention两种不同的计算结果相差不大;反之,若 d K d_{K} dK​很大,对于dot product attention而言不进行scaling的话,结果会没有additive attention好。并且,由于dot product的结果过大,不进行scaling的情况下经过softmax之后,梯度很小,不利于反向传播,因此,本文中选择使用sclaed dot production attention。

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
  • 相比自注意力机制,多头注意力仅仅是针对同一个 h h h 使用多组 W Q W^{Q} WQ, W K W^{K} WK, W V W^{V} WV矩阵,获得多个自注意力输出 Z Z Z。
论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
  • 对于多个注意力输出 Z Z Z, 为了保证 Z Z Z 和 h h h 的维度始终保持一致,因此直接将多个注意力输出 Z Z Z 直接拼接,并使用一个新的矩阵 W o W^{o} Wo 进行矩阵运算,得到最终的多头注意力输出 Z Z Z。
    论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
    综上,可以得到Transformer block的矩阵表示结构如下所示:
    论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

至此,关于本文模型COMET的细节描述已完。

实验结果与评价

笔者在此仅讨论论文中记录的ATOMIC数据集上的实验,关于ConceptNet数据集上的实验与ATOMIC相似,因此不进一步阐述。

数据集介绍

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

实验中选用的数据集ATOMIC,为针对特定事件Event的社会常识描述,该知识库包含了从 9 个维度描述事件的 877k 个三元组。实验中,分别选用了 710k / 80k / 87k 的三元组作为训练集 / 验证集 / 测试集。

实验结果

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

对于指标 BLEU-2,可以评估知识图谱构建的质量;而对于指标 N/T s r o sro sro, N/T o o o, N/U o o o 而言,可以看出新生成的三元组,尾实体object,以及unique object分别在训练集中的占比,即新的节点.

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价
论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

此外,实验还对所生成的三元组使用人工评价的方式进行评价,即选择来自 Amazon Mechanical Turk 的 5 名工作人员,分别从测试集中随机选择 100 个样本生成 10 个候选尾实体,即每种关系下的 100 * 10 = 1000 个三元组打分,分别取 5 名工作者打分的平均作为该关系的Human evaluation分数。并展示了对生成三元组的评价结果实例。

论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction前言知识图谱自动构建要素论文解决的问题论文方法实验结果与评价

此外,实验考虑到并非所有领域都有足够可以利用的三元组作为训练,因此分别选择训练样本数的 1%, 10%, 50% 作为对比。实验证明,在训练样本数位 710k * 10% = 71k 时,实验结果表现出依旧优良的性能。

继续阅读