1. 前言

ELMo模型是2018年3月份提出的,模型会根据上下文来推断每个词对应的词向量,能够根据语境来对多义词理解。

2. ELMo模型

ELMo, Embedding from language models, 是一种双向语言模型。

对于给定一个序列的 N N N个tokens, ( t 1 , t 2 , t 3 , . . . , t N ) (t_1, t_2, t_3, ..., t_N) (t1,t2,t3,...,tN), 前向语言模型计算序列的概率:

p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t 1 , t 2 , … , t k − 1 ) p\left(t_{1}, t_{2}, \ldots, t_{N}\right)=\prod_{k=1}^{N} p\left(t_{k} \mid t_{1}, t_{2}, \ldots, t_{k-1}\right) p(t1,t2,,tN)=k=1Np(tkt1,t2,,tk1)

反向LM(backward LM)和前向的LM相似,根据未来的内容来预测之前的token:

p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t k + 1 , t k + 2 , … , t N ) p\left(t_{1}, t_{2}, \ldots, t_{N}\right)=\prod_{k=1}^{N} p\left(t_{k} \mid t_{k+1}, t_{k+2}, \ldots, t_{N}\right) p(t1,t2,,tN)=k=1Np(tktk+1,tk+2,,tN)

双向的模型BiLM结合了前向和反向LM,联合最大化log 似然函数:

∑ k = 1 N ( log ⁡ p ( t k ∣ t 1 , … , t k − 1 ; Θ x , Θ ⃗ L S T M , Θ s ) + log ⁡ p ( t k ∣ t k + 1 , … , t N ; Θ x , Θ ← L S T M , Θ s ) ) \begin{array}{l} \sum_{k=1}^{N}\left(\log p\left(t_{k} \mid t_{1}, \ldots, t_{k-1} ; \Theta_{x}, \vec{\Theta}_{L S T M}, \Theta_{s}\right)\right. \\ \left.\quad+\log p\left(t_{k} \mid t_{k+1}, \ldots, t_{N} ; \Theta_{x}, \overleftarrow{\Theta}_{L S T M}, \Theta_{s}\right)\right) \end{array} k=1N(logp(tkt1,,tk1;Θx,Θ LSTM,Θs)+logp(tktk+1,,tN;Θx,Θ LSTM,Θs))

其中, Θ x \Theta_{x} Θx是token 表示, Θ s \Theta_{s} Θs是softmax 层表示。

双向LSTM语言模型:
在这里插入图片描述

如果LSTM有L个输入节点,那么,BiLM会有2L+1个向量表示。
在这里插入图片描述
为了结合下游模型,ELMo模型需要把 R R R中LSTM所有层的向量表示层一个向量。最简单的方法是,ELMo只选择最后一层:

E ( R k ) = h k , L L M E\left(R_{k}\right)=\mathbf{h}_{k, L}^{L M} E(Rk)=hk,LLM

一般地,根据一个任务,对BiLSTM所有层进行计算权重:
在这里插入图片描述

其中, s task \mathrm{s}^{\text {task}} stask是softmax 归一化的权重,标量参数 γ t a s k \gamma ^ {task} γtask 可以让目标模型放大缩小整个ELMo向量。

在优化过程中, γ \gamma γ是一个重要的意义。

此外,如果每个biLM 层的经过激活函数后又不同的分布,可以对每个biLM 层应用 layer normalization.

2.1 BiLMs应用到有监督的NLP任务

对于一个NLP任务,给定一个预训练的BiLM和有监督的框架,
首先,考虑在最底层的有监督模型(没有biLM),它们会共享一个公共的框架。 给定序列 ( t 1 , . . . , t N ) (t_1, ..., t_N) (t1,...,tN), 很标准组成一个内容独立的token 表示 x k x_k xk. 应用ELMo时,把单词的表征和ELMo表征的向量进行拼接:
[ x k ; E L M o k task  ] \left[\mathrm{x}_{k} ;\right. ELMo \left._{k}^{\text {task }}\right] [xk;ELMoktask ]

2.2 预训练双向语言模型框架

预训练结构:
在这里插入图片描述
两个方向可以联合训练,LSTM层之间增加残差连接,并且使用大规模语料训练。

在Jozefowicz的CNN-BIG-LSTM 模型基础上,增加了 L=2的 biLSTM模型(4096个units, 512维度的映射)。

每个输入的token,包含三层的表示。

3. 实验

在这里插入图片描述

4. 总结

ELMo训练时间长,采取双向拼接的融合特征能力比Bert一体化的融合特征方式弱。


参考:

  1. 原论文 Deep contextualized word representations
  2. Exploring the Limits of Language Modeling
Logo

分享最新、最前沿的AI大模型技术,吸纳国内前几批AI大模型开发者

更多推荐