句向量,更高维度的文档向量的表示一直都是一个难题,至今都没有一种较好的表示方法。下面从传统句向量的表示方法和深度学习的表示方法两方面来总结下。
下面的描述中,句子代表句子和文档。
1. 传统的表示方法
- bag of words:词袋模型,缺点是忽略了单词的顺序;忽略了单词的语义。
- bag of words(tfidf版):词袋模型中的词频变为了tfidf值。
- LDA:使用句子的主题分布来表示句子。
- average word vectors:对词向量求平均的方法来表示句向量。
- tfidf-weighting word vectors:同4类似,不过4中每个词向量的权重是,这里的权重变为了tfidf值
- doc2vec:直接对doc进行训练产生doc向量,也会产生副产品:词向量
1.1 doc2vec的原理
在这里介绍下doc2vec的原理,如果了解word2vec的原理,那么就会很容易理解doc2vec,doc2vec同word2vec的训练架构一样,分为:
-
PV-DM(Distributed Memory Model of paragraph vectors)类似于word2vec中的CBOW模型
PV-DM.jpg -
PV-DBOW(Distributed Bag of Words of paragraph vector类似于Word2vec中的skip-gram模型
PV-DBOW.jpg
关于模型训练和预测时的一些解释:
- 在训练每句话的时候,训练那句话对应的vec都会和句子中的一部分词向量一块训练。具体和句子中哪些词一块训练,会有一个滑动窗口,只训练窗口的里词。
- 在预测的时候,词向量和模型的参数都是固定不变的,只有句向量是未知的,初始化句向量后,随着窗口的滑动,句向量不断地被训练,直到收敛为止。
网友评论