shell 统计一个词出现的概率_文本分类实战(三)--细谈词向量表示:word2vec与词嵌入(上)...

5W2H学习法

本文主要简单介绍为什么需要把词转化为词向量,接着介绍两种词嵌入的方法CBOW和Skip-gram,最后使用tensorflow实现skip-gram。

1. 什么是词嵌入?

词嵌入,通俗来说,是指将一个词语word转换为一个向量vector的形式表示,因此,词嵌入常常被称为“word2vec”。

2. 为什么需要做词嵌入?

在Char RNN中,输入RNN的序列数据的每一步都是一个单词,即想将这些单词使用one-hot编码,在输入到RNN中,如单词one表示(1,0,0,...,0),单词two表示(0,1,0,...,0)。缺点:首先,当单词的数量为10000,那么使用one-hot编码表示的向量的形状是(10000,)。其次,one-hot编码完全平等得对待单词表中的所有单词,忽略了单词之间的联系。如单词cat和dog关系比较大,都是动物,所以cat和dog两者应该是具有一定的相似性或者说具有一定的相关性,而cat和phone的表示则关系不大。但是在one0hot编码中,所以单词之间都是平等关系,单词之间的相关性被忽略了。

word2vec运行而生,所谓word2vec,是指学习一个映射f,它可以将单词转换成向量表示:vec=f(word)。通常向量vec的维数要要小于单词表的个数,因此word2vec不仅能降低编码后的维数,还能表达单词之间的关联信息。

3. 词嵌入的原理

如何学习上说所说的映射f?一般来说具有两种方法,一种基于"计数"的,即在语料库中,统计一个单词和另外一个同事出现的概率,将经常同时出现的单词映射到相邻位置的向量空间。另一种方法是基于“预测”的,即从一个或者几个词出发,预测它们可能的相邻词,在预测过程中,很自然的学习到了词向量的映射f。通常使用的是基于预测的方法,分为CBOW和Skip-gram。

3.1 CBOW实现词嵌入的原理

CBOW全称Continuous Bag of Words,即连续词袋模型,核心的思想是利用某个词的上下文来预测这个词语。举个简单的例子,句子:The man fell in love with the woman,如果看懂句子的前部分 The man fell in love with the ___,我们就能很大概率的猜测到横线处需要填的内容是“woman”。因此,CBOW模型是来训练一个模型,用上下文的内容预测可能出现的单词。

71e9c7f3f5c9e63054123e8eee458ad5.png

图1 CBOW模型:用一个单词预测一个单词

首先,考虑一种简单的情况,即利用一个单词来预测另一个单词的情况,对应的网络结构如图1所示。这里,输入单词是使用one-hot编码的x=(x1,x2,...,xv), 经过一个全连接层得到隐含层h,h再经过一个全连接层得到输出的y,v是词汇表中单词的数量。图中可以看出x的shape为(v,), y的形状也是(v,), 这是使用一个单词预测另一个单词。通常,隐含层神经元的个数N,一般设定为小于v的值,如256,512等。训练完成后,隐含层的值被当做为词的嵌入表示。

81f5472ddb8616e0e48205c3e8ef08df.png

如果是只用多个词预测一个词,则可以先对他们做相同的全连接操作,将得到的值全部加到隐含层h,如图2所示,这里的x表示一个单词的one-hot形式,和图1有区别。

3.2 skip-gram实现词嵌入的原理

由上面的CBOW模型可知,CBOW模型是使用上下文来预测出现的词。而skip-gram方法则和CBOW方法相反,即使用出现的词来预测其上下文的词。如在之前的例子中,使用“woman”,来预测“man”和“fell”等单词。skip-gram可以看做CBOW的逆向过程,具体我就不展开聊了。

4. Skip-gram的实现,下期在写,欢迎关注留言转发。

原文链接(我的博客):https://blog.csdn.net/weixin_40437821/article/details/102652515

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值