简介
预训练模型在各种语言任务重十分常见,加上近期的课程涉及到ELMo, GPT 和BERT这三种模型,决定加深理解整理一波,如有理解错误的地方,还望各位网友不吝赐教!本章会涉及到注意力机制的部分。
模型起源:传统词模型假设每个词语对应唯一的向量表示,且为静态向量,无法处理一词多义现象。
ELMo
本质
Embeddings from Language Models1, 双向LSTM
模型
1.首先学习双向LSTM2
2.得到词向量表示
γ
\gamma
γ :任务相关权重
s
j
s_j
sj: 每层的softmax输出的权重,
h
k
,
j
L
M
\bm{h}_{k,j}^{LM}
hk,jLM: 前向和后向表示的拼接每层都有的一个表示
如何得到词
x
j
x_j
xj的动态表示?
静态表示是有的,动态即用到了上下文信息。输入句子根据最大似然规则训练后,会得到相关隐层参数h(可以理解为一种编码),即为与句子上下文相关的表示,根据不同层的权重加和得到最后的表示。
特点
可以针对不同上下文对某个语段得到不同的表示。在大规模语料上学习的表示效果很好。但是只有两层LSTM,学得的语言规律也比较有限。其结果会因为梯度消失的问题受到进一步的影响,而且无法并行处理。并且,下游监督任务中的微调模型是从头开始学习的, 不共享预训练模型的参数。