解读:ELMo模型
1. 前言ELMo模型是2018年3月份提出的,模型会根据上下文来推断每个词对应的词向量,能够根据语境来对多义词理解。2. ELMo模型双向LSTM语言模型:如果LSTM有L个输入节点,那么,BiLM会有2L+1和向量。BiLSTM向量的加权和:参考:Deep contextualized word representations...
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=1∏Np(tk∣t1,t2,…,tk−1)
反向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=1∏Np(tk∣tk+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(tk∣t1,…,tk−1;Θx,ΘLSTM,Θs)+logp(tk∣tk+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一体化的融合特征方式弱。
参考:
更多推荐
所有评论(0)