分散式的句子和文件表示

本文翻譯doc2vec模型的提出論文distributed representations of sentences and documents。
正式譯文如下:
摘要:許多機器學習算法需要一個固定長度的特徵向量作爲輸入,當運用到文本上時,詞袋是最常見的固定長度特徵之一,儘管很流行,詞袋特徵有兩個主要的缺點:缺少了詞語之間的順序和忽略了單詞的語義。例如,‘powerful’,‘strong’和‘Paris’語義差距是比較大的,在本文裏,我們提出了句向量,一個非監督算法從句子,段落和文檔這些可變長度的文本中學習到固定長度的特徵表示。我們的算法使用密集向量表示每篇文檔,每個向量被訓練用來在文本中預測單詞。這種形式給我們的算法潛在的可能性去解決詞袋的缺點。實驗結果表明,句向量在文本表示方面比詞袋模型以及其他技術更好,最終,我們在幾個文本分類器和語句分析任務得到了很好的結果。
1.介紹
文本分類和聚類在很多應用裏起着非常重要的作用,比如,文檔恢復,網站搜索,垃圾郵件過濾。這些應用的核心是機器學習算法,比如邏輯迴歸或者K-Means。這些算法需要被表示爲固定長度向量的文本作爲輸入。最常見的文本固定長度向量表示是詞袋和bag-of-n-grams,因爲這些模型簡單有效準確。
然而,BOW(bag-of-word)有許多缺點。單詞順序丟失造成不同的句子有相同的表示,即使bag-of-n-grams在短文本里考慮了單詞順序,也遭受了數據稀疏和高維的難題。BOW和bag-of-n-grams對詞義或者說對單詞之間距離不明感。這個表示單詞‘powerful’,‘strong’和‘Paris’距離是一樣的,儘管‘powerful’在詞義上跟‘strong’比‘Paris’要近。
在本文中,我們提出了句向量,一個非監督框架下學習多文本的連續分佈式向量表示。該文本可以有從句子到文檔不同長度。句向量表示可以應用到不同長度的文本,從短語或者句子到一個大文檔的任意事物。
在我們的模型裏,在向量被訓練用來在段落裏預測單詞,更精確的說,我們在一個段落裏,用幾個詞向量連接成句向量然後預測下一個單詞。詞向量和句向量使用隨機梯度下降和backpropagation訓練。當句向量在句中是唯一的,詞向量是被共享的。當在預測時,句向量由固定詞向量推斷並訓練新的句向量直到擬合。
我們的技術啓發於最近使用神經網絡學習詞向量的工作。在這些工作裏,每個單詞都由一個向量表示,而這個向量是由文本中其它單詞向量連接或平均得來,得到的向量被用來預測其他單詞。例如,神經網絡語言模型是使用幾個前面單詞向量的連接作爲輸入,來嘗試預測下一個單詞。結果是,當模型被訓練後,詞向量被映射到一個向量空間,從而語義接近的單詞有相似的向量表示。
沿用這些成功的技術,研究者們嘗試拓展模型使之超出單詞級表示方式到短語級或者語句級表示方式。例如,一個簡單的方法是在文檔裏使用所有單詞的加權平均。一個更加隨意的方法是通過使用矩陣向量操作,通過一個句子解析樹組合詞向量。兩個防範都有缺點,第一個方法,詞向量的加權平均跟詞袋模型一樣丟失了詞序。第二個方法,使用解析樹來組合詞向量,被證明只能用在句子中。
句向量能夠構建不同長度文本序列的表示,不像前面的幾個方法,它更通用和適用於任意程度的文本:句子,段落和文檔。它既不需要單詞權重函數的具體調整,也不依賴於解析樹。本文的後續部分,我們將展示在幾個基準數據庫上的實驗來驗證詞向量的優點。例如,在詞義分析任務中,我們實現了比複雜方法更加先進的結果,在錯誤率上有超過16%的改進。在文本分類任務中,我們的方法打敗了BOW模型,有將近30%的提升。
2.算法
我們從討論先前學習詞向量的方法開始,句向量方法收到了這些方法的啓發。
2.1 學習單詞的向量表示
這部分介紹分佈式詞向量的概念。一個著名的學習詞向量框架如圖1所示,該框架任務是在文本里在給定其它單詞的情況下,預測一個單詞。
這裏寫圖片描述
在這個框架裏,每個單詞被映射爲一個唯一的向量,作爲矩陣W的一列。列號表示該單詞在字典裏的位置,向量的連接或者平均被作爲特徵來預測文本里的下一個單詞。
更爲正式的說,給定一個訓練次序列w1,w2,…,wT,詞向量模型的目的是最大化平均對數概率(average log probability)
這裏寫圖片描述
預測任務被多分類器完成,例如softmax,因此我們有:
這裏寫圖片描述
對於每個單詞i,yi是非正則化對數概率(un-normalized log-probability),計算方式如下:
這裏寫圖片描述
其中,u,b是softmax的參數,h是由w中某些詞向量的連接和平均而形成的。
在實際操作中,hierarchical softmax比如softmax更適合用於快速訓練,在我們的工作中,hierarchical softmax的結構是哈夫曼二叉樹,短code用來表示頻繁出現的單詞,這是一個好的加速技巧,因爲相同的單詞可以被快速的訪問。
基於詞向量的神經網絡通常使用隨機梯度下降來訓練,梯度是通過反向傳播得到。這類模型通常被稱爲神經語言模型,一個特別的基於神經網絡算法訓練詞向量的實現可以在code.google.com/p/word2vec上得到。
在訓練擬合之後,相似語義的單詞被映射到向量空間的一個相似位置,例如,powerful’和‘strong’是很接近的,然而‘powerful’和‘Paris’是很遠的。詞向量之間的差異也帶有意義,例如,詞向量可以通過簡答向量代數被用來回答比喻問題:‘king’-‘man’+‘woman’=‘Queen’,通過學習一個線性矩陣來翻譯語言之間的單詞和短語也是可能的。
這些性能使詞向量收到了許多自然語言處理任務的追捧,例如,語言模型,自然語言理解,統計機器翻譯,圖像理解和關係提取。
2.2 句向量:分佈存儲模型(distributed memory model)
我們學習句向量的方法是受到學習詞向量方法的啓發。這個啓發就是詞向量被要求在句子裏預測下一個單詞做出貢獻,所以儘管詞向量是隨機初始化的,他最終在預測任務中作爲間接結果捕捉到了語義。我們在句向量的構建中使用這一思想,句向量也將被要求在許多文本樣本中預測下一個單詞中做出貢獻。
在我們的句向量框架裏(見圖2),每個段落被映射成一個唯一的向量,作爲矩陣D的一列,同時,每個詞向量被映射到一個唯一的向量,作爲矩陣W的一列。句向量和詞向量被連接或者平均來預測下一個單詞。在實驗中,我們使用連接的方式。
更爲具體的來說,在這個模型裏對比詞向量框架唯一的改變是公式1,h是由W和D構建的。
段落標識可以被認爲是另一個單詞,它充當着記憶的角色,記住什麼從當前的文本或者段落的主題中丟失。由於這個原因,我們通常稱呼這個模型爲Distributed Memory Model of Paragraph Vector(PV-DM)。
內容是固定長度以及在段落裏利用滑動窗口抽樣生成的,句向量在同一段落裏的所有內容裏是共享的,然而,句向量矩陣W在段落間是共享的。例如,單詞‘powerful’向量在所有段落裏是共享的。
句向量和詞向量使用隨機梯度下降訓練。梯度將會通過反向傳播得到。在隨機梯度下降的每一步裏,可以從一個任意的段落裏抽樣一個固定長度的文本,在圖2的網絡裏計算error gradient並使用這個梯度更新模型裏的參數。
在預測時,需要執行推斷步驟來計算新段落的段落向量。這將通過梯度下降得到,在這一步中,模型剩下的參數詞向量W和softmax權重是固定的。
假設語料庫中有 N 個句子,字典裏有 M 個詞彙;我們試圖將每一個句子映射到 p 維空間,每一個詞映射到 q 維空間,於是這個模型就有總共 N×p+M×q 個參數(包括softmax參數)。即使句子的數量會隨着 N 的增大而增大,訓練中的更新還是稀疏且高效。
這裏寫圖片描述
訓練過後,句向量可以被用作段落的特徵,我們可以直接使用這些特徵用在傳統機器學習技術上,例如邏輯迴歸,SVM或K-Means。
總而言之,這個算法有兩個關鍵階段:1)通過訓練獲得詞向量矩陣 W, softmax權重 U, b 以及 句向量 D 從已知的句子裏;2)第二個階段是推斷階段,用於取得一個新句子(沒有出現過)的句向量 D,通過增加更多的列在矩陣 D 裏,並保持 W, U, b 不變的情況下在矩陣 D 上進行梯度下降。我們使用 D 通過一個標準的分類器給句子加上標籤。
句向量的優點: 句向量的一個重要的優點在於,它的訓練集是沒有被加上標籤的數據,因此它可以被用於一些訓練樣本標籤不足的任務。
句向量也解決了詞袋模型的一些關鍵的弱點。第一,它傳承了詞向量的一個重要特性——詞和詞之間的語義。在語義裏,“強有力”比起“巴黎”來說,和“強壯”更接近。句向量的第二個優點在於它考慮到了“詞序(word order)”,n-gram模型則需要設置一個較大的n才能做到。這一點很重要,因爲n-gram模型保存了句子中大量的信息,包括詞序。也就是說,我們的模型優於詞袋n-gram模型因爲後者會表現出一個極高的維度,這會影響效率。
2.3 無詞序句向量:分佈詞袋模型
上面的方法討論了在一個文本窗口內,通過句向量和詞向量的首尾相接來預測下一個詞。另一種方法不把上下文中的詞作爲輸入,而是強制這個模型在輸出中從句子中隨機抽取詞彙來進行預測。實際上,其意義在於在每一個隨機梯度下降的循環中,我們抽取一個文本窗口,然後從這個文本窗口中抽取一個詞,然後通過一個分類任務得到句向量。這項技術如圖3所示。我們把這個版本稱爲句向量的分佈詞袋(PV-DBOW: Distributed Bag of Words version of Paragraph Vector)版本,相比於上一節提到的PV-DM版本。
這裏寫圖片描述
除了在概念上簡單以外,這個模型只需要存儲少量的數據。相比於上一個模型需要存儲softmax權重和詞向量,這個模型只需要存儲softmax權重。同樣的,這個模型也近似於Skip-gram模型。
在我們的試驗中,每一個句向量都是兩個向量的組合:一個通過PV-DM訓練,另一個通過PV-DBOW訓練。PV-DM能夠很好地執行多種任務,但是它結合PV-DBOW後,常常能夠更加出色完成任務,此我們強烈推薦這種做法。
3.實驗
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章