elmo

ELMO、BERT、ERNIE、GPT

匿名 (未验证) 提交于 2019-12-02 23:43:01
这一讲承接了上一讲关于Transformer的部分,依次介绍了基于Transformer的多个模型,包括 ELMO、BERT、GPT 。 因为上述的模型主要是应用在NLP中,因此首先我们必须清楚如何将离散的文本数据喂给模型,即如何用向量的方式来表征输入到模型的中的文本数据。最简单的一种方式就是 one-hot向量 ,假设现在文档中只有apple、bag、cat、dog、elephant五个单词,那么就可以使用维度为5的向量对它们进行唯一的表示,如 a p p l e = [ 1 , 0 , 0 , 0 , 0 ] 、 b a g = [ 0 , 1 , 0 , 0 , 0 ] 、 c a t = [ 0 , 0 , 1 , 0 , 0 ] 、 d o g = [ 0 , 0 , 0 , 1 , 0 ] 、 e l e p h a n t = [ 0 , 0 , 0 , 0 , 1 ] apple = [ 1,0,0,0,0]、bag = [ 0,1,0,0,0]、cat = [ 0,0,1,0,0]、dog = [ 0,0,0,1,0]、elephant = [ 0,0,0 ,0,1] a p p l e = [ 1 , 0 , 0 , 0 , 0 ] 、 b a g = [ 0 , 1 , 0 , 0 , 0 ] 、 c a t = [ 0 , 0 , 1 , 0 , 0 ] 、

词向量经典模型:从word2vec、glove、ELMo到BERT

两盒软妹~` 提交于 2019-12-02 21:45:48
前言 词向量技术将自然语言中的词转化为稠密的向量,相似的词会有相似的向量表示,这样的转化方便挖掘文字中词语和句子之间的特征。生成词向量的方法从一开始基于统计学的方法(共现矩阵、SVD分解)到基于不同结构的神经网络的语言模型方法。这里总结一下比较经典的语言模型方法:word2vec、glove、ELMo、BERT。 其中BERT是最新Google发表的模型,在11个经典的NLP任务中全面超越最佳模型,并且为下游任务设计了简单至极的接口,改变了之前花销的Attention、Stack等盖楼似的堆叠结构的玩法,应该属于NLP领域里程碑式的贡献。 word2vec word2vec来源于2013年的论文《Efficient Estimation of Word Representation in Vector Space》,它的核心思想是通过词的上下文得到词的向量化表示,有两种方法:CBOW(通过附近词预测中心词)、Skip-gram(通过中心词预测附近的词): CBOW : 通过目标词的上下文的词预测目标词,图中就是取大小为2的窗口,通过目标词前后两个词预测目标词。具体的做法是,设定词向量的维度d,对所有的词随机初始化为一个d维的向量,然后要对上下文所有的词向量编码得到一个隐藏层的向量,通过这个隐藏层的向量预测目标词,CBOW中的做法是简单的相加,然后做一个softmax的分类

Strongly increasing memory consumption when using ELMo from Tensorflow-Hub

蹲街弑〆低调 提交于 2019-12-02 07:45:23
问题 I am currently trying to compare the similarity of millions of documents. For a first test on a CPU I reduced them to around 50 characters each and try to get the ELMo Embedding for 10 of them at a time like this: ELMO = "https://tfhub.dev/google/elmo/2" for row in file: split = row.split(";", 1) if len(split) > 1: text = split[1].replace("\n", "") texts.append(text[:50]) if i == 300: break if i % 10 == 0: elmo = hub.Module(ELMO, trainable=False) executable = elmo( texts, signature="default",

Strongly increasing memory consumption when using ELMo from Tensorflow-Hub

℡╲_俬逩灬. 提交于 2019-12-02 05:35:49
I am currently trying to compare the similarity of millions of documents. For a first test on a CPU I reduced them to around 50 characters each and try to get the ELMo Embedding for 10 of them at a time like this: ELMO = "https://tfhub.dev/google/elmo/2" for row in file: split = row.split(";", 1) if len(split) > 1: text = split[1].replace("\n", "") texts.append(text[:50]) if i == 300: break if i % 10 == 0: elmo = hub.Module(ELMO, trainable=False) executable = elmo( texts, signature="default", as_dict=True)["elmo"] vectors = execute(executable) texts = [] i += 1 However, even with this small

ELMO

十年热恋 提交于 2019-11-30 18:48:41
ELMo: Embeddings from Language Models 引入了一种新的单词表示方式,该 表示方式的建模目标是:对单词的复杂特征建模(如:语法特征、语义特征),以及能适应不同的上下文(如:多义词)。 ELMo 词向量是由双向神经网络语言模型的内部多层向量的线性加权组成。 LSTM 高层状态向量捕获了上下文相关的语义信息,可以用于语义消岐等任务。 结果表明:越高层的状态向量,越能够捕获语义信息。 LSTM 底层状态向量捕获了语法信息,可以用于词性标注等任务。 结果表明:越低层的状态向量,越能够捕获语法信息。 来源: https://www.cnblogs.com/nxf-rabbit75/p/11635547.html