fastText初探
- 目錄:
- 1、應(yīng)用場景
- 2、優(yōu)缺點
- 3、FastText的原理
- 4、FastText詞向量與word2vec對比
目錄:
1、應(yīng)用場景
fastText是一種Facebook AI Research在16年開源的一個文本分類器。 其特點就是fast。相對于其它文本分類模型,如SVM,Logistic Regression和neural network等模型,fastText在保持分類效果的同時,大大縮短了訓(xùn)練時間。
2、優(yōu)缺點
3、FastText的原理
fastText 方法包含三部分:模型架構(gòu)、層次 Softmax 和 N-gram 特征。
fastText 模型輸入一個詞的序列(一段文本或者一句話),輸出這個詞序列屬于不同類別的概率。
序列中的詞和詞組組成特征向量,特征向量通過線性變換映射到中間層,中間層再映射到標(biāo)簽。
fastText 在預(yù)測標(biāo)簽時使用了非線性激活函數(shù),但在中間層不使用非線性激活函數(shù)。
fastText 模型架構(gòu)和 Word2Vec 中的 CBOW 模型很類似。不同之處在于,fastText 預(yù)測標(biāo)簽,而 CBOW 模型預(yù)測中間詞。
第一部分:fastText的模型架構(gòu)類似于CBOW,兩種模型都是基于Hierarchical Softmax,都是三層架構(gòu):輸入層、 隱藏層、輸出層。
CBOW模型又基于N-gram模型和BOW模型,此模型將W(t?N+1)……W(t?1)W(t?N+1)……W(t?1)作為輸入,去預(yù)測W(t)
fastText的模型則是將整個文本作為特征去預(yù)測文本的類別。
第二部分:層次之間的映射
將輸入層中的詞和詞組構(gòu)成特征向量,再將特征向量通過線性變換映射到隱藏層,隱藏層通過求解最大似然函數(shù),然后根據(jù)每個類別的權(quán)重和模型參數(shù)構(gòu)建Huffman樹,將Huffman樹作為輸出。
具體的數(shù)學(xué)求解過程可參考博客:
https://blog.csdn.net/yick_liao/article/details/62222153
第三部分:fastText的N-gram特征
常用的特征是詞袋模型(將輸入數(shù)據(jù)轉(zhuǎn)化為對應(yīng)的Bow形式)。但詞袋模型不能考慮詞之間的順序,因此 fastText 還加入了 N-gram 特征。
“我 愛 她” 這句話中的詞袋模型特征是 “我”,“愛”, “她”。這些特征和句子 “她 愛 我” 的特征是一樣的。
如果加入 2-Ngram,第一句話的特征還有 “我-愛” 和 “愛-她”,這兩句話 “我 愛 她” 和 “她 愛 我” 就能區(qū)別開來了。當(dāng)然,為了提高效率,我們需要過濾掉低頻的 N-gram。
在fastText 中一個低維度向量與每個單詞都相關(guān)。隱藏表征在不同類別所有分類器中進(jìn)行共享,使得文本信息在不同類別中能夠共同使用。這類表征被稱為詞袋(bag of words)(此處忽視詞序)。在 fastText中也使用向量表征單詞 n-gram來將局部詞序考慮在內(nèi),這對很多文本分類問題來說十分重要。
舉例來說:fastText能夠?qū)W會“男孩”、“女孩”、“男人”、“女人”指代的是特定的性別,并且能夠?qū)⑦@些數(shù)值存在相關(guān)文檔中。然后,當(dāng)某個程序在提出一個用戶請求(假設(shè)是“我女友現(xiàn)在在兒?”),它能夠馬上在fastText生成的文檔中進(jìn)行查找并且理解用戶想要問的是有關(guān)女性的問題。
4、FastText詞向量與word2vec對比
FastText= word2vec中 cbow + h-softmax的靈活使用
靈活體現(xiàn)在兩個方面:
分類的label。不過不管輸出層對應(yīng)的是什么內(nèi)容,起對應(yīng)的vector都不會被保留和使用;
兩者本質(zhì)的不同,體現(xiàn)在 h-softmax的使用。
Word2vec的目的是得到詞向量,該詞向量 最終是在輸入層得到,輸出層對應(yīng)的 h-softmax 也會生成一系列的向量,但最終都被拋棄,不會使用。
fasttext則充分利用了h-softmax的分類功能,遍歷分類樹的所有葉節(jié)點,找到概率最大的label(一個或者N個)。
參考:
https://blog.csdn.net/sinat_26917383/article/details/54850933
https://blog.csdn.net/yick_liao/article/details/62222153
總結(jié)
以上是生活随笔為你收集整理的fastText初探的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Java8实战》笔记(03):Lamb
- 下一篇: LeetCode - Easy - 11