前言:
说到稠密的word embedding ,最早的模型可追溯到2003年大佬Yoshua Bengio的NNLM(A Neural probabilistic language model)。然而受限于当时的计算机硬件,NNLM要在语料库上完成预训练需要消耗的时间和空间是一般研究者不能接受的,因为相对于要训练的trillions of words,NNLM的模型结构实在是“太大”!然而在今天看来只有两层神经网络结构的东西实在是和大沾不上边儿。
![e2cb937c46838903af1e6ff934241964.png](https://i-blog.csdnimg.cn/blog_migrate/79bfa3067c21fefd792f5969c30c17f6.jpeg)
受限于计算机硬件的发展,这种神经语言模型一直没发展起来。而2013年是一个转折点,Mikolov发表了word2vec(Efficient Estimation of Word Representation in Vector Space)。简化了NNLM的结构,引爆了词向量技术。本文要讨论的就是Mikolov的相关工作:
-
- Efficient Estimation of Word Representation in Vector Space
- Distributed Representation of Words and Phrases and their Compositionality
- Bag of Tricks for Efficient Text Classification
一、word2vec的模型结构
- 提出
针对NNLM存在的问题,参数量太大训练太慢,作出了一些调整:
(1)将NNLM中的拼接输入向量改成取平均
(2)移除了非线性的隐层
(3)使用上下文,而不像NNLM只用上文
2. 模型
两个子模型:CBOW和SKIP-GRAM
![b11ee0c9a5cf962b14041589337dcd9e.png](https://i-blog.csdnimg.cn/blog_migrate/0c4fb748e52448a431fb4f9d0155f750.jpeg)
CBOW的前向传播过程:初始化权重矩阵->正向传播->梯度下降调整参数->模型训练完成,去除输出层