原文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(w2∣w1)p(w3∣w1w2)...p(wn∣w1n−1)
上式里面的每一项就是语言模型的参数,都可以展开(第一个等号近似计算了,第二个是大数定律):
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(wk∣w1k−1)=p(w1k−1)p(w1k)=count(w1k−1)count(w1k)
n-gram模型的特点:
假设一个词出现的频率只与它前面
n
−
1
n-1
n−1个词有关,也是就上式中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 < V N < 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 的细节有时间再补上 ———————————