劉德喜,鮑力平,萬常選,劉喜平,廖國瓊
1(江西財經(jīng)大學 信息管理學院,南昌 330013) 2(江西財經(jīng)大學 數(shù)據(jù)與知識工程江西省高校重點實驗室,南昌 330013)
心理健康問題一直是社會關注的焦點,它嚴重威脅著家庭和睦與社會穩(wěn)定[1,2].據(jù)報道有超過2/3的自殺事件是由心理疾病導致的[3].及時發(fā)現(xiàn)有抑郁、焦慮、自殺等有心理危機問題的個體,有助于對其進行心理干預及治療,因此心理危機識別對后期干預起著關鍵作用[4].
傳統(tǒng)的心理危機識別主要采用填寫自評量表的方式[5,6],但這種侵入型的方法會由于受試者的抵觸而增加誤報率.同時,這種方法適時性不高,且難以大規(guī)模并持續(xù)地開展.研究機構(gòu)We Are Social在最新發(fā)布的《2020年4月全球數(shù)字報告》(1)https://wearesocial.cn/blog/2020/04/23/digital-around-the-world-in-april-2020上指出,全球使用社交媒體的用戶已突破38億大關,預計到2020年年底,世界一半以上的人口將使用社交媒體.已有研究表明,利用Reddit、微博等社交媒體數(shù)據(jù)已經(jīng)成為發(fā)現(xiàn)心理危機用戶的新手段[7,8].這些研究成果有利于將心理危機的干預時機提前,并增強干預的主動性,具有重要的社會意義.
本文以CLPsych2019 shared task評測任務為研究內(nèi)容,針對論壇中用戶心理危機識別問題,構(gòu)建了基于多層局部信息融合的在線論壇用戶心理危機風險識別模型Multi-layer Partial Information Fusion Model(MPIF).CLPsych2019 Shared Task評測任務是根據(jù)輸入的用戶帖子判斷該發(fā)帖用戶的心理危機程度,其中,每個用戶的心理危機嚴重程度從輕到重依次分為4個等級a:無風險(No Risk),b:低風險(Low Risk),c:中度風險(Moderate Risk),d:高危風險(Severe Risk).示例1給出一個心理危機等級被標注為“d”的用戶帖子.
示例1.(用戶ID 1307)Help.Why should I live if my Acnes so bad,if the girl I asked to homecoming said no,if I get made fun of so much,if I′m not smart and my mom says I won′t go to college or do anything in my life like my sister,if all my friends have stopped asking me to hang out,if all I do is look in the mirror andcry,if Ineversmileanymore or laugh or have a good time with my friends or family.WhyshouldIliveifIcan′tfindhappinessnomatterwhereIlook.Why should I live if I have no talents,or anything special about me.Why should I live if I haven′t lived up to my own expectations.Anybody′s expectations.
通過對數(shù)據(jù)的觀察發(fā)現(xiàn),用戶帖子中經(jīng)常出現(xiàn)較長的嘮叨、敘述等與心理危機關聯(lián)不大的信息,且情感表達較隱晦,而能夠反映心理危機的信息往住出現(xiàn)在某些局部的詞、短語和句子上.例如示例1中的“cry”,“never smile”以及“Why should I live if I can′t find happiness no matter where I look”等反映出該用戶有非常高的心理危機等級.MPIF模型正是基于“有利于判斷心理危機的核心信息往往體現(xiàn)在局部內(nèi)容上”這一觀察,使用深度分層LSTM網(wǎng)絡,將句子層面的LSTM網(wǎng)絡和詞語層面的LSTM網(wǎng)絡相結(jié)合,挖掘帖子中句子層面和詞語層面的特征.同時,使用CNN網(wǎng)絡并結(jié)合多種大小不同的卷積核來提取帖子中短語層面的局部信息.本文提出了多層局部信息融合模型MPIF分別從詞、短語和句子3個層面提取帖子中的局部特征,從而使模型達到更加準確的判斷.
本文主要貢獻在于:
1)提出基于多層局部信息融合的心理危機識別模型MPIF,該模型分別從詞層面(使用詞層LSTM網(wǎng)絡)、短語層面(使用CNN網(wǎng)絡)、句子層面(使用句子層LSTM網(wǎng)絡)來對帖子進行特征提取,并通過詞語層LSTM中的注意力、句子層LSTM中的注意力、以及CNN中的最大池化層提取帖子中的重要局部信息,并將其融合用于戶心理危機程度識別.
2)使用BERT對用戶帖子中的句子進行向量化表達.與傳統(tǒng)的詞向量方法相比,它充分考慮了句子中詞語的之間的相互關系,以及詞語在其上下文中的語義,使得語義表達更準確.
3)采用注意力機制和最大池化層,使得MPIF不僅能夠有效利用局部信息,同時具有較強的可解釋性.該模型不僅可以給出心理危機程度的判斷,同時可以將這些局部信息展示給心理咨詢專家,輔助心理咨詢專家更快了解患者.
4)與CLPsych2019 shared task的參賽方法相比,本文提出的模型具有較強的競爭力.相比排名第1的模型,MPIF的官方評測指標All-F1值(心理危機程度a,b,c,d 4個類別的F1值取平均)和準確度Accuracy高出了3.9%和11.2%.
心理危機識別是依據(jù)心理學的理論和方法對人的心理品質(zhì)及水平所做的一種鑒定,在應用心理學中經(jīng)常用心理診斷的概念,指對人的心理活動和人格特征做出實質(zhì)性的判斷.在本文中,心理危機識別是利用機器學習、深度學習、自然語言處理等技術(shù)對人的抑郁、自殺意念、焦慮及與心理狀態(tài)有密切關系的人格障礙、情緒困擾等心理問題和現(xiàn)象狀態(tài)的鑒定和識別.
在利用社交媒體數(shù)據(jù)進行心理危機識別的早期研究中,大多是基于傳統(tǒng)的機器學習方法.這類方法在對數(shù)據(jù)統(tǒng)計分析的基礎上提取和選擇有利于區(qū)分類別的特征,特征工程的效果直接影響分類結(jié)果.已有的研究表明[9],通過選擇合適的特征以及對多種特征組合,可以提高性能.Bridianne等人[10]通過對Twitter的數(shù)據(jù)分析處理,利用詞頻-逆文檔頻率(TF-IDF)特征,使用SVM分類器來識別Twitter用戶是否有自殺傾向.針對相同的任務,Braithwaite等人[11]提取數(shù)據(jù)集中的用戶屬性特征與LIWC情感詞典的特征,分別采用多個分類模型進行評估,最后得出結(jié)論,決策樹模型的分類效果最好.Tsugawa等人[12]利用詞袋特征、LDA主題模型特征、情感詞典特征以及用戶屬性特征相結(jié)合,并使用SVM分類器對Twitter論壇用戶是否有抑郁傾向進行評估.Li等人[13]使用用戶屬性特征、SCLIWC詞典特征以及TextMind工具來分析新浪微博用戶是否有自殺傾向.Malmasi等人[14]考慮了N-grams特征、句法特征、LIWC詞典特征、上下文特征,并用邏輯回歸模型分析用戶的心理危機嚴重程度.Ji等人[15]利用LIWC情感詞典特征、LDA主題模型特征、詞性特征、TF-IDF特征以及Word2Vec詞嵌入特征等多種特征相結(jié)合,最后使用XGBoost以及隨機森林分類器分別對Reddit論壇和Twitter中有自殺傾向的用戶進行識別,取得了不錯的效果.
隨著深度神經(jīng)網(wǎng)絡在其他領域取得了重大突破,近年來,有學者將深度神經(jīng)網(wǎng)絡模型用于心理危機識別中.與傳統(tǒng)機器學習分類模型相比,使用詞嵌入的深度學習方法十分便捷,即使沒有復雜的特征工程通常也能獲得較好的結(jié)果.卷積神經(jīng)網(wǎng)絡CNN作為深度學習中最常用的網(wǎng)絡結(jié)構(gòu),在心理危機識別領域應用較多.Orabi等人[16]為了預測Twitter論壇中有抑郁心理狀態(tài)的用戶,預訓練了Word2Vec的詞嵌入模型,送入卷積神經(jīng)網(wǎng)絡中進行分類預測.Lin等人[17]使用特征工程與卷積神經(jīng)網(wǎng)絡相結(jié)合的方法,利用LIWC情感詞典特征、圖像特征以及用戶屬性特征再送入卷積神經(jīng)網(wǎng)絡預測新浪以及騰訊微博有心理壓力的用戶.Yates等人[18]使用卷積神經(jīng)網(wǎng)絡,對Reddit和ReachOut論壇用戶進行抑郁和自我傷害傾向檢測,從而避免了繁瑣的特征構(gòu)建工作.
其他一些經(jīng)常使用的深度神經(jīng)網(wǎng)絡架構(gòu)是長短時記憶網(wǎng)絡(LSTM)模型,它對噪聲的魯棒性強,并且能夠較好地捕捉序列中的長期依賴關系.Sawhney等人[19]在Twitter自殺用戶數(shù)據(jù)集中,通過實驗發(fā)現(xiàn)LSTM能夠獲得了最高的召回率;Ambalavanan等人[20]使用了BERT方法作為向量表示,并使用LSTM網(wǎng)絡,對有自殺傾向的網(wǎng)絡用戶進行預測;Gui等人[21]使用Word2Vec進行向量表示,并使用雙向LSTM網(wǎng)絡對Twitter論壇中的抑郁用戶進行預測.Orabi等人[16]為了比較CNN以及LSTM的效果,在Word2Vec詞嵌入基礎上構(gòu)建了4個神經(jīng)網(wǎng)絡模型:最大池化層的CNN、多通道CNN、多通道池化CNN、帶有注意力機制的雙向LSTM,在兩個不同數(shù)據(jù)集上的實驗表明,基于CNN的模型性能優(yōu)于基于RNN的模型.Mohannadi等人[22]將CNN與LSTM網(wǎng)絡相結(jié)合預測Reddit論壇中有自殺傾向的用戶,分別選用GloVe和ELMo方法作為帖子的文本表示,并將其輸入CNN、Bi-RNN、Bi-LSTM、Bi-GRU 等4個經(jīng)典的神經(jīng)網(wǎng)絡模型中提取特征,最后通過SVM進行分類預測,該模型在CLPsych 2019共享任務中獲得排名第一的結(jié)果.
詞向量在訓練的過程中能夠獲取語義和句法信息,在自然語言處理任務至關重要[23].目前,基于深度學習的社交媒體用戶心理危機識別已有方法中,詞向量大都采用Word2Vec、ELMo,近期的研究工作開始采用BERT.Word2Vec是經(jīng)典的詞向量表示方法,其缺點在于同一個單詞在不同的上下文語境具有相同的詞向量表示.針對該問題,Peters等人[24]提出了ELMo(Embeddings from Language Models),該模型運用兩層雙向的LSTM結(jié)構(gòu),將上下文無關的靜態(tài)向量變成上下文相關的動態(tài)向量.此外,Radford等人[25]提出了GPT(Generative Pre-Training)模型,GPT使用Transformer編碼結(jié)構(gòu),舍棄了LSTM的循環(huán)式網(wǎng)絡結(jié)構(gòu),完全基于自注意力(self-attention)機制,其主要思想是計算句子中的每個詞對于其他詞的相互關系,從而調(diào)整每個詞的重要性來獲取上下文相關的詞向量.由于自注意力機制可以實現(xiàn)計算資源的并行化,使得GPT模型更高效.Devlin等人[26]在GPT模型的基礎上,提出BERT模型,采用雙向Transformer編碼結(jié)構(gòu),以掩碼單詞預測和下一句預測作為訓練目標,捕獲文本中詞級別和句子級別的語義表示.
圖1 多層局部信息融合模型網(wǎng)絡框架Fig.1 Architecture of multi-layer partial information fusion model
CLPsych2019Shared Task評測任務定義如下:給定用戶一定時間范圍內(nèi)在論壇中所發(fā)的N個帖子構(gòu)成的帖子序列P={p1,p2,…,pi,…,pN},其中帖子pi由|pi|個句子構(gòu)成,pi={si,1,si,2,…,si,j,…,si,|pi|},句子si,j由|si,j|個詞構(gòu)成,si,j={wi,j,1,wi,j,2,…,wi,j,|si,j|}.心理危機識別任務是根據(jù)用戶發(fā)布的帖子判斷用戶的心理危機程度.其中,每個用戶的心理危機程度由輕到重依次分為4個等級(a:無風險,b:低風險,c:中度風險,d:高危風險).由于本文的工作利用了用戶在一定時間范圍內(nèi)發(fā)布的全部帖子內(nèi)容,且未在帖子粒度上對內(nèi)容進行區(qū)分,即不區(qū)分句子所屬的帖子,因此,將用戶發(fā)布的帖子序列表示為P={s1,s2,s3,…,s|P|},其中|P|為帖子序列中句子的總數(shù),且按其所在帖子的發(fā)布時間先后及其在帖子中的位置前后依次排列,形成句子序列.句子si={wi,1,wi,2,…,wi,|si|},其中|si|為句子si中的單詞個數(shù).為了方便表達,在不引起混淆的情況下,我們也可以將某一用戶的帖子序列集合簡單看成詞的序列,P={w1,w2,w3,…,wn},n表示該用戶帖子集合中單詞數(shù).
多層局部信息融合模型MPIF如圖1所示,主要由5個部分組成.
1)詞語語義提取層BERT
MPIF利用BERT對用戶的帖子序列進行語義提取,充分考慮句子中每個詞在不同上下文中對其他詞的影響,以及同一詞在不同上下文中的不同語義.考慮到后續(xù)模塊對帖子語義的使用方式不同,MPIF分別以帖子序列P和句子s兩種粒度作為BERT層的輸入.以帖子序列P為輸入粒度,是將某一用戶的帖子序列集合P={w1,w2,w3,…,wn}送入BERT預訓練語言模型,得到該用戶的帖子序列集合的語義表示矩陣PB=[x1,x2,x3,…xn],其中PB∈Rz×n,z為詞向量的維數(shù).以句子s為輸入粒度,是將用戶帖子的各個句子分別送入BERT預訓練語言模型,得到各個句子的語義表示矩陣.對于第i個句子si={wi,1,wi,2,…,wi,|si|},得到siB=[xi,1,xi,2,…,xi,|si|],其中siB∈Rz×|si|.最后將語義表示矩陣PB和siB(i=1,…,|P|),分別作為短語層CNN網(wǎng)絡和詞語層LSTM網(wǎng)絡的輸入.
2)短語層局部特征提取模塊
短語層局部特征提取模塊采用CNN網(wǎng)絡,主要分為卷積操作和池化操作兩部分,卷積操作主要是捕獲文本特征中的局部信息,池化操作則完成局部重要特征的提取[27].在自然語言處理任務中,CNN無需對文本進行大量的預處理工作,有效減輕了特征工程的工作量[28].
(1)
(2)
其中,wl是卷積核的權(quán)重,按照均勻分布隨機初始化,并在模型訓練過程中不斷學習,bl∈R是偏置變量.
考慮到短語的長短不同,本文采用長度不同的多個卷積核.對于q個卷積核得到的結(jié)果如下:
(3)
3)詞語層局部特征提取模塊
詞語層局部特征提取模塊采用BiLSTM網(wǎng)絡.循環(huán)神經(jīng)網(wǎng)絡RNN已廣泛應用于處理變長序列輸入的NLP問題中,它能動態(tài)地捕獲序列中的特征信息,將信息更新保存在循環(huán)隱藏向量中.由于過于依賴前一個隱藏向量,在算法的實現(xiàn)上容易出現(xiàn)梯度消失問題.為了能夠緩解該問題,Hochreiter等人[29]提出了LSTM模型,增加了記憶單元和控制門的機制,在此基礎上Graves等人[30]進行了改良與推廣,使模型更高效.雙向LSTM(BiLSTM)通過在兩個方向上處理序列,一個按正向處理輸入序列,另一個按反向處理輸入序列,利用了正向和反向的上下文,生成兩個獨立的LSTM輸出向量序列.每個時間步長的輸出是兩個方向上輸出向量的串聯(lián).本文采用的BiLSTM模型與Graves等人的方法相似.詞語層面的BiLSTM網(wǎng)絡主要分為詞編碼器以及詞級別的attention機制.LSTM接收一個以詞語為單位的句子作為網(wǎng)絡的序列化輸入.給定一個句子s={w1,w2,…,w|s|},其BERT預訓練結(jié)果為sB=[x1,x2,x3,…,x|s|],當前時刻LSTM單元的輸入為第t個單詞的向量xt∈Rz以及t-1時刻的隱藏向量ht-1,t時刻各狀態(tài)和門控信號更新方式如公式(4)-公式(8)所示:
it=σ(Wxixt+Whiht-1+Wcict-1+bi)
(4)
ft=σ(Wxfxt+Whfht-1+Wcfct-1+bf)
(5)
ct=ftct-1+ittanh(Wxcxt+Whcht-1+bc)
(6)
ot=σ(Wxoxt+Wxfht-1+Wcfct-1+bf)
(7)
ht=ottanh(ct)
(8)
其中LSTM主要由3個門結(jié)構(gòu)來控制模型,分別是輸入門it、遺忘門ft、輸出門ot,ct為t時刻記憶單元的狀態(tài),σ為sigmoid函數(shù),tanh為雙曲正切函數(shù),W為的權(quán)重,b為偏置值.
我們使用雙向LSTM得到單詞的雙向序列表示,其中雙向LSTM包含前向LSTM讀取順序由x1到x|s|,以及后向LSTM讀取順序由x|s|到x1,將雙向LSTM兩個方向上的隱藏向量進行拼接,得到隱藏層的輸出,具體公式如式(9)-式(11)所示:
(9)
(10)
(11)
經(jīng)過詞語層面的LSTM網(wǎng)絡之后,獲得各個詞的新的向量編碼序列ht,它包含了單詞wt周圍兩個方向的信息.
詞級別注意力機制的目的是要把句子中對判斷心理危機更有幫助的詞賦予更大的權(quán)重.本文通過將ht輸入到一個單層的感知機(MLP)中得到的結(jié)果ut作為ht的隱含表示.單詞的重要性用ut和一個隨機初始化的上下文向量uw的相似度來表示,然后經(jīng)過softmax操作獲得歸一化的attention權(quán)重矩陣αt,代表句子s中單詞wt的權(quán)重.最后將句子向量o看作組成句子s中詞向量的加權(quán)求和.具體公式如式(12)-式(14)所示:
ut=tanh(Wwht+bw)
(12)
(13)
(14)
4)句子層局部特征提取模塊
通過詞語層局部特征提取模塊,得到帖子中各個句子的句子向量,將這些句子向量送入句子層BiLSTM網(wǎng)絡,并使用句子級別的注意力機制,使得模型區(qū)別對待不同句子在判斷心理危機上的作用.設帖子的第i個句子si的句子向量為oi,使用類似詞語層BiLSTM網(wǎng)絡模型,獲得隱藏層的輸出向量,如式(15)-式(17)所示.
(15)
(16)
(17)
ui=tanh(Wshi+bs)
(18)
(19)
(20)
5)輸出層
將短語層CNN網(wǎng)絡的序列化輸出和句子層LSTM的序列化輸出進行拼接,構(gòu)成新的序列化特征,通過一層全連接層和softmax層將帖子P分類到心理危機的4個不同程度(類別)上.計算方法如式(21)、式(22)所示:
(21)
y=softmax(Wmv+by)
(22)
(23)
與已有的心理危機識別模型相比較,本文提出的多層局部信息融合模型MPIF具有以下特點:
1)輸入層的語義表示更準確.由于BERT預訓練語言模型在大規(guī)模語料上學習所得,它充分考慮了句子中每一個詞語對上下文中其他詞語的影響,以及同一個詞語在不同語境中的不同含義表達.
2)強化局部信息在心理危機識別中的作用.由于在用戶發(fā)布的帖子集合中,反映用戶心理危機狀態(tài)的信息通常局限在特定的句子、短語以及詞語上,MPIF模型從這3個層面抽取局部信息.帶注意力機制的詞語層LSTM網(wǎng)絡不僅能有效表示整個句子的語義,還能挖掘句子中的詞語層面上的局部特征.帶注意力機制的句子層LSTM網(wǎng)絡不僅能有效表示全部帖子內(nèi)容的語義,還能挖掘帖子中的重要句子.在一些用戶帖子中,某些句子長度較短或情感表達較隱晦,僅利用詞語層面的LSTM網(wǎng)絡難以獲取足夠的特征信息來對帖子進行判斷,但同一帖子中不同句子之間卻有密切的情感聯(lián)系.所以,MPIF模型將句子層面的LSTM網(wǎng)絡和詞語層面的LSTM網(wǎng)絡相結(jié)合,通過詞語層面的LSTM獲取句子內(nèi)部的語義信息,通過句子層面的LSTM網(wǎng)絡挖掘整個帖子中句子之間的情感聯(lián)系.同時,使用短語層面的CNN網(wǎng)絡,通過多種大小不同的卷積核,挖掘帖子中詞組和短語的語義信息,以彌補詞層面和句子層面在刻畫帖子內(nèi)容時粒度過小和過大的問題.
表1 人工標注示例Table 1 Manual annotation examples
3)具有更強的可解釋性.采用注意力機制和最大池化層,使得MPIF模型不僅能夠有效利用局部信息,同時具有較強的可解釋性.該模型不僅可以給出心理危機程度的判斷,還可以將這些局部信息展示給心理咨詢專家,輔助心理咨詢專家更快了解患者.
實驗使用CLPsych2019 Shared Task中的子任務A,即通過用戶在特定論壇版塊上發(fā)布的帖子,識別用戶的自殺風險等級.數(shù)據(jù)集來源于Reddit論壇SuicideWatch(2)https://www.reddit.com/r/SucideWatch/板塊中用戶2015年發(fā)表的帖子集合,包括帖子id、匿名用戶id、發(fā)帖時間、論壇名稱、帖子標題以及帖子內(nèi)容等信息.數(shù)據(jù)集包括訓練集以及測試集,訓練集中人工標注了496個用戶(共發(fā)布了919條帖子)的心理危機程度;測試集中人工標注了125名用戶(共發(fā)布了186條帖子)的心理危機程度.人工標注的心理危機程度共分4個等級,用a、b、c、d表示,分別表示帖子作者的自殺風險程度為“無風險”、“低風險”、“中度風險”和“重度風險”.人工標注示例及標注說明簡要介紹如表1所示,各類別樣本分布情況如表2所示.
表2顯示,各類樣本分布不均衡,標記為低風險和中度風險的帖子較少,只占帖子總數(shù)的25%,再加上這兩類帖子自殺風險程度較為接近,辨識難度大.為了讓模型能夠更好的識別這兩類帖子,本文使用過采樣技術(shù),將低風險和中度風險的帖子適當增加.
表2 標簽樣本分布表Table 2 Label sample distribution
評測的指標采用CLPsych2019 共享任務的官方評測指標[31],其中包括:
1)All-F1:a,b,c,d 4類樣本分類結(jié)果F1值的宏觀平均.該指標反映了所有樣本的綜合識別能力,是CLPsych2019對各參賽統(tǒng)進行排名的指標.
2)Flag-F1(Flagged F1):將所有非a類的樣本視為一個大類,稱為flagged類,a類和flagged類樣本分類結(jié)果F1值的宏觀平均.該指標反映模型對有、無自殺風險的區(qū)分能力.
圖2 訓練中正確率曲線Fig.2 Training accuracy curve圖3 MPIF訓練中損失值曲線Fig.3 MPIF Training loss curve
3)Urg-F1(Urgent F1):將所有d類和c類的樣本視為一個大類,稱為urgent類,a類和b類的樣本視為非urgent類,urgent類和非urgent類樣本分類結(jié)果F1值的宏觀平均.該指標反映模型對需要緊急處理和不需要緊急處理的用戶的區(qū)分能力.
4)Acc(Accuracy):指模型分類正確的樣本個數(shù)占總樣本個數(shù)的比例.
本文所提出的模型采用Ubuntu上的PyTorch進行搭建,實驗采用的環(huán)境如表3所示.
實驗中采用的是Google提供的預訓練語言模型“BERT-Base,Ucased”,模型采用了12層Transformer,隱藏大小為768,Multi-head Attention的參數(shù)為12,對于每一個輸入的詞,它分別從詞向量(token embeddings)、分段向量(segment embeddings)和位置向量(positions embeddings)進行表征.模型超參數(shù)設置如表4所示.
表3 實驗配置Table 3 Lab environment
MPIF在訓練集和測試集上的準確率隨迭代次數(shù)的變化如圖2所示,其在訓練集上的損失隨迭代次數(shù)的變化如圖3所示.因此,本文取迭代次數(shù)為1000時的模型進行實驗.
表4 超參數(shù)列表Table 4 Hyperparameter List
1)BERT:采用Devlin等人[26]提出BERT預訓練模型,利用BERT模型在語料庫上預訓練得到文本表示,并將其直接輸入到全連接層和softmax層進行分類.
2)BERT+BiLSTM:利用BERT預訓練得到文本特征表示之后,輸入到Wang等人[32]提出的BiLSTM中完成特征訓練及分類.
3)BERT+HLSTM:深層注意力機制模型HLSTM由Yang等人[33]提出,作者設計了一個多層的attention機制.其中第1層是word-level的attention,依據(jù)不同單詞的貢獻,聚合成句子級別的表示.第2層是sentence-level的attention,依據(jù)不同句子的貢獻,聚合成帖子級別的表示.該方法能夠有效獲取句子內(nèi)部的依賴關系,同時可以獲取同一條帖子中不同句子的相互關系,適合用于長文本的用戶帖子與評論中.實驗中通過只使用MPIF中的詞語層面LSTM以及句子層面的LSTM層來模擬HLSTM.
4)BERT+TextCNN:TextCNN網(wǎng)絡是2014年Kim等人[34]提出的使用卷積神經(jīng)網(wǎng)絡來處理NLP問題的模型.該模型利用BERT預訓練得到文本特征表示之后輸入到TextCNN模型中完成特征訓練及分類.實驗中通過只使用MPIF中的CNN短語層來模擬TextCNN.
5)BERT+DPCNN:DPCNN由騰訊AI-lab在ACL2017年提出[35],由于CNN不能通過卷積獲得文本的長距離依賴關系,而DPCNN通過不斷加深網(wǎng)絡,可以抽取長距離的文本依賴關系.利用BERT預訓練得到文本特征表示之后,輸入到DPCNN中進行分類.
除將本文提出MPIF模型與現(xiàn)有比較經(jīng)典的模型對比外,為了驗證MPIF模型的競爭力,我們將其與CLPsych2019排名前4的模型進行對比,他們分別是:
6)CLAC[22]:Mohannadi等人將傳統(tǒng)方法與神經(jīng)網(wǎng)絡相結(jié)合,選用GloVe和ELMo方法作為帖子的文本表示,并將其輸入CNN,Bi-RNN,Bi-LSTM,Bi-GRU 4個經(jīng)典的神經(jīng)網(wǎng)絡模型中提取特征,最后通過SVM實現(xiàn)分類.
7)ASU[20]:Ambalavanan等人使用了較為先進的BERT方法作為他們的神經(jīng)網(wǎng)絡模型,通過相應的微調(diào),對用戶帖子進行分類.
8)IDLab[36]:Bitew等人采用傳統(tǒng)特征工程的方法,使用帖子的詞頻逆向文件頻率(TF-IDF)特征、情緒特征以及自殺風險特征,并送入SVM實現(xiàn)分類.
9)SBU-HLAB[37]:Matero等人的模型使用了雙向transformer架構(gòu)的BERT嵌入方式,從主題、詞向量、用戶所發(fā)帖的論壇等特征構(gòu)建邏輯回歸模型.
各模型在測試集上的實驗結(jié)果如表5所示.
由表5可以看出,總體上,本文提出的MPIF模型在各個評測指標上都顯著優(yōu)于其它模型,All-F1和準確率分別為0.520和0.616,比CLPsych2019SharedTask參賽模型中的第1名[22]高出了3.9%和11.2%
具體地:
表5 實驗結(jié)果Table 5 Experimental results
BERT模型在All-F1上比MPIF低6.5%,原因是僅使用BERT時,無法考慮帖子中句子內(nèi)部和句子之間的依賴關系,以及詞、短語、句子層的局部信息.
BERT+DPCNN模型在All-F1上比MPIF模型低5.4%,原因是,盡管BERT+DPCNN試圖通過深層CNN模型抓住更長距離的語義依賴,但無法顯式地考察句子之間的依賴關系,且考察整個帖子內(nèi)容的做法盡管在其它諸如文本主題分類任務上有效,但心理危機的識別更傾向于關注局部信息.
BERT+LSTM模型雖然可以保留帖子中詞語之間的長距離依賴關系,但由于沒有結(jié)合注意力機制,無法捕捉到對分類更有幫助的局部信息,其All-F1值和準確率Acc分別為0.486和0.560.
加了分層注意力機制的BERT+HLSTM模型比BERT+LSTM有更好的表現(xiàn),其All-F1值和準確率Acc提升了1%和4%,達到0.496和0.600.但與MPIF相比,盡管BERT+HLSTM模型考慮到了帖子中單詞以及句子層面的局部信息,但沒能考慮到帖子中短語的作用.
相比其它參考模型,BERT+TextCNN模型效果較好,All-F1值相達到0.500,原因是TextCNN網(wǎng)絡使用多種大小不同的卷積核,能夠有效挖掘提取帖子中短語層面的局部信息,但該模型無法關注句子內(nèi)的詞語之間以及句子之間的語義依賴,因此其All-F1值較MPIF仍低2%.
為進一步說明多層局部信息融合模型MPIF的性能及其與其它模型的差異,表6給出了數(shù)據(jù)集中的幾個示例.其中3表示BERT+HLSTM模型識別結(jié)果,4表示BERT+TextCNN模型識別結(jié)果,M表示MPIF模型識別結(jié)果,L為人工標注的類別.
從表6結(jié)果可以看出,用戶15232的帖子有“tired”“depr-ession”“anxiety”“self harm”等與心理危機相關的詞匯,但該帖子相對較長,導致與心理危機相關的語義淹沒在其它信息中.用戶44772和用戶51307的帖子中沒有明顯的心理危機相關的詞匯,但用戶15232的帖子中存在如“Why should I live if I can′t find happiness”這種與心理危機程度高度相關的短語或子句.針對用戶15232,BERT+HLSTM模型識別錯誤,可能的原因是,深層HLSTM考慮了整個帖子的內(nèi)容,但對局部信息的作用突顯不夠,使得與心理危機相關的信息被沖淡.BERT+HLSTM對于用戶51307能夠識別正確,說明該模型對較長句子的語義理解是非常有效的.與BERT+HLSTM形成互補的是BERT+TextCNN,后者對于用戶15232的帖子中的局部信息的捕獲能力較強,但對用戶51307的帖子中長句的語義理解存在不足,導致BERT+TextCNN對用戶15232的識別正確,卻對用戶51307識別錯誤.
表6 模型結(jié)果對比Table 6 Comparison of model results
對用戶44772的識別更有挑戰(zhàn)性,“l(fā)ost”“My heart breaks”等局部信息或子句會誘使BERT+TextCNN和BERT+HLSTM模型做出錯誤判斷,但如果把該帖子的前后語義綜合考慮,即因為“I lost a good friend”導致“My heart breaks”,并不是用戶本身有心理危機.而MPIF在融合了局部信息及多個句子的語義關聯(lián)后,做出了正確的識別.
為了驗證本文提出的MPIF模型各個模塊的有效性,我們對MPIF模型進行了消融實驗,在模型參數(shù)不變的前提下,去除詞語層LSTM模塊(-wLSTM)、短語層CNN模塊(-pCNN)、句子層LSTM模塊(-sLSTM),實驗結(jié)果參數(shù)如表7所示.
表7 消融實驗結(jié)果Table 7 Ablation experiments results
表7顯示,去除詞語層LSTM后,MPIF的All-F1值下降4%,準確率Acc下降2.4%;去除短語層CNN后,MPIF的All-F1值下降2.4%,準確率Acc下降1.6%,;去除句子層LSTM后,MPIF的All-F1值下降4.3%,準確率Acc下降6.6%.
為了驗證本文提出的MPIF模型中的詞語LSTM層和句子LSTM層能夠有效提取關鍵信息的能力,我們針對幾個用戶貼子,分別從詞語和句子的角度進行了可視化,如圖4所示.其中,每一行表示一個句子,句前陰影部分表示句子的權(quán)重,句中陰影部分表示句子中單詞的權(quán)重,顏色的深淺表示MPIF中相應注意力的權(quán)重越大.
圖4 MPIF模型詞語和句子層面熱力圖示例Fig.4 Word and sentence level thermal diagrams
MPIF模型通過詞層注意力機制注意到帶有自殺傾向的詞匯,例如圖4(a)中的詞“l(fā)ost”、“ruin”、“hopeless”,圖4(b)中的詞“difficult”、“depressed”等.它還通過句子層注意力機制注意到反映心理危機的句子,例如,在圖4(a)中的句子“i have no motivation left”、圖4(b)中的句子“I am very depressed and lonely ”等.對于句子“i have no motivation left”(“我沒有動力再留下”),如果單純地看其中的每一個單詞,可能會認為它們都是一些平常的表達,然而,MPIF模型通過觀察這句話的完整語義及上下文后,給這句話更高的權(quán)重.
為了探究MPIF模型的不足及其改進方向,我們分析了部分被MPIF識別錯誤的例子,代表性的示例如表8所示.示例帖子來自用戶50962,內(nèi)容是傾述學習壓力較大,貼子中出現(xiàn)較多的與心理危機相關的詞如“therapy”、“medication”等,但他并沒有自殺傾向,因此人工標簽為a(無風險),但在MPIF模型看來,“therapy”、“few friends”、“I′m spending another night crying to myself”等內(nèi)容在詞、短語和句子上都顯示出了豐富的心理危機線索,導致MPIF模型將其識別為類別d(高危風險).由于不同種類的心理危機是相互關聯(lián)的,比如焦慮、抑郁、自殺傾向等,但本文用于實驗的任務只是識別是否有自殺傾向這類心理危機,有自殺傾向的用戶通常會表現(xiàn)出焦慮、抑郁、壓力等,但有焦慮、抑郁或壓力不意味著一定會有自殺傾向.然而,MPIF模型無法區(qū)分這些心理危機之間的聯(lián)系,而僅通過數(shù)據(jù)集的訓練難以對用戶50962的貼子內(nèi)容進行正確判斷.對于這類問題,充分利用心理學知識,將不同類型心理危機之間的區(qū)別和聯(lián)系引入模型,并結(jié)合多任務學習,可能是一個有效的解決途徑.
表8 MPIF識別錯誤的示例Table 8 Example of identifying errors
用戶44876的帖子中,“trouble”、“debts”等內(nèi)容可能誘導了MPIF將其識別為類別b(低風險),但該帖子的人工標簽卻是a(無風險).在錯分的樣本中,大部分是將帖子的心理危機等級錯誤地識別為比較接近的等級.這是一個極具挑戰(zhàn)性的任務,因為人工在對心理危機程度進行判斷時,同樣也面臨著類似的挑戰(zhàn),特別是當可利用的用戶帖子較少時(CLPsych2019子任務一的數(shù)據(jù)集中,平均每個用戶可利用的帖子不到兩條帖子,496名用戶共919條帖子).一個可能的解決思路是,利用用戶更多的帖子,在更豐富的信息上綜合判斷.
本文提出了一個多層局部信息融合的MPIF模型,并應用于在線論壇用戶心理風險識別任務中.通過與有代表性的深度神經(jīng)網(wǎng)絡以及與CLPsych2019排名前4隊伍所提出來的模型其進行對比,驗證了MPIF模型的有效性.MPIF模型利用BERT對評論信息的句子進行向量化表達,充分考慮句子中每個詞在不同上下文中對其他詞的影響,以及同一詞在不同上下文中的語義.模型分別從詞語、短語、句子3個層面挖掘反映用戶心理危機狀態(tài)的信息.采用深度分層LSTM網(wǎng)絡和注意力機制相結(jié)合的方式來獲取帖子中詞語層面以及句子層面的局部信息,利用CNN網(wǎng)絡中多種大小不同的卷積核來提取帖子中短語層面的局部信息,并將詞語、短語、句子3個層面得到的局部信息進行融合.詞語和句子層面的熱力圖顯示,MPIF有效地抓住了能反映用戶心理危機的局部信息,這些信息有利于心理咨詢專家快速了解用戶的心理危機狀況.
通過對錯分樣本的分析,發(fā)現(xiàn)可以從以下幾個方面對模型進行改進:
1)考慮引入心理學特征,并利用多任務學習將不同類型的心理危機識別任務聯(lián)合訓練;
2)充分利用用戶發(fā)布的帖子,包括未標注的數(shù)據(jù),在更豐富的信息上判斷用戶的心理危機狀況;
3)將用戶及其帖子放在用戶網(wǎng)絡和帖子網(wǎng)絡中,充分利用用戶之間以及帖子之間的互動關系.