章 宣,趙寶奇,孫軍梅,葛青青,肖 蕾,尉 飛
1(杭州師范大學 信息科學與工程學院,杭州 311121)
2(福建省軟件測評工程技術研究中心,廈門 361024)
在過去的幾年中,深度卷積網(wǎng)絡在自然語言處理領域中表現(xiàn)優(yōu)于現(xiàn)有技術.雖然卷積網(wǎng)絡已經(jīng)存在很長時間,但由于可用訓練集的大小和所考慮網(wǎng)絡的大小,其表現(xiàn)存在很多限制.短文本分類是自然語言處理領域的重要任務,包括情感分析、問答、對話管理等.
伴隨Web 2.0 時代的到來,社交媒體平臺得到快速發(fā)展.而在眾多網(wǎng)絡社交媒體平臺中,微博以其獨有的特點受到廣大網(wǎng)民的關注和青睞,已然成為最受歡迎的社交媒體之一.據(jù)中國互聯(lián)網(wǎng)絡信息中心發(fā)布的第43 次《中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》[1]顯示,截至2018年12月,我國的網(wǎng)絡用戶規(guī)模已達到8.29 億,其中很大一部分的用戶使用微博平臺進行日常的溝通交流、信息分享.人們可以自由、便捷、實時地在微博平臺上抒發(fā)自己的情感、觀點或評論,但也由此產(chǎn)生了大量冗余無用的短文本內容.因此,通過微博文本的分類提取這些信息中的有價值信息是非常有必要的,將有價值信息整合分析,可應用于實際問題的探索.
微博短文本與其他形式的短文本不同,具有長度短小,信息含量較少,數(shù)據(jù)龐大,實時更新快,語言表述不規(guī)范等鮮明的特性.同時,作為線上文本,微博網(wǎng)站中的文本同線下文本一樣,也能夠顯露出個體的身份、所處的社會關系、情感表達等重要信息.Barak和Miron 的研究表明自殺意念的人群撰寫的線上與線下文本在特征上存在很高的一致性[2],因而通過線上文本分析開展自殺風險評估工作具有研究基礎和可行性.有研究表明,微博等網(wǎng)絡社交媒體已經(jīng)成為探索發(fā)現(xiàn)自殺者的新平臺[3].現(xiàn)有的一些研究也已把從微博提取與自殺相關的想法和行為數(shù)據(jù)作為自殺風險識別的分析依據(jù)[4].
因此,利用微博平臺進行自殺風險識別研究是非常有意義且可行的.本研究將建立一個基于微博文本的自殺風險識別模型,用于從微博社交平臺上主動地、高效地挖掘出潛在的具有自殺風險的用戶.在本文中,我們針對微博短文本提出了一種混合架構的神經(jīng)網(wǎng)絡模型nC-BiLSTM,有效的解決了當前神經(jīng)網(wǎng)絡單一結構在預測精度上的瓶頸問題,分類的準確性得到了提高.因為識別過程是計算機程序自己完成的,速度和準確率優(yōu)于人工識別方式,也為相關機構和人員早期進行自殺干預提供技術保障.
研究人員從上世紀50年代起就已經(jīng)開始了對短文本分類的研究.Kaljahi 等[5]提出了Any-gram 核方法,用于提取短文本的N-gram[6]特征,采用雙向長短時記憶網(wǎng)路(Bidirectional Long Short-Term Memory network,Bi-LSTM)進行分類,在基于主題和句子級的情感分析任務中取得了一定的提升.Kim 等[7]將卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)用于解決句子分類問題.Zhou 等[8]將二維最大池化操作引入到雙向短時記憶網(wǎng)絡,在時間維度和特征維度上對文本的特征進行提取,完成文本分類任務.牛雪瑩等[9]將Word2Vec、TF-IDF和SVM 結合對微博文本進行分類.隨著對微博短文本分類應用領域的廣泛研究,國內外有學者認識到基于微博文本開展基于網(wǎng)絡的心理健康狀態(tài)乃至于自殺風險研究的前景,并且進行了一些積極的嘗試.張金偉[10]利用情感詞典、關鍵詞識別算法等技術針對微博文本開展了網(wǎng)民心理健康評估的研究.Wang 等[11]根據(jù)語言規(guī)則創(chuàng)建詞庫分析單條微博的潛在抑郁傾向,再通過用戶語言、行為方面的特征建立抑郁癥檢測模型,實驗驗證模型準確率可達80%左右.Jshinsky 等[12]通過對大量Twitter 文本進行分析來評估文本的自殺風險因素,鎖定有自殺風險的用戶群,將他們的分布同地理劃分區(qū)域內自殺發(fā)生率進行匹配,發(fā)現(xiàn)兩者具有較好的相關性.香港大學的Li 等[13]通過分析一名15 歲自殺男孩的193 條新浪微博數(shù)據(jù),發(fā)現(xiàn)其在一些特定詞語類別上的使用與其他用戶不同(例如第一人稱單數(shù)使用頻率更高).中國科學院心理研究所的田瑋等[14]采用專家分析法篩選出有自殺傾向的微博數(shù)據(jù)660 條,分別使用多層神經(jīng)網(wǎng)絡、樸素貝葉斯及隨機森林算法建立自殺風險識別模型,預測結果表明基于多層神經(jīng)網(wǎng)絡的算法模型可更有效地對微博用戶的自殺風險進行預測.
目前在微博短文本的特征提取過程中,未能較好地考慮詞語在語義表示中的重要程度,容易出現(xiàn)重點詞被忽略,而非重點詞被重視等情況,導致分類效果不是很好,且當微博短文本分類應用于自殺風險識別領域時,研究采用的主要是人工抽取特征和機器學習算法相結合構建自殺風險識別模型,導致系統(tǒng)適應性較差.而神經(jīng)網(wǎng)絡模型通過對數(shù)據(jù)多層建模來自動提取數(shù)據(jù)的特征,避免了繁瑣且代價極高的人工特征提取方式,并具備良好的泛化能力.但是目前單一的神經(jīng)網(wǎng)絡結構只是通過加深層數(shù)才能實現(xiàn)精度的提升,而一味的加深網(wǎng)絡的層數(shù)會導致訓練過程難以收斂,并產(chǎn)生梯度消失的現(xiàn)象,所以導致其在精度提升上遭遇瓶頸.針對上述問題,本文提出了改進的nC-BiLSTM 模型,并將其用以進行微博文本自殺風險識別,該模型結合了并行結構的卷積神經(jīng)網(wǎng)絡(CNN)以及雙向長短期記憶網(wǎng)絡(Bi-LSTM)兩種模型的優(yōu)點.
微博文本具有長度不定、短小、文本包含的詞匯量有限、存在較為嚴重的特征稀疏問題,且對于較長的文本又需要對其上下文語義信息進行捕捉等特點.
針對以上的問題,本文提出了一種基于神經(jīng)網(wǎng)絡混合架構的分類模型,該模型很好的利用了多路并行CNN 和Bi-LSTM 的優(yōu)勢,較已有的分類模型的準確率有顯著提高.下面對該模型的提出思路進行詳細介紹.
CNN 是一個層次結構,局部特征提取能力很強.它可以通過特定的卷積核來提取文本的特定位置的局部特征,進而會有池化層將該局部特征進行篩選從而得到更高層的全局特征,但是顯然這些全局特征也是基于特定局部特征選擇出來的,故造成了使用單一卷積層的CNN 提取的特征會呈現(xiàn)局部性.為了進一步加強特征提取的效果,當前的CNN 在應用中主要以串行疊加方式實現(xiàn),但是層數(shù)疊加到一定層時就無法繼續(xù)提升模型效果,且會使訓練時間過長,還易產(chǎn)生梯度消失,最終降低模型效果,所以該方式在精度提升上遇到了瓶頸.CNN 還存在另一個缺陷,經(jīng)過卷積層提取的特征向量經(jīng)過池化、全連接層處理后無法體現(xiàn)特征之間的相互聯(lián)系,所以CNN 無法學習到文本內容中蘊含的上下文語義特征.
相較于CNN,長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)對局部特征的提取效果不佳,但它是一個順序結構,可以提取出上下文語義特征,所以LSTM 在處理序列數(shù)據(jù)時往往會取得不錯的效果.由于本研究是個句子級的分類任務,所以考慮上下文信息是十分有必要的.但是在標準的LSTM 網(wǎng)絡中,狀態(tài)的傳輸一直是從前往后單向的,它只考慮到了一個方向,然而文本序列中各個元素與前后元素都有關聯(lián),所以當前時刻的輸出不僅和之前的狀態(tài)有關系,也和之后的狀態(tài)相關.這造成了LSTM 對文本的深層特征的提取能力具有局限性[15].所以可采用Bi-LSTM[16]來進一步挖掘文本的深層上下文語義特征.Bi-LSTM 網(wǎng)絡通過引入第二層網(wǎng)絡結構來擴展單向的LSTM 網(wǎng)絡,而隱藏的連接在相反的時間順序流動.所以,Bi-LSTM可以綜合考慮前后文的信息,保證了在時間序列上前面和后面的信息都能考慮到.
綜合上述CNN 和Bi-LSTM 的特點,本文考慮使用多個并行CNN,且卷積層使用多個不同尺寸的卷積核.這樣可以分別提取文本數(shù)據(jù)中不同寬度視野下的局部特征,使獲得的特征向量包含的信息更全面,模型效果也會更好.同時為了進一步挖掘微博文本的深層上下文語義特征,本研究考慮通過模型組合的方式將上述的多個并行CNN 和Bi-LSTM 結合起來,這樣既可以提取文本數(shù)據(jù)的各局部特征,又可提取出文本的上下文語義關聯(lián)信息.綜上所述,本研究提出一種基于多并行CNN、Bi-LSTM 的微博文本自殺風險識別模型nC-BiLSTM (其中n 表示CNN 并行路數(shù)).該模型主要由兩部分組成,選擇多路并行的CNN 作為文本局部特征信息的提取器,將時間序列模型Bi-LSTM作為上下文序列特征的提取器,將前者的輸出特征向量拼接融合后輸入后者,最后特征全部提取完畢進行分類.
本文提出的nC-BiLSTM 模型架構設計如圖1所示.模型主要分為4 個層次,分別為詞嵌入層、多路并行CNN 層、Bi-LSTM 層和全連接層,其中多路并行CNN 層內含卷積層和池化層,下面對各層進行詳細介紹.
圖1 nC-BiLSTM 模型架構
詞嵌入層:本層作為模型的第一層,它的作用是將序列中的每一個字詞映射為一個具有固定長度且較短的連續(xù)實向量.也就是把原先字詞所在空間嵌入到一個新的向量空間中去,每個詞向量在該空間內的距離表示它們之間的相似度,這樣就保留了文本的語義特征.
首先輸入數(shù)字序列形式的微博文本語料.根據(jù)去停用詞后語料包含的字詞數(shù)目最大值x,這里將序列的長度統(tǒng)一設為x,長度不足x的通過零值來補齊長度.設模型的輸入序列為Xi=[i1,i2,i3,···,ix],ix∈D,且0≤x≤|D|,D為語料庫中所有不同詞構成的詞典,|D|表示詞典中詞的數(shù)目.
在詞嵌入層中存在一個權重矩陣T,它隨機初始化后再通過訓練不斷更新,通過T能夠將每個數(shù)字化的字詞轉換為其所對應的詞向量:T[ik]=Ek.其中Ek代表得到的詞向量.則詞嵌入層的輸出為E=[E1,E2,E3,···,Ex],Ek=T[ik]
多路并行CNN 層:本層由多個卷積核尺寸不一的CNN 并行組成,每個CNN 通路由一個卷積層和一個池化層疊加組成.經(jīng)過詞嵌入層后,文本數(shù)據(jù)被表示成序列化的數(shù)據(jù)形式,所以此處均采用一維卷積的方式.
卷積層的作用是從詞嵌入層的輸出E中提取出序列的特征向量.卷積操作涉及一個過濾器Wc∈Rd×h,d表示字符向量的維度大小,h表示過濾器移動的窗口大小.一個過濾器卷積生成特征向量可通過式(1)計算.
其中,f表示非線性的激活函數(shù),conv表示卷積過程,表示的是偏置向量,c表示生成的特征向量.在這里設置了多個并行的卷積層,并且每個卷積層的卷積核尺寸不同,通過設置不同的h來實現(xiàn).
然后需要將每一組特征向量輸入池化層進行操作,池化層又叫采樣層,其用以對數(shù)據(jù)進行降維,輸出局部最優(yōu)特征,減少模型復雜度.通常的做法是在卷積層提取出的局部特征上,在一個固定大小的區(qū)域上通過某種方法采樣一個點,作為下一層網(wǎng)絡的輸入.這里使用的采樣方法是最大池化,因為最大池化能夠提取出最有效的特征信息,還能減少下一層的計算量.進行最大池化操作后生成的序列的特征向量見式(2).
這里最后還需要將多個通路的輸出特征向量做拼接處理,如式(3)所示:
Bi-LSTM 層:本層的輸入為多路并行CNN 的輸出特征向量x,本層的內部結構如圖2所示,通過組合兩個方向相反的LSTM 來實現(xiàn)Bi-LSTM 層,這里將兩個方向相反的LSTM 分別記做前向LSTM 和后向LSTM.
圖2 Bi-LSTM 層內部結構
前向LSTM 的輸出Q表示如式(4)所示:
后向LSTM 的輸出H表示如式(5)所示:
Bi-LSTM 的輸出Y表示如式(6)所示:
其中,符號 ⊕表示向量拼接.
全連接層:本層用于生成更高階的特征表示,使之更容易分離成我們想要區(qū)分的不同類.本層的輸入為Bi-LSTM 的輸出向量Y=[y1,y2,y3,···,yn],采用反向傳播算法對網(wǎng)絡模型中的參數(shù)進行梯度更新.本文數(shù)據(jù)類別分為無自殺風險語料和有自殺風險語料兩類,且特征差異較明顯.據(jù)此特點,這里使用Sigmoid 分類器輸出自殺風險判定的結果,因為它可以將任意一個實數(shù)映射到[0,1]區(qū)間范圍內,適合用來做二分類,而且其在特征差異比較大時效果比較好.輸出表示如式(7)所示.
其中,Sigmoidx代表分類器,Wx和bx為Sigmoid 分類器的參數(shù),下標x代表迭代處于第x輪,result表示自殺風險識別的結果,result∈{有自殺風險,無自殺風險}.
自殺死亡樣本人群:自殺死亡樣本人群的收集工作主要依靠新浪微博專業(yè)人士的幫助.本研究通過與新浪微博名人賬號“逝者如斯夫dead”(關注逝者的微博賬號,專門通過發(fā)微博的形式介紹逝者的基本信息及死亡原因等)取得聯(lián)系,在其同意的情況下,從他的微博中篩選出被描述為自殺死亡的微博用戶賬號.在每一個疑似自殺死亡帳號的微博主頁中,我們又從其它微博用戶的留言內容再次確認該帳號所有者是因自殺死亡.以這樣的方法,截止到2019年8月,本研究共檢閱并收集網(wǎng)絡識別自殺死亡新浪微博用戶帳號49 個.
正常樣本人群:發(fā)送微博超過5 頁內容并且最近7日內仍然有發(fā)微博的賬號確定為正常樣本,通過隨機選取的方式收集正常新浪微博賬號90 個.
數(shù)據(jù)采集:本研究通過搭建基于Python 爬蟲的微博語料采集系統(tǒng)來定向爬取收集的微博賬號文本數(shù)據(jù).最終,采集系統(tǒng)一共收集7817 條微博語料,其中網(wǎng)絡識別自殺死亡用戶群體的語料共3827 條,將它們標注為有自殺風險語料,網(wǎng)絡識別未自殺死亡用戶群體的語料共3990 條,將它們標注為無自殺風險語料.
本實驗環(huán)境為Anaconda,是Python 專用于科學計算的發(fā)行版.實驗使用Keras 深度學習框架,它是一個高度模塊化的神經(jīng)網(wǎng)絡庫,程序大致可分為以下3 個步驟:
(1)讀取樣本:加載數(shù)據(jù)預處理后得到的結構化xls 格式的數(shù)據(jù)文件.
(2)文本預處理:由于微博文本的特點導致其含有大量的噪聲,為了提升模型分類效果,在采集得到微博文本后,先要對其進行預處理操作.文本預處理包括無效數(shù)據(jù)過濾、繁體字轉換、文本分詞、停用詞去除等.文本預處理的目標是將文本轉變成結構化的數(shù)據(jù)形式,用特征項向量表示或者文本向量化表示.
(3)模型訓練:設定參數(shù),分別調用Keras 中的相應算法庫以進行模型的訓練,并通過參數(shù)調整提高模型預測準確率.
本研究中的語料分為有自殺風險和無自殺風險兩類,模型測試結果共分為4 種,如表1所示.
表1 模型測試結果及其解釋
本文采用二分類問題中的3 個常用指標作為模型性能評價標準:
(1)精準率(Precision):又稱查準率,它描述了分類的準確程度,即分類結果中有多少是正確的.其計算公式如式(8)所示:
(2)召回率(Recall):又稱查全率,它描述了正確分類的能力,即已知的文本中,有多少被正確分類.其計算公式如式(9)所示:
(3)F值(F-measure):F-measure是由Precision和Recall加權調和平均計算得出,其大小反映了分類器的綜合性能,F值越大就表示分類器的綜合性能越好,文本分類的效果越理想,其計算公式如式(10)所示:
本實驗的基本流程如圖3所示,訓練過程中模型部分參數(shù)需要通過反復嘗試尋找最佳值,待最佳參數(shù)確定好之后,再通過訓練生成最佳模型.同時為了尋找nC-BiLSTM 模型并行CNN 路數(shù)的最佳設置,本文分別做了1 到5 路并行CNN 的模型訓練,即并行路數(shù)n分別取值{1,2,3,4,5}.
圖3 實驗基本流程
模型超參數(shù)指的是模型外部的配置變量,恰當?shù)某瑓?shù)設置對于生成一個性能優(yōu)良的神經(jīng)網(wǎng)絡模型是至關重要的.本文研究中主要通過數(shù)據(jù)和經(jīng)驗來確定部分超參數(shù),另有部分超參數(shù)需要通過實驗來確定.
本模型嵌入層主要涉及的參數(shù)是詞向量維度,卷積層主要涉及的參數(shù)有:滑動窗口大小、卷積核數(shù);池化層涉及的參數(shù)有:采用窗口大小、丟棄率(dropout);Bi-LSTM 層主要涉及的參數(shù)有:節(jié)點數(shù)、丟棄率.全連接層的參數(shù)有:節(jié)點數(shù)、激活函數(shù).本文模型超參數(shù)初始設置如表2所示.
表2 超參數(shù)設置
本文首先進行了基于nC-BiLSTM 的微博文本自殺風險識別模型的訓練,分別測試了幾種不同并行CNN路數(shù)的模型性能,從圖4可得出當并行CNN 為3 路時,即3C-BiLSTM 模型的效果最佳.根據(jù)CNN 的原理,原因應為一開始隨著并行路數(shù)的增加,特征提取效果越好,模型性能也隨之增強,但是超過3 路后模型出現(xiàn)了過擬合,導致模型性能的下降.
圖4 不同并行CNN 路數(shù)的模型性能測試結果
為了驗證模型的有效性和準確性,我們通過實驗分別與樸素貝葉斯模型、CNN 模型,以及BiLSTM模型進行了性能比較.
實驗結果如圖5所示.從圖中首先可以看出深度神經(jīng)網(wǎng)絡模型的識別準確率相對于樸素貝葉斯模型有較大的優(yōu)勢.原因為樸素貝葉斯是一種詞袋模型,它的基本思想是假設詞與詞之間是相互獨立的,所以其無法提取文本的上下文語義聯(lián)系.而深度神經(jīng)網(wǎng)絡模型的結構決定了它可以提取到很多詞袋模型無法提取出的特征.
圖5 模型自殺風險識別效果對比
從圖5中可看出本文提出的模型3C-BiLSTM 的識別精準率、召回率、F值均高于其它對比模型,說明本文提出的模型有效地提升了自殺風險的識別效果.
結果表明,社交媒體中的自然語言可以作為標記來區(qū)分自殺高風險人群和普通人群.相較于傳統(tǒng)尋求醫(yī)生或精神衛(wèi)生專業(yè)人員的幫助,基于深度學習的文本分類模型可以更加準確和及時地預測個體自殺風險,這顯著減少了尋求幫助所需的時間、精力和金錢,為個人、家庭、社會都帶來了極大的益處.因而本模型是一種識別文本自殺風險的有效方法.
雖然研究工作取得了一定的成果,但仍存在一些需要繼續(xù)改進的地方.未來的研究可以考慮通過繼續(xù)提升文本數(shù)據(jù)量,增強模型可靠性或者過濾與情緒表達無關的微博來達到使模型的識別效果得以提升的目的.