fastText解讀

背景

上一章的Word2Vec解讀我們瞭解到了一種快速對詞語進行embedding的方式,對於文本分類任務,fasttex被facebook提出,具體論文見
《Bag of Tricks for Efficient Text Classification》

模型架構在這裏插入圖片描述

如圖所示,模型採用類似word2vec的cbow模型,只不過這裏最終輸出的是各個分類label的概率,而不是中心詞的概率 。
和CBOW模型同理,輸入通過一個weight matrix C進行look up得到詞向量,和詞袋模型一樣對多個詞取平均向量作爲線性分類器的輸入,最終輸出通過softmax表示輸出類別的label的概率 。這裏當類別較多的時候,同樣採用Hierarchical Softmax(Hierarchical Softmax的介紹可以見上一章)。最終通過SGD優化得到embedding。

fasttext和word2vec的比較

1.引入ngram特徵:word2vec採用詞作爲粒度,而fasttext的輸入是ngram的粒度(可以是字粒度可以是詞粒度),能隱式反應其前後順序,而且能對低頻詞得到更好的embeding(因爲訓練數據能共享更細粒度的ngram)和未出現的進行embedding(ngram疊加得到)
2. 輸出不一樣:word2vec輸入是上下文單詞的詞向量,輸出是中心詞的概率,fasttext輸入是句子或文檔的ngram的特徵向量,輸出是是文本類別標籤
3. fasttext是做文本分類(hierarchy softmax在測試時可用DFS查詢最大概率),詞向量是副產物,word2vec基於語言模型概率出發,輸入層embedding作爲詞向量
4. 因爲採用線性分類器,ngram 哈希等tricks,速度很快,"fasttext"因此得名

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