由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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值