为什么要使用嵌入层 Embedding呢? 主要有这两大原因:
1、使用One-hot 方法编码的向量会很高维也很稀疏。
2、训练神经网络的过程中,每个嵌入的向量都会得到更新。
“deep learning is very deep”
通过索引对该句子进行编码
1 2 3 4 1
创建嵌入矩阵
这样,我们就可以使用嵌入矩阵来而不是庞大的one-hot编码向量来保持每个向量更小。简而言之,嵌入层embedding在这里做的就是把单词“deep”用向量[.32, .02, .48, .21, .56, .15]来表达。
https://blog.csdn.net/u010412858/article/details/77848878
Embedding层就是以one hot为输入、中间层节点为字向量维数的全连接层
https://kexue.fm/archives/4122
利用Word Embedding将一个单词转换成固定长度的向量表示,从而便于进行数学处理。
使用数学模型处理文本语料的第一步就是把文本转换成数学表示,有两种方法,第一种方法可以通过one-hot矩阵表示一个单词
第二种方法是Word Embedding矩阵给每个单词分配一个固定长度的向量表示,这个长度可以自行设定
Word Embedding的生成我们使用tensorflow,通过构造一个包含了一个隐藏层的神经网络实现。
有两种业界常用的Word Embedding生成方式,Continuous Bag Of Words (CBOW)方法和n-gram方法
https://www.jianshu.com/p/394892ec58b5
word2vec是一个将词表示为一个向量的工具,通过该向量表示,可以用来进行更深入的自然语言处理,比如机器翻译等。
https://www.jianshu.com/p/418f27df3968