ERNIE: Enhanced Language Representation with Informative Entities

ERNIE: Enhanced Language Representation with Informative Entities

当前的预训练语言模型中没有融入KGs信息。而KGs能够为语言理解提供丰富的结构化信息。因此本文提出一种基于大规模语料和KGs训练的增强语言模型ERNIE。实验证明在knowledge-driven任务上,相比于bert取得显著提升。

bert融合上下文,ernie融合上下文和其对应知识库信息。

例如:周杰伦, bert输出只有语义上的信息。

而本文观点是:不仅有语义信息,还要融入KGs信息,例如周杰伦是歌手的信息。

再例如:Bob Dylan 同时是歌曲作家和书籍作者,语义模型很难学出。

knowledge-driven task: entity typing、Relation Classification

  1. 什么是结构化的知识信息?

    ERNIE: Enhanced Language Representation with Informative Entities

结构化信息:图结构,包含node(实体)、边(实体间关系),如何embedding图结构呢?本文使用TransE,见下文。
如果没有Blowin’ in the Wind=song, Chronicles=book,entity typing很难推断出bob dylan是songwriter、writer。

问题:

  1. Structured Knowledge Encod-ing:怎么将KG信息编码。
  2. Heterogeneous Information Fusion:怎么融合词汇、句法和知识信息。

模型结构:
ERNIE: Enhanced Language Representation with Informative Entities

{w1,,wn}=T-Encoder ({w1,,wn})\left\{w_{1}, \ldots, w_{n}\right\}=\text {T-Encoder }\left(\left\{w_{1}, \ldots, w_{n}\right\}\right)

{w1o,,wno},{e1o,,eno}=K-Encoder ({w1,,wn},{e1,,em})\left\{w_{1}^{o}, \ldots, w_{n}^{o}\right\},\left\{e_{1}^{o}, \ldots, e_{n}^{o}\right\}=\text {K-Encoder }(\left\{w_{1}, \ldots, w_{n}\right\},\left\{e_{1}, \dots, e_{m}\right\} )

Textual-Encoder

是一个多层的双向Transformer encoder,输入每个词语{w1,,wn}\{w_{1}, \dots, w_{n}\}的token embedding, segment embedding, positional embedding求和。
ERNIE: Enhanced Language Representation with Informative Entities

“segment embedding”的概念来区分句子。对于句对来说,就用embedding A和embedding B来分别代表左句子和右句子,例如左句都是1, 右句都是0;而单个句子来说,就只有embedding A。

Knowledgeable Encoder

输入各个实体{e1,...,en}\{e_{1}, ..., e_{n}\},通过预训练TransE将实体转化为embedding向量。
TransE伪代码,还是比较容易懂。
目标: f(“Bob Dylan”) + f(“is_a”) = f(“Songwriter”)
其中:h = Bob Dylan, l = is_a, t = Songwriter。同时也要引入负样本,非l两边的节点加入作为h’, t’。(h’, l, t’)构成负样本。
ERNIE: Enhanced Language Representation with Informative Entities

S(h,,t)={(h,,t)hE}{(h,,t)tE}S_{(h, \ell, t)}^{\prime}=\left\{\left(h^{\prime}, \ell, t\right) | h^{\prime} \in E\right\} \cup\left\{\left(h, \ell, t^{\prime}\right) | t^{\prime} \in E\right\}

实体和token的embedding通过多头的attention:
{w~1(i),,w~n(i)}=MHATT({w1(i1),,wn(i1)} \{\tilde{w}_{1}^{(i)}, \ldots, \tilde{w}_{n}^{(i)}\}=\mathrm{MH}-\mathrm{ATT}(\{\boldsymbol{w}_{1}^{(i-1)}, \ldots, \boldsymbol{w}_{n}^{(i-1)}\}

{e~1(i),,e~m(i)}=MHATT({e1(i1),,em(i1)} \{\tilde{e}_{1}^{(i)}, \ldots, \tilde{e}_{m}^{(i)}\}=\mathrm{MH}-\mathrm{ATT}(\{e_{1}^{(i-1)}, \ldots, e_{m}^{(i-1)}\}

i-th information fusion layer:

对于包含实体信息的tokens:
hj=σ(W~t(i)w~j(i)+W~e(i)e~k(i)+b~(i))wj(i)=σ(Wt(i)hj+bt(i))ek(i)=σ(We(i)hj+be(i)) \begin{aligned} \boldsymbol{h}_{j} &=\sigma\left(\tilde{\boldsymbol{W}}_{t}^{(i)} \tilde{\boldsymbol{w}}_{j}^{(i)}+\tilde{\boldsymbol{W}}_{e}^{(i)} \tilde{\boldsymbol{e}}_{k}^{(i)}+\tilde{\boldsymbol{b}}^{(i)}\right) \\ \boldsymbol{w}_{j}^{(i)} &=\sigma\left(\boldsymbol{W}_{t}^{(i)} \boldsymbol{h}_{j}+\boldsymbol{b}_{t}^{(i)}\right) \\ e_{k}^{(i)} &=\sigma\left(\boldsymbol{W}_{e}^{(i)} \boldsymbol{h}_{j}+\boldsymbol{b}_{e}^{(i)}\right) \end{aligned}
未包含token的实体:
hj=σ(W~t(i)w~j(i)+b~(i))wj(i)=σ(Wt(i)hj+bt(i)) h_{j}=\sigma\left(\tilde{\boldsymbol{W}}_{t}^{(i)} \tilde{\boldsymbol{w}}_{j}^{(i)}+\tilde{\boldsymbol{b}}^{(i)}\right) \\ \boldsymbol{w}_{j}^{(i)}=\sigma\left(\boldsymbol{W}_{t}^{(i)} \boldsymbol{h}_{j}+\boldsymbol{b}_{t}^{(i)}\right)
输出w, e怎么使用?

Pre-training for Injecting Knowledge

为了将KGs信息表达,提出了新一个预训练任务。

对于句子,随机掩盖token-entity的entity,让模型来预测,搜索空间是句子中所有出现过的entites,即
p(ejwi)=exp(1inear(wio)ej)k=1mexp(1 i near (wio)ek) p\left(e_{j} | w_{i}\right)=\frac{\exp \left(1 \mathrm{i} \operatorname{near}\left(\boldsymbol{w}_{i}^{o}\right) \cdot \boldsymbol{e}_{j}\right)}{\sum_{k=1}^{m} \exp \left(1 \text { i near }\left(\boldsymbol{w}_{i}^{o}\right) \cdot e_{k}\right)}
损失函数使用交叉熵。

模拟随机噪音:

  • 5%的概率,将token-entity对的entity随机替换掉。加入噪音,使得模型在少量token的实体信息错误情况下的鲁棒性。
  • 15%概率,掩掉token-entity。
  • 其余的正常。

另外,和bert一样,使用masked language model (MLM) and next sentence prediction (NSP)作为语言模型。

Fine-tuning

ERNIE: Enhanced Language Representation with Informative Entities

对于一般任务,输入为token。

对于entity typing,加入了实体的标记信息。

对于relation classification,加入了实体和其位置信息。

对于普通任务,使用方法和bert一致。

ERNIE: Enhanced Language Representation with Informative Entities

实验

什么是关系抽取和关系分类。

  • 关系抽取: 从一个句子中判断两个entity是否有关系,一般是一个二分类问题,指定某种关系
  • 关系分类: 一般是判断一个句子中 两个entity是哪种关系,属于多分类问题。

ERNIE: Enhanced Language Representation with Informative Entities

例如:第一行为sentence,第二行为两个entity的relation

GLUE:
ERNIE: Enhanced Language Representation with Informative Entities

reference

  1. git: https://github.com/thunlp/ERNIE.
  2. ERNIE: Enhanced Language Representation with Informative Entities