
Doc2Vec 是一種無監(jiān)督算法,可從可變長度的文本片段(例如句子、段落和文檔)中學習嵌入。它最初出現(xiàn)在 Distributed Representations of Sentences and Documents 一文中。Word2Vec
讓我們先回顧一下 Word2Vec,因為它為 Doc2Vec 算法提供了靈感。Word2Vec 的連續(xù)詞袋架構(gòu)。圖片來自論文 Distributed Representations of Sentences and Documents。
Word2Vec 通過使用上下文中的其他單詞預測句子中的單詞來學習單詞向量。在這個框架中,每個詞都映射到一個唯一的向量,由矩陣 W 中的一列表示。向量的串聯(lián)或總和被用作預測句子中下一個詞的特征。使用隨機梯度下降訓練詞向量。訓練收斂后,將意思相近的詞映射到向量空間中相近的位置。所呈現(xiàn)的架構(gòu)稱為連續(xù)詞袋 (CBOW) Word2Vec。還有一種稱為 Skip-gram Word2Vec 的架構(gòu),其中通過從單個單詞預測上下文來學習單詞向量。Doc2Vec
來自論文 Distributed Representations of Sentences and Documents 的 Doc2Vec 的分布式內(nèi)存模型。
我們現(xiàn)在將看到如何學習段落的嵌入,但同樣的方法也可用于學習整個文檔的嵌入。在Doc2Vec中,訓練集中的每個段落都映射到一個唯一的向量,用矩陣D中的一列表示,每個詞也映射到一個唯一的向量,用矩陣W中的一列表示。段落向量和詞向量分別為平均或連接以預測上下文中的下一個單詞。段落向量在從同一段落生成的所有上下文中共享,但不會跨段落共享。詞向量矩陣 W 是跨段落共享的。段落標記可以被認為是另一個詞。它充當記憶,記住當前上下文中缺少的內(nèi)容。所以這個模型被稱為分布式內(nèi)存 (DM) Doc2Vec。還有第二種架構(gòu)稱為分布式詞袋 (DBOW) Doc2Vec,其靈感來自 Skip-gram Word2Vec。在預測時,需要通過梯度下降獲得新段落的段落向量,保持模型其余部分的參數(shù)固定。