admin管理员组文章数量:1602098
论文 | 知识图谱自动构建 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/pdf/1906.05317.pdf
知识图谱自动构建要素
在正式介绍本篇工作之前,我们首先通过了解知识图谱构建的基本技术路线进行说明(注:本部分不讨论其中涉及的具体方法)。
IEEE & AAAS Fellow,明略科技首席科学家吴信东教授在2019知识图谱前沿技术论坛的分享内容中提到,知识图谱的总体架构中包含两个核心要素:一为后台的领域知识库,二为强化学习配合人机交互实现图谱的自动纠错和自主学习,如下图所示。
结合对相关研究工作的深入了解,以及从0到1的构建一个领域知识图谱的经历可以发现,知识图谱在构建设计之时,便需要有针对领域需求的考虑,以便设计能够很好地应用于下游任务(如检索和推荐等)。这就意味着,知识图谱构建之初由于领域知识的存储量,以及需求的进一步增加或修改,会对已经构建好的知识图谱提出提出扩展更新的需求。
笔者认为,这也是知识图谱自动构建研究工作中最为直接的意义体现。
论文解决的问题
下图为论文中给出的所要解决的任务:
|
|
进行拆解后,可将其表示为:
对于已有知识库中的形如( 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.
这里使用文中给出的框架图作为进一步阐述的依据,其中上图(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
并且,由于第一阶段使用语言模型进行预训练属于无监督形式,故而通过最大化如下似然函数以获得生成下个单词的概率。
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
注:其中关于GPT模型更为详细的图解,可参见链接:http://jalammar.github.io/how-gpt3-works-visualizations-animations/
基于此,结合本文研究问题,可进一步将COMET模型看作是预测新生成新的节点是否能够构成合理的三元组。总结如下:
(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) 进行表示:
可用如下式子表示:
g
~
l
=
M
U
L
T
I
A
T
T
E
N
(
h
l
−
1
)
\widetilde{g}^{l}=MULTIATTEN(h^{l-1})
g
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
h
~
l
=
F
F
N
(
g
l
)
\widetilde{h}^{l}=FFN(g^{l})
h
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
如图(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。
- 相比自注意力机制,多头注意力仅仅是针对同一个 h h h 使用多组 W Q W^{Q} WQ, W K W^{K} WK, W V W^{V} WV矩阵,获得多个自注意力输出 Z Z Z。
- 对于多个注意力输出
Z
Z
Z, 为了保证
Z
Z
Z 和
h
h
h 的维度始终保持一致,因此直接将多个注意力输出
Z
Z
Z 直接拼接,并使用一个新的矩阵
W
o
W^{o}
Wo 进行矩阵运算,得到最终的多头注意力输出
Z
Z
Z。
综上,可以得到Transformer block的矩阵表示结构如下所示:
至此,关于本文模型COMET的细节描述已完。
实验结果与评价
笔者在此仅讨论论文中记录的ATOMIC数据集上的实验,关于ConceptNet数据集上的实验与ATOMIC相似,因此不进一步阐述。
数据集介绍
实验中选用的数据集ATOMIC,为针对特定事件Event的社会常识描述,该知识库包含了从 9 个维度描述事件的 877k 个三元组。实验中,分别选用了 710k / 80k / 87k 的三元组作为训练集 / 验证集 / 测试集。
实验结果
对于指标 BLEU-2,可以评估知识图谱构建的质量;而对于指标 N/T s r o sro sro, N/T o o o, N/U o o o 而言,可以看出新生成的三元组,尾实体object,以及unique object分别在训练集中的占比,即新的节点.
此外,实验还对所生成的三元组使用人工评价的方式进行评价,即选择来自 Amazon Mechanical Turk 的 5 名工作人员,分别从测试集中随机选择 100 个样本生成 10 个候选尾实体,即每种关系下的 100 * 10 = 1000 个三元组打分,分别取 5 名工作者打分的平均作为该关系的Human evaluation分数。并展示了对生成三元组的评价结果实例。
此外,实验考虑到并非所有领域都有足够可以利用的三元组作为训练,因此分别选择训练样本数的 1%, 10%, 50% 作为对比。实验证明,在训练样本数位 710k * 10% = 71k 时,实验结果表现出依旧优良的性能。
版权声明:本文标题:论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1728396043a1157016.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论