NAACL18 Best Paper: ELMo

论文链接:[1802.05365] Deep contextualized word representations

最近打算写一点博客,知乎文章之类的东西。作为开始,简单介绍下来自AI2和UW的 “Deep Contextualized Word Representation”.

这篇文章提出的 ELMo 模型在非常多的NLP task上都提高了state-of-the-art 方法的performance, 被一些人称为新的word2vec. 这文章同时被ICLR 2018 和NAACL 2018 接收, 后来获得了NAACL best paper award. 这篇文章在twitter等社交网络上引起了非常的关注.

0. 问题与背景

Neural Network 的一大优势是表述学习,即自动对图像,语音,文字等各种数据抽feature. 但这些模型往往需要大量的人工标注数据来获得可靠的模型.

对于Computer Vision,有许多在大型标注数据集(类似Imagenet)上预训练的模型. 这些预训练的模型经常会被用作其他任务的初始化,并使得这些任务的训练可以通过较少的标注数据来获得较为可靠的模型. 直觉上来讲, 在不同的任务上, 对于图片的特征抽取应该是类似的, 预训练模型也应可以通过迁移学习来帮助其他任务, 而作为初始化则被实验验证为一种有效的策略.

但是对于自然语言, 类似的迁移学习套路, 主要局限于使用词向量对input 进行初始化. 虽然这个策略可以使得模型的表现更好, 但提升也有限. AI2这篇文章用language modeling 来获取带上下文信息的词向量表示. 这种表示, 在实际中显示出了极强的有效性(在6个标准数据集上降低了5%到30%的错误).

1. 方法

这篇文章所提出的方法叫ELMo, 即Embeddings from Language Models/通过Language Model词向量. 相应的, 我们先简单介绍Language Model, 再介绍借助Language Model来构造词向量的方式.

language model 是用来描述语言的生成的. 简单说来, 他会根据已经看到的句子来给出下一个词的概率分布. 这种模型的一大好处是模型的训练仅仅基于语言的次序信息, 而不依赖与标注数据, 这使得这些模型拥有几乎无限的训练数据.

在进入正题前,我想先介绍这篇文章的作者在ACL 2017发表的一篇文章 (TagLM)

论文链接:[1705.00108] Semi-supervised sequence tagging with bidirectional language models

这篇文章, 简单说来, 希望用pre-train 好的language model 来得到更好的sequence labeling 模型 (sequence labeling 是一个NLP 里的建模方式, 可以在用在很多任务上, 例如pos-tagging, NER, chunking, …).

所采用的model,是很简单的把language model 中softmax 的input 作为额外的embedding输入到sequence labeling 的模型中 (如下图所示).

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

这个方法虽然很简单, 但确实可以把模型的performance 极大得提升.

ELMo 的方法, 可以看作是TagLM的一个改进版. 首先, ELMo 不局限于sequence labeling, 而是作为一个一般性的词向量表示方法; 其次, ELMo 不仅仅使用了neural language model 的最后一层的输出, 而是对所有层的输出做了加权平均来构造最后的向量 (如下所示).

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

其中s 是由softmax 算出来的 (加起来是1), gamma 是一个需要学习的变量, 加不加这个变量对performance 的影响是比较大的 (我们有自己reimplement & reproduce 过部分实验, 确实很work).

然后这个看上去很简单的东西, 在实验中效果非常好(也许往往真正work 的东西都不会太复杂).

2. 实验

主要的实验结果如下表所示, 可以观察到提升非常明显.

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

具体的实验细节比较多(因为这些数据集的task 是有些差别的, 建议去看paper和appendix).

作者还额外做了一些case study.

首先是和Glove vector 对应的nearest neighborhood的对比:

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

这个例子比较明显的区分了Glove vector 和LM 构造出的vector 之间的区别.

更进一步的, 作者做了word sense disambiguation 的实验. 这个实验的设定比较特别, 作者是先算了training set 上每个词的ELMo vector, 然后对training set上每个词的每个sense 的vector 算了均值, 最后用这个均值对test set 做最近邻的分类. 结果如下表所示, 可以说并不差了(因为没有真的用一个合理的wsd 模型, 只是用了最简单的模型来验证ELMo vector 的质量). CoVe 是由machine translation 训练出的带上下文信息的vector.

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

类似的, 作者也做了pos-tagging 的实验. 这一次, 作者直接在lm 后面接了一个feed-forward 的nn来进行pos-tagging 的训练, 模型的效果如下所示. 类似的, 因为这个结果是没有用额外的crf / lstm 而直接得到的, 所以这个分数其实挺好的了.

《NAACL18 Best Paper: ELMo》
《NAACL18 Best Paper: ELMo》

3. 其他

作者在nlp highlight 的podcast 上讲了这个工作, 马上还会在naacl 讲. 我先把podcast 的链接贴在下面, 回头再贴naacl 的视频链接.

https://soundcloud.com/nlp-highlights/56-deep-contextualized-word-representations-with-matthew-peterssoundcloud.com

我们自己的followup 工作(发在EMNLP2018 上):

Liyuan Liu:Efficient "ELMo" Embeddingzhuanlan.zhihu.com《NAACL18 Best Paper: ELMo》

    原文作者:Liyuan Liu
    原文地址: https://zhuanlan.zhihu.com/p/36221795
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞