虽然WORD2VEC表示的词向量不仅考虑了词之间的语义信息,还压缩了维度。但是,有时候当我们需要得到sentence/Document的向量时,虽然可以直接将sentence/Document中所有词的向量取均值作为sentence/Document的向量表示,但是这样会忽略了单词之间的排列顺序对句子或文本信息的影响。
基于此,才延伸出在word2vec上的改进doc2vec。
-
Doc2vec
与word2vec一样,DOC2VEC也有两种模型,分别为Distributed Memory(DM) 和Distributed Bag of Words(DBOW)。
DM模型在给定上下文和文档向量的情况下预测单词的概率,DBOW模型在给定文档向量的情况下预测文档中一组单词的概率。
其中,在一个文档的训练过程中,文档向量共享(意味着在预测单词的概率时,都利用了这个文档的语义)
DOC2vec的DM模型和word2vec的CBOW模型很像,DOC2VEC的DBOW模型跟word2vec的skip-gram模型很像。
DM
DM模型在训练时,首先将每个文档ID和语料库中所有词初始化一个K维的向量,然后将文档向量和上下文词的向量输入模型,隐层将这些向量累加(均值或者拼接,累加常用,且一般不选拼接,因为计算量大)得到中间向量,作为输出层softmax的输入。在一个文档的训练过程中,文档ID保持不变,共享这同一个文档的向量,相当于在预测单词的概率时,都利用了这个句子的语义。
DBOW
DBOW模型的输入是文档的向量,预测的是该文档随机抽样的词。