文章名称
【AAAI-2019】【Alibaba Group】DKPLM: Decomposable Knowledge-enhanced Pre-trained Language Model for Natural Language Understanding
核心要点
文章旨在解决现有知识增强的预训练语言模型(KEPLM)利用encoder进行知识表示时计算耗时严重,导致无法应用到实际场景的问题。提出DKPLM方法,通过1)检测长尾实体,避免注入冗余信息;2)利用“pseudo token”取代长尾实体嵌入表示;3)增加实体关系解码预训练任务,让模型学习重构知识提升模型的知识理解能力等方法增强模型融合知识的能力。
方法细节
问题引入
知识增强的预训练语言模型(KEPLM)通过将知识图谱中的关系三元组注入到语言模型的预训练过程中,以提高模型的语义理解能力。现有KEPLM可以分为2大类,
- 嵌入表示类。利用TransE[1]的等方法学习知识的嵌入表示,并作为上下文信息传入模型。但是不同的知识表示方法严重影响模型性能。
- 联合训练。联合训练知识表示和语言模型。这两个任务偏差太远,很难得到相互促进。
此外,现有方法还有2个比较大的弱点, - 运算速度慢。在训练和预测时都需要大量的知识,导致运算速度很慢,难以适应线上需求。
- 无差别对待知识实体。在预训练语言模型时,无差别的注入实体知识,引入了冗余信息,浪费了计算资源。
具体做法
DKPLM的流程大致可以分为3部分,
- Knowledge-aware Long-tail Entity Detection。根据语料库中的频率、KG 中相邻实体的数量和语义重要性检测用于知识注入的长尾实体。
- Pseudo Token Representation Injection。我们将检测到的长尾实体的嵌入替换为由共享 PLM 编码器生成的相应知识三元组的表示,称为“伪令牌表示”。 因此,在没有向模型引入任何额外参数的情况下注入知识。
- Relational Knowledge Decoding。对于关系三元组,我们使用一个实体的表示和关系谓词来解码另一个实体的每个标记。 该预训练任务充当 KEPLM 的监督信号,迫使模型了解向 KEPLM 注入了哪些知识
首先,我们形式化一下问题的定义,
- 输入语句记作
,其中
语句的长度,
表示具体的token。
- token的隐向量表示记作
。
- 知识图谱记作
,其中
,
分别表示实体和三元关系的集合。
中,关系知识三元组表示为
,其中
和
分别指的是头部实体和尾部实体。
是
和
之间的特定关系谓词。
作者采用的方法与其说是KEPLM的变种,不如说更像是PLM(pre-trained language model)的变种,因为作者基于RoBERTa,训练和知识图谱相关的预训练任务,而不引入额外的encoder和decoder。为了不使用任何额外的知识encoder,来学习知识表示,作者分三步将知识学习注入到PLM预训练任务中,在预训练过程学习长尾实体的知识关系。
上述预训练方法需要关注三个问题,
- 应该检测预训练语料库中哪些类型的token进行知识注入?
- 如何在没有额外知识encoder的情况下将知识注入选定的token?
- 如何在预训练期间验证注入的知识关系的有效性?
DKPLM的整体框架如下图所示。

本节讲解了作者研究的问题背景,以及整体思路和步骤。下一节继续讲解作者如何解决高效知识注入的3个问题。
心得体会
KEPLM
个人感觉,作者的主要贡献是为知识图谱的注入寻找了合适的预训练任务,任务能够帮助模型在不引入额外参数和模型的情况下,提升知识学习和表示的能力,并在预测阶段不需要大量的计算。
文章引用
[1] Bordes, A.; Usunier, N.; Garc ́ıa-Dura ́n, A.; Weston, J.; and Yakhnenko, O. 2013. Translating Embeddings for Modeling Multi-relational Data. In NIPS, 2787–2795.
网友评论