Deep contextualized word representations
引言
这是2018年NAACL上的Best Paper,即是大名鼎鼎的ELMo,原文地址:https://arxiv.org/pdf/1802.05365.pdf
对比传统Word2Vec这种形式的词向量,本文提出的模型是一种动态模型。在以往的词向量表示中,词都是一种静态的形式,无论在任何的上下文中都使用同一个向量。这种情况下很难表示一词多义的现象,而ELMo则可以通过上下文动态生成词向量,从理论上会是更好的模型,从实测效果来看在很多任务上也都达到了当时的SOTA成绩。
模型
Bidirectional language models
一般的语言模型都是利用前k-1个token来预测第k个token,如下:
而双向语言模型就是添加了另一个方向的预测,利用N~k+1个token来预测第k个token,如下:
目标函数便是上述两者的联合损失,如下:
这里需要注意的是θx\theta_xθx是token的表示,而θs\theta_sθs则为softmax参数,后续对此会详细说明。
ELMo
不同于其他类型的模型采用最顶层的输出作为token的表示,Elmo采用多个层的线性加和作为token的表示,对于每个token,在一个LLL层的biLm中可以输出2L+12L+12L+1个表示:
在下游任务中,可以将上述2L+12L+12L+1个表示进行整合,
其中,sjtask=softmax(w)s_j ^{task}=softmax(w)sjtask=softmax(w),www是一个独立的可训练的参数shape = (num_layers, ),用来加权各个layer的分布,毕竟layer所表示的东西不同。同样的,γγγ也是一个可以训练的常量,用在具体任务中去缩放ELMo的大小,作者在论文中提到简单使用顶层输出作为token的表示,效果比baseline还要差。
Pre-trained bidirectional language model architecture
关于ELMo模型的整体结构及训练,论文中只是简单带过,具体借鉴了以下两篇文章:
Exploring the limits of language modeling
Character-Aware Neural Language Models
总的来说还是按照训练语言模型的方式,使用了CNN-BIG-LSTM结构,和一个层之间的残差链接:
The final model uses L = 2 biLSTM layers with 4096 units and 512
dimension projections and a residual connection from the first to
second layer. The context insensitive type representation uses 2048
character n-gram convolutional filters followed by two highway layers
(Srivastava et al., 2015) and a linear projection down to a 512
representation.
最后的结果是, 整个模型针对一个token, 可以产生三个向量, 原始 , 第一层以及第二层。作者认为低层的bi-LSTM层能提取语料中的句法信息,高层的bi-LSTM能提取语料中的语义信息。
Using biLMs for supervised NLP tasks
ELMo在监督任务中可以先固定权重,然后和预训练的词向量拼接为[xk;ELMoktask][x_k; ELMo^{task}_k][xk;ELMoktask]这种形式作为模型的输入;
也可以与RNN的隐藏层拼接,如[hk;ELMoktask][h_k; ELMo^{task}_k][hk;ELMoktask]这种形式作为输出进行使用,需要注意这里的ELMo权重应该和输入端的权重不相等。
同时,也可以在ELMo模型中加入dropoutdropoutdropout, 以及采用 L2lossL2 lossL2loss的方法来提升模型。这里的 L2L2L2 项的系数 λ\lambdaλ 越大, 越有取各层平均值的意思, 越小, 越可以发挥各个层之间的不同带来的效果.。但是并不是说, 越小越好。
实验
论文从 Question answering, Textual entailment, Semantic role labeling, Coreference resolution, Named entity extraction, Sentiment analysis 等六个任务的验证中都取得了提升。
具体的验证结果这里就不贴出来了,详细参考原论文。
结论
动态的词向量生成方式,目前来说应该是在词向量这块最好的模型,当然在具体任务中效果还需要评测。但顶层使用基于字符的CNN,在英文这种形态丰富的语言中效果可能会比中文好很多,在中文任务中,顶层的token表示可能采用word级别的输入会更好一些。
引用
1、Deep contextualized word representations
Deep contextualized word representations相关推荐
- 论文笔记--Deep contextualized word representations
论文笔记--Deep contextualized word representations 1. 文章简介 2. 文章概括 3 文章重点技术 3.1 BiLM(Bidirectional Langu ...
- Paper:《ELMO:Deep contextualized word representations》翻译与解读
Paper:<ELMO:Deep contextualized word representations>翻译与解读 目录 <ELMO:Deep contextualized wor ...
- 文献阅读 - Deep Contextualized Word Representations
Deep Contextualized Word Representations M. E. Peters, M. Neumann, M. Iyyer, M. Gardner, et al., Dee ...
- ELMo:最好用的词向量(Deep contextualized word representations)论文 pdf
下载地址:https://u20150046.ctfile.com/fs/20150046-376633397 作者:Matthew E. Peters, Mark Neumann, Mohit Iy ...
- ELMo: Deep contextualized word representations
Abstract 本文介绍一种新型的上下文词表示可以建模: 词的复杂用法特征(例如句法或者语义特征) 在不同的语言上下文中的用法变化(例如多义词) 我们的词向量是学到的深度双向语言模型(biLM)内部 ...
- Contextual Word Representations and Pretraining
一.Word Representations 在2018年之前,我们使用的词向量表征技术主要有三个:Word2Vec.Glove.FastText.但是这三个方法都普遍存在在一些问题,就是无法解决一次 ...
- [Embeding-1]Efficient Estimation of Word Representations in Vector Space 译文
1. abstract 我们提出了两种新的模型结构,用于计算非常大数据集中单词的连续矢量表示.这些表示的质量是在一个词相似性任务中测量的,并将结果与以前基于不同类型神经网络的最佳表现技术进行比较.我们 ...
- NLP系列:Word2Vec原始论文:Efficient Estimation of Word Representations in Vector Space
译者按: 2013年,Google开源了一款用于词向量计算的工具--word2vec,引起了工业界和学术界的关注.首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练:其次,该工 ...
- nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)
目录 <Efficient Estimation of Word Representations in Vector Space> 第一课时:论文导读 (1)语言模型 (2)词向量简介-- ...
最新文章
- Node.js建站笔记-使用react和react-router取代Backbone
- G6 图可视化引擎——入门教程——前言
- Notepad++ 插件之 TextFX (安装及作用)
- Java项目几个月能完成_c#项目转JAVA,第5个月,基本完成
- Android学习拾遗
- x264 struct学习 1
- 使用一次性密码本通过 SSH 安全登录 Linux
- zookeeper相关知识与集群搭建
- python面向对象——类(上)
- 首次启动优美新手指引tip
- linux下ssh下载命令,SSH 登录工具常用命令
- linux查看udp端口占用命令,详解Linux查看端口占用
- bit、Byte、KB、MB、GB互相转换的关系
- 【一】机器学习在网络空间安全研究中的应用
- 仓库盘点的四大方法和盘点流程
- docker搭建FastDFS及遇到的问题解决
- android浏览器固定宽度,Android浏览器宽度拉伸到iframe内容宽度,尽管溢出:隐藏...
- (二十三)Kotlin简单易学 基础语法-什么是函数式编程
- 极品冷幽默,搞笑没得说
- python做web后端_最简易的python web框架的后端实现
热门文章
- 用java面向对象的内容建立学生姓名,学号,id,班级,每一科的成绩,以及对管理员实现(对老师只实现查看):通过名字查询成绩,通过学号查询成绩,通过id修改姓名,通过姓名修改成绩
- 第八届真题-第五题:取数位
- 【Cocos开发者大会】触控科技CEO陈昊芝群访实录
- Java多线程案例8-2Svip优先办理服务
- Maven构建Hadoop工程
- Jim Zemlin:Linux在中国的机遇 [2008Linux开发者研讨会演讲]
- 一款可以录音示爱的蓝牙音响,这么有心机的告白我给满分丨钛空智慧星球推荐
- 蓝桥杯单片机第三届省赛题详细讲解(自动售水机)
- maven指定打的jar包的名字
- 【docker入门指北】第七篇 Docker镜像讲解