[关闭]
@songying 2019-04-01T17:00:33.000000Z 字数 2516 阅读 2573

ELMO: Deep contextualized word representations

语言模型


https://zhuanlan.zhihu.com/p/37684922

Abstract

本文介绍了一种新的上下文词向量:ELMO(Embeddings from Language Models)

  1. ELMo能够学习到词汇用法的复杂性,比如语法、语义。
  2. ELMo能够学习不同上下文情况下的词汇多义性。

我们的word vectors 是从深度biLM学得的, 从一个大型语料库中训练所得。

语料库: One billion word benchmark for measuring progress in statistical language modeling.

Introduction

两大问题:
1. complex characteristics of word use
2. how these uses vary across linguistic contexts

我们提出的模型ELMO能够解决以上问题,并且能够轻松的集成到现有模型中并获得state-of-the-art结果。

相关工作

预训练词向量曾经大行其道(如Word2Vec和Glove),然而这些方法所学得的词向量仅仅表示一种上下文无关的表示。
我们的方法通过采用字符卷积+subword units中受益, 并且我们将 multi-sense 信息融入到下游任务中。

其余最近的方法同样关注于如何获得 context-dependent representations, 如 context2vec。其余方式如 Cove 或 an unsupervised language model, 在MT任务上使用。 这些方法都得益于大规模数据集。 我们的数据集采用 《One billion word benchmark for measuring progress in statistical language modeling》 中的数据集。

之前的工作表明 deep biRNNs 的不同层编码了信息的不同信息。

ELMO: Embedding from language Models

ELMo word representations are functions of the entire input sentence.

3.1 Bidirectional language models(双向语言模型)

给定N个tokens:, 前向语言模型计算sequence出现的可能性:

反向语言模型类似前向:

biLM将 前向和后向LM连接,并用log来获取语言模型的最大可能性, 从而得到双向模型的公式如下:

3.2. ELMO

ELMO其实是biLM的多层表示的组合, 对于词语,一个L层的双向语言模型biLM能够由2L+1个向量表示:

  • : 第j层的第k个位置的前向 LM的输出
  • : 第j层的第k个位置的前向 LM的输出
  • : 输入的词向量,即最原始的词向量。是通过字符卷积得到的:

ELMO将多层的biLM的输出R整合成一个向量:。 最简单的情况是像TagLM与Cove那样,ELMo仅仅使用最顶层的输出,即

更一般化的情况,对于特定任务, 所有biLM层的 权重如下:

  • :
  • : 是缩放因子,需要学习得出。假如每一个biLM的输出具有不同的分布, 某种程度上来说相当于在weighting前对每一层biLM使用了layer nomalization。

3.3. 在有监督NLP任务中使用biLM

我们有两种方式使用ELMO:

ELMO 采用适当的dropout或通过在loss中加入L2正则() 。

3.4

4. Pre-trained bidirectional language model architecture

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注