elmo

【笔记】李宏毅 -- ELMO、BERT、GPT

ε祈祈猫儿з 提交于 2020-04-07 19:56:19
1.背景知识 one-hot -> word class -> word embedding 不过传统的word embedding解决不了多义词的问题。 2. ELMO 为了解决上述问题,首先有了ELMO。 它是一个双向的RNN网络,这样每一个单词都对应两个hidden state,进行拼接便可以得到单词的Embedding表示。当同一个单词上下文不一样,得到的embedding就不同。 当然也可以搞很多层,每一层得到的embedding都要。 根据下游任务,可以得到不同embedding的权重。 3. BERT BERT只是Transformer中的Encoder,那Bert怎么训练呢?有两种方法。 第一个称为Masked LM,做法是随机把一些单词变为Mask,让模型去猜测盖住的地方是什么单词。 假设输入里面的第二个词汇是被盖住的,把其对应的embedding输入到一个多分类模型中,来预测被盖住的单词。 另一种方法是预测下一个句子,这里,先把两句话连起来,中间加一个[SEP]作为两个句子的分隔符。 而在两个句子的开头,放一个[CLS]标志符,将其得到的embedding输入到二分类的模型,输出两个句子是不是接在一起的。 实际中,同时使用两种方法往往得到的结果最好。 在ELMO中,训练好的embedding是不会参与下游训练的,下游任务会训练不同embedding对应的权重

【Paper】ELMo:ELMO wants to play!

半城伤御伤魂 提交于 2020-03-07 03:01:02
今天学习的是 AllenNLP 和华盛顿大学 2018 年的论文《Deep contextualized word representations》,是 NAACL 2018 best paper。 这篇论文提出的 ELMo 模型是 2013 年以来 Embedding 领域非常精彩的转折点,并在 2018 年及以后的很长一段时间里掀起了迁移学习在 NLP 领域的风潮。 ELMo 是一种基于语境的深度词表示模型(Word Representation Model),它可以捕获单词的复杂特征(词性句法),也可以解决同一个单词在不同语境下的不同表示(语义)。 ELMo 本身思想不难,但是很多细节在论文中都没有给出,而是给出其他论文的引用,大大增加了阅读难度。翻阅了很多博客但是写得好的没几篇,大部分博客都只是介绍了 ELMo 的多层双向 LSTM 结构,而忽视其预训练方式和使用方式。 本文在书写过程中尽量涵盖一些我认为很重要的一些细节,也希望抛砖引玉得到大佬们更详细的见解。 1. Introduction 以 Word2Vec 和 GloVe 为代表的词表示模型通过训练为每个单词训练出固定大小的词向量,这在以往的 NLP 任务中都取得了不错的效果,但是他们都存在两个问题: 没法处理复杂的单词用法,即语法问题; 没办法结合语境给出正确词向量,即一词多义; 为了解决这个问题

预训练语言模型

对着背影说爱祢 提交于 2020-01-31 20:23:55
本文为本人在学习预训练语言模型时收集的相关资料 (一) 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 (张俊林dalao总结,强烈推荐) (二)从Seq2Seq,Attention,Transformer到ELMo,BERT,GPT-2 1、 从Seq2Seq,Attention,Transformer到ELMo,BERT,GPT-2(一) 2、 从Seq2Seq,Attention,Transformer到ELMo,BERT,GPT-2(二) (三) NLP课程:Encoder-Decoder框架、Attention、Transformer、ELMO、GPT、Bert学习总结 概括了ELMo、GPT、BERT等的优缺点 (四) 从Transformer、BERT到GPT2和XLNet:高端玩家如何用论文互怼 以故事形式介绍了预训练语言模型 来源: CSDN 作者: 疯人张 链接: https://blog.csdn.net/MIC10086/article/details/104125732

ELMo学习笔记

这一生的挚爱 提交于 2020-01-20 08:27:16
解决什么问题 在word2vec和Glove中,一个词对应一个词向量(vector),无法解决一词多义问题。 在ELMo中,预训练好的模型不再只是向量对应关系,而是一个训练好的模型。使用时,将一句话或一段话输入模型,模型会根据上下文来推断每个词对应的词向量。这样做之后明显的好处之一就是对于多义词,可以结合前后语境对多义词进行理解。比如appele,可以根据前后文语境理解为公司或水果。 ELMo原理 ELMO的本质思想是:事先用语言模型学好一个单词的Word Embedding,此时多义词无法区分,不过这没关系。 ( 双向LSTM ) 在实际使用Word Embedding的时候,单词已经具备了特定的上下文了,这个时候我可以根据上下文单词的语义去调整单词的Word Embedding表示,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。 所以ELMO本身是个根据当前上下文对Word Embedding动态调整的思路。 语言模型 token(符号) :包括单词和标点 这里的 ( t 1 , t 2 , . . . , t N ) (t_1,t_2,...,t_N) ( t 1 ​ , t 2 ​ , . . . , t N ​ ) 是一系列的tokens 前向LSTM语言模型 p ( t 1 , t 2 , t 3 , . .

ELMo

假装没事ソ 提交于 2019-12-31 08:15:18
o 来源: https://www.cnblogs.com/jiayibing2333/p/12122608.html

tensorflow_hub to pull BERT embedding on windows machine

孤人 提交于 2019-12-22 12:21:31
问题 I would like to get BERT embedding using tensorflow hub. I found it very easy to get ELMO embedding and my steps are below. Could anyone explain how to get BERT embedding on a windows machine? I found this but couldn't get it work on windows machine https://tfhub.dev/google/elmo/3 go to this link and then download. Unzip it twice till you see "tfhub_module.pb", provide path of that folder to get embedding import tensorflow as tf import tensorflow_hub as hub elmo = hub.Module("C:/Users/nnnn

How to resolve InvalidArgumentError: Incompatible shapes: with custom ELMo layer masking

∥☆過路亽.° 提交于 2019-12-11 19:08:55
问题 I used this repository and keras_contrib.crf to build a CustomELMo + BiLSTM + CRF sequence classifier for natural language. It works wonderfully but experiences negative loss, which is theoretically wrong. It's an issue that's been discussed here and here and the solution seems to be using masking. However, I had to comment out the compute_mask function in my custom ELMo embeddings layer, as it was begining training and then throwing: InvalidArgumentError: Incompatible shapes: [32,47] vs. [32

Transformer, ELMo, GPT, 到Bert

本秂侑毒 提交于 2019-12-06 11:18:04
RNN:难以并行 CNN:filter只能考虑局部的信息,要叠多层 Self-attention:可以考虑全局的信息,并且可以并行 ( Attention Is All You Need ) 示意图:x 1 , x 2 , x 3 , x 4 先embedding成a 1 , a 2 , a 3 , a 4 ,然后输入到Self-Attention Layer输出 𝑏 1 , 𝑏 2 , 𝑏 3 , 𝑏 4 , ps:它们能够 平行 计算 下面我们来看看如何计算b 1 先通过 W q , W k , W v 将 a i 变成( q i , k i , v i ),ps:三个矩阵乘的都是 a i ,这就是为什么叫self-attention 计算b 1 的过程 整个过程的示意图(省略了scale的部分) 还有一些操作: 1. Multi-head Self-attention: MultiHead ( Q , K , V ) = Concat ( h e a d 1 ​ , … , h e a d h ​ ) W O , where h e a d i ​ = Attention ( Q W i Q ​ , K W i K ​ , V W i V ​ ) 2. Positional Encoding (原始paper是人工设计的,不是训练出来的) Transformer

预训练语言模型整理(ELMo/GPT/BERT...)

陌路散爱 提交于 2019-12-05 22:28:55
目录 简介 预训练任务简介 自回归语言模型 自编码语言模型 预训练模型的简介与对比 ELMo 细节 ELMo的下游使用 GPT/GPT2 GPT 细节 微调 GPT2 优缺点 BERT BERT的预训练 输入表征 Fine-tunninng 缺点 ELMo/GPT/BERT对比,其优缺点 BERT-wwm RoBERTa ERNIE(艾尼) 1.0 ERNIE 2.0 XLNet 提出背景 排列语言模型(Permutation Language Model,PLM) Two-Stream Self-Attention Transformer-XL ALBERT 简介 2018年ELMo/GPT/BERT的相继提出,不断刷新了各大NLP任务排行榜,自此,NLP终于找到了一种方法,可以像计算机视觉那样进行迁移学习,被誉为NLP新时代的开端。 与计算机视觉领域预训练模型不同的是,其通过采用自监督学习的方法,将大量的无监督文本送入到模型中进行学习,即可得到通用的预训练模型,而NLP领域中无监督文本数据要多少有多少,2019年发布的后续研究工作(GPT2、Roberta、T5等)表明,采用更大的数据、更强大的炼丹炉可以不断提高模型性能表现,至少目前看来还没有达到上限。同时,如何缩减模型参数也成为了另一个研究热点,并有相应的论文在今年发表(ALBERT、ELECTRA)

Google BERT

时光怂恿深爱的人放手 提交于 2019-12-05 12:08:48
概述 BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。 BERT的应用步骤 模型结构 BERT BASE:和OPENAI Transformer大小差不多 12个encoder layers(Transformer Blocks) 768个隐藏单元的前向网络 12个attention heads BERT LARGE:State of Art 24个encoder layers(Transformer Blocks) 1024个隐藏单元的前向网络 16个attention heads 模型输入输出 Inputs 这里的Embedding由三种Embedding求和而成 其中: Token Embeddings:是词向量,第一个单词是CLS标志,可以用于之后的分类任务 Segment Embeddings:用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务 Position Embeddings