对于word2vec,在做文本分类问题时候用到了。其中核心思想就是,把去完噪音和停用词的中文单子,通过中文分词,进入到word2vec进行训练。
在这个过程中,一直迷惑的地方有几个,通过某个周末的学习,现在整理如下。
1 单词是怎么表示成word embedding的形式的?
这个问题被网上很多材料都略过。其实它的原理是这样,首先以cbow为例,用one-hot的方法表示N个要属于的词,这个是N个1xC维度的向量,把这些放到输入层,然后会有W, W是一个V x N 维的参数,这里的N就是指定的,想把输入的词变成多少个特征的word embedding, 现在是C个1xN维度的向量,然后再走一个取平均,就是1xN维度向量的word Embedding了。后续就是神经网络的训练。
2 hierarchical softmax
这个和huffman树有关系,就是把一个多分类问题,转换成多个2分类的问题。具体的实现细节见下边的引用。
3 negative sampling
对于出现次数比较多的词,尤其是停用词中没有完全处理干净的,采用的技术。
就是在训练过程中随机丢掉高频的词汇,公式见下边的参考文件,其中公式中t是一个先验参数
屏幕快照 2017-07-30 下午4.01.08
4 sub sampling
关于参考的链接
https://zhuanlan.zhihu.com/p/22477976
http://suanfazu.com/t/word2vec-zhong-de-shu-xue-yuan-li-xiang-jie-duo-tu-wifixia-yue-du/178
http://www.cnblogs.com/iloveai/p/word2vec.html