薛又岷,陳春玲,余 瀚,王官中
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023;2.倫敦瑪麗女王大學(xué) 商務(wù)與金融學(xué)院,倫敦 E1 4NF)
在機(jī)器學(xué)習(xí)任務(wù)中,數(shù)據(jù)大多可分為結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)[1-3]兩類。結(jié)構(gòu)化數(shù)據(jù)一般又可稱為行數(shù)據(jù),是指存儲(chǔ)在數(shù)據(jù)庫中可以用二維表結(jié)構(gòu)實(shí)現(xiàn)邏輯表達(dá)的數(shù)據(jù),如數(shù)字、符號(hào)等。而非結(jié)構(gòu)化數(shù)據(jù)指的是字段的長度不定,且每個(gè)字段中又可由其他子字段構(gòu)成的數(shù)據(jù),如文本、圖像、多媒體信息等。隨著計(jì)算機(jī)科學(xué)領(lǐng)域的多樣化和不同學(xué)科間的交叉發(fā)展,越來越多的機(jī)器學(xué)習(xí)任務(wù)需要面對非結(jié)構(gòu)化數(shù)據(jù)的處理問題,例如計(jì)算機(jī)視覺中對圖像數(shù)據(jù)的處理,自然語言處理中對詞句的處理等。近年隨著推薦系統(tǒng)方面研究的不斷發(fā)展[4-6],針對文本數(shù)據(jù)的分析常采用的方法為文本表示法,又稱文本向量化[7]。其對應(yīng)于不同場景中所采用的處理方式也有所不同,大致可歸為兩類:詞向量化與句向量化。詞向量化的方法主要指的是word2Vec技術(shù),而句向量化的方法主要是指str2Vec技術(shù)[8]。一般來說,傳統(tǒng)的向量化技術(shù)用于預(yù)測上下文語句,但也可以通過詞典形式將每個(gè)單詞的出現(xiàn)頻率記錄在其中。詞向量化能夠在一定程度上保證詞意判別的精度,但與此同時(shí)也會(huì)造成詞向量與原文本中單詞出現(xiàn)順序無關(guān)的現(xiàn)象。在面對大量文本內(nèi)容的情況下,詞向量化常出現(xiàn)特征空間維度災(zāi)難與詞序混亂的情況。因此,句向量化在此方面更受眾多研究學(xué)者的青睞。而在機(jī)器學(xué)習(xí)算法選擇方面,針對泛化性能這一重要的評價(jià)指標(biāo),文中采用十大經(jīng)典分類算法之一的SVM算法[9]。SVM算法作為近十年來最有效的分類算法,通過核函數(shù)的巧妙思想,將所屬不同類別之間的非線性可分?jǐn)?shù)據(jù)映射到高維空間,以計(jì)算不同支持向量間最大軟間隔為目標(biāo)函數(shù)實(shí)現(xiàn)其分類目的。
金融界越來越多的學(xué)者考慮使用機(jī)器學(xué)習(xí)、量化交易等手段來預(yù)測復(fù)雜模型。然而傳統(tǒng)的股市數(shù)據(jù)中,大量的數(shù)值型數(shù)據(jù)之間具有較強(qiáng)的線性關(guān)聯(lián)性。若直接使用SVM分類器訓(xùn)練數(shù)據(jù),很難在有限的特征空間中準(zhǔn)確預(yù)測股價(jià)漲跌趨勢。為解決這一問題,文中采用向量化策略擴(kuò)充特征空間,其目的是為SVM分類器提供更多的特征依據(jù),從而提高SVM的分類性能。
分類算法中最基本的想法就是基于訓(xùn)練集在樣本空間中找到一個(gè)劃分超平面,將不同類別的樣本分開。
定義1:給定訓(xùn)練樣本集
D={(x1,y1),(x2,y2),…,(xm,ym)},
yi∈{-1,+1}
(1)
其中,yi為類別標(biāo)記;xi為待分類樣本。
SVM分類器的目的是尋找對訓(xùn)練樣本局部擾動(dòng)容忍性最好的劃分超平面。換言之,即挑選分類結(jié)果最魯棒的、對未見示例泛化性能最優(yōu)的線性方程。
定義2:對給定的待分類樣本空間x,可構(gòu)建劃分超平面,其線性方程為:
wTx+b=0
(2)
顯然由式2可見,劃分超平面由法向量w和位移量b決定。其中法向量w=(w1,w2,…,wl)決定了超平面的方向,而位移量b決定了超平面與坐標(biāo)原點(diǎn)之間的距離。
定義3:樣本空間中任意一點(diǎn)到超平面的距離用r表示。
(3)
距離超平面最近的訓(xùn)練點(diǎn)被稱為“支持向量”。以二分類問題為例,所屬不同類別的兩個(gè)支持向量到超平面的距離之和被稱為間隔,用符號(hào)η表示。SVM旨在找到具有最大間隔的劃分超平面,因此可構(gòu)建約束問題。
定義4:在給定間隔η的情況下,旨在找到約束參數(shù)w和b使其最大。
(4)
以上便是線性可分情況下SVM的基本型。針對式4,凸二次規(guī)劃問題采用拉格朗日乘子的方式解決其對偶問題,以更高效地找到最優(yōu)劃分超平面。而對于樣本線性不可分的情況,由于原始特征空間維數(shù)有限的情況下必然存在一個(gè)高維空間使樣本可分,SVM分類器采用核函數(shù)[10]的方式,將原始樣本空間映射到一個(gè)更高維的特征空間進(jìn)行劃分。令φ(x)表示將x映射到高維空間后的特征向量,代替式4中的樣本輸入x,即為引入核函數(shù)概念后的約束目標(biāo)函數(shù)。
用<φ(xi),φ(xj)>表示樣本xi和xj映射到高維空間后的內(nèi)積,因?yàn)樵诶窭嗜諏ε紗栴}中為避開復(fù)雜的內(nèi)積計(jì)算過程,故采用k(xi,xj)表示兩種映射經(jīng)過核函數(shù)計(jì)算后的結(jié)果。
定義5:核函數(shù)k(…)的定義如下:
k(xi,xj)=<φ(xi),φ(xj)>=φ(xi)Tφ(xj)
(5)
SVM分類器常用五大核函數(shù)為:線性核、多項(xiàng)式核、RBF核、Laplacian核和Sigmoid核[11]。對于不同的劃分任務(wù),常需實(shí)驗(yàn)不同的核函數(shù)以獲得最優(yōu)的泛化性能。
文本表示[12]是自然語言處理和推薦系統(tǒng)中最基本的任務(wù)。利用獨(dú)熱編碼(one-hot)進(jìn)行向量化操作可以將文本表示成一系列能夠表達(dá)語意的向量,從而實(shí)現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)到結(jié)構(gòu)化數(shù)據(jù)間的轉(zhuǎn)換。目前主流的文本向量化策略分為詞向量化(word2Vec)和句向量化(str2Vec)。
word2Vec計(jì)算詞語間的相似度有非常好的效果,可用于計(jì)算句子或者其他長文本間的相似度。其一般做法是對文本分詞后,提取其關(guān)鍵詞,用詞向量表示這些關(guān)鍵詞,接著對關(guān)鍵詞向量求平均或者將其拼接,最后利用詞向量計(jì)算文本間的相似度。
在文本內(nèi)容龐大的情況下,word2Vec方法因不具備連貫性,極易丟失文本中包含重要內(nèi)容的語序信息。在此情況下可以考慮使用str2Vec方法。通過在輸入層添加句向量(paragraph vector)記憶每個(gè)前序詞語的判斷結(jié)果,從而實(shí)現(xiàn)更精確的判斷和預(yù)測。
由于股票數(shù)據(jù)特征間關(guān)聯(lián)性較強(qiáng),且具有較強(qiáng)的不確定性,利用傳統(tǒng)的機(jī)器學(xué)習(xí)方法很難準(zhǔn)確地預(yù)測漲跌趨勢。而如今日益發(fā)展的網(wǎng)絡(luò)環(huán)境下,諸如用戶評論、新聞內(nèi)容等文本信息都具有潛在的價(jià)值。為了獲取這些具有潛在價(jià)值的文本信息,首先提取每支股票的子論壇或新聞子板塊中的文本內(nèi)容關(guān)鍵詞,對其積極、消極程度進(jìn)行打分;同時(shí),針對變化趨勢明顯的股票,一定具有更多的用戶訪問、評論和相關(guān)新聞推送量的特點(diǎn)對這些數(shù)據(jù)進(jìn)行匯總統(tǒng)計(jì),從而擴(kuò)充原有的特征空間,提供潛在的特征依據(jù)。根據(jù)這一思想,文中分別利用word2Vec模型和str2Vec模型[13-15]設(shè)計(jì)了基于向量化策略的SVM分類器。
基于詞向量化策略的SVM分類器:
給定一組股票樣本集合X,基于詞向量化策略的SVM分類器可分為2步:首先,利用向量化模型對評論區(qū)、新聞板塊關(guān)鍵詞進(jìn)行打分統(tǒng)計(jì),并對每只股票的點(diǎn)擊量、評論數(shù)、新聞數(shù)進(jìn)行匯總,構(gòu)建5種特征項(xiàng);其次,利用上述得出的特征集中前5個(gè)月的數(shù)據(jù)作為訓(xùn)練集,后1個(gè)月的數(shù)據(jù)作為測試集對SVM分類器進(jìn)行訓(xùn)練。
執(zhí)行過程如下所示:
算法:向量化SVM分類器
(*以單只股票為例)
輸入:待擴(kuò)充股票半年數(shù)據(jù)樣本集合X,特征集合C
輸出:C_word、ACCword(X)和C_str、ACCstr(X)
步驟1:計(jì)算每日數(shù)據(jù)中的評論數(shù)、新聞數(shù)及點(diǎn)擊量,分別利用word2Vec模型和str2Vec模型對評論和新聞內(nèi)容進(jìn)行打分,構(gòu)建新特征子集{Ccom_num,Cnews_num,Cclick,Ccom_rank,Cnews_rank}并添加到原特征集合C中構(gòu)成C_word和C_str;
步驟2:利用SVM分類器分別對C_word和C_str前5個(gè)月內(nèi)股票數(shù)據(jù)進(jìn)行訓(xùn)練;
步驟3:利用最后一個(gè)月的數(shù)據(jù)作為測試集,計(jì)算ACCword(X)和ACCstr(X);
步驟4:輸出C_word、ACCword(X)和C_str、ACCstr(X)。
實(shí)驗(yàn)中所選擇的詞向量化模型是CBoW(continuous bag-of-words),而選擇的句向量化模型是DBoW(distributed bag-of-words)。通過計(jì)算表明,較DBoW模型而言,CBoW模型消耗的時(shí)間成本更低一些。
為了驗(yàn)證算法的有效性,選取了滬市半年共計(jì)3 486支股票樣本進(jìn)行實(shí)驗(yàn)。列舉單支股票基本信息如表1所示。實(shí)驗(yàn)1是將提出的詞向量SVM分類器與傳統(tǒng)的SVM算法進(jìn)行對比分析;實(shí)驗(yàn)2是將提出的句向量SVM分類器與傳統(tǒng)的SVM算法進(jìn)行對比分析;實(shí)驗(yàn)3是將提出的詞向量SVM與句向量SVM進(jìn)行對比分析。實(shí)驗(yàn)環(huán)境為PC機(jī),雙核2.1 GHz CPU,4 GB內(nèi)存,Ubuntu16.04操作系統(tǒng),python 3.6實(shí)驗(yàn)平臺(tái)。
用后一天開盤價(jià)減去前一天的收盤價(jià),若結(jié)果為正,則標(biāo)記為漲;負(fù)則標(biāo)記為跌。
表1 數(shù)據(jù)集的基本信息
實(shí)驗(yàn)1:詞向量化SVM分類器(Word-SVM)與傳統(tǒng)SVM分類器的比較。
在實(shí)驗(yàn)1中,將詞向量化SVM分類器與傳統(tǒng)的SVM分類器進(jìn)行了對比分析,采用三種不同核函數(shù)對全部股票進(jìn)行訓(xùn)練。列舉5支擬合后保持長期增長趨勢的股票,結(jié)果如表2所示。
表2 詞向量化SVM分類器與傳統(tǒng)SVM分類器的比較
從表2可以看出,通過使用CBoW模型對文本內(nèi)容進(jìn)行處理,Word-SVM方法因添加了特征集合擴(kuò)充的過程,因此比單純使用SVM方法訓(xùn)練需要消耗更多的時(shí)間成本。Word-SVM方法在三種核函數(shù)的試驗(yàn)基礎(chǔ)上都可以有效地提升分類精度,其中最有效的方法是使用多項(xiàng)式核函數(shù)。這是因?yàn)閷μ卣骷线M(jìn)行擴(kuò)充,為模型訓(xùn)練提供了更多的特征依據(jù)的同時(shí),考慮到了將客觀因素通過數(shù)值形式表示,利用隱藏的客觀事件規(guī)律實(shí)現(xiàn)更好的預(yù)測。因此通過引用詞向量化策略,可以有效地提升分類器的性能。但同時(shí)值得注意的是,股票數(shù)據(jù)每日之間具有強(qiáng)關(guān)聯(lián)性,原始特征集之間也具有較強(qiáng)的線性相關(guān)性。如股票代碼000001中,后一天的數(shù)據(jù)由前一天的數(shù)據(jù)、當(dāng)日的大盤走勢、政策因素等直接影響;五日均線、十日均線等屬性之間實(shí)際上包含許多隱藏的線性關(guān)聯(lián)性。
實(shí)驗(yàn)2:句向量化SVM分類器(Str-SVM)與傳統(tǒng)SVM分類器的比較。
在實(shí)驗(yàn)2中,將句向量化SVM分類器與傳統(tǒng)的SVM分類器進(jìn)行了對比分析,同樣是采用三種不同核函數(shù)對全部股票數(shù)據(jù)進(jìn)行訓(xùn)練。列舉5支股票結(jié)果如表3所示。
表3 句向量化SVM分類器與傳統(tǒng)SVM分類器的比較
從表3可以看出,通過使用DBoW模型,在消耗一定時(shí)間成本的基礎(chǔ)上對文本內(nèi)容進(jìn)行處理進(jìn)而擴(kuò)充特征空間,同樣可以有效提升分類器的分類性能。
實(shí)驗(yàn)3:詞向量化SVM分類器與句向量化SVM分類器的比較。
在實(shí)驗(yàn)3中,將詞向量化SVM分類器(Word-SVM)與句向量化SVM分類器(Str-SVM)進(jìn)行對比分析,如表4所示。
表4 詞向量化SVM分類器和句向量化SVM分類器的比較
從表4可以看出,句向量化SVM分類器(Str-SVM)在三種核函數(shù)的基礎(chǔ)上可以有效提升精度,且利用多項(xiàng)式核的SVM分類器進(jìn)行訓(xùn)練,其分類精度要普遍高于利用正向貪心特征選擇出的特征子集進(jìn)行分類所求出的分類精度。
為了進(jìn)一步提升傳統(tǒng)SVM分類器算法在股票預(yù)測模型中的精度,利用向量化策略,采用現(xiàn)有的CBoW和DBoW模型對文本特征進(jìn)行詞向量化與句向量化處理,并結(jié)合傳統(tǒng)SVM分類器設(shè)計(jì)了兩款啟發(fā)式機(jī)器學(xué)習(xí)算法。由實(shí)驗(yàn)結(jié)果可知,向量化策略可以有效地將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù),從而擴(kuò)充特征空間,提供更多的特征依據(jù)。且相比于詞向量化,句向量化策略更能夠有效地將長文本、大文本內(nèi)容轉(zhuǎn)換為數(shù)值數(shù)據(jù)。因?yàn)楣善睌?shù)據(jù)具有很多的非確定性,通過向量化非確定因素來增加特征項(xiàng)是目前數(shù)據(jù)處理階段的一種重要手段。因此所提出的算法是具有現(xiàn)實(shí)意義的。
利用SVM分類器對比分析了詞向量化和句向量化在股票數(shù)據(jù)特征處理方面的優(yōu)劣。實(shí)驗(yàn)表明相比詞向量化,句向量化更能夠有效生成文本特征實(shí)現(xiàn)模型進(jìn)一步的精確預(yù)測。
在文中工作的基礎(chǔ)上,筆者將重點(diǎn)考慮數(shù)據(jù)預(yù)處理的方式(如:基本面等因素的介入),同時(shí)進(jìn)一步考慮使用量化交易策略與SVM分類器、神經(jīng)網(wǎng)絡(luò)等卓越的機(jī)器學(xué)習(xí)算法相結(jié)合,并將其應(yīng)用到優(yōu)質(zhì)股票預(yù)測與推薦的問題上。