KMS@知识图谱

知识语言处理工具箱 - DKPLM(二)

2022-01-21  本文已影响0人  processor4d

文章名称

【AAAI-2019】【Alibaba Group】DKPLM: Decomposable Knowledge-enhanced Pre-trained Language Model for Natural Language Understanding

核心要点

文章旨在解决现有知识增强的预训练语言模型(KEPLM)利用encoder进行知识表示时计算耗时严重,导致无法应用到实际场景的问题。提出DKPLM方法,通过1)检测长尾实体,避免注入冗余信息;2)利用“pseudo token”取代长尾实体嵌入表示;3)增加实体关系解码预训练任务,让模型学习重构知识提升模型的知识理解能力等方法增强模型融合知识的能力。

上一节讲解了作者研究的问题背景,以及整体思路和步骤。本节继续讲解作者如何解决高效知识注入的3个问题。

方法细节

问题引入

如前所述,现有知识增强的预训练语言模型(KEPLM)通过引入额外encoder把知识关系(三元)编码为嵌入向量表示,融入到预训练语言模型。但是这样的结构,在训练和预测时都需要额外的计算开销,并且和预训练任务存在一定偏差,导致模型效果存在偏差。因此,作者提出利用知识关系相关的预训练任务,省去额外encoder,提升运算速度。如前所述,知识相关预训练方法需要关注三个问题,

具体做法

首先,我们回顾一下问题的形式化定义,

  • 输入语句记作\left\{w_{1}, w_{2}, \ldots, w_{n}\right\},其中n语句的长度,w_{i}表示具体的token。
  • token的隐向量表示记作\left\{h_{1}, h_{2}, \ldots, h_{n}\right\}
  • 知识图谱记作\mathcal{G}=(\mathcal{E}, \mathcal{R}),其中\mathcal{E}\mathcal{R}分别表示实体和三元关系的集合。
  • \mathrm{KG}中,关系知识三元组表示为 \left(e_{h}, r, e_{t}\right),其中 e_{h}e_{t} 分别指的是头部实体和尾部实体。re_{h}e_{t} 之间的特定关系谓词。

DKPLM的整体框架如下图所示。

framework

Knowledge-aware Long-tail Entity Detection

首先,应该把哪些实体知识注入预训练语言模型呢?实体的出现频率服从power-law distribution,其示意图如下图所示。基于的研究[1],将实体出现频率较高高的关系三元组注入PLM并不总是有利于下游任务的,甚至更有可能引发负面的知识注入。因此,对长尾实体而不是语料库中出现的所有实体进行知识注入,反而是更有效的提高PLM理解能力的方法。

power-low distribution of entity occurance

此外,上述分析只考虑了实体在预训练语料库中的出现频率,忽略了其在KGs中重要程度(或相关信息)以及实体在句子中的重要性。

基于上述亮点考虑,作者提出Knowledge-aware Long-tail Entity Detection。考虑如下3各方面的特性,

  • 实体在预训练语料中的出现频次,Freq(e)。该数值,可以直接从语料中计算得到。
  • 实体e在句子中的重要性,SI(e)。该数值应该反映实体e的语义重要程度,利用对同一个句子替换实体之后的相似度来衡量。替换前后两个句子越相似,实体的重要性越低。假设原句子和替换后的句子表示分别为h_{o}h_{rep}可以利用两者余弦相似度的倒数来衡量SI(e),即S I(e)=\frac{\left\|h_{o}^{T}\right\| \cdot\left\|h_{r e p}\right\|}{h_{o}^{T} \cdot h_{r e p}}。**知道注意的是,在实现中,作者使用特殊标记“[\mathrm{UHN}]”'来替换句子中的实体e
  • 知识连通性,用和实体多跳相邻节点的数量表示,KC(e)。多条邻居数量的具体计算方式如下图所示。其中R_{\min }R_{\max } 是阈值(超参数),将多条的范围限定在其内。|\cdot|表示相邻实体的数量。Hop函数用来计算在KGs结构中实体e和实体e^{\prime}之间的多跳数(一共需要几跳才能到)。
    KC(e)

最终,实体的的“知识感知长尾”程度K L T(e)的计算方法如下,

KLT(e)=\mathbb{I}_{\left\{F req(e)<\mathrm{R}_{\text {freq }}\right\}} \cdot SI(e) \cdot KC( e)

其中 \mathbb{I}_{\{x\}}是指示函数,x是布尔表达式。R_{f r e q} 是一个预定义的阈值,只有实体的出现频次低于这个阈值才被认为是长尾实体。给定一个句子,作者检测所有实体并将 K L T(e) 分数低于平均值的实体当做所谓“知识感知长尾”实体,也就是需要知识注入的实体。

本节介绍了如何作者为什么要选择需要注入知识的实体,以及如何合理的筛选它们。下一节继续介绍知识注入的另外2个问题。

心得体会

长尾实体

作者从多个角度考虑了需要注入知识的实体,相当于引入了先验剔除了冗余注入,甚至是负向注入。感觉有点像知识注入的特征工程。隐隐的觉得和最近大热的Prompt Learning有异曲同工之妙。另外,考虑注入的角度很全面,不但有全语料层面的考虑也有单句层面的考虑,还有知识本身特性,或影响程度的考虑。

唯一感觉可能有的问题是,是否需要进行实体对齐,或者说消除歧义。

文章引用

[1] Zhang, N.; Deng, S.; Cheng, X.; Chen, X.; Zhang, Y.; Zhang, W.; Chen, H.; and Center, H. I. 2021a. Drop Redundant, Shrink Irrelevant: Selective Knowledge Injection for Lan- guage Pretraining. In In IJCAI.

上一篇 下一篇

猜你喜欢

热点阅读