【NLP-01】詞嵌入的發展過程(Word Embedding)


目錄

  1. 什么是詞嵌入(Word Embedding)
  2. 離散表示
  3. 分布式表示
  4. 神經網絡

一、什么是詞嵌入(Word Embedding)

詞是自然語言表義的基本單元。我們之所以認識詞語,是因為我們大腦中建立了很多映射連接。那計算機怎么去識別呢?這也是詞嵌入引出的原因:把詞映射為實數域向量的技術也叫詞嵌入(word embedding),核心思想就是見每個詞映射成低維空間(通常K=50-300維)上的一個稠密向量(Dense Vector)。

在NLP(自然語言處理)領域,文本表示是第一步,也是很重要的一步,通俗來說就是把人類的語言符號轉化為機器能夠進行計算的數字,因為普通的文本語言機器是看不懂的,必須通過轉化來表征對應文本。早期是基於規則的方法進行轉化,而現代的方法是基於統計機器學習的方法。

弄懂文本表示的發展歷程,對於NLP學習者來說是必不可少的。接下來開始我們的發展歷程。文本表示分為離散表示分布式表示

二、離散表示

2.1 One-hot表示

One-hot簡稱讀熱向量編碼,也是特征工程中最常用的方法。其步驟如下:

  1. 構造文本分詞后的字典,每個分詞是一個比特值,比特值為0或者1。
  2. 每個分詞的文本表示為該分詞的比特位為1,其余位為0的矩陣表示。

每個詞典索引對應着比特位。那么利用One-hot表示為:

One-hot表示文本信息的缺點(主要是不能稠密表示,具體表現如下)

  1. 比較起來很困難,英文相對還好(2000個單詞),中文(1W多個詞)
  2. 隨着語料庫的增加,數據特征的維度會越來越大,產生一個維度很高,又很稀疏的矩陣。
  3. 這種表示方法的分詞順序和在句子中的順序是無關的,不能保留詞與詞之間的關系信息

2.2 詞袋模型

詞袋模型(Bag-of-words model),像是句子或是文件這樣的文字可以用一個袋子裝着這些詞的方式表現,這種表現方式不考慮文法以及詞的順序。

文檔的向量表示可以直接將各詞的詞向量表示加和。例如:

1

John likes to watch movies. Mary likes too

John also likes to watch football games.

以上兩句可以構造一個詞典:

1

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}

那么第一句的向量表示為:[1,2,1,1,1,0,0,0,1,1],其中的2表示likes在該句中出現了2次,依次類推。

詞袋模型同樣有一下缺點

  1. 詞向量化后,詞與詞之間是有大小關系的,不一定詞出現的越多,權重越大。
  2. 詞與詞之間是沒有順序關系

2.3 TF-IDF

TF-IDF(term frequency–inverse document frequency)是一種用於信息檢索與數據挖掘的常用加權技術。TF意思是詞頻(Term Frequency),IDF意思是逆文本頻率指數(Inverse Document Frequency)。

字詞的重要性隨着它在文件中出現的次數成正比增加,但同時會隨着它在語料庫中出現的頻率成反比下降。一個詞語在一篇文章中出現次數越多, 同時在所有文檔中出現次數越少, 越能夠代表該文章。

分母之所以加1,是為了避免分母為0。

那么,TF−IDF=TF*IDF,從這個公式可以看出,當w在文檔中出現的次數增大時,而TF-IDF的值是減小的,所以也就體現了以上所說的了。

缺點:依然是詞與詞之間是沒有順序關系的。

2.4 n-gram模型

n-gram模型為了保持詞的順序,做了一個滑窗的操作,這里的n表示的就是滑窗的大小,例如2-gram模型,也就是把2個詞當做一組來處理,然后向后移動一個詞的長度,再次組成另一組詞,把這些生成一個字典,按照詞袋模型的方式進行編碼得到結果。改模型考慮了詞的順序。

例如:

1

  

John likes to watch movies. Mary likes too

John also likes to watch football games.

以上兩句可以構造一個詞典:

1

{"John likes": 1, "likes to": 2, "to watch": 3, "watch movies": 4, "Mary likes": 5, "likes too": 6, "John also": 7, "also likes": 8, "watch football": 9, "football games": 10}

那么第一句的向量表示為:[1, 1, 1, 1, 1, 1, 0, 0, 0, 0],其中第一個1表示John likes在該句中出現了1次,依次類推。

缺點:維度災難,隨着n的大小增加,詞表會成指數型膨脹,會越來越大。

2.5 離散表示存在的問題

  1. 無法衡量詞向量之間的關系。
  2. 詞表的維度隨着語料庫的增長而膨脹。
  3. n-gram詞序列隨語料庫增長呈指數型膨脹,更加快。
  4. 離散數據來表示文本會帶來數據稀疏問題,導致丟失了信息,與我們生活中理解的信息是不一樣的。

三、分布式表示

為了提高模型的精度,又發明出了分布式的表示文本信息的方法,這就是這一節需要介紹的。

用一個詞附近的其它詞來表示該詞,這是現代統計自然語言處理中最有創見的想法之一。當初科學家發明這種方法是基於人的語言表達,認為一個詞是由這個詞的周邊詞匯一起來構成精確的語義信息。就好比,物以類聚人以群分,如果你想了解一個人,可以通過他周圍的人進行了解,因為周圍人都有一些共同點才能聚集起來。

3.1 共現矩陣

共現矩陣顧名思義就是共同出現的意思,詞文檔的共現矩陣主要用於發現主題(topic),用於主題模型,如LSA。

局域窗中的word-word共現矩陣可以挖掘語法和語義信息,例如:

I like deep learning.        

I like NLP.        

I enjoy flying

有以上三句話,設置滑窗為2,可以得到一個詞典:

{"I like","like deep","deep learning","like NLP","I enjoy","enjoy flying","I like"}

中間的每個格子表示的是行和列組成的詞組在詞典中共同出現的次數,也就體現了共現的特性。

存在的問題:

向量維數隨着詞典大小線性增長。

存儲整個詞典的空間消耗非常大。

一些模型如文本分類模型會面臨稀疏性問題。

模型會欠穩定,每新增一份語料進來,穩定性就會變化。

四、神經網絡

上面的模型都有很多弊端,最大的就是體現每個詞或者詞組需要一個維度向量來表示,可能會產生維度在災難。有幾種改進形式:

4.1 NNLM(Neural Network Language model)

首先可以考慮GAN對抗生成形式來機器學習,另一種就是NNLM,

本模型主要發明之初用於訓練從上文推到下文信息,后來發現能用於embedding訓練。

4.2 word2Vec

該模型在2013年被發現,有兩種形式:一種CBOW(由上下文推測中間單詞,效果較好,為后面算法提供思路),一種skip-Gram(由中間詞推測上下文詞語)

為了減少計算,提出了兩種優化方法:

層次Softmax:至此還沒有結束,因為如果單單只是接一個softmax激活函數,計算量還是很大的,有多少詞就會有多少維的權重矩陣,所以這里就提出層次Softmax(Hierarchical Softmax),使用Huffman Tree來編碼輸出層的詞典,相當於平鋪到各個葉子節點上,瞬間把維度降低到了樹的深度,可以看如下圖所示。這課Tree把出現頻率高的詞放到靠近根節點的葉子節點處,每一次只要做二分類計算,計算路徑上所有非葉子節點詞向量的貢獻即可。

負例采樣(Negative Sampling):這種優化方式做的事情是,在正確單詞以外的負樣本中進行采樣,最終目的是為了減少負樣本的數量,達到減少計算量效果。將詞典中的每一個詞對應一條線段,所有詞組成了[0,1]間的剖分,然后每次隨機生成一個[1, M-1]間的整數,看落在哪個詞對應的剖分上就選擇哪個詞,最后會得到一個負樣本集合。

Word2Vec存在的問題

  1. 對每個local context window單獨訓練,沒有利用包含在global co-currence矩陣中的統計信息。
  2. 對多義詞無法很好的表示和處理,因為使用了唯一的詞向量

4.3 GloVe

GloVe的全稱叫Global Vectors for Word Representation,它是一個基於全局詞頻統計(count-based & overall statistics)的詞表征(word representation)工具,它可以把一個單詞表達成一個由實數組成的向量,這些向量捕捉到了單詞之間一些語義特性,比如相似性(similarity)、類比性(analogy)等。我們通過對向量的運算,比如歐幾里得距離或者cosine相似度,可以計算出兩個單詞之間的語義相似性。

word2vec最大的缺點則是沒有充分利用所有的語料,但GloVe和word2vec實際表現其實差不多。(也有說實際性能要優於word2vec)

4.4 ELMo

是2018年年初發明的模型,在一詞多義方面取得了很大發展,使用了雙向LSTM。大體如下圖所示。

4.5 BERT

2018年年底發明的模型,結合了CBOW的思想,ELMo的結構,借鑒GPT模型的Transformer部件,使得模型效果刷新NLP的多項記錄。

本節的模型較多,此處只是簡單介紹,計划后續單獨進行展開


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM