系統學習NLP(二十六)--NBSVM

論文:Baselines and Bigrams: Simple, Good Sentiment and Topic Classification

參考:https://blog.csdn.net/leayc/article/details/80037757 跟原文有一定差異,理解不一致。

樸素貝葉斯(Naive Bayes, NB)和支持向量機(Support Vector Machines, SVM)的變體常被用作文本分類的基線方法,但它們的性能因模型變體、使用的特性和任務/數據集的不同而有很大差異。Sida Wang 和 Christopher D. Manning基於兩種算法的特質,提出了NBSVM算法,實驗證明,NBSVM在情緒分析數據集上優於大多數算法的結果,甚至有時能達到start-of-the-art,因此在文本分類中常被作爲一個有用的baseline。

整體思想是把 NB 和 SVM 的長處綜合一下,構造一個簡單的線性模型。在幾個情感分析的數據集上結合 bigram 得到的效果不錯。

方法也很簡單,就是用 NB 和 SVM 的思想來構造一個線性分類器:

y^{(k)} = sign(w^Tx^{(k)} + b)

具體可以拆解成四個部分:

1. 構造權重向量 r:

r = \log(\frac{p/||p||_1}{q/||q||_1})

其中,p = \alpha + \sum_{i:y^{(i)} = 1} f^{(i)},q = \alpha + \sum_{i: y^{(i)} = -1} f^{(i)}α是平滑係數,防止0的情況出現,f_j^{(i)}是第 i個樣本的特徵向量的第 j個特徵出現的次數。這樣求出的向量 r稱爲 log-count ratio,其實就是類似WOE、

簡單來說就是求正負樣本上所有特徵出現的頻率的比值的對數。這就是模型中的 NB 部分,只不過對二分類問題用正負樣本特徵的頻率比直接替代了分別求概率然後比較的步驟。

注意:把log裏面的比例項,在貝葉斯理論裏,叫做貝葉斯因子,衡量的一個理論優於另一個理論的相對確證性,也是似然概率的比值,所以,這裏的log-count ratio計算出的權重向量,衡量的是整體的訓練集上數據x支持正樣本的概率是支持負樣本的概率的倍數。這個比例取log後,就是評分卡里的WOE,即證據權重。
2. 多項式 NB

在 MNB 中x^{(k)} = f^{(k)},w = r, b = \log(N_+/N_-),兩個 N 分別是正樣本和負樣本的數量。作者補充說另一篇文獻發現二值化的 f(k)效果更好,所以 f(k)可以做個二值化。多項式的意思的是似然函數中服從多項式分佈。

3. SVM
把帶 L2 約束的 SVM 的優化目標函數寫出來:

w^Tw + C\sum_i \max(0, 1-y^{(i)}(w^T\hat{f}^{(i)} + b))^2

經驗證 L2-loss 比 L1-loss 表現好,而且穩定(這個哪裏需要驗證啊?理論就可以得到這個結論)。實現時使用了 LibLinear 庫。

4. SVM + NB features
怎麼把 NB 和 SVM 搓到一起的呢?
目標函數還是 SVM 的 L2-loss,但 x(k)這裏變成了 r̂ ∘f^(k)。這個圈表示對應位置元素相乘,即所謂的 element-wise product,實際上就是二值化後的輸入又加入了 NB 分類權重。其實就是MNB特徵,即上面紅色部分的NB權重跟原始特徵做加權,得到MNB特徵,這麼做,有利於長文本分類,作者說還可以在 MNB 和 SVM 間做個均衡:

w' = (1-\beta) \bar{w} + \beta w

\bar{w} = \left \| w \right \|_{1}/\left | V \right |,這裏意思是SVM得到的支持向量(用於區分正負的特徵)在所有特徵集上的比例,與上面似然比一樣的道理,β 稱爲內插參數,可以理解爲一種正則化:相信 NB 的判斷,除非 SVM 置信度非常高。

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