NLP FastText句子語義深度表示

2021-08-14 23:26:21 字數 3070 閱讀 8686

1、nlp︱高階詞向量表達(一)——glove(理論、相關測評結果、r&python實現、相關應用)

2、nlp︱高階詞向量表達(二)——fasttext(簡述、學習筆記)

3、nlp︱高階詞向量表達(三)——wordrank(簡述)

4、其他nlp詞表示方法*****:從符號到分布式表示nlp中詞各種表示方法綜述

本節內容參考自: 

1、開源中國社群 [

《facebook 開源的快速文字分類器 fasttext》

2、雷鋒網文章:《比深度學習快幾個數量級,詳解facebook最新開源工具——fasttext》

.

fasttext 方法包含三部分:模型架構、層次 softmax 和 n-gram 特徵。

fasttext 模型輸入乙個詞的序列(一段文字或者一句話),輸出這個詞序列屬於不同類別的概率。 

序列中的詞和片語組成特徵向量,特徵向量通過線性變換對映到中間層,中間層再對映到標籤。 

fasttext 在**標籤時使用了非線性啟用函式,但在中間層不使用非線性啟用函式。 

fasttext 模型架構和 word2vec 中的 cbow 模型很類似。不同之處在於,fasttext **標籤,而 cbow 模型**中間詞。

對於有大量類別的資料集,fasttext使用了乙個分層分類器(而非扁平式架構)。不同的類別被整合進樹形結構中(想象下二叉樹而非 list)。在某些文字分類任務中類別很多,計算線性分類器的複雜度高。為了改善執行時間,fasttext 模型使用了層次 softmax 技巧。層次 softmax 技巧建立在哈弗曼編碼的基礎上,對標籤進行編碼,能夠極大地縮小模型**目標的數量。(參考部落格) 

考慮到線性以及多種類別的對數模型,這大大減少了訓練複雜性和測試文字分類器的時間。fasttext 也利用了類別(class)不均衡這個事實(一些類別出現次數比其他的更多),通過使用 huffman 演算法建立用於表徵類別的樹形結構。因此,頻繁出現類別的樹形結構的深度要比不頻繁出現類別的樹形結構的深度要小,這也使得進一步的計算效率更高。 

.常用的特徵是詞袋模型。但詞袋模型不能考慮詞之間的順序,因此 fasttext 還加入了 n-gram 特徵。 

「我 愛 她」 這句話中的詞袋模型特徵是 「我」,「愛」, 「她」。這些特徵和句子 「她 愛 我」 的特徵是一樣的。 

如果加入 2-ngram,第一句話的特徵還有 「我-愛」 和 「愛-她」,這兩句話 「我 愛 她」 和 「她 愛 我」 就能區別開來了。當然,為了提高效率,我們需要過濾掉低頻的 n-gram。

在 fasttext 中乙個低維度向量與每個單詞都相關。隱藏表徵在不同類別所有分類器中進行共享,使得文字資訊在不同類別中能夠共同使用。這類表徵被稱為詞袋(bag of words)(此處忽視詞序)。在 fasttext中也使用向量表徵單詞 n-gram來將區域性詞序考慮在內,這對很多文字分類問題來說十分重要。

舉例來說:fasttext能夠學會「男孩」、「女孩」、「男人」、「女人」指代的是特定的性別,並且能夠將這些數值存在相關文件中。然後,當某個程式在提出乙個使用者請求(假設是「我女友現在在兒?」),它能夠馬上在fasttext生成的文件中進行查詢並且理解使用者想要問的是有關女性的問題。 . .

(1)適合大型資料+高效的訓練速度:能夠訓練模型「在使用標準多核cpu的情況下10分鐘內處理超過10億個詞彙」,特別是與深度模型對比,fasttext能將訓練時間由數天縮短到幾秒鐘。使用乙個標準多核 cpu,得到了在10分鐘內訓練完超過10億詞彙量模型的結果。此外, fasttext還能在五分鐘內將50萬個句子分成超過30萬個類別。 

(2)支援多語言表達:利用其語言形態結構,fasttext能夠被設計用來支援包括英語、德語、西班牙語、法語以及捷克語等多種語言。它還使用了一種簡單高效的納入子字資訊的方式,在用於像捷克語這樣詞態豐富的語言時,這種方式表現得非常好,這也證明了精心設計的字元 n-gram 特徵是豐富詞彙表徵的重要**。fasttext的效能要比時下流行的word2vec工具明顯好上不少,也比其他目前最先進的詞態詞彙表徵要好。 

(3)fasttext專注於文字分類,在許多標準問題上實現當下最好的表現(例如文字傾向性分析或標籤**)。fasttext與基於深度學習方法的char-cnn以及vdcnn對比: 

(4)比word2vec更考慮了相似性,比如 fasttext 的詞嵌入學習能夠考慮 english-born 和 british-born 之間有相同的字尾,但 word2vec 卻不能(具體參考*****)。 . .

本節**於部落格:fasttext

fasttext= word2vec中 cbow + h-softmax的靈活使用

靈活體現在兩個方面: 

1. 模型的輸出層:word2vec的輸出層,對應的是每乙個term,計算某term的概率最大;而fasttext的輸出層對應的是 分類的label。不過不管輸出層對應的是什麼內容,起對應的vector都不會被保留和使用; 

2. 模型的輸入層:word2vec的輸出層,是 context window 內的term;而fasttext 對應的整個sentence的內容,包括term,也包括 n-gram的內容;

兩者本質的不同,體現在 h-softmax的使用。 

wordvec的目的是得到詞向量,該詞向量 最終是在輸入層得到,輸出層對應的 h-softmax 也會生成一系列的向量,但最終都被拋棄,不會使用。 

fasttext則充分利用了h-softmax的分類功能,遍歷分類樹的所有葉節點,找到概率最大的label(乙個或者n個)

句子語義表徵 句子向量

大體上可以分為無監督方式和監督方式 無監督句子語義表徵方法 一種最經典的方法是在one hot詞語語義表徵的基礎上使用bag of words技術。缺點 一是它丟失了詞語在句子中的順序資訊 二是它忽略了詞語的語義資訊,每個詞的one hot表徵都是等距離的。2 類似的還有用word2vec來替換on...

語言表徵 從詞巢狀到句子語義

去年,christopher manning教授發表了這個演講。這是乙個介紹性教程,沒有太複雜的演算法。該主題分為四個部分 人類語言特徵 人類語言最鮮明的特徵之一是其有意義的表徵。無論乙個人說什麼,乙個詞或乙個片語,它往往都有意義。人類語言也有乙個特殊的結構,使其易於學習,即使是孩子也可以快速學習。...

句子分類 英語句子分類

學習了句子基本成分以後,有些同學會以為,句子成分已經分析這麼透徹了,是不是再背背單詞就可以順利閱讀和寫作英語文章了?但願如此,但事實並非如此簡單,我們還需要學習另外乙個重要的知識才可以達到讀寫的目的,那就是英語句子。句子是表達我們思想的基本單位。英語文章都是由句子組成的,但是那麼多的句子,每個句子幾...