王燕嘉



【摘 要】 從互聯網上獲取信息進行分析,已經成為人們進行決策的重要手段。有效地從海量數據中獲取正確的目標信息是當前的重點和難點問題。通用搜索引擎檢索的結果由于主題相關性不強,無法滿足特定用戶的需求。文章在改進SVM參數尋優算法的基礎上,提出了結合關鍵詞過濾算法和適用于大數據分類的支持向量機算法,并利用設計的財務管理相關主題信息分類算法,構建了財務管理相關主題爬蟲系統。實驗結果表明,基于關鍵詞與改進支持向量機的財務管理主題相關爬蟲能有效地采集目標信息,能夠較好地適用于財務管理輿情管理和財務管理危機管理等相關領域。
【關鍵詞】 大數據; 主題爬蟲; 關鍵詞; 支持向量機; 尋優算法
【中圖分類號】 C939 【文獻標識碼】 A 【文章編號】 1004-5937(2016)16-0126-07
一、研究綜述
由于網絡技術的發展以及互聯網服務的提升,大數據的容量得以爆發增長。據國際數據公司(IDC)公司統計,2011年全球被創建和被復制的數據總量為1.8ZB(1021)。遠遠超過人類有史以來所有印刷材料的數據總量(200PB)[1]。比較通用的搜索引擎如谷歌、百度等,強調搜索覆蓋面積大,但結果并不精確。隨著人們對各項信息服務的領域細化要求逐步提高,通用搜索引擎無法解決精確定位的問題,只能部分實現資源發現問題[2]。相對而言,主題爬蟲能夠以較好的方式,專注于抓取Web中與主題相關的網頁,能夠根據特定的網頁分析算法過濾掉不相關的鏈接[3]。與通用搜索引擎相比,減少了對資源的消耗,并且支持擴張性的檢索處理。主體爬蟲核心是能夠過濾網頁中的前向鏈接,使爬蟲聚焦在一個特定主題的Web子集中。通過某種策略獲取網絡信息的主題爬蟲,是近年網絡爬蟲領域的研究重點[4]。能夠高效聚焦的主題爬蟲具有重要的實際意義。從財務管理角度看,財務管理為實現高效決策,從互聯網上獲取大量相關輿情信息來進行預警,已經成為財務管理風險管理的重要手段。目前財務管理采集信息主要還是人工采集為主,不足之處是需要投入一定的人力。提高采集相關信息效率,即在有限的資源條件下,盡可能有效獲取財務管理主題相關信息,適應財務管理管理的各維度需求,是財務管理信息采集領域重要的研究內容。
傳統的網絡爬蟲,一般是采取廣度優先、深度優先或者兩者結合的策略進行網頁采集。按照傳統的爬蟲策略,優點是可以搜集到比較全面的信息,缺點是爬行速度比較慢,而且會采集大量與目標無關的網頁。Chakrabarti[5]最先提出基于樸素貝葉斯分類模型的主題爬蟲。引入分類器的爬蟲可以通過分類算法實現預測主題的相關度,而不止停留在關鍵詞匹配的簡單計算上。在獲取大量網絡數據的過程中,網頁分類是一項重要而有效的技術。網頁分類技術由計算機根據特定算法自動分析網頁文本內容,根據分析結果,網頁將被劃分到事先定義好的類別中。目前有很多文本分類算法,主要是依據統計學和機器學習方法,而支持向量機(Support Vector Machine,SVM)被普遍認為是一個較理想的分類算法。Gautam Pant[6]通過實驗發現,基于SVM分類模型的主題爬蟲效果較好。目前國內應用SVM算法的主題爬蟲中,已經有林業主題爬蟲、機械主題爬蟲和化學主題爬蟲等。多數采用SVM算法的主題爬蟲,為了減少支持向量機工作量,提高效率,只對某一主題判斷是非問題,即僅實現二分類。這種情況存在的原因是SVM不適用于大樣本數據集,因為SVM參數尋優的時間過長。這就使現有相關主題爬蟲的應用范圍受到極大限制,無法滿足財務管理對目標信息的多維度細化需求。財務管理主題相關爬蟲把關鍵詞匹配算法和SVM多分類算法相結合,在利用關鍵詞規律初步減少支持向量機工作量的同時,對grid-search算法加以改進,使SVM能夠處理大數據。充分利用SVM算法提高主題爬蟲的準確率,從而使公司主題相關爬蟲具有信息維度細化的性質,使爬蟲具有更高的適用度。
二、適用于大數據的SVM參數尋優策略
傳統SVM尋優搜索算法有網格搜索法、梯度法、模擬退火和遺傳算法等。網格搜索是參數優化中應用最廣的算法。它對多個參數的不同取值的所有組合,采用特定范圍內遍歷搜索,可以得到最優解,但需要耗費大量時間,以至于無法應用于大規模數據集處理。梯度法收斂速度較快,但又可能陷入局部最優,而且有目標函數對參數可微的限制條件。模擬退火等智能算法條件相對寬松,但在時間上相對太大,得到的解一般是近優結果。如何使SVM能夠對大數據集進行訓練和預測,解決這個問題無外乎兩種途徑,一種是加快尋優速度,另一種是縮小參數尋優范圍。目前研究中,劉靖旭等的研究采用啟發式搜索算法,可以小幅度降低尋優時間。但在大數據情況下,這種尋優時間的優勢被淡化,而且有陷入局部最優的缺點。李明山等設計構造均勻試驗,并采用偏最小二乘法回歸來分析構造評價指標和各影響因素之間的關系,而線性和擬線性算法局限于經驗風險最小。
就結果而言,grid-search即網格搜索算法是理想的選擇,通過將待搜索指數在一定的空間范圍內劃分成網格,對網格中的所有參數組合進行遍歷。理論上在尋優區間足夠大、步距足夠小的情況下,可以找出全局最優解。經驗表明,在搜索過程中,大多數網格中的參數組合對應的準確率非常低。準確率高的參數組合集中在較小的區間內,遍歷的時間絕大多數浪費在無效區間。目前,對SVM參數的選擇優化算法的研究主要集中在兩個方向,一個方向是避免網格搜索耗費的時間,可以利用具體問題的特點或者啟發信息縮小參數搜索的范圍,依此縮短參數尋找耗費的時間。另一個方向是采用各種智能算法,進行參數組合的深入挖掘,仍然需要對每一個參數組合進行訓練并且檢驗其學習精度。在實際應用中發現,這種算法會比網格搜索更加費時。
如果在網格搜索算法的基礎上,考慮進行多步搜索,可以先在大范圍內,快速確定最優參數組合的位置,之后大致獲得最優參數組所在的位置,便可以在較小的區域內進行遍歷,是提高網格搜索效率的有效途徑。根據這種思路,目前研究中有先以大步長在大范圍內進行搜索,之后在小范圍內詳細搜索;也有采用雙線性模式進行粗搜,之后在小范圍內詳細搜的算法。這兩種方法都能夠一定程度上提高網格搜索的效率,但在很大程度上,容易陷入局部最優的困境。
本文設計的big-data SVM Grid-search算法,采用基于蒙特卡羅隨機多重網格搜索算法,它的主要思想是:首先,對懲罰系數c和核函數參數g確定一個較大的區間,之后設定較小的步長,在這個區間內,采用蒙特卡羅隨機分布試驗,設定n次重復試驗;然后,利用K-CV方法對訓練集進行測試,根據等高線圖看出準確率最高的參數組合所在的位置;最后,在確定出來的小范圍內,設定較小的步長,進行遍歷搜索,最終確定準確率最高的參數組合。在參數選擇過程中,最高的分類精度可能對應多組C和g的組合,在這種情況下,一般選擇達到最高驗證分類準確率中C最小的組合作為最佳參數組。
算法1:big-data SVM Grid-search算法
輸入:區間范圍和步長
輸出:最優分類精度C、g組合
(1)確定網格搜索區間和搜索步長,在C和g的坐標系上構造二維空間。
(2)在二維空間中生成指定數量蒙特卡羅隨機點。
(3)計算各隨機點分類精度。
(4)If出現理想精度。
{確定較小網格搜索區間和搜索步長}
else return 2)
(5)構造較小網格搜索二維空間。
(6)逐個網格計算參數分類精度。
(7)確定最優分類參數組合。
算法1的目的在于提高SVM在處理大數據多分類時的參數尋優效率,是能夠把SVM多分類引入爬蟲系統,并且處理大數據的基礎。
三、財務管理主題相關爬蟲實現策略
財務管理主題相關爬蟲采用關鍵詞分析算法和支持向量機算法結合的策略。關鍵詞分析是基于網頁內容評價策略中比較常見的一種算法。關鍵詞分析算法由專家或者根據經驗給出具有代表性的關鍵詞。根據網頁中關鍵詞的出現情況計算相關度。對網頁的URLs賦予不同的相關度值,并使爬蟲優先爬行相關度值高的網頁。關鍵詞法具有計算量小的特點,在判斷具有單一關鍵詞的寬泛主題網頁時具有較大優勢。缺點是在關鍵詞不唯一的情況下,多個關鍵詞所蘊含的真實主題很難被判斷。
SVM算法引入爬蟲的分類模型中,將使網頁的相關度分析不局限于關鍵詞匹配的層面,可以深層次地描述財務管理關注的主題信息,能夠獲得更加精確的網頁主題相關度。支持向量機具有增量學習和自我學習能力,能夠有效解決網頁內容變化迅速而收集困難的難題。當前的SVM爬蟲算法中,由于參數尋優在處理大數據時的效率問題,大多采用二類分類算法,即僅關注一個主題,只能判斷是或者不是這個主題。無法對主題所涵蓋的更為細化的維度進行分析,難以滿足財務管理對信息獲取的需要,所以這里將采用SVM多分類算法,實現主題內容的詳細過濾分析。
基于關鍵詞和支持向量機的財務管理主題相關爬蟲主要由兩部分組成,分別是主題相關分析和網頁抓取部分。主題相關分析部分決定頁面的取舍和爬取的順序,根據關鍵詞來進行優先級排序,初步避免主題漂移[7],并且減少后續SVM的工作量。之后利用SVM多分類算法分析爬取內容,判斷是否屬于相關信息類別,最終聚焦關注內容。網頁抓取部分從優先級最高的URLs爬取,相對于廣度優先和深度優先結合的爬蟲,爬取策略變為動態主題相關優先策略。具體實現框架如圖1。
為了保證爬蟲獲取的網頁能夠盡量向主題靠攏,提高分類效率,必須對網頁進行過濾,將主題相關度較低的網頁(小于設定的閾值)剔除,這樣就不會在下一步爬行中處理該頁面中的鏈接。因為一個頁面的主題相關度如果很低,說明該網頁很可能只是偶爾出現某些關鍵詞,而頁面的主題可能和指定主題幾乎沒有什么關系,處理其中的鏈接意義很小,這是主題爬蟲和普通爬蟲的根本區別。普通爬蟲是根據設定的搜索深度,對所有鏈接進行處理,結果返回了大量無用的網頁,而且進一步增加了工作量。主題相關度的計算是采用余弦度量法。具體的做法統計網頁中關鍵詞出現的頻率,然后與初始的關鍵詞按照公式cos(α,β)=■
求余弦值,即可以得到該網頁的相關度。其中把關鍵詞的個數n作為空間向量的維數,每個關鍵詞的權值作為每一維分量的大小,主題用向量表示為α=(α1,α2,…,αn),ai=wi對頁面進行分析,統計關鍵詞出現的頻率,并求出頻率之比,以出現頻率最高的關鍵詞為基準,其頻率用i表示,通過頻率比求出其他關鍵詞的頻率,則該頁面對應的向量表示為β=(β1,β2,…,βn)。關鍵詞約束僅粗略反映了關注主體的相關特征目標,因為關鍵詞的選擇是一個主觀的過程,而且關鍵詞有時候會包含在關注的各個主題中,不具有很強的區別性特征,不能保證所選擇的關鍵詞精準反映主體的特征,但是這個過濾過程起到了最大程度上減輕支持向量機工作量的作用。為了確保是要關注的相關信息,加入支持向量機,根據財務管理信息相關詞典來進行判斷。對屬于財務管理信息分類的網頁,指定一個閾值r,當cos(α,β)>r時就可以認為該頁面和主題是比較相關的,r的取值需要根據經驗和實際要求確定,如果想獲得較多的頁面,可以把r設小一點,要獲得較少的頁面可以把r設大一點。
網頁數據的結構是半結構化的,較之內容更加注重格式。如果要表示一個網頁,需要爬取搜集網頁,然后將網頁文件轉化為文本來處理。向量空間模型就是其中被普遍承認成效較好的一種方法[8]。向量空間模型將文本空間等效為一組由正交相關的詞條向量所組成的向量空間模型。設n是文本特征的總和,則可構成一個向量空間,其維數為n,每個文本可用一個n維特征向量來表示:
v(d)=(t1,w1(d);t2,w2(d);…tn,wn(d))
其中詞條項的向量用ti來表示,ti在文本d中的權值用wi(d)表示。
在文本分類中,文本集需要通過分詞后變成詞集,去掉停用詞得到特征集。此時的特征集是一個高維的特征空間,一般情況下需要采取文檔頻率方法、信息增益等進行降維。
四、算法實現
為了實現不同的主題信息獲取,要預先建立相應的財務管理相關主題的語料庫。一般來說語料庫的質量將對信息的分類和過濾產生決定性的影響。財務管理主題相關爬蟲算法主要有以下三個部分:
算法2:關鍵詞匹配算法
輸入:關鍵詞和閾值
輸出:大于閾值的鏈接
(1)中文分詞。
(2)統計關鍵詞詞頻。
(3)計算關鍵詞網頁相關余弦值。
(4)比較閾值與余弦值。
(5)if大于閾值,網頁鏈接插入爬蟲隊列。
else 過濾掉網頁鏈接
算法2可以初步鎖定關注的主題,同時,可以大幅度地減少SVM分類所要處理的數據量。
算法3:SVM模型分類算法
輸入:語料庫
輸出:預測結果
(1)初始化輸入語料庫。
(2)for all語料庫文件生成向量空間模型do。
(3)big-data SVM gridsearch尋優。
(4)選擇懲罰因子C和類型權重r,對訓練集進行訓練。
(5)選擇待預測集。
(6)return預測結果D。
算法3對爬蟲獲取的結果進行多層次的分類,保證最終獲得目標主題的準確性。
算法4:基于SVM的主題爬蟲算法
輸入:初始URLs
輸出:主題相關URLs
(1)關鍵詞和初始URLs設置。
(2)根據關鍵詞進行URLs排序。
(3)判斷是否大于閾值。
(4)if大于閾值。
{if 經過SVM分類符合目標 jump to 5)
else 過濾掉鏈接}
else 過濾掉鏈接
(5)獲取URLs,return to 2)。
爬蟲中不同的語料庫將決定爬取的網頁類別,設置的語料庫可以根據財務管理所需要爬取的目標進行更換。
五、實驗分析
實驗設計:SVM分類相關的研究的實驗數據是從搜狐網站上提取的網頁內容(一共取得3 000篇文章),經過文本向量空間處理,分成13類,經過訓練構成分類字典。采用java語言實現爬蟲,計算機環境為Windows XP系統。
(一)大數據分類器參數尋優實驗分析
為測試SVM分類器分類效果,提取390篇文章進行訓練和測試,通過向量空間生成并剔除停用詞向量。最終文本向量分布如圖2。
390篇文章中35個向量屬性值分布如圖3。
實踐證明,核函數的參數g以及懲罰系數c對SVM的性能有很大影響,因此這里以均方誤差最小為評判標準,為能夠使big-data SVM grid-search算法和傳統算法進行比較,首先采用傳統的網格搜索方法遍歷SVC模型參數c、g組合(步長均為1),為方便訓練模型,采用libsvm工具箱,模型訓練采用svmtrain函數建模,以svmpredict預測,搜尋到一組最優參數組合。見圖4。
從圖5和圖6中可以發現,不同的參數選擇,對SVM的分類效果有較大影響。在一定區間內,對應的分類準確率可以達到很高的水平,而在其他一定區間內,有些分類準確率很低,現實中是無法接受的。
對比圖5和圖6可以發現,傳統的grid-search算法大量時間耗費在分類準確率不高的參數組合區域。而從圖7和圖8能夠看出,采用big-data SVM grid-search算法的運算次數少,因此耗費時間非常短,而且根據算法,只要采取多次蒙特卡羅隨機分布點試驗,可以取得與傳統算法同等的高精度區域。
從粗分等高線圖上可以看出,高精度區域集中的區域。在這個區域中,為了防止對最優參數組合的遺漏,可以縮小步長,這里設步長為0.5,進行在好區內的網格搜索。
圖4—圖7反映了參數尋優的中間確定好區的狀態,尋優最終結果通過圖8和圖9可以發現,Best Cross Validation Accuracy=96.9543% Best c=8 Best g=0.707107,即核函數參數取0.7,懲罰因子取8時,能夠獲得最佳的分類準確度。當然,核函數參數和懲罰因子在適當的范圍內取數所得到的準確率,大體是都可以接受的。在這個過程中,由于大數據造成的大范圍搜索已經在之前進行了處理,在好區內的網格搜索由于區間范圍已經很小,即使進行步長較小的詳細搜索,也能夠控制大量的計算過程和時間上的耗費。
參數尋優后,根據最優的參數組合,對訓練文檔之外的文檔集進行預測。檢驗SVM分類的現實準確程度。
實驗中先除去訓練用的文檔,對剩余的進行預測,學習誤差如圖10,可以看出,有一部分星點落在了圓圈之外,即有一些預測沒有和實際分類符合,但從整體上來看,SVC的預測準確率很高,可以認為在實驗樣本中,SVM方法可以準確地區分文章的所屬類別。
通過實驗,可以看出在本文設計的big-data SVM grid-search算法支持下,避免了SVM在處理大數據集分類時效率太低而導致無法適應實際應用的情況。從此把SVM多分類算法引入爬蟲系統,提高主題爬蟲的效率,成為一種可能。
(二)爬蟲實驗分析
在根據關鍵詞和支持向量機算法開發的上市主題相關爬蟲程序中,假設某財務管理比較關注云計算的新聞有關的具體網頁,同時假設該公司在爬蟲程序中初始網頁地址設置為http://cloud.csdn.net/,一級網址總數設置為100個。關鍵詞主題相關度閾值設置為0.9。關鍵詞采用(架構隱私cloud安全數據中心Hadoop虛擬化黑客MapReduce分布式平臺存儲云計算數據庫),通過這些關鍵詞過濾后再進行SVM分類,然后對符合條件的URLs進行爬取。在程序中設置跟蹤變量,可以獲取爬取過程中過濾情況。當采用普通爬蟲算法時,在限定時間內共可以獲得網頁4 253個。如果加入關鍵詞相關度算法,可以被過濾掉1 887個網頁。因此關鍵詞算法的加入可以提高44%的效率。在關鍵詞過濾的基礎上,通過SVM進行維度的細分,最終發現通過關鍵詞檢驗的網頁中,汽車類信息1個網頁,商務類信息62個,文化類信息1個,健康類信息1個網頁,房產類213個,IT技術類370個,教育類1個,軍事類1個,新聞類1 337個網頁,運動類370個,旅行類1個,女人話題類1個,娛樂類7個網頁,從而經過SVM過濾的爬蟲效率再次提高24%。
如果財務管理要關注的主題是13個分類中的其他某一類,將會過濾掉更多的無關網頁,比如只關注運動類,最終將只有370個有效網頁,其余的無關網頁都將被排除。這說明加入了關鍵詞和SVM算法的財務管理主題爬蟲準確率要遠高于單純的關鍵詞算法爬蟲。同時,通過SVM多分類算法,可以靈活地聚焦于上市所關注主題的13個細化維度,甚至可以根據所建立的字典,擴展至任意多個維度,如表1。
六、結論
作為網絡信息獲取工具,爬蟲技術近年來被越來越多的研究者所重視。通過把關鍵詞過濾算法和big-data SVM grid-search算法加入爬蟲程序中,從減少數據集總量和快速實現網格尋優的角度,解決了SVM多分類方法處理大數據效率低下的問題。構造財務管理相關主題爬蟲,通過實驗表明,基于關鍵詞和big-data SVM grid-search的主題爬蟲在爬準率上要明顯高于普通爬蟲,而且能夠通過主題字典的設置,滿足財務管理對多層次主題信息的細化維度采集。
【參考文獻】
[1] LI Guo-jie. the scientific value of the big data study [J].China computer society communication,2012.(9):103-105.
[2] Du An,et al. A decision tree-based web mining system for Chinese pages. Advances of Search Engine and Web Mining in China[M]. Beijing:Higher Education Press.2003.
[3] HECTOR G M.Crawling the Hidden Web[C]. Proceedings of the 27th International Conference on Very Large Data Bases,September 2001.
[4] MENCZER F, PANT G. Evaluating Topic- Driven Web Crawlers [C] Proceedings of the 24th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, New York,2001:9-12.
[5] CHAKRABARTI B,et al. Indyk.Enhanced hypertext categorization using hyperlinks[C]. Proceedings of the ACM SIGMOD International Conference on Management of Data,1998.
[6] PANT G,et al. Panorama: Extending digital libraries with topical crawlers[C]. Proceedings of the 2004 Joint ACM/IEEE Conference,2004.
[7] MENCZER F, et al. Evaluating topic- driven web crawlers[C] //Proceedings of the 24th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, New York,2001:241-249.
[8] SALTON G, WONG A, YANG C. A vector space model for automatic indexing[J]. Communications of ACM,1995,18(11): 613-620.