doc2vec原理
doc2vec和word2vec類似,Doc2vec也有兩種訓練方式,分別是Distributed Memory(DM) 和 Distributed Bag of Words(DBOW)。
DM 試圖在給定上下文和段落向量的情況下預測單詞的概率,與word2vec中CBOW類似,在一個句子或者文檔的訓練過程中,段落 ID 保持不變,共享著同一個段落向量;
DBOW 則在僅給定段落向量的情況下預測段落中一組隨機單詞的概率,與word2vec中skip-gram類似。
1.DM模型
訓練過程中新增了paragraph id,即訓練語料中每個句子都有一個唯一的id。paragraph id和普通的word一樣,也是先映射成一個向量,即paragraph vector。paragraph vector與word vector的維數雖一樣,但是來自于兩個不同的向量空間。在之后的計算里,paragraph vector和word vector累加或者連接起來,作為輸出層softmax的輸入。在一個句子或者文檔的若干次訓練過程中,paragraph id保持不變,共享著同一個paragraph vector,相當于每次在預測單詞的概率時,都利用了整個句子的語義。
訓練完了以后,就會得到訓練樣本中所有的詞向量和每句話對應的句子向量。
那么Doc2vec是怎么預測新的句子Paragraph vector呢?其實在預測新的句子的時候,還是會將該Paragraph vector隨機初始化,放入模型中再重新根據隨機梯度下降不斷迭代求得最終穩定下來的句子向量。不過在預測過程中,模型里的詞向量還有投影層到輸出層的softmax weights參數是不會變的,這樣在不斷迭代中只會更新Paragraph vector,其他參數均已固定,只需很少的時間就能計算出帶預測的Paragraph vector。
2. DBOW模型
總結
- 上一篇: 什么是分布式和集群?
- 下一篇: 基于FPGA的自动售货机Verilog开