前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模型怎么调都没有提升?来试试目前最好用的词向量ELMo吧!

模型怎么调都没有提升?来试试目前最好用的词向量ELMo吧!

作者头像
崔庆才
发布2018-07-31 17:11:32
8230
发布2018-07-31 17:11:32
举报
文章被收录于专栏:进击的Coder进击的Coder

近年来,研究人员通过文本上下文信息分析获得更好的词向量。ELMo是其中的翘楚,在多个任务、多个数据集上都有显著的提升。所以,它是目前最好用的词向量,the-state-of-the-art的方法。这篇文章发表在2018年的NAACL上,outstanding paper award。下面就简单介绍一下这个“神秘”的词向量模型。

1. ELMo的优势

(1)ELMo能够学习到词汇用法的复杂性,比如语法、语义。

(2)ELMo能够学习不同上下文情况下的词汇多义性。

2. ELMo的模型简介

基于大量文本,ELMo模型是从深层的双向语言模型(deep bidirectional language model)中的内部状态(internal state)学习而来的,而这些词向量很容易加入到QA、文本对齐、文本分类等模型中,后面会展示一下ELMo词向量在各个任务上的表现。

3. 双向语言模型

语言模型就是生成文本的方式、方法,是多个N个词语的序列(t1,t2,……,tN)的极大似然。前向语言模型就是,已知(t1,t2,……,tK-1),预测下一个词语tK的概率,写成公式就是

最近,如《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)词向量表示

,然后将此向量feed进入L层的前向LSTM。在每一个位置k,每个LSTM层会输出一个

,其中j=1,....L. 最顶层的LSTM输出为

,然后加上softmax来预测下一个词语tK+1。

既然是双向,后向的语言模型如下,即通过下文预测之前的 词语:

双向语言模型(biLM)将前后向语言模型结合起来,最大化前向、后向模型的联合似然函数即可,如下式所示:

其中,

分别是context-independent词向量训练时 和 soft max层的参数,

则是双向语言模型的(前后向语言模型的)参数。

4. ELMo

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

其中

ELMo将多层的biLM的输出R整合成一个向量,

。最简单的情况是ELMo紧紧使用最顶层的输出,即

,类似于TagLM和CoVe模型。但是,我们发现,最好的ELMo模型是将所有biLM层的输出加上normalized的softmax学到的权重

其中

是缩放因子。假如每一个biLM的输出具有不同的分布,

某种程度上来说相当于在weighting前对每一层biLM使用了layer nomalization。

上述ELMo词向量的运算过程基于RNN,但是ELMo词向量的运算不局限于RNN,CNN等也可以应用ELMo的训练。

5. 如何使用ELMo的词向量呢?

在supervised learning的情况下,可以各种自如的使用。

(1)直接将ELMo词向量

与普通的词向量

,拼接(concat)

(2) 直接将ELMo词向量

与隐层输出向量

拼接

,在SNLI,SQuAD上都有提升。

6. ELMo模型的正则

ELMo模型中适当的dropout,或者将ELMo模型的weights加入

正则都会imposes an inductive bias on the ELMo weights to stay close to an average of all biLM layers。

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

来源:知乎专栏--机器学习小知识 作者:mountain blue

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. ELMo的优势
  • 2. ELMo的模型简介
  • 3. 双向语言模型
  • 4. ELMo
  • 5. 如何使用ELMo的词向量呢?
  • 6. ELMo模型的正则
  • 7. ELMo的效果
  • 8. 既然这么好用,哪里能“买”到呢?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档