本發(fā)明涉及文本分類領(lǐng)域,更具體地,涉及一種快速的結(jié)構(gòu)化支持向量機文本分類優(yōu)化算法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,隨之帶來的海量數(shù)據(jù)的分類、組織與管理,已經(jīng)成為一個具有重要研究意義的課題。而這些數(shù)據(jù)中,文本數(shù)據(jù)是數(shù)量最大的一類,包括新聞報道、用戶評論、郵件、廣告等等。這些包含大量文字內(nèi)容的傳播載體,需要一個完善的分類機制對信息進行管理與過濾,因此文本分類應(yīng)運而生。文本分類是指依據(jù)文本的內(nèi)容,由計算機根據(jù)某種自動分類算法,把文本判分到預(yù)先定義好的類別,是信息存儲、信息檢索等領(lǐng)域的重要課題。近年來,基于統(tǒng)計理論和機器學習的方法被應(yīng)用到文本分類中,取得了較好的效果,但在面向應(yīng)用時,實際數(shù)據(jù)集的不平衡或偏斜問題成為一大新挑戰(zhàn)。不平衡數(shù)據(jù)集在現(xiàn)在機器學習研究和應(yīng)用中非常重要,在醫(yī)療診斷、文本分類、信息檢索、推薦系統(tǒng)等熱門領(lǐng)域中,對不平衡數(shù)據(jù)集的處理方法研究引起廣泛重視。
傳統(tǒng)的文本分類,是依靠一系列規(guī)則來處理的:如果某文本符合某一規(guī)則,那么將它歸為某一類。這種基于知識工程的方法需要消耗大量的人力、時間,不具備可推廣性。當下文本分類方法主要以統(tǒng)計理論為基礎(chǔ),利用機器學習方法來完成,能過獲得較好的效果,但在實際應(yīng)用過程中仍有許多缺陷。
首先,一般機器學習方法的研究背景一般是基于抽樣的統(tǒng)計,這些樣本往往滿足一定的分布條件,但是在大數(shù)據(jù)環(huán)境下的數(shù)據(jù)集更傾向于全量數(shù)據(jù)分析,而非抽樣統(tǒng)計,因此會帶來了不少問題,比如數(shù)據(jù)噪聲多,錯誤率較高,數(shù)據(jù)分布不平衡等。例如垃圾郵件的檢測中,內(nèi)容非法的郵件總是占少數(shù)的,這樣的數(shù)據(jù)集中,正負樣本數(shù)量相差很大。處理這樣的數(shù)據(jù)集時,如果沒有對算法加以修正和改進會造成精度和預(yù)想結(jié)果大相徑庭。
不平衡數(shù)據(jù)集分為兩類,第一種是類間的不均衡,表示不同類別的數(shù)據(jù)之間的樣本數(shù)量不均衡,例如二分類問題中,兩類樣本數(shù)量的比例為99:1;第二種是類內(nèi)的不均衡,指的是少數(shù)類的樣本中包含一個少數(shù)有限樣本子集。
其次,傳統(tǒng)的文本分類器一般使用錯誤率作為評價指標,通過計算預(yù)測結(jié)果和實際結(jié)果之間的偏差來判定分類器的好壞。但在樣本數(shù)量不平衡的情況下,這個評價指標有很大的缺陷。例如前文提到的郵件文本,樣本極度不平衡的情況下若使用錯誤率進行評估,即使全部預(yù)測成正類(正常郵件)錯誤率仍會很低,這樣的結(jié)果沒有意義。因此在文本分類中,當錯誤率由于正負樣本之間的大量失衡而不適合的時候,F(xiàn)值、AUC能夠更好的評價分類器性能。下文會對這兩種指標加以敘述。
第三,雖然采用F值、AUC能夠作為好的評估指標,那么可以考慮通過直接優(yōu)化F值或AUC來訓練一個文本分類模型,一定程度上類似于Ranking SVM等方法,它們以降低訓練誤差為目標,但對于訓練樣本不平衡的情況下表現(xiàn)較差,分類器對小類樣本所產(chǎn)生的訓練實例區(qū)分不好,甚至視若無睹??梢韵氲?,若以優(yōu)化F值或AUC為目標,很容易造成過擬合的情況,使得最終結(jié)果適得其反。提出了以F值或AUC為目標的解決辦法,但其優(yōu)化速度過慢,計算復(fù)雜度很大。
現(xiàn)有技術(shù)中還有提出使用集成學習來對不同的分類器取長補短,即在對樣本進行分類的時候,把若干個單個分類器集成起來,通過對多個分類器的分類結(jié)果進行某種組合來決定最終的分類,以取得比單個分類器更好的性能。但是并不是所有的集成方式都有效的,即使能夠提高F值和AUC,但多種分類器的組合導致模型極為復(fù)雜,時間復(fù)雜度高,可解釋差。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種快速的結(jié)構(gòu)化支持向量機文本分類優(yōu)化算法,該算法提高在文本數(shù)據(jù)集不平衡情況下的分類精度,有效提高分類性能。
為了達到上述技術(shù)效果,本發(fā)明的技術(shù)方案如下:
一種快速的結(jié)構(gòu)化支持向量機文本分類優(yōu)化算法,包括以下步驟:
S1:對結(jié)構(gòu)化支持向量機的目標函數(shù)進行擴展得出結(jié)構(gòu)化支持向量機的對偶形式;
S2:利用得出的對偶形式通過坐標上升法對結(jié)構(gòu)化支持向量機的目標函數(shù)進行優(yōu)化。
進一步地,所述步驟S1的具體過程如下:
S21:對結(jié)構(gòu)化支持向量機的目標函數(shù)進行擴展有:
(1)
其中,y是某種結(jié)構(gòu)化的標簽,是實際標簽,是預(yù)測標簽,預(yù)測標簽和真實標簽之間差距造成的代價,是參數(shù)向量,是對模型的先驗假設(shè),是輸入樣本;
S22:為化簡(1),令
=,可以得出: ,;
其中,,,,,;
S23:利用Fenchel對偶理論對上式進行處理得出結(jié)構(gòu)化支持向量機的對偶形式:
,;
其中,是對偶目標函數(shù),為拉格朗日乘子。
進一步地,所述步驟S2的過程如下:
用原始目標函數(shù)及其對偶形式之間的差值作為迭代次數(shù)截斷條件,利用坐標上升法對目標函數(shù)進行迭代更新,通過多次迭代來進行目標函數(shù)的優(yōu)化,提出的坐標上升方法具體的過程如下:
對梯度向量遍歷其所有元素,沿索引選擇最大的子元素,對于每個選定的索引j,通過固定一個變量來更新,用貪婪方法增加的值,直到迭代次數(shù)截斷條件滿足。
進一步地,在多項時間內(nèi)優(yōu)化目標函數(shù),利用坐標上升法對目標函數(shù)進行迭代更新的過程如下:
S41:對偶目標函數(shù)的梯度向量中遍歷下標j找到最大的子元素,其中,關(guān)于的梯度向量是:,求出其中最大的子元素,定義為:
(2)
S42:上式(2)是在結(jié)構(gòu)化支持向量機中尋找約束條件,對于每一個訓練樣本()維護一個約束條件的集合,迭代求解每一個w,尋找與約束條件相背的最大值,不斷更新的值,在其為最大值情況下的w是可接受的一定誤差下的最優(yōu)解,更新規(guī)則如下:
其中,參數(shù)滿足,,,在迭代計算中使用和。
進一步地,在多項式時間內(nèi)解出函數(shù):
并以特定性能度量指標作為損失函數(shù);
S51:以值作為損失函數(shù):在文本分類中,值越大說明分類器的效果越好。為了使得目標函數(shù)值達到最大,則需要在a個正樣本在被正確分為正樣本時使得最大,以及d個負樣本中被正確分為負樣本時使得最小,為輸入集合的第k個樣本,其中正樣本標注為1,負樣本標注為-1,遍歷樣本求得達到最大值時預(yù)測標簽y;
S52:以AUC作為損失函數(shù):
AUC值更大的分類器效果更好。首先需要根據(jù)的值對所有正樣本打分,根據(jù)值對所有負樣本打分,將問題轉(zhuǎn)化為樣本得分的學習排序問題,目的是確保正樣本的得分值比負樣本的大,通過組成正樣本和負樣本的標簽、得分二元組并遍歷,即可得到錯誤率。
進一步地,對于每個選定的索引j,通過固定一個變量來更新的過程如下:
S61:確定更新規(guī)則:
其中,,表示維度的向量中第j個元素為1而其他元素全為零,在更新之前給定,,該規(guī)則能夠確保在更新之后,仍然成立;
S62:將S61中確定的更新規(guī)則代入式子中:,得到關(guān)于的優(yōu)化問題:,優(yōu)化目標是找到某個,使得對偶目標函數(shù)最大化;
S63:在上述的優(yōu)化問題中令的梯度為零,得到,進一步約束。
與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:
本發(fā)明針對不平衡數(shù)據(jù)集的文本分類任務(wù),用精確率、召回率、AUC等性能評估方法直接優(yōu)化大類性能評價指標,該方法不同于大多數(shù)傳統(tǒng)的文本分類算法:代替學習一個單一規(guī)則來預(yù)測單個樣本的標簽,該方法將學習問題形式化為在數(shù)據(jù)集中的所有樣本上的一個多元預(yù)測問題,區(qū)別于傳統(tǒng)方法將降低總體分類錯誤率為目標的思想,提高在文本數(shù)據(jù)集不平衡情況下的分類精度,有效提高分類性能;參考基于Structural SVM的稀疏逼近算法,該方法不僅有較好的時間復(fù)雜度,可以用于從精確率、召回率計算出來的評價指標,如F值,以及AUC的優(yōu)化,降低了時間復(fù)雜度并獲得了更好的效果。
附圖說明
圖1為本發(fā)明過程的流程圖。
具體實施方式
附圖僅用于示例性說明,不能理解為對本專利的限制;
為了更好說明本實施例,附圖某些部件會有省略、放大或縮小,并不代表實際產(chǎn)品的尺寸;
對于本領(lǐng)域技術(shù)人員來說,附圖中某些公知結(jié)構(gòu)及其說明可能省略是可以理解的。
下面結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案做進一步的說明。
實施例1
如圖1所示,一種快速的結(jié)構(gòu)化支持向量機文本分類優(yōu)化算法,包括以下步驟:
S1:對結(jié)構(gòu)化支持向量機的目標函數(shù)進行擴展得出結(jié)構(gòu)化支持向量機的對偶形式;
S2:利用得出的對偶形式通過坐標上升法對結(jié)構(gòu)化支持向量機的目標函數(shù)進行優(yōu)化。
在文本分類中,支持向量機SVM(Support Vector Machine)的實現(xiàn)即是在數(shù)據(jù)集中尋找最大超平面的過程,它是針對線性可分情況進行分析的。對于線性不可分的情況,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分,從而使得高維特征空間采用線性算法對樣本的非線性特征進行線性分析成為可能。
將SVM的目標函數(shù)做一些擴展,可以得到:
是某種結(jié)構(gòu)化的標簽,預(yù)測標簽和真實標簽之間差距造成的代價是非凸離散的,是對模型的先驗假設(shè),在接下來的優(yōu)化中可以起到加速作用,
是為了找到最接近真實標簽的。其中,,在此定義:
,,,。那么此時上述的目標函數(shù)簡化為:
= (1)
可以看出:
。
定義Ⅰ、Fenchel對偶理論是由德國數(shù)學家Werner Fenchel提出的凸函數(shù)優(yōu)化理論。定義函數(shù)的Fenchel共軛為:。
根據(jù)共軛函數(shù)的定義,是對求上確界,于是一定有,即Fenchel不等式(Young-Fenchel inequality),它表明了函數(shù)及其共扼函數(shù)之間的不等式關(guān)系。
定理Ⅰ:Fenchel不等式表明,任何在函數(shù)的定義域中的和函數(shù)的定義域中的點,都有:
。 (2)
當且僅當時該式的相等情況成立。
定理Ⅱ:Fenchel對偶不等式(Fenchel Duality inequality)表明,令,是兩個閉凸函數(shù),且是大小為的矩陣,那么可以得到:
。 (3)
其中,,。當且僅當時該式的相等情況成立。由定理Ⅰ由可知范式的Fenchel對偶形式(即Fenchel共軛)就是,因此, 即為:
。 (4)
由[1]中關(guān)于Fenchel共軛對的證明已知的Fenchel共軛是,的Fenchel共軛是。那么可以得到的Fenchel共軛為:
。 (5)
此外,的Fenchel共軛是。其中為指示函數(shù),當為真時,反之則。為方便起見,令。易得:
。
因此,通過公式(5),可以求得的Fenchel共軛為:
(6)
通過(3)(4)和(6),可以得到Structured SVM的對偶形式:
(7)
以上,和原始目標函數(shù)的形式比起來,式子(7)中的對偶形式帶有線性約束的平滑的二次函數(shù),更容易優(yōu)化。
對于前述式子(7)的優(yōu)化問題,使用坐標上升法來對目標函數(shù)進行優(yōu)化,其中用原始目標函數(shù)及其對偶形式之間的差值作為Early stopping條件,Early stopping是一種迭代次數(shù)截斷的方法來防止過擬合的方法,即在模型對訓練數(shù)據(jù)集迭代收斂之前停止迭代來防止過擬合。坐標上升法是機器學習中常用的方法,每次更新函數(shù)中的一個維度,通過多次的迭代以達到優(yōu)化函數(shù)的目的。提出的坐標上升方法如算法Ⅰ所示,具體的過程如下:對梯度向量遍歷其所有元素,沿索引選擇最大的。對于每個選定的索引,通過固定某個變量來更新,用貪婪方法增加的值,直到early stopping條件滿足。
對偶目標函數(shù)的梯度向量中遍歷下標找到最大的子元素。特別的,關(guān)于的梯度向量是:
,
中最大的元素為:
定義:
。 (8)
對于式子(8),實際上即是Structured SVM中尋找條件約束。對于一個訓練樣本維護一個約束條件的集合,迭代求解每一個,尋找與約束條件相背的最大值,即“most violated constraint”。不斷更新的值,在其最大值的情況下的是一定誤差下的最優(yōu)解。
對于常用的度量方法,已有多項式時間內(nèi)的解決辦法提出。它可以用這些推論來解(8),從而獲得梯度向量中最大的元素值。比如將F值作為度量標準,實現(xiàn)辦法如算法Ⅰ所示;若將AUC值作為度量標準,則可以用算法Ⅱ來解出(8)。
在得到對偶形式之前,我們首先介紹定義及其主要性質(zhì)。
對于每個選定的索引,通過固定某個變量來更新。更新規(guī)則如下:
(9)
其中,表示維度的向量中第個元素為1而其他元素全為零。值得注意的是,在更新之前給定,,且。這個規(guī)則能夠確保在更新之后,仍然成立。將(9)帶入(7),可以得到關(guān)于的優(yōu)化問題:
(10)
優(yōu)化目標是找到某個,使得對偶目標函數(shù)最大化。
令(10)在的梯度為零,可得:
經(jīng)過計算可得:
(11)
前面提到具有約束,因此需要進一步約束:
(12)
(12)中對的計算取決于和。然而,,且,因此這個計算會受的指數(shù)量級影響,計算復(fù)雜度很大。為了提高效率,引入一個輔助變量來減小計算的成本。前文定義過,。在迭代計算中使用和。
當(9)對進行更新時,可以得到和的更新規(guī)則:
(13)
(14)
此時,和更新的時間復(fù)雜度分別為。(12)可以簡化為:
(15)
那么,更新時間復(fù)雜度減小到。
Early stopping的條件定義為原始目標函數(shù)及其對偶形式之間的差值:,是預(yù)先定義的容錯度。假設(shè)是原始目標函數(shù)的最優(yōu)值,根據(jù)定理Ⅱ,可以得到:
。
可以得知通過在約束下(9)的更新,算法Ⅱ能夠確保在所有迭代過程中,約束條件,成立。換言之,迭代過程中總有成立。因此,結(jié)合原始目標函數(shù)和(7),可得:
(16)
根據(jù)定理Ⅰ,可以得到,當時等式成立。為了得到上界成立,可以令,則可得:
,(17)
因此,Early stopping條件設(shè)置為:,計算復(fù)雜度為。
相同或相似的標號對應(yīng)相同或相似的部件;
附圖中描述位置關(guān)系的用于僅用于示例性說明,不能理解為對本專利的限制;
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。