1. word2vec
2. 词袋模型
3. 词嵌入
4. TF-IDF
5. skip-gram
6. CBOW
7. GloVe
8. LDA LSA LSI
9. gensim
10. n-gram
11.seq2seq
12. tansfomer,对着代码实现一波?
13. char-rnn
14. 一个大佬说的,同时w2v也造成了一个缺点,就是若某个词是多意词,比如“苹果”既能代表水果也能代表apple公司。那么显然这个词上下文在不同语境下是大相径庭的,那么这时w2v的训练效果可想而知就相当有限了,elmo就是为了改善这个缺点孕育而生~
15. fasttext
16. textCNN
17. 大佬说的,词向量训练目前有三种比较火的,glove,word2vec还有fasttext4
18. 下面是大佬说的
不管是skip-gram,还是BOW,默认词向量都应该是输入向量矩阵。
现在我们看到的SG或者BOW,输出端要么是采用sampled_softmax或者NCE做多分类,要么是NEG用logloss做二分类,这就存在输出端也有一个相同维度的向量矩阵,并且还跟每个word一一对应。
最开始的时候并不是这么做,最开始为了降低输出端反向传播的计算复杂度,用的是hierarchical softmax,输出端是二叉树结构,输出端参数是二叉树中每个节点的向量,输出向量是和二叉树的节点一一对应的,跟word根本对应不上来,这种情况你只能利用输入端的词向量。
nce或者neg的做法是为了解决输出端计算量复杂度的问题,而附带产生了输出端的向量矩阵。
另外一个问题,输出端向量矩阵能不能当词向量来使用?我觉得也可以,可以在具体场景中试验一下。甚至可以将输入和输出向量拼接起来使用。或者将输入和输出向量统一起来,用一组向量表示。都可以尝试,最后用实验结果说话。
19. 大佬语录
-
我出几个题目让你回答一下,以免到时被问到:
- 为啥不用one-hot的方式,假设我们的计算机的存储足够到可以不用管内存的问题的话
- word2vec看起来跟自动编码解码器很像,它们两者有什么关联吗?
- 既然说深度神经网络的深度越深越好,为什么wv的深度只有1?
- 在大语料训练里,使用交叉熵的方式做损失函数,会有什么问题?
- 怎么才能做一个好的word2vec模型?
-
哈哈?有意思,我尝试回答一下
1.one-hot表示的话,不同词之间是没有关联的,比如[0 1 0]和[1 0 0]ÿ