从经典的语言模型开始
ELMO — Embedding form Language Model
1-of-N Encoding:
每一个word,只有一维是0,其他位置都是1. 缺点:无法得知词汇之间的关系。
Word Class:
对词汇进行分类
Word Embedding:
Soft Word Class 每一个词汇用一个向量表示,其中词向量的每一维可能表示这个词汇的某种意思。语义相近的词汇,词向量比较接近。
Contextualized Word Embedding:
每一个 word token 都有自己的 embedding
ELMO:RNN-based language model
正向 RNN 得到的 Embdeding 和反向 RNN 的 Embedding 拼接起来。由于 RNN 是考虑当前词汇前面整个句子的信息的,因此可以说这样得到的 embedding 向量是上下文有关的。
当时用多层 RNN 的时候,每一层的RNN都会给出一个该词汇的 embedding ,对于不同层得到的 embedding 进行加权求和,得到最终的 embedding 用于下游任务。其中每一层 embedding 的权重是根据下游任务类型自己学到的。
ElMO 详解
Bidirectional language models:
在给定 $(t{1}, …, t{k-1})$ 情况下,求 token $t_{k}$ 的概率
后向的计算方法与前向相似
biLM 最大化前向和反向网络的log likelihood
ELMo 对于每个token $t_{k}$ ,通过 L 层的BiLM 计算得到 2L+1个表示
所有 biLM输出层的向量组合成一个向量,最简单的是只选择最上层的输出向量,本文采用加权求和的方式,每一项的权值是通过 softmax 来计算的,任务不同权值可以通过学习得到。
ELMO 的本质思想是:事先用语言模型学好一个单词的 Word Embedding,此时多义词无法区分,不过这没关系。在实际使用 Word Embedding 的时候,单词已经具备了特定的上下文了,这个时候可以根据上下文单词的语义去调整单词的 Word Embedding 表示,这样经过调整后的 Word Embedding 更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。所以 ELMO 本身是个根据当前上下文对 Word Embedding 动态调整的思路。
- 本文作者: Kelly Liu
- 本文链接: http://tiantianliu2018.github.io/2019/08/18/ELMO-Deep-contextualized-word-representations/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!