只能获取fixed语句初始值_在深度学习模型中词向量的获取

e718e4a2ffe54299c5de76a8b13ec7af.png

一般来说词向量的获取方式有两种 (本文以机器翻译为例 使用pytorch 框架)

torch

vocabsize :词表大小 emb_dim:生成的向量维度

在机器翻译中 首先要构建词典,即将文本中的词汇进行统计,设定一个阈值,将出现次数大于这个阈值的词汇放进这个词汇表中

在得到词汇表之后,开始随机生成词向量

即 :torch.nn.Embedding(vocab_size,emb_dim) 这段代码的作用是,随机生成一个矩阵,这个矩阵的行数为词汇表的长度 ,即词汇表中一共有多少个单词, 每一个单词生成的向量的维度就是emb_dim

例如:

torch.nn.Embedding(2,5)

a6b393b23abe32480a0a00c1c2aeaf19.png
生成一个2*5的矩阵

矩阵中每一行是一个词汇的向量 ,每个词汇初始化为5维 对应emb_dim

那么又是如何从词汇表的索引,查找到词向量的呢?

在构建词汇表的时候我们会生成一个很大的map {} ,在map{} 中贮藏了所有的词汇信息以及相应的索引

{ pad :1 , eos : 2 , bos : 3 ...... }

在获取到索引值之后我们可以将其转化成one-hot编码,假设词汇表中一共有5个词,那pad的one-hot编码就是 [1 0 0 0 0]

20e454a443edc3cd03b33bd183b44356.png

通过矩阵相乘得到 词汇表矩阵中第一行的向量 ,这个向量也就是pad对应的向量,这就是查表过程。值得注意的是,将这种词向量送入模型后,权重矩阵是会通过梯度的反向传导逐渐变化的,最终得到适合具体任务和具体模型的有语义相关性的词向量

第二种获得词向量的方式 更为方便 可以直接下载网上已经训练好的预训练词向量 ,在使用的时候直接查找并使用即可

Embedding Dataset -- NLP Center, Tencent AI Lab​ai.tencent.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值