該演算法由facebook在2023年開源,典型應用場景是「帶監督的文字分類問題」。
模型的優化目標如下:
其中,$$是一條訓練樣本,$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有很多相似的地方,也有很多不相似的地方。相似地方讓這兩種演算法不同的地方讓這兩
相似的地方:
圖模型結構很像,都是採用embedding向量的形式,得到word的隱向量表達。
都採用很多相似的優化方法,比如使用hierarchical softmax優化訓練和**中的打分速度。
不同的地方:
word2vec是乙個無監督演算法,而fasttext是乙個有監督演算法。word2vec的學習目標是skip的word,而fasttext的學習目標是人工標註的分類結果。
word2vec要求訓練樣本帶有「序」的屬性,而fasttext使用的是bag of words的思想,使用的是n-gram的無序屬性。
fasttext只有1層神經網路,屬於所謂的shallow learning,但是fasttext的效果並不差,而且具備學習和**速度快的優勢,在工業界這點非常重要。
文字分類演算法之 貝葉斯文字分類演算法
文字分類過程 例如文件 good good study day day up 可以用乙個文字特徵向量來表示,x good,good,study,day,day up 在文字分類中,假設我們有乙個文件d x,類別 c又稱為標籤。我們把一堆打了標籤的文件集合 作為訓練樣本,x c 例如 對於這個只有一句...
分類演算法 七) 短文本分類
深入做文字分類的同學都知道,短文本分類相對來說比較難。因為較短的文字包含的資訊較少,有時候模型很難學到關鍵特徵。參考 指出 但是對於長文字直接用cnn就不行了,textcnn會比han模型泛化能力差很多。當然如果在textcnn前加一層lstm,這樣效果可以提公升很大。另外還有一點很重要的是,實際使...
高效的文字分類
文字分類任務是自然語言處理中重要的任務之一,近來,神經網路的使用變得更為普遍,神經網路在文字分類任務中表現更好,但是在訓練和測試時間比較慢,限制了在大型語料庫中的使用。與此同時,線性分類器在文字分類器中被認為是一種很好的baseline,儘管他們很簡單,但當正確的特徵被使用時,經常能夠得到很好的表現...