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

近年来,研究人员通过文本上下文信息分析获得更好的词向量。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

原文发布于微信公众号 - 进击的Coder(FightingCoder)

原文发表时间:2018-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

Come On!决策树算法!

机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类...

3805
来自专栏大数据挖掘DT机器学习

文本挖掘:语义分析的一些方法

语义分析,本文指运用各种机器学习方法,挖掘与学习文本、图片等的深层次概念。 1 文本基本处理 在讲文本语义分析之前,我们先说下文本基本处理,因为它构成了语义分析...

5526
来自专栏机器学习养成记

神经网络简介(翻译)

“ 看到网上的一篇博文,简单的介绍了当前热门的神经网络。翻译成中文与大家分享。原文链接:http://blog.kaggle.com/2017/11/27/in...

3277
来自专栏CVer

机器学习术语表

机器学习术语表:https://developers.google.com/machine-learning/glossary/ 机器学习术语表,即机器学习专业...

3429
来自专栏人工智能头条

卷积神经网络在自然语言处理的应用

1601
来自专栏MyBlog

Energy-efficient Amortized Inference with Cascaded Deep Classifiers论文笔记

深度神经网络在许多AI任务中取得了卓越的成功, 但是通常会造成高的计算量和能量耗费, 对于某些能量有约束的应用, 例如移动传感器等.

693
来自专栏红色石头的机器学习之路

台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine

上节课我们主要介绍了SVM的对偶形式,即dual SVM。Dual SVM也是一个二次规划问题,可以用QP来进行求解。之所以要推导SVM的对偶形式是因为:首先,...

2540
来自专栏机器学习算法与Python学习

入门 | 什么是自注意力机制?

目前有许多句子表征的方法。本文作者之前的博文中已经讨论了 5 中不同的基于单词表征的句子表征方法。想要了解更多这方面的内容,你可以访问以下链接:https://...

2672
来自专栏用户2442861的专栏

SIFT算法详解

如果你学习SIFI得目的是为了做检索,也许 OpenSSE 更适合你,欢迎使用。

3801
来自专栏量子位

深度学习入门:几幅手稿讲解CNN

作者:岳翰 电子科技大学|数学科学学院 来源自 JohnHany的博客 量子位 已获授权编辑发布 学习深度神经网络方面的算法已经有一段时间了,对目前比较经典的模...

3656

扫码关注云+社区