近年来,研究人员通过文本上下文信息分析获得更好的词向量。ELMo是其中的翘楚,在多个任务、多个数据集上都有显著的提升。所以,它是目前最好用的词向量,the-state-of-the-art的方法。这篇文章发表在2018年的NAACL上,outstanding paper award。下面就简单介绍一下这个“神秘”的词向量模型。
- ELMo的优势
(1)ELMo能够学习到词汇用法的复杂性,比如语法、语义。
(2)ELMo能够学习不同上下文情况下的词汇多义性。
2. ELMo的模型简介
基于大量文本,ELMo模型是从深层的双向语言模型(deep bidirectional language model)中的内部状态(internal state)学习而来的,而这些词向量很容易加入到QA、文本对齐、文本分类等模型中,后面会展示一下ELMo词向量在各个任务上的表现。
3. 双向语言模型
语言模型就是生成文本的方式、方法,是多个
最近,如《Exploring the limits of language modeling》、《On the state of the art of evaluation in neural language models》和《Regularizing and optimizing lstm language models》等论文中,首先使用character-level的RNN或CNN,计算得到“上下文无关”(context-independent)词向量表示
既然是双向,后向的语言模型如下,即通过下文预测之前的 词语:
双向语言模型(biLM)将前后向语言模型结合起来,最大化前向、后向模型的联合似然函数即可,如下式所示:
其中,
4. ELMo
ELMo是双向语言模型biLM的多层表示的组合,对于某一个词语
其中
ELMo将多层的biLM的输出R整合成一个向量,
其中
上述ELMo词向量的运算过程基于RNN,但是ELMo词向量的运算不局限于RNN,CNN等也可以应用ELMo的训练。
5. 如何使用ELMo的词向量呢?
在supervised learning的情况下,可以各种自如的使用。。。
(1)直接将ELMo词向量
(2) 直接将ELMo词向量
6. ELMo模型的正则
ELMo模型中适当的dropout,或者将ELMo模型的weights加入
7. ELMo的效果
Textual entailment: stanford natural language inference (SNLI)数据集上提升了1.4%。
Question answering: 在stanford question answering dataset (SQuAD)数据集上提升了4.2%,将ELMo加入到之前的state-of-the-art的ensemble模型中,提升了10%。
Semantic role labeling: 比之前的state-of-the-art模型提高了3.2%,将ELMo加入到之前的state-of-the-art的单模型中,提升了1.2%。
Coreference resolution: 比之前的state-of-the-art模型提高了3.2%,将ELMo加入到之前的state-of-the-art的ensemble模型中,提升了1.6%。
Named entity extraction: 在CoNLL 2003 NER task数据机上提高了2.06%
Sentiment analysis: 比之前的state-of-the-art模型提高了3.3%,将ELMo加入到之前的state-of-the-art模型中,提升了1%。
8. 既然这么好用,哪里能”买“到呢?
这篇文章发表在2018年的NAACL上,outstanding paper award,本月初才发出,之前放在arxiv上,已有30+次引用。额,作者自己也觉得超好用,推出了工具包,可浏览项目主页ELMo,github,paper。
pip install allennlp 即可享用。
The mind is not a vessel that needs filling, but wood that needs igniting. — Plutarch
如果觉得文章对您有帮助,可以关注本人的微信公众号:机器学习小知识