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