季玉文, 陳 哲
(1.浙江理工大學計算機科學與技術學院, 浙江 杭州 310018;2.浙江理工大學信息科學與工程學院, 浙江 杭州 310018)
金融市場的發(fā)展水平是衡量社會商品經濟發(fā)展水平的重要指標。學者們長期以來一直通過歷史交易數(shù)據研究和預測市場變化規(guī)律。但是,金融市場的變化波動受到政策、股本、金融公司變動等多方面因素的影響,其數(shù)據具有非線性、非平穩(wěn)性和高噪聲等特點,因此研究難以取得有效的成果。
隨著互聯(lián)網和科學技術的發(fā)展,人們開始意識到可以通過網絡監(jiān)控金融輿情信息,進而分析行業(yè)動向和市場前景。已有研究表明,網絡輿情信息可以影響投資機構或投資者的投資行為,進而對股市產生影響[1]。然而,網絡文本數(shù)據的噪聲高、數(shù)據量大,傳統(tǒng)的經濟學方法難以準確挖掘文本中隱藏的信息,因此學者們開始將深度學習技術應用于該領域。
本文基于深度學習主題爬蟲,創(chuàng)建金融文本情感標注數(shù)據集,填補了當前金融文本情感標注數(shù)據集的空白;采用目前文本分析領域應用效果最好的BERT模型,并結合Bi-LSTM模型,豐富了深度學習方法在金融領域的研究。
主題爬蟲是一種特殊類型的網絡爬蟲,它的初始統(tǒng)一資源定位符(Uniform Resource Location,URL)集合是與預定義主題高度相關的頁面。主題爬蟲從這些種子URL開始,分析頁面并提取與主題相關度高的鏈接,形成一個擴展URL集合。主題相關度計算是主題爬蟲的核心模塊,它決定了爬蟲是否能夠很好地保留主題相關的網頁和過濾掉與主題無關的網頁。目前,主題爬蟲常用的相似度計算策略主要分為兩類:基于網頁鏈接結構的搜索策略和基于內容評價的搜索策略。
胡萍瑞等[2]根據互聯(lián)網站點同一版塊URL在結構和語義特征上的相似性,設計了一種基于URL模式集的主題爬蟲,能夠在下載頁面之前判斷主題相關度。于林軒等[3]將PageRank算法應用于主題爬蟲,構建了一個垂直搜索引擎。需要注意的是,基于鏈接分析的搜索策略主要依據URL的構成進行主題相關度判斷,忽略了網頁正文內容,容易造成“主題漂移”的現(xiàn)象。
傳統(tǒng)的基于內容評價的搜索策略使用詞頻和向量空間模型作為核心算法,通過對當前爬取的頁面正文內容、網頁結構進行分析,判斷當前頁面是否與主題相關。YOHANES等[4]采用遺傳算法改進局部爬蟲算法的缺陷,精確爬取和遍歷主題相關的Web,使爬蟲主題更加聚焦。DU等[5]采用將向量空間模型和語義相似度模型相結合的方法,改進了主題相關度計算模塊。近年來,隨著深度學習在文本、語音和圖像等數(shù)據處理領域的不斷發(fā)展,它在文本分類問題上的應用也已經取得了顯著的成果。Word2Vec、BERT等詞編碼技術及TextCNN、LSTM等模型的提出和發(fā)展極大地提高了分類的準確率。HUAN等[6]將多種深度學習模型結合使用,提高了分類的準確性。
本文將主題爬蟲中的主題相關度問題看作是一個文本分類問題,首先收集主題相關的文本數(shù)據集并訓練模型,其次依據模型計算網頁中文本的主題相關度,計算網頁的主題相關度。
目前,主流的文本情感分析方法可分為基于情感詞典、機器學習和深度學習三類。
基于情感詞典的方法是傳統(tǒng)的情感分析方法,它利用情感詞典中的情感極性計算目標語句的情感值。國外最早的情感詞典是SentiWordNet,李壽山等[7]使用英文種子詞典和機器翻譯系統(tǒng)構建了最早的中文情感詞典。盡管基于詞典的分析方法實現(xiàn)簡單,但準確率在很大程度上依賴于構建詞典的質量,并且構建情感詞典需要耗費大量人力物力,對新詞的適應能力也較差[8]。
相對于基于詞典的方法,機器學習在文本情感分析任務上能夠取得更高的準確率。唐慧豐等[9]使用幾種常見的機器學習方法(如SVM、KNN等)對中文文本進行情感分類,通過多次實驗比較,研究特征選擇方法、文本特征表示方法等對分類結果的影響。劉麗等[10]和唐莉等[11]將條件隨機場與依存句法規(guī)則等結合,實現(xiàn)了特征與情感詞的提取。前者利用復雜句式規(guī)則進行粗粒度分析,計算整體情感傾向;后者基于情感詞二分網,采用MHITS(拓展的基于超鏈接的主題搜索)算法對特征詞和情感詞的權值進行計算排序。雖然機器學習在文本情感分析方面取得了不錯的效果,但是需要專業(yè)人員對相關特征進行專業(yè)分析和提取且其泛化能力較差。
深度學習的自動提取特征的特點彌補了機器學習在特征提取困難,泛化能力差等方面的不足,它只需要對已標注的數(shù)據進行多次迭代訓練,就可以實現(xiàn)高準確率的文本情感分析。潘紅麗[12]基于RNN(循環(huán)神經網絡)和LSTM(長短時記憶網絡)對英文文本中的情感信息進行分析,準確率達到了94.5%。BASIRI等[13]提出了一種基于注意力的雙向CNN-RNN(卷積神經網絡-循環(huán)神經網絡)模型(ABCDM),它考慮了時間信息流的雙向性,同時結合注意力機制突出重要的詞語。近年來,研究者發(fā)現(xiàn)Word2Vec和GloVe學習得到的是靜態(tài)的詞向量,忽視了上下文的關系,動態(tài)詞向量算法ELMo和BERT的提出解決了這種語境問題。劉思琴等[14]和方英蘭等[15]利用BERT預訓練語言模型代替Word2Vec和GloVe訓練詞向量,嵌入其他模型后獲得了更好的分類效果。
主題爬蟲的設計包括四個關鍵模塊:網頁獲取、網頁解析、搜索調度和網頁存儲。網頁獲取模塊負責從目標URL獲取HTML文件。網頁解析模塊則負責從HTML文件中提取出當前網頁的鏈接和文本,并根據鏈接目標與爬蟲主題的相關性判斷鏈接的主題相關度。搜索調度模塊基于主題相關度或其他規(guī)則,制定合理的訪問調度策略。網頁存儲模塊將目標網頁存儲到數(shù)據庫中。
本文所采用的主題相關度計算是基于網頁中文本的分類,在爬取新的網頁時,先判斷該網頁包含的文本集合與爬蟲主題的相關性,并根據結果計算該網頁的主題相關度。這個過程是主題爬蟲中至關重要的一環(huán),它保證了爬蟲能夠針對性地爬取與主題相關的網頁。
2.1.1 搭建數(shù)據集
首先,在綜合考慮各個金融網站的用戶量和知名度等因素的基礎上,篩選出排名靠前的幾個URL作為主題爬蟲的種子URL集合,并從這些網站中獲取短文本數(shù)據。其次,人工排除與主題無關的文本,將剩余的與主題相關的文本加入語料庫,并標記為1。此外,從THUCNews、ChnSentiCorp和今日頭條新聞等數(shù)據集中選擇部分非主題分類的數(shù)據集加入語料庫,并標記為0。經過處理后,得到的語料庫樣例如表1所示。
表1 語料庫樣例
2.1.2 文本主題相關判斷模型
相關度計算采用的模型是BERT+Bi-GRU模型,BERT模型基于雙向Transformer結構生成上下文感知的動態(tài)詞向量,能夠更好地表示上下文語義信息。首先利用BERT模型將中文字符轉換為包含文本信息的詞向量,其次將BERT輸出的詞向量輸入Bi-GRU模型進行特征提取。GRU模型是LSTM模型的一種變種,相比LSTM,GRU只有兩個門控開關,其一是將LSTM中的輸入門和遺忘門合二為一的更新門,用來控制前一神經元保留的數(shù)據量,其二是重置門,用于控制要遺忘多少過去的信息。GRU狀態(tài)的傳輸是從前到后的單向傳輸,由于文本語義信息是由前后文語境綜合得出,所以采用包含一個前向GRU和一個后向GRU的Bi-LSTM作為特征提取模型,分別學習序列中各個詞的左右和上下文信息。GRU合并了LSTM的門控函數(shù),其參數(shù)數(shù)量要少于LSTM,所以GRU的計算更簡單,實現(xiàn)更容易,也更加節(jié)省計算資源。
對于網頁中一個新的URL鏈接,相關度計算的步驟如下。
(1)判斷新的URL是否已被爬取。
(2)分析網頁內容,獲取其中的所有文本集合。
(3)將集合中的短文本依次輸入神經網絡獲得每一個短句是否為與主題相關的分類。
(4)將“步驟(3)”中得到的兩種分類數(shù)目的比值作為最終的主題相關度。
結合深度學習模型的主題爬蟲具體步驟如下。
(1)選擇10個初始種子鏈接作為種子集合,將之放入等待隊列WaitQueue中。
(2)計算種子集合中各URL的主題相關度。
(3)選擇集合中相關度最高的網頁進行爬取解析并存儲其中與主題相關的短句。
(4)對“步驟(3)”中選擇的URL解析的新URL集合進行相關度計算,并選取相關度最高的前10個URL加入種子集,從種子集中刪除當前URL。
(5)判斷網頁存儲數(shù)量是否到達目標數(shù)量,否則重復“步驟(3)”。
文本情感分析數(shù)據集是通過主題爬蟲爬取,專業(yè)軟件數(shù)據導出等方式進行收集,并請金融從業(yè)專家進行標注。收集的原始文本數(shù)據樣例如表2所示。
表2 原始文本數(shù)據樣例
針對表2中文本的處理工作主要包括數(shù)據清洗、數(shù)據標注等。具體來說,首先去除與金融無關的文本數(shù)據,其次去除文本數(shù)據中多余的符號和連接詞等無用字符。再次邀請三位金融從業(yè)專家分別標注數(shù)據集,按照文本情感偏向分類,積極標1,消極標-1。最后將三位金融從業(yè)專家對每一條文本數(shù)據的標注值取平均值,大于0取1,小于0取-1,得到最終的分類標注。最終標記完成的文本數(shù)據如表3所示。
表3 預處理結果
本文采用基于BERT+Bi-LSTM的金融文本情感分析模型共包含四層,模型結構如圖1所示。
圖1 模型結構Fig.1 Model structure
3.2.1 BERT預訓練模型獲得文本的向量表示
本文采用哈爾濱工業(yè)大學?訊飛語言認知計算聯(lián)合實驗室發(fā)布的中文預訓練語言模型BERT-wwm-ext作為預訓練模型。相比原始BERT模型,隨機掩蓋15%的字進行上下文預測,BERT-wwm-ext模型采用WWM(Whole Word Masking)方法,將同一個詞中的每個字全部掩蓋,從而預測整個詞,進一步增強了模型對上下文的理解能力和語義信息的學習[16]。該方法是當前中文預訓練模型中最為適合的方法,能夠為金融文本情感分析任務提供較高的語義信息提取和表達能力。
3.2.2 Bi-LSTM提取特征
RNN常用于捕捉序列之間的依賴關系,通過將前一個神經元的輸出作為后一個神經元的輸入利用序列間的隱藏信息。然而在訓練過程中,函數(shù)迭代會導致梯度消失或梯度爆炸問題。為了解決這個問題,LSTM被設計出來,它是一種特殊的RNN,具有獨特的“門”機制。每個LSTM細胞都包含三個門和一個記憶單元,LSTM細胞的結構如圖2所示。LSTM可以有效地處理長序列的訓練,并在文本情感分析中表現(xiàn)出色。
圖2 LSTM細胞結構Fig.2 Cell structure of LSTM
遺忘門用來決定前一個細胞中信息的保留或丟棄,它讀取ht-1和xt,經過Sigmoid函數(shù)輸出一個在0~1的值,對于每個在記憶單元Ct-1中的元素,1表示完全保留,0表示完全舍棄;具體計算方式如公式(1)所示:
ft=σ(Wf·[ht-1,xt]+bf)
(1)
輸入門用于更新細胞狀態(tài),確定什么樣的信息內存放在記憶單元中,包含以下兩個部分。
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
輸入門完成工作后,要更新細胞狀態(tài),將Ct-1更新為Ct。首先將舊狀態(tài)Ct-1與ft相乘,遺忘掉由ft確定的要遺忘的信息,然后加上被篩選后的候選狀態(tài),得到新的記憶單元,如公式(4)如下:
(4)
輸出門ot將內部狀態(tài)的信息傳遞給外部狀態(tài)ht,同樣傳遞給外部狀態(tài)的信息也是過濾后的信息。首先,Sigmoid層確定記憶單元的哪些信息被傳遞出去[如公式(5)所示]。其次,將細胞狀態(tài)通過tanh層進行處理,并將它和輸出門的輸出相乘,最終外部狀態(tài)僅僅會得到輸出門確定輸出部分,如公式(6)所示:
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot⊙tanh(Ct)
(6)
情感分析模型采用雙向的LSTM模型,結合前向傳播和反向傳播得到的向量,同時捕獲上下文語義信息。本文實驗中,使用BERT對字符進行編碼,并將輸出乘以權重W作為Bi-LSTM的輸入。Bi-LSTM在不同方向的隱層上進行計算,最終將兩個方向的計算結果拼接輸出。
3.2.3 情感計算
首先將Bi-LSTM輸出的特征向量作為一個全連接層的輸入,其次將全連接層的輸出經過一個Softmax函數(shù)得到一個向量,該向量表示該條文本屬于積極或消極的概率值,介于0~1。
4.1.1 數(shù)據采集與標注
本實驗使用的數(shù)據主要來源于Choice金融數(shù)據終端和主題爬蟲從種子URL集合開始爬取的網絡文本,總計獲得7 000條文本數(shù)據。數(shù)據集的分布結果如表4所示。
表4 數(shù)據集分布結果
4.1.2 評價指標
本實驗使用準確率(Accuracy)、召回率(Recall)、精確率(Precision)和F1值(F1-Score)評價模型預測效果[17]。準確率是預測正確的樣本數(shù)量占總體樣本數(shù)量的比例。精確率反映的是在所有預測為正向的樣本中,預測正確的比例。召回率反映的是預測為正的數(shù)量與實際為正的數(shù)量的比例。F1值是為了調和精確率和召回率而設計的指標。各項指標的計算如公式(7)至公式(10)所示:
(7)
(8)
(9)
(10)
其中:TP表示預測為正且真實為正的樣本數(shù)量,TN表示預測為負且真實為負的樣本數(shù)量,FP表示預測為正真實為負的樣本數(shù)量,FN表示預測為負真實為正的樣本數(shù)量。
4.1.3 模型與參數(shù)設置
模型參數(shù)的設置對實驗結果的好壞起到決定性作用,本實驗經過多次調整后,最終選取的參數(shù)如表5所示。
表5 模型參數(shù)
4.1.4 結果分析
為驗證本文所使用的預訓練模型與特征提取模型的有效性,本文設計多組對比實驗,對比結果如表6所示。
表6 實驗對比結果
由實驗結果可知,BERT+Bi-LSTM模型取得了87.1%的準確率和87.5%的F1值,相比Word2Vec+Bi-LSTM模型,準確率提升了4.7%,精確率提升了4.2%。由此證明:BERT-wwm-ext模型能更有效地將文本信息轉化為向量表達。相比BERT+LSTM模型,BERT+Bi-LSTM的準確率提升了3.2%,說明雙向LSTM能夠更好地提取文本特征。通過比較Bi-LSTM和Bi-GRU模型的結果可知,盡管GRU模型在參數(shù)數(shù)量和計算效率上具有一定優(yōu)勢,但由于參數(shù)減少,導致準確率略有下降。
主題爬蟲的應用主要可以分為兩個方面:一是爬取大量的文本數(shù)據用于訓練情感分析模型,二是每日爬取當天的股評、新聞等文本,用于市場情緒的可視化。
在為文本情感分析模型爬取數(shù)據集時,本研究共爬取了500個網頁中的5 000條數(shù)據。為了評估主題爬蟲中文本主題相關度判斷模型的性能,本研究采用準確率、召回率、精確率以及每100條數(shù)據的判別時間作為評價指標。BERT+Bi-LSTM和BERT+Bi-GRU的實驗結果如表7所示。
表7 實驗對比結果
經過對比發(fā)現(xiàn),盡管BERT+Bi-LSTM的準確率比BERT+Bi-GRU高0.8%,但它每百條文本的判別時間比BERT+Bi-GRU高了0.6 s,這對于包含大量文本數(shù)據的網頁來說,并不是最優(yōu)選擇。因此,在主題爬蟲的文本相關性判斷中,使用BERT+Bi-GRU模型能夠獲得更好的效果。
4.3.1 市場情緒值的計算
市場情緒值的計算是根據當日網絡媒體中的短文本集合進行的,具體的計算步驟如下。
(1)利用主題爬蟲爬取5 000條當日互聯(lián)網中與金融相關的文本并存儲。
(2)將文本集依次輸入文本情感分析模型,得出每條文本的情感傾向。
(3)計算文本集中情感傾向為1的文本數(shù)量與總文本數(shù)量的比值,作為當日的市場情緒。
4.3.2 應用
本次實驗結果已經作為市場技術分析的一部分被金融軟件“對聰易”采用,市場情緒可視化應用結果如圖3所示。
圖3 市場情緒可視化應用結果Fig.3 Market sentiment visualization application
市場情緒對于個人投資、公司經營、政府監(jiān)管等方面都有重要意義。本文結合自然語言處理和網絡爬蟲技術,搭建了金融相關的主題爬蟲,并利用爬蟲為情感分析模型爬取數(shù)據。使用基于BERT和Bi-LSTM的深度學習模型,對金融文本數(shù)據進行情感分析,并將模型運用到交易軟件的搭建中。
在未來的研究過程中,可以從兩個方向繼續(xù)深入探索。一方面,可以引入注意力機制提升情感分析過程中某些關鍵詞的權重,同時降低非關鍵詞的權重,從而獲得更好的分析效果。另一方面,本文只考慮了積極、消極兩種情緒,未來可以考慮更多元的分類或者量化分類,以更好地反映市場情緒的變化。這些深入研究的探索,將有助于更準確地把控市場情緒,幫助投資者、企業(yè)家和政府監(jiān)管者更好地做出決策。