ELMo——一种新型的词嵌入方法

目录

 

一、概要

二、双向语言模型

三、线性组合


一、概要

英语论文原文参考链接:https://pan.baidu.com/s/1g7lKZoefFmNy8GXgH5CDNg 密码:hq2n

英文论文名称:《Deep contextualized word representations》

ELMo为复杂词语应用(语法或语义)和语言语义建模(例如一词多义)。这句话我也不好翻译,现贴出英文原文供大家参考:

                            

简单来说,ELMo模型以双向语言模型为基础,用各层之间的线性组合来表示词向量的一种方式。下文中会详细介绍什么是双向语言模型和为什么以及如何进行线性组合。

二、双向语言模型

考虑给定的N个词组(t_{1},t_{2},t_{3},....,t_{N}),计算这句话出现的概率:p(t_{1},t_{2},...,t_{N}):

(1) forward language model(前向语言模型)

Forward language model采用的是利用前面的信息估计后面的信息的方式,具体如下:

                     

每一个t(k)出现的概率都依赖于前面的所有词语。如果采用lstm(RNN)模型的话,我们定义如下符号:\overrightarrow h^{LM}_{k,j}表示第k个单词在第j层的输出(注意箭头的方向,LM表示language model),如果不理解层的意思,那么请去参考有关RNN的资料。

(2)backword language model

Backward language model采用的是利用后面的信息估计前面的信息的方式,具体如下(注意和forward LM比较):

                    

每一个t(k)chu出现的概率都依赖于后面的所有词语。如果采用lstm(RNN)模型的话,我们定义如下符号:\overleftarrow h^{LM}_{k,j}表示第k个单词在第j层的输出(注意箭头的方向,代表forward或者backword)。

(3)biLM(bidirectional language model)

biLM则是整合了上面的两种语言模型,目标函数为最大化下面的log似然函数:

                  

从图中可以看出,前半部分是forward language model,后半部分是backward language model。

三、线性组合

(1)哪些是需要线性组合的

对于循环神经网络,每一层都是有输出的(上文的h向量)。我们要线性组合是就是上述的所有h向量。

(2)为什么要线性组合

文中提到:高层的h更加容易捕捉依赖上下文的词义信息(the higher level LSTM states capture context-depend aspects of word meaning),底层的h更容易捕捉语法信息(while lower level states model aspects of syntax)。也就是说,不同层次的输出所对应的特征不一样,组合起来更能表达整个意思。

(3)如何线性组合。

                     

其中s为权重,计算方法:softmax normalized。γbiao表示整个权重。(权重的求法我并没有看懂,只能贴出原文供大家参考)

                    

 

 

猜你喜欢

转载自blog.csdn.net/cpluss/article/details/81451264