張秀華 云紅艷 賀 英 胡 歡
(1.青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 青島 266071)(2.青島大學(xué)電子信息學(xué)院 青島 266071)
隨著大數(shù)據(jù)時代互聯(lián)網(wǎng)的發(fā)展,人們被大量的新聞信息環(huán)繞,它們來源廣泛,比如報紙、網(wǎng)絡(luò)等。其中新聞最常見的載體是文本,文本是最容易獲取有價值信息的方式。由于不同來源產(chǎn)生的新聞信息方式各種各樣,新聞文本的格式和蘊(yùn)含的信息也往往雜亂無章,同時產(chǎn)生新聞信息的數(shù)量也極其龐大,完全依賴人工實(shí)現(xiàn)中文新聞事件的檢測是幾乎不可能的。
新聞事件檢測旨在從非結(jié)構(gòu)化新聞數(shù)據(jù)流中對新聞文本描述的新聞事件檢測給出新聞事件主題。對于給定的新聞事件,主要包括事件發(fā)生的時間、地點(diǎn)、事件主體、事件的觸發(fā)詞等,傳統(tǒng)的新聞事件檢測要手工構(gòu)建基于上述事件因素的特征,對新聞事件的特征加權(quán)表示突出特征的重要性提高識別的準(zhǔn)確度。對于特征的構(gòu)建如詞性標(biāo)記、實(shí)體識別等會導(dǎo)致計(jì)算成本和額外傳播誤差的增加,另一方面手動構(gòu)建特征非常耗時并且泛化能力不足。
傳統(tǒng)的中文新聞事件檢測方法主要有K-means聚類[1~2]、凝聚類[3]、在線增量聚類[4]、Sin?gle-pass聚類等[5]方法。張斌等提出基于時間片的Single-Pass增量聚類方法用于事件檢測[6]。龍志禕等提出基于詞聚類的方法檢測新事件,本質(zhì)是利用詞之間的相似性檢測新事件[7]。上述聚類方法在中文新聞事件檢測過程為,當(dāng)有新的新聞文本文件到來時,會計(jì)算新文本事件與已有事件的相似程度,并為相似度設(shè)定一個閾值,當(dāng)新文本事件與已有事件的相似度閾值小于給定的閾值,會將其判定為新事件,否則為已有事件。對于相似度較高的眾多新聞事件,采用聚類算法進(jìn)行檢測時,會帶來新聞事件混淆、新事件識別精度不高或者新聞事件識別錯誤的問題。
本文提出了基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型。模型利用雙向長短記憶網(wǎng)絡(luò),利用神經(jīng)網(wǎng)絡(luò)的注意力機(jī)制來捕獲句子中最重要的語義信息。此模型不再需要手動構(gòu)建事件特征,它可以自動關(guān)注對新聞事件檢測具有決定性作用的詞,捕捉句子中最重要的語義信息而不依賴外部其他的特征。實(shí)驗(yàn)證明基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型具有良好的性能,優(yōu)于傳統(tǒng)的新聞事件檢測方法。
在新聞事件檢測之前,首先是對獲得的文本進(jìn)行文本預(yù)處理。文本預(yù)處理是后續(xù)工作的基礎(chǔ),模型的性能以及結(jié)果都依賴于文本預(yù)處理的結(jié)果,可以說良好的文本預(yù)處理結(jié)果是新聞事件檢測的關(guān)鍵一步。文本預(yù)處理包括規(guī)范文本,中文分詞,去停用詞等。對文本數(shù)據(jù)的規(guī)范包括統(tǒng)一編碼格式,規(guī)范文本數(shù)據(jù)的內(nèi)容,去除無效的標(biāo)記例如HT?ML,XML標(biāo)記,圖片信息等。規(guī)范文本之后采用結(jié)巴分詞對新聞文本進(jìn)行分詞,然后去除如常見的“的”“在”“和”“接著”等停用詞以減少噪聲干擾。
本文采用Google開源的word2vec[9]詞向量生成工具訓(xùn)練新聞文本的詞向量模型。Word2vec[10]本質(zhì)上是一個三層神經(jīng)網(wǎng)絡(luò),包括輸入層、隱藏層、輸出層,作用就是利用深度學(xué)習(xí)的思想將自然語言中的字詞轉(zhuǎn)為計(jì)算機(jī)可以理解的K維空間稠密向量。Word2vec主要分為CBOW和Skip-gram兩種模式。CBOW是從原始語句推測目標(biāo)字詞;而Skip-gram是從目標(biāo)字詞推測原始語句。本文采用Word2vec中 的Skip-gram[11]模 式 訓(xùn) 練 詞 向 量 。Skip-gram的結(jié)構(gòu)如圖1所示。
圖1 skip-gram結(jié)構(gòu)圖
Skip-gram模型由輸入層、隱藏層、輸出層組成,根據(jù)當(dāng)前詞預(yù)測上下文的方法。Skip-gram模型根據(jù)負(fù)采樣的思想進(jìn)行設(shè)計(jì),其在神經(jīng)網(wǎng)絡(luò)的目標(biāo)優(yōu)化函數(shù)如式(1):
其中c表示新聞文本語料,content(w)表示詞w的上下文,即w周圍詞的集合。
本文提出基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)[14]的新聞事件檢測模型用于對新聞事件的檢測。深度學(xué)習(xí)可以自動學(xué)習(xí)新聞事件的特征,例如利用卷積神經(jīng)網(wǎng)絡(luò)[8]對新聞文本進(jìn)行處理,但是卷積神經(jīng)網(wǎng)絡(luò)[12]不適合學(xué)習(xí)遠(yuǎn)程的語義信息;普通的循環(huán)神經(jīng)網(wǎng)絡(luò)存在梯度消失的問題,為了克服這個問題,Hochreiter等引入了門控制單元。本文基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型結(jié)構(gòu)如圖2所示,共包含以下部分。
1)輸入層:輸入新聞事件檢測模型的新聞文本。
2)嵌入層:將每個詞與word2vec模型映射為稠密向量。
3)LSTM層:利用BiLSTM獲得高水平的新聞特征。
4)注意力機(jī)制層:產(chǎn)生權(quán)重向量。并通過乘以權(quán)重向量,將每個步長的新聞文本詞級特征合并為句子篇章級特征向量。
5)輸出層:新聞文本句子篇章級特征向量最終輸出結(jié)果。
圖2 新聞事件檢測模型結(jié)構(gòu)
對于新聞文本無法直接將其輸入到模型中,首先要對新聞文本進(jìn)行量化表示,本文基于word2vec訓(xùn)練新聞文本的量化表示模型,為每一個詞訓(xùn)練一個300維的向量表示。下一步將要輸入的新聞文本與詞向量模型做量化映射,對于一篇新聞文本包含若干詞構(gòu)成,可表示為T={x1,x2,…,xn},其中xi代表組成新聞文本的每個詞語。
首先將新聞文本進(jìn)行預(yù)處理操作得到新聞文本詞的集合,然后依據(jù)基于word2vec訓(xùn)練的詞向量模型E,對每個詞進(jìn)行詞向量映射具體為式(2):
其中exi為詞的向量表示,E[x]i為詞xi在詞向量模型中訓(xùn)練好的稠密向量。經(jīng)過這個步驟后一篇新聞文本的量化表示為e={ex1,ex2,…,exn}輸入到下一層的網(wǎng)絡(luò)中。
雙向LSTM網(wǎng)絡(luò)有效解決了梯度消失和梯度爆炸的問題。主要思想是引入了門控制機(jī)制,該機(jī)制決定了LSTM單元保持當(dāng)前的特征狀態(tài)并記住輸入數(shù)據(jù)的特征。LSTM網(wǎng)絡(luò)包括三個門控制,即輸入門,遺忘門和輸出門,具體的更新公式如式(3)~(8)所示:
將新聞文本的量化表示輸入到雙向LSTM進(jìn)行新聞事件檢測模型的計(jì)算和訓(xùn)練。通過門機(jī)制,每一個LSTM神經(jīng)元[15]都會有記憶歷史特征的能力,并且丟棄掉無效的特征,經(jīng)過訓(xùn)練學(xué)習(xí)結(jié)果如式(9)所示:
基于注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)在各項(xiàng)任務(wù)中都取得了不錯的成果,包括智能問答,機(jī)器翻譯,語音識別,圖像處理等。在本節(jié)中,我們構(gòu)建了基于新聞事件檢測的注意力機(jī)制。設(shè)雙向LSTM的輸出的新聞文本向量可以表示為H={h1,h2,…,hn},其中n為新聞文本的長度。將H輸入到注意力機(jī)制層,其得到的權(quán)重矩陣可由下式得到:
最終獲得篇章級的新聞文本特征可表示為
經(jīng)過注意力機(jī)制層處理的具有篇章級新聞特征的向量作為輸入,輸入到輸出層中。全連接層中的每個神經(jīng)元與前一層的注意力機(jī)制進(jìn)行全連接。輸出層可以整合注意力機(jī)制層抽取出的中具有決定性的特征信息,在語言任務(wù)中基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的輸出層每個神經(jīng)元的激勵函數(shù)采用ReLU函數(shù)。最后把得到的向量通過一個softmax函數(shù)得到,如式(6):
將y轉(zhuǎn)換為正數(shù),和為1,得到中文新聞事件的概率分布,最終得出中文新聞事件的檢測結(jié)果。
首先構(gòu)建數(shù)據(jù)爬蟲系統(tǒng)從互聯(lián)網(wǎng)中通過搜索新聞事件關(guān)鍵詞獲取實(shí)驗(yàn)數(shù)據(jù),并且對爬蟲系統(tǒng)獲得的結(jié)果進(jìn)行解析抽取出實(shí)驗(yàn)數(shù)據(jù)。本文實(shí)驗(yàn)所用數(shù)據(jù)包括中興事件在內(nèi)共2258條數(shù)據(jù),對獲取的數(shù)據(jù)集,首先進(jìn)行規(guī)范化操作,去除HTML標(biāo)記,圖片等無效信息,對原始數(shù)據(jù)集采用半人工標(biāo)注形成規(guī)范化數(shù)據(jù)構(gòu)建訓(xùn)練集。在數(shù)據(jù)預(yù)處理方面采用結(jié)巴分詞對文本數(shù)據(jù)集進(jìn)行中文分詞,去停用詞操作。基于word2vec對新聞文本集進(jìn)行量化表示,采用skip-gram模型,詞向量的維度為300維,訓(xùn)練詞向量模型。
本文基于word2vec訓(xùn)練新聞文本的詞向量模型,提出基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型。評價指標(biāo)采用神經(jīng)網(wǎng)絡(luò)常用的F1值對模型的效果進(jìn)行評價,如式(15)所示
在訓(xùn)練過程中,共設(shè)置100輪訓(xùn)練,若中間模型準(zhǔn)確率不在上升則自動終止訓(xùn)練。最終模型在訓(xùn)練集、驗(yàn)證集和測試集上取得了不錯的效果,具體的F1值與其他模型的對比如表1所示。
表1 CNN模型與其他模型試驗(yàn)結(jié)果對比
從表中可以得出,傳統(tǒng)機(jī)器學(xué)習(xí)方法,如SVM、KNN,傳統(tǒng)聚類方法在中文新聞事件檢測中表現(xiàn)較差,F(xiàn)1值只有0.5左右。新聞事件檢測模型的最佳性能是基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型。其F1得分為0.87?;谧⒁饬C(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型的F1值高于其他模型??梢缘贸鼋Y(jié)論,基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型優(yōu)于其他模型。結(jié)果表明,注意力機(jī)制和雙向長短記憶網(wǎng)絡(luò)和窗口滑動方法影響事件分類模型的性能?;谧⒁饬C(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型具有強(qiáng)大的特征學(xué)習(xí)能力,可以從新聞文本中獲取每個事件的重要特征,從而實(shí)現(xiàn)事件的準(zhǔn)確識別。
傳統(tǒng)的中文新聞事件檢測采用聚類的方法發(fā)現(xiàn)新事件,這種方法精度差,收斂慢。圖3是本文基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型訓(xùn)練過程的收斂情況,其中圖3(a)為精度收斂情況,圖3(b)為損失值得收斂情況。圖中深色線表示模型在訓(xùn)練集的收斂情況,淺色線為模型在驗(yàn)證集的收斂情況。從圖中可以看出模型的收斂速度非常快當(dāng),當(dāng)模型訓(xùn)練近300步時,模型收斂,這也驗(yàn)證了基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型在中文新聞事件檢測中的優(yōu)越性。
圖3 模型訓(xùn)練曲線
在自然語言處理領(lǐng)域有眾多的任務(wù),而且在每個領(lǐng)域都取得了眾多的成果,但是上述的成果僅僅是理論的研究,缺乏面向用戶的實(shí)用工具。本節(jié)將介紹本文基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型構(gòu)建事件建模應(yīng)用系統(tǒng),包括需求分析、系統(tǒng)設(shè)計(jì)、功能實(shí)現(xiàn)。
為了能夠用戶充分利用非結(jié)構(gòu)化數(shù)據(jù),提高用戶在自然語言處理的效率,更方便快捷地構(gòu)建自然語言處理模型,增強(qiáng)數(shù)據(jù)的可用性、可理解性。整個系統(tǒng)主要提供以下三個模塊。
1)數(shù)據(jù)預(yù)處理與量化表示:將新聞文本數(shù)據(jù)的預(yù)處理與向量化表示集成到一個模塊中,實(shí)現(xiàn)數(shù)據(jù)的預(yù)處理功能和訓(xùn)練基于word2vec訓(xùn)練詞向量模型的功能。
2)模型構(gòu)建與訓(xùn)練:針對新聞事件檢測模型,提供基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件模型的構(gòu)建與訓(xùn)練功能。用戶可以根據(jù)自己的需要定制自己的新聞事件檢測模型。
3)新聞事件檢測與分析:基于2)訓(xùn)練好的新聞事件檢測模型,實(shí)現(xiàn)對新聞文本的檢測,并給出事件預(yù)測結(jié)果,對于新事件提供TF-IDF+kmeans的方法提取主題,并將文本加入訓(xùn)練集更新模型的功能。
本系統(tǒng)的設(shè)計(jì)嚴(yán)格按照“高內(nèi)聚,低耦合”的設(shè)計(jì)原則,保證了系統(tǒng)的維護(hù)性和易擴(kuò)展性。如圖4所示,將系統(tǒng)分為數(shù)據(jù)層、業(yè)務(wù)邏輯層和表現(xiàn)層。數(shù)據(jù)層主要涉及數(shù)據(jù)庫的相關(guān)操作,并將數(shù)據(jù)返回給業(yè)務(wù)邏輯層使用。業(yè)務(wù)邏輯層主要任務(wù)是業(yè)務(wù)邏輯的實(shí)現(xiàn),對數(shù)據(jù)進(jìn)行封裝和格式轉(zhuǎn)化處理,實(shí)現(xiàn)主要功能。表示層實(shí)現(xiàn)了為用戶提供交互和友好的可視化界面,負(fù)責(zé)數(shù)據(jù)的顯示和渲染。
系統(tǒng)采用B/S結(jié)構(gòu),后端服務(wù)有flask框架提供,提供RESTful接口。利用HTML5構(gòu)建前端可視化界面。如圖4所示,系統(tǒng)由底向上的順序建立。首先在數(shù)據(jù)層,構(gòu)建新聞文本模型的訓(xùn)練集,測試集,驗(yàn)證集,然后對新聞文本數(shù)據(jù)進(jìn)行預(yù)處理操作,訓(xùn)練詞向量模型。在業(yè)務(wù)邏輯層接收表示層的參數(shù)數(shù)據(jù),訓(xùn)練詞向量模型,訓(xùn)練新聞事件檢測模型;新聞事件的檢測以及分析,將數(shù)據(jù)封裝成JSON格式傳遞到表示層。表示層結(jié)果業(yè)務(wù)邏輯層的數(shù)據(jù),在前端對數(shù)據(jù)渲染展示,提供給用戶。
圖4 系統(tǒng)架構(gòu)圖
系統(tǒng)的功能主要分為事件建模和新聞事件檢測與分析兩個模塊。其中事件建??梢宰層脩糇远x構(gòu)建基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型。新聞事件檢測與分析可以讓用戶應(yīng)用自定義模型檢測新聞事件并進(jìn)行分析將數(shù)據(jù)更新至模型。具體如下。
5.3.1 事件建模
此模塊為用戶自定義訓(xùn)練基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型,包括新聞文本預(yù)處理及量化表示和模型的構(gòu)建。
1)數(shù)據(jù)預(yù)處理與量化表示:文本數(shù)據(jù)上傳至服務(wù)器,進(jìn)行中文分詞去停用詞操作,選擇詞向量模型的參數(shù)訓(xùn)練詞向量模型如圖5所示。
圖5 事件建模
2)模型訓(xùn)練:根據(jù)1)得到的詞向量模型選擇新聞事件檢測模型的參數(shù)包括網(wǎng)絡(luò)的層數(shù)、注意力層的尺度、dropout值、學(xué)習(xí)率以及模型名稱訓(xùn)練新聞事件檢測模型,訓(xùn)練完成在顯示區(qū)域顯示模型的性能。如圖5所示。
5.3.2 新聞事件檢測與分析
此模塊是對事件建模模塊模型的應(yīng)用,用戶根據(jù)自定義訓(xùn)練的新聞事件檢測模型,選取要檢測的新聞文本輸入到系統(tǒng)中,系統(tǒng)調(diào)用新聞事件檢策模型依次檢測新聞文本,給出新聞事件的主題。對于模型檢測出的新事件類型,系統(tǒng)提供了基于TF-IDF+kmeans[13]的方法提取新事件的主題并由用戶確定,最后加入到模型數(shù)據(jù)中對模型進(jìn)行增量訓(xùn)練不斷擴(kuò)充模型。如圖6所示。
圖6 新聞事件檢測與分析
本文介紹了新聞文本預(yù)處理及量化表示方法,提出了基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型,并基于上述模型開發(fā)構(gòu)建了一套事件建模應(yīng)用系統(tǒng)。實(shí)驗(yàn)證明基于注意力機(jī)制的雙向長短記憶網(wǎng)絡(luò)的新聞事件檢測模型要優(yōu)于傳統(tǒng)的事件檢測方法,在各方面均表現(xiàn)出良好的性能,構(gòu)建的事件建模應(yīng)用系統(tǒng)方便,便捷于用戶的使用。因此本文構(gòu)建的模型和系統(tǒng)高效且實(shí)用。