帶監督的文本分類算法FastText


該算法由facebook在2016年開源,典型應用場景是“帶監督的文本分類問題”。


 

模型

模型的優化目標如下:


 

其中,$<x_n,y_n>$是一條訓練樣本,$y_n$是訓練目標,$x_n$是normalized bag of features。矩陣參數A是基於word的look-up table,也就是A是詞的embedding向量。$Ax_n$矩陣運算的數學意義是將word的embedding向量找到后相加或者取平均,得到hidden向量。矩陣參數B是函數f的參數,函數f是一個多分類問題,所以$f(BAx_n)$是一個多分類的線性函數。優化目標是使的這個多分類問題的似然越大越好。

將優化目標表示為圖模型如下:


 

與word2vec的區別

這個模型與word2vec有很多相似的地方,也有很多不相似的地方。相似地方讓這兩種算法不同的地方讓這兩

相似的地方:

  1. 圖模型結構很像,都是采用embedding向量的形式,得到word的隱向量表達。
  2. 都采用很多相似的優化方法,比如使用Hierarchical softmax優化訓練和預測中的打分速度。

不同的地方:

  1. word2vec是一個無監督算法,而fasttext是一個有監督算法。word2vec的學習目標是skip的word,而fasttext的學習目標是人工標注的分類結果。
  2. word2vec要求訓練樣本帶有“序”的屬性,而fasttext使用的是bag of words的思想,使用的是n-gram的無序屬性。

V.S. 深度神經網絡

fasttext只有1層神經網絡,屬於所謂的shallow learning,但是fasttext的效果並不差,而且具備學習和預測速度快的優勢,在工業界這點非常重要。

  • 比一般的神經網絡模型的精確度還要高。
  • 訓練和評估速度快幾百倍。10分鍾內就可以在一台多核CPU訓練10億詞匯。1分種內完成100萬句子在31萬中類型中的分類。

 

文獻



作者:EasonZhao
鏈接:http://www.jianshu.com/p/b7ede4e842f1
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

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



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