由word2vec、ELMo、OpenAI GPT、BERT 得到预训练词向量

        最近预训练模型大火,ELMo、OpenAI GPT、BERT等等。我们对于这些模型的应用大概有两种:

a、 直接使用它们输出的词向量(或者叫context vector);
b、 在这些模型后面接一个简单浅层模型进行fine-tuning;

        之前心中一直有个疑问:word2vec(CBOW,Skip-Gram)、ELMo、OpenAI GPT、BERT,这些模型都可以训练得到词向量,它们有什么区别和联系?这篇文章就来解释一下这个疑惑。

1、词向量是什么?

        我们都知道one-hot向量,这里直接举例说明:给定一句话 “我 今天 好 开心”,一个词表 [他, 我,今天,好,开心],那这句话中每个单词的one-hot向量就是(输入one-hot矩阵Q的大小是4 * 5):
                [0 1 0 0 0]
                [0 0 1 0 0]
                [0 0 0 1 0]
                [0 0 0 0 1]
        目前我们训练神经网络一般都是使用一个预训练好的词向量矩阵,通过查表的方式来获取输入中每个词的词向量,假设词向量是m维,则上面的词表对应的词向量矩阵M的大小是5 * m,上面这句话 “我 今天 好 开心” 通过查表得到的输入词向量矩阵N的大小是4 * m,分别取M的第2-5行得到。
        上面这个查表的步骤等同于一个矩阵相乘的过程:Q(4 * 5) * M(5 * m) = N(4 * m),这就相当于one-hot向量在输入到神经网络前,经过了一个权重矩阵为M(5 * m)的全连接层。
        所以经过上面的分析可知:词向量矩阵M(5 * m)就是在one-hot后面接的全连接层的权重矩阵。

2、词向量矩阵M可以怎样训练得到?

        下面就说说第1小节提到的词向量矩阵M可以怎样训练得到?有两种方法:

a、 和神经网络(针对具体任务而设计的一个神经网络)中的其他参数一样,先用均匀分布随机初始化一下,然后随网络训练得到;
b、 使用大量无标签语料,采用无监督的方式预训练得到;

3、由word2vec、ELMo、OpenAI GPT、BERT 得到预训练词向量

        由word2vec、ELMo、OpenAI GPT、BERT得到词向量的方式,就对应了第2小节中的方式b。这四种方法得到词向量的流程大概是这样的:

a、 准备大量的单语语料(不用带任何标签);
b、 设计一个神经网络;
c、 用大量的单语语料无监督的训练这个神经网络;

        当这个神经网络训练好后,就会得到一种副产品:权重矩阵,这个权重矩阵中的向量就是对应词的词向量。一个神经网络会得到几个这种权重矩阵和网络的设计和层数有关,比如word2vec(CBOW,Skip-Gram)会得到一个权重矩阵,BERT-Base有12层会得到12+1=13个权重矩阵(one-hot后面的全连接层也算一个)。
        由上面的分析可以看出,word2vec、ELMo、OpenAI GPT、BERT 这几个模型得到的词向量的整体流程是一样的,而他们的区别就在于采用的神经网络各不相同,无监督训练的方式也不尽相同,word2vec、ELMo、OpenAI GPT是采用训练语言模型的方式进行预训练,BERT是自己设计了两个任务(Masked LM和Next Sentence Prediction)来对网络进行预训练。
        以上就是我对于由word2vec、ELMo、OpenAI GPT、BERT 得到预训练词向量的一些思考。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
WordVec是一个词向量预训练模型。它可以将每个单词表示为一个固定长度的向量,使得具有相似上下文的单词在向量空间中距离更近。Word2Vec模型有两种训练模型:CBOW(Continuous Bag of Words)和Skip-Gram。CBOW模型试图通过上下文中的周围单词来预测中心单词,而Skip-Gram模型则相反,通过中心单词来预测周围单词。这两种模型都在大规模数据上进行训练,并且可以用于提取词特征、句子特征,以及提升自然语言处理(NLP)任务的性能,如分类、序列标注和序列转换。Word2Vec的提出具有重要意义,为后续更广泛应用的GloVe、ELMo、GPTBERT等模型的研究奠定了基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【原创】预训练词表示之word2vec(一)](https://blog.csdn.net/u010567574/article/details/109501184)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [NLP文本分类实战(二)-- 预训练word2vec模型](https://blog.csdn.net/weixin_40437821/article/details/102638337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值