NLP系列文章(三)——文本向量的表示方法

基於詞向量的表示方法

雖然one-hot和TF-IDF的表示方式也成爲詞向量,但是我們這裏討論的基於詞向量的表示方式是圍繞分佈式詞表徵進行的。也就是利用Word2Vec、GloVe和fastText等詞向量對文本進行表示,詞向量可以根據任務或者資源的不同隨意選擇,文本表示的方法是通用的。

首先我們根據語料庫訓練詞向量,也就是針對文本中的每個詞彙,我們均有它的向量表示。當要獲得每個文本的向量表示,可以將文本中出現的詞彙進行求和、求平均以及加權求和等方式獲取最後的結果。

求和與求平均的方式相對簡單,此處不再贅述。如何進行加權求和可以針對任務的需求進行。常見的方式爲TF-IDF加權的文本表示。

SentenceVector(s)=in(TFIDF(wordi)×Word2Vec(wordi))wordisSentenceVector(s) = \sum_i^n (TF - IDF(word_i) \times Word2Vec(word_i)) \\其中 word_i \in s

上述爲對TF-IDF加權的Word2Vec的表示,其中s是需要表示爲向量的文本,wordiword_i是每個文本中的句子。TFIDF(wordi)TF-IDF(word_i)代表針對wordiword_i求對應的TF-IDF值,Word2Vec(wordi)Word2Vec(word_i)代表對應詞彙的詞向量。

一般情況下,加權之後的文本向量要優於直接求和或求平均的方式,此外,類似的加權方式還有SIF算法,當然也可以用Doc2Vec的方式直接求取對應文本的文檔向量。

基於詞向量的文本表示方式,由於向量的維度是可控的,所以不會造成維度災難和數據稀疏的問題,同時也能較好的反應出文本的語義,現在被廣泛的使用。

有監督文本表示方法

無監督的文本表示方法和有監督的文本表示方法的最主要區別在於,是否需要訓練模型以及優化目標來實現某項任務。很明顯無監督的方式是拿來訓練好的詞向量進行進一步的處理,並沒有搭建任何的模型。

有監督的文本表示可以從某一項任務中模型的隱層向量提取出來認爲是對應文本的表示向量。例如文本分類模型TextCNN,根據模型不斷的迭代,最終收斂到較好的效果,可以將模型的池化層拼接後的結果輸出作爲文本的表示向量。基於翻譯任務的Seq2Seq模型,亦可以將RNN最後一個時間步的輸出作爲表徵文本的向量。根據這種思想可以將很多模型中的隱層輸出的向量視爲文本向量。

近年來,較爲流行的BERT、GPT和ALBERT等模型均是依據依據訓練神經語言模型來得到句向量的表示。經過大量的訓練數據以及較長時間的訓練,這種向量儘可能的表徵了文本自身的語義特徵。

無論是無監督的方式還是有監督的方式,均沒有哪種方式比另一種絕對性的好。在使用文本的表示方式的時候,需要根據上下游任務的特點,還有現有的資源以及數據的規模等多種特性來使用一種較爲合適的文本表示方式。

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