embedding层的作用理解

网上关于embedding的介绍可谓是相当含糊。比如 Keras中文文档中对嵌入层 Embedding的介绍除了一句 “嵌入层将正整数(下标)转换为具有固定大小的向量”之外就不愿做过多的解释。那么我们为什么要使用嵌入层 Embedding呢? 主要有这两大原因: 

1.降维:比如one-hot encoding对于大字典你encoding后数据量太大,One-hot 方法编码的向量会很高维也很稀疏,浪费内存运行空间。

比如:中文大大小小简体繁体常用不常用有十几万,然后一篇文章100W字,你要表示成100W X 10W的矩阵???

这是它最明显的缺点。过于稀疏时,过度占用资源。

比如:其实我们这篇文章,虽然100W字,但是其实我们整合起来,有99W字是重复的,只有1W字是完全不重复的。那我们用100W X 10W的岂不是白白浪费了99W X 10W的矩阵存储空间。
————————————————
版权声明:本文为CSDN博主「罗小丰同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42078618/article/details/82999906

2.编码向量的表示:训练神经网络的过程中,每个嵌入的向量都会得到更新。通过上面的图片我们就会发现在多维空间中词与词之间有多少相似性,这使我们能可视化的了解词语之间的关系,不仅仅是词语,任何能通过嵌入层 Embedding 转换成向量的内容都可以这样做。

参考资料

经常提到的Embedding层有什么用? | 机器之心

深度学习中 Embedding层两大作用的个人理解_罗小丰同学的博客-CSDN博客_embedding层的作用

猜你喜欢

转载自blog.csdn.net/weixin_43332715/article/details/124826087