#在完成了词向量的学习,激动的想赶快应用到神经网络当中,无奈直接的植入到神经网络的embedding中是不能使用的,所以还是需要了解embedding层的使用:
嵌入层被定义为网络的第一个隐藏层,必须有三个参数:
- input_dim:文本数据中词汇的大小
- output_dim:嵌入单词的向量空间的大小
- input_length:输入序列的长度
嵌入层的输出是一个三维向量(x,y,z),x代表有多少个句子(样本);y代表这个句子的长度(长度需要统一);z代表嵌入后的维度。
如果希望Dense层直接到embedding层,必须先将y和z压缩到一行,形成一个(x,yz)的二维矩阵。
embedding layer的使用方式:
- 单独使用学习嵌入,之后可以用在另一个模型中
- 可以作为深度学习model的一部分,与model本身一起学习
- 可以加载训练好的词嵌入模型,相当于一种迁移学习
关于word2vec与embedding layer:
- word2vec:无监督,利用上下文环境来学习词嵌入表示
- embedding layer:监督,嵌入层权重的更新是基于标签的信息进行学习
注:之前看代码总结流程,大概就是先要训练词向量,然后如果用keras有embedding层可以处理,直接植入才发现不是那么容易的,那个其实