One_hot和Word2Vec两种词向量方法的原理及比较

对于文本处理,首要的任务是要对非结构化数据进行结构化处理,由此诞生了词向量表示的方法,再众多词向量表示方法中,尤其以One_hot和word2vec两种方法最常用,下面也针对这俩方法进行阐述

One_hot方法

One_hot方法是最简单的一种方法,也是出现最早的一种方法,其原理就比如一个语料有M各词,其中每一个词的One_hot表示方式为当前词用1表示,其余用0表示,也就是说语料有多少词,那么词向量的维度就是多少,而且词向量形式如[0,0,......,1,0,0,......],其中第i个词为1,其余为0。
从One_hot的原理不难发现,当语料中添加新的词,那么每个词的词向量就会发生变化,而且向量中充斥着大量的0,使得过于稀疏,除此之外,语料有多大,词向量的维度就有多大,使得最终的矩阵变得过于庞大,不利于存储及计算。尤其是One_hot不能表示词语之间的关系,比如猫,老鼠,直观上很容易理解的到老鼠 有比较强的关系,如果用One_hot来表示,结果就是
“猫”:[0,0,0,1,0,0,0]
“老鼠”:[0,0,1,0,0,0,0]
那么两个向量做内积,就很容易发现[0,0,0,1,0,0,0] x[0,0,1,0,0,0,0] = 0,最后的结果就是毫无关系,这显然不太符合实际,所以再现在One_hot方法较少的被用到实际项目中了。
针对One_hot存在的问题,Hinton提出了分布式表示方法,很好的解决了One_hot的缺陷。其中最具代表的就是word2vec

Word2Vec方法

Word2Vec通过Embedding层将One-Hot Encoder转化为低维度的连续值(稠密向量),并且其中意思相近的词将被映射到向量空间中相近的位置。 从而解决了One-Hot Encoder词汇鸿沟和维度灾难的问题。

1. E m b e d d i n g 层 1.Embedding层 1.Embedding

Embedding层(输入层到隐藏层)是以one hot为输入、中间层节点数为词向量维数的全连接层,这个全连接层的参数就是我们要获取的词向量表!
在这里插入图片描述

2. W o
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值