论文笔记《Knowledge Enhanced Contextual Word Representations》

Motivition

作者的出发点有几个:

  1. 尽管BERT这种预训练模型取得了state-of-art的成绩。但是、因为他们没有包含真实世界的实体,所以导致这些模型也很难覆盖真实世界的知识
    没有实体没有知识怎么办呢?Knowledge bases、知识库有。
  2. 知识库不仅拥有丰富的高质量、人类产生的知识,而且他们包含与原始文本中互补的信息,还能够编码事实性的知识。所以用知识库可以解决因不频繁出现但是常识的mention或者长距离依赖造成的难以学习选择偏好的问题

一些解释

  1. 实体(Entity):知识库中完整定义的,唯一存在的条目,每一个实体都可以看作是指代它的名词短语或代词构成的集合
    例:(巴拉克-奥巴马={美国总统,奥巴马,第44任美国总统,他})。
  2. 指称(mention):实体在自然语言文本中的别名或另一种指代形式。
    例:美国总统(名词词组)、奥巴马(命名实体)、第44任美国总统、他(代词)等。
  3. 选择偏好(Selectional Preference):动词的倾向性。谓语(Predicate)对其论元(Argument)是有一定选择倾向性的,不是什么词语都可以通过简单排列组合进行搭配的。[百度百科]

KnowBert

KAR

关键思想

关键思想:在输入文本中显式建模实体跨度(Entity spans),并使用实体链接器(Entity Linker)从KB中检测mention、检索相关的实体嵌入(Entity embeddings),以形成知识增强的实体跨度表示形式。然后使用word-to-entity attention将单词的表示重新上下文化,以携带全部的实体信息。

优点

  1. 不针对特定任务,可以fine-tune
  2. 轻量,增加了少量的参数和运行时间
  3. 便于融合其他KB

方法

1、他人工作:从KB中检测mention、检索相关的实体嵌入(Entity embeddings)

输入:文本
输出:候选实体列表 C C 与之对应的先验概率
例: Prince sang Purple Rain, she …
[Prince] sang [Purple [Rain]],[she]…

在这里插入图片描述
检测mention的方法是2017年的共指消解文章中提及的方法,这里就不展开介绍了,作者也是拿来直接用。2017年的文章做了这两个事情,1、mention检测。2、共指消解。举个例子,输入文本Prince sang Purple Rain, she …,通过mention检测可以获得[Prince] sang [Purple [Rain]],[she],这几个mention,然而这句话当中,Prince和she共同指代同一个实体,那在传统的embedding方式中这个Prince和she的编码可能不太一致,共指消解的目的就是消除这样的不一致。
至于检索相关的实体,作者使用的是基于规则的方式,也是前人的工作。
Entity embeddings呢,对于不同的数据库作者的做法不完全一致,作者使用三类数据库中的知识,对于图结构的数据库,作者使用了2019年知识图谱embedding的最新工作获得实体嵌入,对于仅有实体元数据的数据库,作者在实验部分介绍到他们使用doc2vec的方式直接从Wikipedia描述中学习Wikipedia页面标题的300维嵌入。两种融合在一起的数据库作者也介绍了他们使用的方法。
总之,在本文中,输入一段文本,作者可以检测其中的mention,检索获得对应的Entity Embedding列表,同时也获得实体对应的先验概率。这些是不参与训练的。

KAR

在这里插入图片描述
KAR插入在BERT层间, H i H_i 是整个KAR的输入,是BERT的层间的隐状态。

  1. 第一步为了与Entity Embedding维度一致,对 H i H_i 做了一个线性投影,得到了 H i p r o j e c t H_i^{project}
    在这里插入图片描述
  2. 第二步作者使用之前提到过的共指消解的方法,检测到Prince、Purple Rain和Rain这三个mention,并进行了消解,得到了消解后的编码 S S 。这个 S S 是mention跨度的表示。
  3. 第三步,作者通过一个多头self attention,使得mention可以获得全局信息,进而影响到后续的链接决策中,这一步得到了 S e S^e
    在这里插入图片描述
  4. 第四步,也就是之前提到的Entity Linker,作者希望通过训练得到一个可以将mention正确连接到对应实体embedding的连接器。首先、他将每个mention对应的候选实体列表中的实体embedding依次打分。打分的方式是这个公式
    在这里插入图片描述
    如果我们有ground truth,也就是这个mention所应该真正对应的实体,那么我们就可以对连接器进行训练。
    Loss使用的是这两个当中的之一:
    在这里插入图片描述
    在这里插入图片描述
    都是希望groundtruth对应的打分应该高。Max-margin loss还希望除了groundtruth的其他打分应该比较低。
    在回到我们的第四步,作者将mention对应的打分列表作为了权重,加权实体embedding求和和得到了 e m e^m
  5. 第五步就是将 s m e s_m^e e ~ m \widetilde{e}^m 做一个相加,得到 s m e {s'}_m^e 。整体上就是 S e {S'}^e ,这也就是将知识加入到了实体跨度的表示当中。
  6. 第六步类似transformer的解码过程,Attention中的Q是 H i p r o j e c t H_i^{project} 、K,V是 S e {S'}^e

训练过程

在这里插入图片描述

实验

  • KnowBert+Wiki。知识库来源与CrossWikis和YAGO dictionary,实体embedding方式是使用doc2vec直接从Wikipedia描述中学习Wikipedia页面标题的300维嵌入,在这个模型中,作者没用到知识库中的图结构,他说早期的实验证明,在这个知识库中,图结构没用。
  • KnowBert+WordNet,知识库来源于WordNet中的同义词和词根,embedding方式是TuckER,2019年比较新的知识图谱embeding方式,通过图结构获得同义词和词根的200维表示,然后对于每个同义词的释义,通过一个sentence embedding的方式获得2048维的表示,拼接在一起再线性变化到200维。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
发布了11 篇原创文章 · 获赞 21 · 访问量 9242

猜你喜欢

转载自blog.csdn.net/BigPig_LittleTail/article/details/104511432