NLP -word2vec原理笔记

原文1:word2vec 中的数学原理详解
原文2:运用TensorFlow处理简单的NLP问题
原文3:[NLP] 秒懂词向量Word2vec的本质
原文4:word2vec原理(一) CBOW与Skip-Gram模型基础
原文5:深入理解语言模型 Language Model

这里是读文章后自己按需整理的笔记。非常推荐阅读原文以及其中的参考文献,感谢原作者们清晰的讲解和分享(鞠躬)。
 
 

  本质而言,word2vec 就是将人类符号化的语言,转换为向量来表示。
  word2vec 是从语言模型的副产物取得的,因此我们从对语言模型的了解入手。

 

1. 语言模型

  对于语言序列 w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn,语言模型(Language Model)就是计算该序列成立的概率 p ( W ) = p ( w 1 , w 2 , . . . w n ) p(W) = p(w_1,w_2,...w_n) p(W)=p(w1,w2,...wn)

  从机器学习的角度看,语言模型就是对语句的概率分布的建模。

  也就是判断给定的一句话是不是正常人说出来的,模型得到的概率大则这句话更可能是正确的、通顺的。

 

2. n-gram 语言模型

  根据条件概率公式展开得:
p ( W ) = p ( w 1 ) p ( w 2 ∣ w 1 ) p ( w 3 ∣ w 1 w 2 ) . . . p ( w n ∣ w 1 n − 1 ) p(W) = p(w_1)p(w_2|w_1)p(w_3|w_1w_2)...p(w_n|w_1^{n-1}) p(W)=p(w1)p(w2w1)p(w3w1w2)...p(wnw1n1)

  上式里面的每一项就是语言模型的参数,都可以展开(第一个等号近似计算了,第二个是大数定律):
p ( w k ∣ w 1 k − 1 ) = p ( w 1 k ) p ( w 1 k − 1 ) = c o u n t ( w 1 k ) c o u n t ( w 1 k − 1 ) p(w_k|w_{1}^{k-1}) = \frac{p(w_1^k)}{p(w_1^{k-1})} = \frac{count(w_{1}^k)}{count(w_{1}^{k-1})} p(wkw1k1)=p(w1k1)p(w1k)=count(w1k1)count(w1k)

n-gram模型的特点:

  假设一个词出现的频率只与它前面 n − 1 n-1 n1个词有关,也是就上式中count的部分不需要从1开始,从 k-n+1开始即可。
  这样我们通过计算词串们出现的次数,可以得到词在前面所有都出现的前提下,它出现的概率,也就是得到了句子成立的概率。

 

3. Skip-gram 与 CBOW 用于神经网络语言模型

  在上面的 n-gram 模型中,将概率 p p p 表示为 c o u n t count count 的比值。而本质来讲, p p p 就是关于 w , C o n t e x t ( w ) w, Context(w) w,Context(w) 的一个函数。我们可以通过神经网络训练得到这个函数,而这个神经网络的权重就是我们要的 word2vec 向量。

  神经网络的输入应当是一个向量,而 word2vec 是这个神经网络的副、产物,因此输入必然不能是它。一般可以用 one-hot 独热编码 —— 得到一个 V 维向量(V 是语料字典的大小),或者随机地为每个词赋予一个 N 维向量 —— N 就是模型隐层输出的向量维数。 N &lt; V N &lt; V N<V,因此我们可以把 word2vec 看作是词对应向量从 one-hot 编码降维的过程。

  回过头来看,word2vec 所作的工作其实就是将词映射到一个 N 维空间中,我们称为词嵌入(word embedding),word2vec 是词嵌入的的一种。

  优点:1. 降低向量维度;2. 可以将有关联的词映射为空间中相邻的点,词与词之间的关联性通过空间距离来刻画

 
  根据预测方向不同,可以分为两种:Skip-gram 模型 & CBOW 模型
 
(1) CBOW 模型

  训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
在这里插入图片描述
 
(2) Skip-gram 模型

  输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。

  以上是神经网络语言模型中如何用 CBOW 与 Skip-Gram 来训练模型与得到词向量的大概过程。但是这和 word2vec 中用 CBOW 与 Skip-Gram 来训练模型与得到词向量的过程有很多的不同。

 

4. word2vec

—————————— 吃饭去了,Hierarchical Softmax 回来再写 ———————————
———————————— n-gram 和 DNN 的细节有时间再补上 ———————————

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值