ELMo模型的理解与实践(1)

论文:2018 NAACL 《Deep Contextualized Word Representations》

一、优点

1.学习单词的复杂特征,包括语法、语义

2.学习在不同上下文下的一词多义

二、模型

1.Bidirectional language models(BLM)

首先给定N个单词的序列, \left( t_{1},t_{2},...,t_{N} \right)

1)前向语言模型,已知前k-1个单词 \left( t_{1},t_{2},...,t_{k-1} \right),预测第k个单词 t_{k} 的概率:

2)后向语言模型,已知下文 \left( t_{k+1},t_{k+2},...,t_{N} \right) ,预测第k个单词 t_{k} :

双向语言模型(biLM)即将前向和后向语言模型联合起来,并最大化前后向语言模型的联合似然函数:

其中,公式中有两个LSTM 单元, \theta_{x}\theta_{x} 为输入的初始词向量参数, \theta_{s}\theta_{s} 为输出的softmax层参数(即,在LSTM的每一个步长输出的隐藏层h,再作为softmax的输入)。

2. char-level(CNN) 初始词向量

在第一点中输入的初始词向量通过 char-level(CNN)获得(即,对单词内的字符通过CNN卷积操作得到词向量),如下图:

3. ELMo

ELMo为多个双向语言模型biLM的多层表示

对于某一个单词t_kt_k,一个L层的双向语言模型biLM由2L+1个向量表示:

x_{k}^{LM} 为char-level初始词向量,前后向 h_{k,j}^{LM} 分别为前后向lstm的输出,ELMo将多层的biLM的输出R整合成一个向量:

再将 R_{k}R_{k} 向量正则化后,输入softmax层,作为学到的一组权重

结构如下图所示

三、ELMo词向量在NLP任务中的使用

1.ELMO_t^{task}和初始词向量 x_{k} (char-level词向量)直接拼接

2. ELMO_t^{task}和隐藏层输出 h_{k}直接拼接

四、理解

即char-level+多层BLM的组合,再将输出向量整合为权值

解决了多义性(char-level)和上下文语义(bi-lstm)的问题

猜你喜欢

转载自blog.csdn.net/qq_33373858/article/details/85063767