NLP学习—glove and word2vec
1、word2vec背后的数学知识,https://www.zybuluo.com/Dounm/note/591752
关于预训练的embedding,一般有GloVe、word2vec两个,那么两者的区别参见:https://zhuanlan.zhihu.com/p/31023929
2、背后的数学知识,关于负采样,是用来提高训练速度并且改善所得到词向量的质量的一种方法。不同于原本每个训练样本更新所有的权重,负采样每次让一个训练样本仅仅更新一小部分的权重,这样就会降低梯度下降过程中的计算量。
比如,当我们用训练样本(input:"fox",output:"quick")来训练神经网络时,如果vocabulary大小为10000,在输出层,我们期望对应“quick”单词的那个神经元节点输出1,其余9999个都应该输出0,在这里,这9999个我们期望输出为0的神经元节点所对应的单词,我们称之为“negative” word。
3、glove模型即使用了语料库的全局统计特征,也使用了局部的上下文特征(即滑动窗口),关于glove模型背后的数学知识,参见https://zhuanlan.zhihu.com/p/42073620
4、glove的简明说明,global vectors for word representation,是一个基于全局词频统计的词表征工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间的一些语义特征,比如相似性、类比性等,我们通过对向量的运算,比如欧几里得距离或者余弦相似度,可以计算出两个单词之间的语义相似性。实现步骤:
构建共现矩阵:就是共同出现的意思,词文档的共现矩阵主要用于发现topic、用于主题模型,如LSA,局域窗口中word-word共现矩阵可以挖掘语法和语义信息,参考https://juejin.im/post/6844903923279642638,https://www.codenong.com/cs105344081/
5、这里面涉及到一些公式,讲的比较全面https://developer.aliyun.com/article/714547,https://www.pythonf.cn/read/72756