夏千姿 倪麗萍 倪志偉 朱旭輝 李 想
(合肥工業(yè)大學(xué)管理學(xué)院 安徽 合肥 230009)(合肥工業(yè)大學(xué)過程優(yōu)化與智能決策教育部重點實驗室 安徽 合肥 230009)
隨著近年來自媒體與社交網(wǎng)絡(luò)不斷發(fā)展,社交平臺成為報道公司新聞和重要活動的主要媒介之一,且由于其信息傳播速度遠快于傳統(tǒng)媒體,成為人們接收信息的重要來源。Petrovic等[1]指出,在報道與政治和商業(yè)有關(guān)的事件時,推特平臺報道速度遙遙領(lǐng)先。由于金融市場對金融事件的突發(fā)較為敏感,因此從與特定公司相關(guān)的微博中識別公司金融事件具有重要意義,可以幫助投資者了解企業(yè)動態(tài),明確競爭對手策略,預(yù)估可能引起的市場變動,以此作出有價值的投資決策。
從微博平臺上進行金融事件檢測的本質(zhì)是社交平臺事件檢測的一個特定應(yīng)用,雖然近年來社交平臺事件檢測研究取得了一定的進展,學(xué)者提出了多種針對社交平臺特點的事件檢測方法。從微博平臺中檢測金融事件仍存在如下三個方面的挑戰(zhàn)。
(1) 雖然事件檢測技術(shù)已經(jīng)發(fā)展了很長時間,但是過去研究主要集中在熱點事件或突發(fā)事件檢測方法上,這些事件往往沒有針對某個具體領(lǐng)域,因此針對特定領(lǐng)域的事件檢測在方法和應(yīng)用上仍不成熟,對于金融事件目前在定義上尚沒有一個廣泛認(rèn)可的標(biāo)準(zhǔn)。如何通過分析與公司相關(guān)的微博信息特點,抽取有效的金融事件類型是值得進一步研究的。
(2) 社交媒體平臺所報道的事件信息主要為非結(jié)構(gòu)化文本信息,不能簡單地利用傳統(tǒng)定量數(shù)據(jù)算法來計算,需要先將非結(jié)構(gòu)化文本進行表征。而傳統(tǒng)的表征方法主要利用統(tǒng)計方法如詞頻、TF-IDF等進行,沒有真正考慮到文本的語義信息,影響了后續(xù)分析的準(zhǔn)確率。因此有必要從文本結(jié)構(gòu)化表征的角度研究與公司相關(guān)的微博信息表征方法。
(3) 社交平臺信息具有實時性和動態(tài)性,針對這一特性研究者往往通過考慮數(shù)據(jù)到達的時間順序以解決動態(tài)性問題。然而這些方法仍存在計算成本較高及對概念漂移適應(yīng)能力不強的問題。其次,社交平臺中的信息更新速度快,信息量大,存在信息過載現(xiàn)象。因此如何優(yōu)化算法提高抗噪能力是非常重要的。
針對上述挑戰(zhàn),本文從文本表示及文本數(shù)據(jù)流分類兩個方向來對基于微博的金融事件檢測方法進行研究。本文中文本表示主要是結(jié)合詞向量及觸發(fā)詞對非結(jié)構(gòu)化文本進行語義層面信息提取,以實現(xiàn)較少信息丟失的短文本結(jié)構(gòu)化表示;數(shù)據(jù)流分類主要是提出一種基于集成SVM的數(shù)據(jù)流分類算法,該算法能對微博信息中的金融事件類型進行動態(tài)分類,且能有效檢測概念漂移。
本文所考慮的事件檢測方法主要利用數(shù)據(jù)驅(qū)動的監(jiān)督分類算法實現(xiàn)。其基本原理為:首先確定已標(biāo)注的訓(xùn)練語料,其次利用特征工程對訓(xùn)練語料進行表示,最后利用監(jiān)督分類算法進行訓(xùn)練并對金融事件類型進行預(yù)測識別。具體分為金融事件類型定義、文本預(yù)處理與金融事件檢測3個步驟。
對于金融事件類型的定義,針對不同的研究角度,已有學(xué)者給出了不同的定義,如表1所示。Hogenboom等[2]主要研究從異構(gòu)新聞中提取金融事件,定義了涉及十種不同相關(guān)公告涉及的事件主體(如關(guān)于首席執(zhí)行官的公告)的金融事件;Han等[3]則從商業(yè)事件的角度,參考了ACE[4]事件語料庫的構(gòu)建,針對中文在線新聞的特點,為商業(yè)行為定義了8種事件類型和16種事件子類型;Zhang等[5]考慮從在線社交媒體數(shù)據(jù)中提取公司行為事件信息,定義了六種事件類別;Shi等[6]利用金融時間序列數(shù)據(jù)進行金融事件識別,側(cè)重于識別四種類型的股票事件。本文在綜合上述文獻和公司微博中報道的與金融相關(guān)的主要事件特點基礎(chǔ)上,擬將公司金融事件類型定義為七類。
表1 金融事件類型相關(guān)研究
文本預(yù)處理是信息檢索、文本挖掘、自然語言處理等研究的基礎(chǔ),目的是將非結(jié)構(gòu)化原始文本轉(zhuǎn)換為可由計算機處理的數(shù)據(jù)形式[7],在文本挖掘中起著關(guān)鍵作用,并且極大地影響了最終的實驗效果[8]。傳統(tǒng)的文本挖掘方案通過利用BT、TF、TF-IDF來表示單詞的權(quán)重并建立文檔項矩陣[9]。Wu等[10]指出模式匹配是表示推特文本的最佳方式,通過詞頻獲得單詞權(quán)重,再利用NLTK計算相似度,并執(zhí)行特征處理。但由于公司微博中的信息通常為短文本單詞數(shù)量有限,且金融文本中專業(yè)術(shù)語多樣化,導(dǎo)致詞頻信息無法有效使用[11]。Shi等[6]則先提取文本主題句,然后利用哈爾濱工業(yè)大學(xué)社會計算與信息檢索研究中心開發(fā)的觸發(fā)詞提取算法,提取12個與事件類型相關(guān)的文本特征來實現(xiàn)特征處理。該方法更適用于具有嚴(yán)謹(jǐn)結(jié)構(gòu)和語法的長文本,且需要利用較多的領(lǐng)域知識,通過手工構(gòu)建金融領(lǐng)域的事件標(biāo)注語料庫,不適用于公司微博金融事件檢測中。
本文考慮到微博中所發(fā)布的信息量大、短句多、具有隨機性和口語化且非嚴(yán)格語法等特征,使用NLPIR工具對社交媒體數(shù)據(jù)流短文本進行詞性標(biāo)注,從中提取動詞,通過構(gòu)造的噪聲詞典消除噪聲動詞,并通過構(gòu)造擴充觸發(fā)詞典來挖掘觸發(fā)金融事件的動詞,最終對整篇文章進行加權(quán)向量化表示以轉(zhuǎn)化為計算機可識別的結(jié)構(gòu)化數(shù)據(jù)形式。
關(guān)于從文本中檢測事件,主要是指從文本中檢測出用戶感興趣的事件信息,并以結(jié)構(gòu)化的形式呈現(xiàn)出來,例如事件發(fā)生的時間、地點、發(fā)生原因、參與者等[12]。事件抽取任務(wù)最基礎(chǔ)的部分包括識別事件觸發(fā)詞及事件類型,抽取事件元素同時判斷其角色,然后抽出描述事件的詞組或句子。事件抽取方法主要有流水線方法和聯(lián)合抽取方法,本文的方法屬于前者,這種流水線方法一般將事件抽取任務(wù)轉(zhuǎn)化為多階段的分類問題:事件觸發(fā)分類器、元素分類器、元素角色分類器、屬性分類器和可報告性分類器;后者主要包括多模型聯(lián)合推理、利用結(jié)構(gòu)化預(yù)測(概率圖模型、馬爾可夫邏輯網(wǎng)絡(luò))的聯(lián)合建模,以及近年來發(fā)展的深度學(xué)習(xí)方法[13-15]。
在金融事件檢測中,大多數(shù)的研究關(guān)注于從網(wǎng)絡(luò)新聞或公司年報中檢測金融事件。例如,Jacobs等[16]基于英文新聞提出了一種有監(jiān)督的分類方法來檢測公司金融事件。Hájek[17]從美國公司的年報中提取情緒與詞袋信息,然后使用多層感知神經(jīng)網(wǎng)絡(luò)對可能引起異常股票收益的公司行為進行分類。Arendarenko等[18]提出了一種基于本體(約200條手工制作的語法規(guī)則)的商業(yè)事件信息提取框架。Daniel等[19]研究了推特平臺上事件的影響性,然而其重點不在于檢測事件,而是通過分析推特的情緒來獲取事件對市場的影響。在金融事件分類檢測方法上,常用的有監(jiān)督分類檢測方法有支持向量機[6](SVM)、樸素貝葉斯[3,20-21]和基于模型的方案[3,10]等。其中SVM表現(xiàn)出特別突出的性能[22],是金融領(lǐng)域最廣泛應(yīng)用的數(shù)據(jù)挖掘技術(shù)[7]。而集成學(xué)習(xí)在提高學(xué)習(xí)系統(tǒng)泛化能力方面具有顯著優(yōu)勢,且已被證明是提高預(yù)測準(zhǔn)確性和將復(fù)雜且困難的學(xué)習(xí)問題分解為更易解決子問題的有效方法[23]。Wang等[24]使用集成SVM進行自動模糊分類,通過與單個SVM分類器及其他分類方法進行比較,實驗表明所提出的集成SVM分類器性能優(yōu)越。Shan等[25]提出了一種基于混合標(biāo)記策略的漂移數(shù)據(jù)流在線主動學(xué)習(xí)集成的新框架,包括集成分類器和非固定標(biāo)記算法,動態(tài)對分類器和決策閾值調(diào)整,也表現(xiàn)出較好的實驗結(jié)果。但集成學(xué)習(xí)的缺點是構(gòu)造方案復(fù)雜,需要大量標(biāo)記數(shù)據(jù),以及具有高時間復(fù)雜度。本文考慮使用集成學(xué)習(xí)來解決數(shù)據(jù)流問題,為解決構(gòu)造的復(fù)雜性問題,結(jié)合社交平臺所帶來的動態(tài)數(shù)據(jù)環(huán)境伴隨瞬時數(shù)據(jù)流及概念漂移等特征,提出一種基于滑動時間窗口模型的集成SVM分類算法,大大減少訓(xùn)練數(shù)據(jù),形成更易構(gòu)建的集成算法。
綜上,本文考慮到微博數(shù)據(jù)的非結(jié)構(gòu)化、低維、數(shù)據(jù)量大及更新迅速等特征,提出一種詞嵌入和觸發(fā)詞典的短文本表示方案,以準(zhǔn)確掌握數(shù)據(jù)特征;并提出一種DSESVM算法,由多個SVM基分類器組成的集成分類模型以提升算法分類效果;結(jié)合短文本表示方案與DSESVM算法,形成對公司金融事件進行檢測的框架。本文框架利用滑動窗口模型,檢測概念漂移。
本文提出了一個事件檢測框架,可用于檢測來自微博的潛在公司金融事件。該框架分為公司金融事件類型預(yù)定義、觸發(fā)詞典構(gòu)造、文檔向量化和事件類型分類檢測幾個部分,如圖1所示。
圖1 事件檢測框架
本文框架的具體步驟如下:
步驟1定義公司金融事件類型。
步驟2根據(jù)觸發(fā)詞典獲取事件中的觸發(fā)詞。觸發(fā)詞是最清楚地表達事件發(fā)生的關(guān)鍵詞,通常是動詞,本文使用監(jiān)督學(xué)習(xí)來更好地識別事件觸發(fā)詞。根據(jù)七類事件類型,邀請專家將10%的微博文本標(biāo)記為事件檢測的種子事件。為確保標(biāo)注質(zhì)量和一致性,對該數(shù)據(jù)進行比較和討論,最終輸出統(tǒng)一的標(biāo)注結(jié)果。其余的原始數(shù)據(jù)被分成三部分,由專家分別進行標(biāo)記。然后,對已標(biāo)記的種子微博文本進行分詞及詞性標(biāo)注,抽取其中動詞文本。其次,利用詞頻對提取的動詞進行排序,根據(jù)專家給定閾值提取觸發(fā)詞及噪聲詞。這里的噪聲詞是指某些動詞頻繁出現(xiàn)在種子微博中,但對公司的金融事件行為沒有觸發(fā)意義。最后,通過詞嵌入算法擴充原始觸發(fā)詞構(gòu)造成為觸發(fā)詞典,噪聲詞構(gòu)成噪聲詞典。
步驟3由噪聲詞典對文檔去噪,并由觸發(fā)詞典進行加權(quán)向量化表示。
步驟4利用基于DSESVM的數(shù)據(jù)流分類算法識別微博文本的潛在事件類型。
為了解釋事件檢測的流程步驟,給出示例如圖2所示。
圖2 公司金融事件檢測案例
對于圖2中文檔預(yù)處理中的文檔,首先提取文檔中的動詞,得到“加速、收購、加大、投入、宣布、收購、是、開展”;然后根據(jù)噪聲詞表進行去噪處理,明確噪聲詞“是”,得到去噪后的觸發(fā)詞“加速、收購、加大、投入、宣布、收購、開展”;其次利用詞嵌入算法進行向量化表征,并根據(jù)擴充后的觸發(fā)詞典進行加權(quán)處理,得到對文檔的向量化表征;最后利用DSESVM算法對文檔進行預(yù)測,得出事件類別。該事件的正確類別應(yīng)為融資并購。
本文綜合現(xiàn)有文獻及公司微博中信息的特點,將公司金融事件類型定義為七類,具體事件類型及描述如表2所示。
表2 公司金融事件類型
觸發(fā)詞是事件檢測中最重要的元素,代表著事件類型。本文認(rèn)為擴展觸發(fā)詞具有重要意義,原因在于:首先,同一個事件可以由不同的觸發(fā)詞表示,并且這些觸發(fā)詞通常具有相似的含義;其次,種子語料庫在整個文件中占比較??;最后,在不同的時間階段,同一個單詞在微博文本中的語義可能不同。本文中,Word2vec的Skip-Gram模型用于對觸發(fā)詞基于語義的向量化表示,并可據(jù)其計算得到同義詞以擴展為觸發(fā)詞典。Word2vec算法是基于類似情境的單詞具有相似含義的假設(shè),通過神經(jīng)網(wǎng)絡(luò)模型獲得單詞的低維實數(shù)向量表示,將離散詞映射到N維真實空間,以表達豐富的語義信息,解決詞袋模型的向量稀疏性問題,挖掘詞語間的語義關(guān)聯(lián)性。Word2vec可在語義上表達單詞映射至高維空間,因此可使用單詞距離來衡量詞義的相似性。本文利用Google提供的開源詞向量化工具Word2vec來訓(xùn)練基于Skip-gram模型的單詞向量,使用余弦相似度計算單詞間的語義差異。若單詞間語義差距小于閾值,意味著語義相似度較高,有較大可能進行觸發(fā)詞典擴展。
文檔的向量化表示是數(shù)據(jù)處理的第一步,常用方法包括TF-IDF、BOW等。本文采用基于觸發(fā)詞的文檔表征方案,在提取文檔特征時,僅考慮潛在觸發(fā)詞,消除大量對文檔分類無意義常用單詞的影響。并根據(jù)觸發(fā)詞典,對文檔特征進行加權(quán)以增加觸發(fā)詞在文檔表示中的影響力。
假設(shè)B是時間窗口[1,T]微博文本中的數(shù)據(jù)流:
B={B1,B2,…,Bi,…,BT}
(1)
每個時間窗口Bi中的數(shù)據(jù)流由n個文本組成:
Bi={Pi1,Pi2,…,Pij,…,Pin}
(2)
對每篇文檔Pij提取動詞:
(3)
利用噪聲詞典N去噪,以獲得降噪后的動詞:
(4)
利用Word2vec獲得文檔Pij的一組單詞向量:
(5)
利用觸發(fā)詞典E加權(quán),以獲得每篇文檔向量化表示:
(6)
本文提出的集成SVM的數(shù)據(jù)流挖掘算法(DSESVM算法)是由多個SVM基分類器組成的集成分類器。其中,數(shù)據(jù)流檢測框架基于CDSMM算法[21];基分類器權(quán)重通過計算當(dāng)前數(shù)據(jù)塊的分類精度得出;并通過假設(shè)檢驗檢測概念漂移,動態(tài)調(diào)整基分類器以適應(yīng)概念變化;利用錯誤分類與被替換基分類器訓(xùn)練集重新構(gòu)建新訓(xùn)練集,以訓(xùn)練得到新基分類器,對較低準(zhǔn)確度的基分類器予以替換,以提升整體分類精度。該算法可有效增強概念漂移實例對新分類器訓(xùn)練的影響,使算法能夠快速檢測概念漂移并適應(yīng)新實例。DSESVM算法中符號定義如表3所示。
表3 DSESVM算法符號定義
續(xù)表3
算法流程如下:
步驟1構(gòu)造集成分類器EC:當(dāng)S中的實例數(shù)達到d時,如果num 步驟2噪聲過濾:用EC對S中的每個實例進行分類,如果被EC錯誤分類,則將其添加到數(shù)據(jù)集ErrInst中。 步驟3權(quán)重更新:用S更新EC中各基分類器的權(quán)重,表示為Weight_S。 步驟4概念漂移檢測:計算EC上對數(shù)據(jù)塊S的分類錯誤率,并使用該值檢測概念漂移。 步驟5分類器調(diào)整與更新:一旦檢測到漂移并且集成分類器中基分類器的數(shù)量達到K,則使用錯誤分類緩沖器ErrInst構(gòu)造新的分類器C_new,分類正確率為其權(quán)重。并利用ErrInst更新EC權(quán)重,記為Weight_E。計算權(quán)重數(shù)組Weight_S和Weight_E的均值,記為Weight_ave,替換EC的權(quán)重。如果新分類器C_new權(quán)重大于Weight_ave中的最小權(quán)重,則用ErrInst中的實例與Weight_ave中的最小權(quán)重相對應(yīng)的基分類器C_k訓(xùn)練集來組成訓(xùn)練數(shù)據(jù),訓(xùn)練得到替換分類器C_new′及其權(quán)重Right_new。利用其替換基分類器C_k和權(quán)重以獲得更新的EC。 DSESVM算法偽代碼如算法1所示。 算法1DSESVM算法 輸入:集成分類器EC=Null,數(shù)據(jù)流DS,集成分類器的容量K,訓(xùn)練集的大小d。 輸出:已訓(xùn)練的集成分類器EC。 開始 1.While(新數(shù)據(jù)到達){ 2.讀取d個數(shù)據(jù)形成當(dāng)前數(shù)據(jù)塊S; 3.If(num 4.C_num=getNewClassifier(S); 5.EC=AddBaseClassifier(EC,C_num); 6. //利用S訓(xùn)練新分類器C_num,并 //將其添加到EC中 7.num++; 8.Else 9.For(E_j∈S) 10.If(EventType(E_j)≠getpredict(EC,E_j)); //E_j被EC錯分類 11.ErrInst=AddInstance(ErrInst,E_j); //將E_j加入ErrInst 12.End if 13.End for 14.Weight_S=UpdateWeight(EC,S); 15.err=getErrorRate(EC,S); //利用S更新EC權(quán)重,并計算其錯誤率 17.If(U>μα&&num==K) //概念漂移檢測 18.C_new=getNewClassifier(ErrInst); //利用ErrInst訓(xùn)練得到新基分類器 19.Right_new=getAccuracy(C_new,S); //計算C_new的正確率 20.Weight_Err=UpdateWeight(EC,ErrInst); //更新EC權(quán)重 21.Weight_Ave=getMean(Weight_S,Weight_Err) //u利用Weight_S與Weight_Err計算平均權(quán)重數(shù)組 22.If(Right_new>min(Weight_Ave)) 23.C_k=getBaseClassifier(EC,min(Weight_Ave)); //找到Weight_Ave中所對應(yīng)最小權(quán)重的基分類器C_k 24.C_new′=getNewClassifier(ErrInst+ getTrainData(C_k)); //利用ErrInst與C_k訓(xùn)練構(gòu)成替換基分類器C_new′ 25.EC=UpdateBaseClassifier(EC,C_k,C_new′); //更新EC 26.End if 27.End if 28.End if 29.End while 下面詳細解釋數(shù)據(jù)流分類算法的一些重要部分: (1) 基分類器的選擇。本文面向公司微博進行關(guān)于金融事件的分類,SVM是金融領(lǐng)域中使用最廣泛的數(shù)據(jù)挖掘技術(shù),實驗已證明其具有較好的預(yù)測能力[22]。因此,選擇SVM作為基分類器。 (2) 概念漂移檢測。以分類錯誤率作為度量指標(biāo),利用假設(shè)檢驗檢測數(shù)據(jù)流中的概念漂移[21]。 對當(dāng)前數(shù)據(jù)塊上的分類錯誤率進行假設(shè)檢驗,μ_0為常數(shù),初始化為前五個數(shù)據(jù)塊的分類錯誤率均值。給定顯著置信性水平α=95%,如果式(7)成立,則表明錯誤率發(fā)生較大變化,且發(fā)生了概念漂移,反之,則認(rèn)為概念分布是穩(wěn)定的。 (7) (3) 替換基分類器選擇規(guī)則。選定當(dāng)前數(shù)據(jù)塊和錯誤分類實例中分類效果最差的基分類器為被替換的基分類器。通過更新當(dāng)前數(shù)據(jù)塊和錯誤分類實例的權(quán)重數(shù)組,計算平均權(quán)重數(shù)組,選擇對應(yīng)于最小權(quán)重的基分類器作為分類效果最差的基分類器。 (4) 新分類器的訓(xùn)練原理。該算法應(yīng)用于數(shù)據(jù)流中,各基分類器訓(xùn)練集無重復(fù)。當(dāng)選擇替換的分類器時,新分類器將由錯誤分類的實例與被替換的分類器訓(xùn)練集共同訓(xùn)練得到。 (5) 集成分類器EC分類預(yù)測策略。集成分類器EC采用加權(quán)投票機制進行分類預(yù)測。對未知實例進行分類時,具有最多加權(quán)投票的類別為未知實例的預(yù)測類別。 本次實驗選取微博平臺關(guān)注度超過一百萬的新聞媒體博主發(fā)布的關(guān)于中國五家知名上市公司的相關(guān)微博信息,如表4所示。數(shù)據(jù)從2012年1月至2018年7月,總數(shù)為20 000條,通過刪除重復(fù)和無意義數(shù)據(jù),最終獲得15 000條實驗數(shù)據(jù),具體5家公司相關(guān)的微博數(shù)據(jù)量分布如表5所示。微博格式包括標(biāo)題、發(fā)布人、發(fā)布時間、內(nèi)容及由三位專家給定的標(biāo)簽,最終公司金融事件的分布如表6所示。 表4 微博新聞媒體博主詳表 表5 微博的數(shù)據(jù)量表 續(xù)表5 表6 公司金融事件類型分布表 本文用于評估事件檢測性能的評估指標(biāo)為精度(P)、召回值(R)和F1值(F1),其中:P度量所有提取事件中正例的比例;R度量在所有正例中預(yù)測正確的正例比例;F1是精確率和召回率的調(diào)和平均值,相當(dāng)于精確率和召回率的綜合評價指標(biāo)。相關(guān)的計算公式如下: (8) (9) (10) 本文將公司金融事件分為七類,對于每類事件,將隨機選取的200條數(shù)據(jù)標(biāo)記為種子微博,從其中提取動詞,結(jié)合詞頻排序與領(lǐng)域知識,獲取每個類的關(guān)鍵特征觸發(fā)詞與噪聲。最終,得到315個觸發(fā)詞與7個事件類型的52個噪聲詞,如表7所示。 表7 種子觸發(fā)詞表 Word2vec算法用于獲取種子觸發(fā)詞的同義詞。若擴展較多,會導(dǎo)致擴展詞匯超出原始單詞同義詞范疇;若擴展范圍較小,則會忽略某些同義詞。因此,在本文中選擇與觸發(fā)詞的相似度在前十位的單詞,以將觸發(fā)詞擴展為觸發(fā)詞典。最終,七類事件獲得38 256個觸發(fā)詞,如表8所示。 表8 公司金融微博觸發(fā)詞表 為了評估文檔向量化結(jié)果,使用相同的分類算法DSESVM來顯示不同表示方法下的實驗結(jié)果差異。通過將BOW、TF-IDF、Word2dvec和Triggers分別與DSESVM相結(jié)合,形成四種實驗方案。本文根據(jù)時間順序?qū)?5 000個實驗數(shù)據(jù)分成每個時間窗口500條,并在總數(shù)為30的時間窗口的數(shù)據(jù)流下進行預(yù)測實驗。分類模型將當(dāng)前時間窗口的數(shù)據(jù)視為測試集,將之前時間窗口的數(shù)據(jù)視為訓(xùn)練集。即文檔中的動詞首先分別由TF-IDF、BOW、Word2vec和觸發(fā)詞典分別進行文檔表示,然后利用DSESVM算法在第10到第30個時間窗口分別進行分類預(yù)測,其中DSESVM算法中基分類器個數(shù)設(shè)為9。 實驗結(jié)果如表9所示,“MAX”表示最佳實驗結(jié)果,“MEAN”表示實驗結(jié)果平均值。在第10到30個時間窗口中,可以看出基于相同分類方法DSESVM,觸發(fā)詞典的文檔表示明顯優(yōu)于其他三種表示方案,精度為66.2%,召回率為63.0%,F(xiàn)1值為64.6%。BOW+DSESVM、TFIDF+DSESVM、Word2vec+DSESVM僅獲得10.3%、8.7%、62.4%的F1值。通過對實驗結(jié)果的分析,可以得出與BOW、TF-IDF和Word2vec相比,基于觸發(fā)詞典的文檔表示能獲得更好的語義表征,有助于模型獲得更好的結(jié)果。 表9 文檔向量化性能比較表 為了進一步說明DSESVM算法的學(xué)習(xí)效果,通過觸發(fā)詞典對文檔進行向量化表征,并利用Bagging、Random Forest、AdaBoost[26]三種常用的集成分類算法對表示結(jié)果進行分類比較。當(dāng)模型訓(xùn)練及分類結(jié)束后,獲得當(dāng)前時間窗口的預(yù)測結(jié)果。表10為四種分類模型的各時間窗口內(nèi)最佳與平均的實驗結(jié)果。圖3詳細展示了四種分類算法與本文提出的觸發(fā)詞表示方法結(jié)合下的分類準(zhǔn)確率。本文算法精度為66.2%,召回率為63.0%,F(xiàn)1值為64.6%。與其他三種分類預(yù)測算法相比,最優(yōu)F1值增加了4.1~5百分點,平均F1值增加了5.6~7.2百分點。與AdaBoost、Bagging和Random Forest相比,該算法使用較少的訓(xùn)練數(shù)據(jù)并獲得了更好的實驗結(jié)果。 表10 公司金融事件檢測算法性能比較表 (a) 精度 為了進一步說明考慮動態(tài)數(shù)據(jù)流內(nèi)概念漂移檢測的必要性,本文進行概念漂移檢測對比實驗。如圖4所示,本文所提模型在時間窗口10、11、12、13、15、16、17、28、29和30中檢測到概念漂移。該模型使用概念漂移檢測機制調(diào)整更新基分類器,以確保模型能夠適應(yīng)概念漂移后的數(shù)據(jù)特征,從而確保模型對未來數(shù)據(jù)檢測性能的穩(wěn)定性。例如,當(dāng)模型從時間窗口10到17檢測到概念漂移時,調(diào)整更新模型中的分類器,在第18個窗口中的F1值明顯高于第17個窗口中的F1值,并在第19至27窗口中獲得更穩(wěn)定的實驗結(jié)果。 圖4 Triggers-DSESVM的實驗結(jié)果 為了顯示概念漂移檢測對實驗結(jié)果的影響,進行檢測概念漂移和未檢測概念漂移的進一步對比實驗。如表11所示,概念漂移檢測的實驗結(jié)果平均F1值增加了5.8百分點,明顯優(yōu)于未概念漂移檢測的結(jié)果。綜上,概念漂移檢測對實驗結(jié)果具有顯著影響,進一步證實在動態(tài)數(shù)據(jù)內(nèi)進行概念漂移檢測的必要性。 表11 概念漂移檢測對比結(jié)果 % 模型Triggers-DSESVM的部分參數(shù)參考李燕等[21]的參數(shù)設(shè)置。如數(shù)據(jù)塊尺寸d設(shè)置為500,集成分類器的基分類器個數(shù)K設(shè)置為9,錯誤分類緩沖實例的閾值e設(shè)置為100。 3.6.1Word2vec維度選擇 Word2vec的維度選擇對模型的復(fù)雜性和有效性有一定的影響。若維度較小,則表示的單詞將無法在語義上區(qū)分;若維度較大,則模型的時間復(fù)雜度和空間復(fù)雜度急劇增加,且模型的學(xué)習(xí)效率將降低。在此基礎(chǔ)上,進行維度選擇實驗,通過改變維度觀察模型的性能變化。實驗結(jié)果如表12所示。 表12 不同詞向量維度的實驗結(jié)果表 % 可以看出,當(dāng)維度從50增加到200時,F(xiàn)1值略微增加,然后開始衰減。因此,本模型的Word2vec維度選擇為200維。 3.6.2文檔向量化表示的權(quán)重選擇 在文檔中取出動詞后,將根據(jù)噪聲詞典和觸發(fā)詞典執(zhí)行去噪和加權(quán)處理。該方法可以消除噪聲的影響,增強文檔表示中觸發(fā)詞的權(quán)重,并最終使文檔得到更好的語義表示。若權(quán)重太小,觸發(fā)詞的影響將被削弱,且觸發(fā)詞在表示中的效果將會降低;而過大的權(quán)重設(shè)置將導(dǎo)致過分強調(diào)已知的觸發(fā)詞,忽略未知潛在觸發(fā)詞在文檔表示中的影響。實驗結(jié)果如表13所示。 表13 不同權(quán)重設(shè)置下實驗結(jié)果表 % 可以看出,去除噪聲的實驗效果明顯優(yōu)于未經(jīng)處理的實驗效果。當(dāng)權(quán)重設(shè)為1.4時,平均P與F1具有最佳實驗結(jié)果。因此,該模型選擇去噪,并將權(quán)重值設(shè)為1.4。 傳統(tǒng)的金融事件檢測方法存在短文本語義表示及動態(tài)分類檢測效果不理想等問題;傳統(tǒng)的文本表示方法存在高維、稀疏、語義信息丟失等;傳統(tǒng)分類檢測方法無法適用于具有概念漂移、數(shù)據(jù)量大、短句多和口語化等特征的社交媒體數(shù)據(jù)中。因此,本文提出了一種應(yīng)用于微博文本的公司金融事件檢測模型。為提高公司金融事件檢測性能,本文首先結(jié)合Word2vec與觸發(fā)詞對文檔進行表示,其次提出DSESVM集成分類算法來處理大量的微博文本流,以達到實時檢測事件的目的,來自微博的實際數(shù)據(jù)實驗結(jié)果證明了文檔向量化和集成數(shù)據(jù)流分類方法的有效性。 后續(xù)研究將從以下兩個方面進一步完善提出的事件檢測模型:(1) 關(guān)注多標(biāo)簽數(shù)據(jù)分類問題,同一條微博信息可能與多種類型的金融事件有關(guān),因此如何解決這個問題是后續(xù)研究重點;(2) 目前算法中使用固定時間窗口且數(shù)據(jù)塊大小固定。由于實驗中流入時間窗的數(shù)據(jù)量導(dǎo)致實驗語料規(guī)模受限,會影響分類結(jié)果,因此將研究如何優(yōu)化算法以提高算法對數(shù)據(jù)規(guī)模的自適應(yīng)能力。3 實 驗
3.1 數(shù)據(jù)集與評估指標(biāo)
3.2 公司金融微博觸發(fā)詞典構(gòu)建
3.3 文檔向量化表征算法評估
3.4 公司金融事件檢測模型評估
3.5 概念漂移檢測評估
3.6 參數(shù)分析
4 結(jié) 語