原理的话,这篇讲解的特别好:
Distributed representations of sentences and documents
应用的话,这个tutorial非常实用,直接可以用Python跑, 跑完后心里会明白不少:
Sentiment Analysis Using Doc2Vec
(Doc2Vec,可用用来做情感分析任务)
Doc2Vec优点:1. Context层面保留词语顺序关系(PV-DM);2. 具有语义
2个步骤:
1. 训练:把段落当成一个独立的词,和Context词语们一起作为输入,训练段落向量和词语向量和网络权重;
2. 预测:固定词向量和网络权重,只更新新段落的向量,直至收敛;
用这个新段落的向量,可以做分类等任务(单独训练传统神经网络或者LR;比如把段落Embedding当输入层,目标函数是MSE去回归拟合情感分数)
PV-DM效果更好;
分类等后续任务,使用PV-DM的段落向量和PV-DBOW的段落向量首尾相连,效果更好; (比RNN的效果还要好;远好于WordVector的Avg-Pooling; 远好于TF-IDF)
向量首尾相连,比加和效果好;
预测阶段可以并行计算来加速;