曹衛(wèi)東,徐秀麗
(中國民航大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300)
隨著國民經(jīng)濟(jì)的迅猛發(fā)展,越來越多的公眾選擇乘坐飛機(jī)出行,但隨之而來的是旅客的各種不文明行為增多,如機(jī)上接打電話、擅自打開應(yīng)急艙門、破壞安檢設(shè)施設(shè)備、在客艙中毆打他人、在停機(jī)坪擾亂機(jī)場公共秩序等,嚴(yán)重擾亂了民航秩序,妨礙安全出行。 因此,有必要對民航不文明旅客加以識別。
目前,在識別方法方面,國內(nèi)外學(xué)者進(jìn)行了大量研究。 命名實(shí)體識別(NER,namely entity recognition)[1]是自然語言處理的一項(xiàng)基本任務(wù),主要是從文本中尋找實(shí)體,并標(biāo)記實(shí)體的位置和類別。Bikel 等[2]最早提出了基于隱馬爾可夫模型(HMM,hidden Markov model)的英文命名實(shí)體識別方法;Liao 等[3]提出了基于條件隨機(jī)場(CRF,conditional random field)模型,采用半監(jiān)督的學(xué)習(xí)算法進(jìn)行命名實(shí)體識別;Ratinov 等[4]采用未標(biāo)注文本訓(xùn)練詞類模型(word class model)的方法,可有效地提高NER 系統(tǒng)的識別效率。中文命名實(shí)體識別也獲得了廣泛關(guān)注。Zong 等[5]提出基于模板的中文人名消歧混合模型;Tian 等[6]提出基于屬性特征的自適應(yīng)聚類的中文名消歧模型。近年來還出現(xiàn)了大量基于神經(jīng)網(wǎng)絡(luò)[7]的模型,并取得良好效果。Zhang 等[8]提出了一種使用格子長短時記憶網(wǎng)絡(luò)(LSTM,long short-term memory)的中文命名實(shí)體識別的最新模型。
目前,針對民航不文明旅客實(shí)體識別的相關(guān)研究較為少見,為解決在一條民航旅客文本記錄語句中包含多個實(shí)體識別的問題,通過深度學(xué)習(xí)方法對民航不文明旅客數(shù)據(jù)進(jìn)行實(shí)體識別,使用BIOES 方法對文本進(jìn)行標(biāo)記,與詞嵌入、位置嵌入串聯(lián)后作為輸入,通過前向和后向LSTM 學(xué)習(xí)上下文信息,使用條件隨機(jī)場模型作為模型的解碼層,在輸入層、雙向長短時記憶網(wǎng)絡(luò)層(Bi-LSTM,bi-directional long short-term memory)添加dropout 層有效防止網(wǎng)絡(luò)過擬合,該模型能夠更高效地識別民航不文明旅客中的8 種實(shí)體類型。
Yedda 是由新加坡科技大學(xué)Yang 等[9]在2018年開發(fā),用于文本(幾乎所有語言,包括英語、中文)、符號甚至表情符號等注釋的輕量級、高效且全面的開源文本標(biāo)注工具,可為文本范圍注釋提供系統(tǒng)的解決方案,應(yīng)用范圍從協(xié)作用戶注釋到管理員評估和分析。通過命令行和快捷鍵對實(shí)體進(jìn)行注釋,從而克服了傳統(tǒng)文本注釋工具的低效問題。該工具可以批量注釋多個實(shí)體,并支持將帶注釋的文本導(dǎo)出為序列文本。Yedda 還通過學(xué)習(xí)最新的帶注釋文本來提供明智的建議,此外,更新版本還包括智能推薦和管理員分析,與所有主流操作系統(tǒng)兼容。 與現(xiàn)有的標(biāo)注工具相比,可將標(biāo)注時間減少一半。 Yedda 框架如圖1 所示。
圖1 Yedda 框架Fig.1 Yedda framework
玻森(Boson)命名實(shí)體采用UTF-8 編碼進(jìn)行標(biāo)注,每行為一個段落標(biāo)注。所有的實(shí)體標(biāo)注格式為{實(shí)體類型:實(shí)體文本}。Boson 語料中數(shù)據(jù)如{Name:喬振}{Flight:南航CZ6262}{Time:2016年2月3日}。 Boson標(biāo)注的民航旅客信息中的8 類實(shí)體如表1 所示。
表1 民航旅客信息Boson 實(shí)體類別Tab.1 Boson entity category of civil aviation passenger information
中文命名實(shí)體識別通常是基于字標(biāo)注的中文分詞。 基于字的標(biāo)注一般有3 種方法,BIO 標(biāo)記方法(標(biāo)識實(shí)體的開始、中間部分和非實(shí)體部分),BIOS 標(biāo)記方法(增加S 單個實(shí)體情況的標(biāo)注),BIOES 標(biāo)記方法(增加E 實(shí)體的結(jié)束標(biāo)識),標(biāo)注類型含義說明如表2 所示。由于BIOES 方法明顯優(yōu)于BIO 方法[10],因此,將NER看作是一個順序標(biāo)注問題,并采用BIOES 標(biāo)記方式。
表2 標(biāo)注類型說明Tab.2 Description of label type
根據(jù)民航不文明旅客信息的特征,將其劃分為8種實(shí)體類型,數(shù)據(jù)文本通過Yedda 工具處理后輸出的字向量表示如表3 所示。
表3 民航不文明旅客實(shí)體標(biāo)注Tab.3 Entity labeling of civil aviation unruly passengers
對于語句“2016年2月3日,喬振乘坐南航CZ6262次航班,在飛機(jī)下降階段,未聽從乘務(wù)員的連續(xù)勸阻繼續(xù)使用平板電腦,當(dāng)班安全員報告機(jī)長,通知哈爾濱太平國際機(jī)場公安機(jī)關(guān)處理,飛機(jī)落地后警方登機(jī)處置,對該違法旅客做出行政罰款200 元處理。該名旅客被列入民航旅客不文明行為記錄名單,記錄期限為一年”。標(biāo)注后的具體數(shù)據(jù)集格式如下:{B-Time, ITime, I-Time, I-Time, I-Time, I-Time, I-Time, ITime,E-Time,O,B-Name,E-Name,O,O,B-Flight,I-Flight,I-Flight,I-Flight,I-Flight,I-Flight,I-Flight,E-Flight,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,B-Reason,IReason,I-Reason,E-Reason,O,O,O,O,O,O,O,O, O, O, O, O, O, O, O, B-Airport, I-Airport, IAirport,I-Airport,E-Airport,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O, O, O, O, O, O, B-Fine, I-Fine, I-Fine, I-Fine,I-Fine,E-Fine,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,B-Deadline,E-Deadline,O}。
構(gòu)建的Tag+Bi-LSTM+CRF 模型如圖2 所示。 模型分為4 個部分:輸入嵌入層,Bi-LSTM 層,線性CRF層和輸出層。 民航不文明旅客實(shí)體識別的過程如圖3所示。
圖2 Tag+Bi-LSTM+CRF 模型Fig.2 Tag+Bi-LSTM+CRF model
圖3 民航不文明旅客的實(shí)體識別過程Fig.3 The entity recognition process of civil aviation unruly passengers
在實(shí)體識別過程中,第一個任務(wù)是創(chuàng)建手動注釋的訓(xùn)練數(shù)據(jù)集來訓(xùn)練模型,在一條民航旅客文本記錄語句中包含多實(shí)體識別,使用Yedda 工具處理可獲得文本的BIOES 嵌入,與詞嵌入、位置嵌入串聯(lián)后構(gòu)成的向量作為模型輸入,以豐富輸入表示。在輸入Bi-LSTM層前設(shè)置dropout 層,使得數(shù)據(jù)集更容易學(xué)習(xí)。Bi-LSTM層能夠有效地使用過去和將來的輸入信息自動提取上下文特征,輸出每一個標(biāo)簽的預(yù)測分值。 在命名實(shí)體識別中,Bi-LSTM 可以使用softmax 進(jìn)行標(biāo)記,由于softmax 分別標(biāo)記每個位置,可能會得到不合適的標(biāo)簽序列,因此模型使用線性CRF 層,使用句子級標(biāo)簽信息對每兩個不同標(biāo)簽的過度行為進(jìn)行建模。 Bi-LSTM層輸出的預(yù)測分?jǐn)?shù)經(jīng)過dropout 層隨機(jī)舍棄部分神經(jīng)元作為線性CRF 層的輸入,通過自學(xué)習(xí)為輸出預(yù)測的標(biāo)簽添加一些約束來保證預(yù)測標(biāo)簽是合法的。
詞嵌入對輸入句子中的每個字使用帶有隨機(jī)初始化的單詞嵌入,詞嵌入的維數(shù)為dw。
位置嵌入使用位置嵌入來編碼每個單詞與句子中兩個目標(biāo)實(shí)體之間的相對距離。 關(guān)于關(guān)系的更有用信息隱藏在離目標(biāo)實(shí)體較近的詞中,位置嵌入的維數(shù)為dp。
BIOES 嵌入輸入語句通常包含兩個以上的實(shí)體,利用BIOES 標(biāo)記方法標(biāo)記實(shí)體信息來豐富輸入表示。 對于輸入句中的每個單詞,用B、I、E 標(biāo)記實(shí)體的開始、中間和結(jié)束部分(如果單詞個數(shù)超過3 個字,則第一個字和最后一個字分別用B 和E 標(biāo)記,其余的字用I 標(biāo)記),S 表示單個實(shí)體,O 表示非實(shí)體的詞。BIOES 標(biāo)簽嵌入的維數(shù)為dt。
將每個字的3 個嵌入[11]連接在一起后,將一個句子轉(zhuǎn)換為矩陣X=[x1x2… xn]作為輸入表示,其中列向量xi∈Rdw+2dp+dt。
2.2.1 LSTM
LSTM[12]是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,recur rent neural network),可學(xué)習(xí)比簡單RNN 更長的依賴關(guān)系。 LSTM 在短期依賴和長期依賴任務(wù)上表現(xiàn)良好,因此,在處理序列數(shù)據(jù)時被廣泛使用。LSTM 在簡單RNN基礎(chǔ)上增加了3 個函數(shù),能夠記憶、更新和忘記內(nèi)存,很好地克服了漸變消失的問題。
LSTM 模型由當(dāng)前單元時刻t 的輸入向量xt,細(xì)胞狀態(tài)Ct,隱藏層狀態(tài)ht,遺忘門ft,記憶門it,輸出門ot組成。 LSTM 的計算過程如下。
式中:σ 和tanh 表示兩種不同的激活函數(shù);t 表示當(dāng)前單元時刻;t-1 表示上一層單元時刻;xt是輸入向量;Ct-1表示上一層的控制門單元,與ft相乘,決定什么樣的信息會被丟棄;it表示要保留下來的新信息;表示新數(shù)據(jù)形成的控制參數(shù),與it相乘,決定什么樣的數(shù)據(jù)會被保留;Ct表示控制門單元的更新, 可傳入到下一個階段;ht表示隱藏層的輸出結(jié)果,也是當(dāng)前層的預(yù)測結(jié)果;Wf、Wi、Wc、Wo分別表示遺忘門、 輸入門、 控制門、輸出門隱藏狀態(tài)的權(quán)重矩陣;bf、bi、bc、bo分別表示遺忘門、輸入門、控制門、輸出門的偏差矩陣。 圖4 為LSTM 單元的基本結(jié)構(gòu)。
圖4 LSTM 單元的基本結(jié)構(gòu)Fig.4 Basic structure of LSTM unit
2.2.2 Bi-LSTM
Bi-LSTM[13]的基本思想是每一個訓(xùn)練序列向前和向后分別是一個LSTM, 且這兩個LSTM 連接著同一個輸出層。這個結(jié)構(gòu)提供給線性CRF 層輸入序列中每一個點(diǎn)完整的上下文信息,并把輸出的隱狀態(tài)按位置拼接,得到完整的隱狀態(tài)序列,如圖5 所示,前向能夠獲得上文信息ht(1),后向能夠獲得下文信息ht(2),將前向和后向LSTM 結(jié)合就能得到上下文信息ht,即
圖5 Bi-LSTM 模型Fig.5 Bi-LSTM model
式中⊕表示向量的拼接。
條件隨機(jī)場[14]是在給定輸入的條件下求輸出變量的條件概率分布模型,能夠通過考慮相鄰標(biāo)簽的關(guān)系獲得一個全局最優(yōu)的標(biāo)記序列。線性CRF 層可以將序列標(biāo)注表述為一個分類問題,將其嵌入到Bi-LSTM 層中,對Bi-LSTM 輸出進(jìn)行處理,得到最優(yōu)的標(biāo)記序列。CRF 可以表示為
式中:h=(h1,h2,…,hn)為輸入觀測序列;n 為序列的長度;y=(y1,y2,…,yn)為對應(yīng)的預(yù)測輸出標(biāo)記序列或狀態(tài)序列,與觀測序列有相同的結(jié)構(gòu)。
為了計算概率估計,CRF 做了兩個假設(shè)。
假設(shè)1該分布為指數(shù)族分布,使得
式中:Z(h)是歸一化因子;f()可以看作打分函數(shù),將其取指數(shù)并歸一化后可得概率分布。
假設(shè)2概率輸出之間的關(guān)聯(lián)關(guān)系僅發(fā)生在相鄰位置,且關(guān)聯(lián)是指數(shù)可加的,則只需計算單標(biāo)簽打分函數(shù)k()以及相鄰標(biāo)簽對打分函數(shù)g(),將所有打分結(jié)果求和得到總分。 式(9)可簡化為
在線性CRF 中,又假設(shè)g()與h 無關(guān),則
使用最大似然方法對線性CRF 模型進(jìn)行訓(xùn)練,即
由于CRF 只考慮臨近標(biāo)簽的聯(lián)系,可以使得原來歸一化因子為指數(shù)級別的計算量降低為線性級別。 使用維特比(Viterbi)算法可以獲取CRF 中最優(yōu)的標(biāo)簽序列。
通過線性CRF 層后,模型在所有標(biāo)簽序列中選擇預(yù)測得分最高的標(biāo)簽序列作為實(shí)體識別的結(jié)果進(jìn)行輸出。
實(shí)驗(yàn)環(huán)境如下:操作系統(tǒng)為Windows 10,處理器為Inter(R)i7-9750H,內(nèi)存大小為16 GB,開發(fā)語言是Python 3.7,采用的深度學(xué)習(xí)框架為Pytorch,開發(fā)環(huán)境為Pycharm。
實(shí)驗(yàn)數(shù)據(jù)來源于信用中國、航協(xié)網(wǎng)的民航旅客隨機(jī)記錄文本,共收集了民航不文明旅客文本信息4.7萬條,每一條文本是一個民航不文明旅客的記錄,文件大小為15.1 MB,對其進(jìn)行標(biāo)注后,文件大小為42.3 MB。按照訓(xùn)練集、驗(yàn)證集、測試集7∶1∶2 的概率隨機(jī)分配,劃分后的數(shù)據(jù)集文件詳細(xì)統(tǒng)計信息如表4所示。
表4 數(shù)據(jù)集統(tǒng)計Tab.4 Statistics of datasets MB
采用精確率P(precision)、召回率R(recall)和F1值3 個標(biāo)準(zhǔn)作為評價指標(biāo)。 要計算評價指標(biāo),首先要構(gòu)建一個混淆矩陣,混淆矩陣也稱為誤差矩陣,以矩陣形式將數(shù)據(jù)集中的記錄按照真實(shí)的類別與分類模型預(yù)測的類別判斷匯總,如表5 所示。
表5 混淆矩陣Tab.5 Confusion matrix
混淆矩陣是對分類模型進(jìn)行性能評價的重要工具,根據(jù)混淆矩陣可計算P、R 和F1 值,計算公式為
矩陣中一些符號含義為:
(1)TP(true positive),將正類預(yù)測為正類數(shù),即預(yù)測為正例,實(shí)際上也為正例;
(2)FN(false negative),將正類預(yù)測為負(fù)類數(shù),即預(yù)測為反例,實(shí)際上為正例;
(3)FP(false positive),將負(fù)類預(yù)測為正類數(shù),即預(yù)測為正例,實(shí)際上為反例;
(4)TN(true negative),將負(fù)類預(yù)測為負(fù)類數(shù),即預(yù)測為反例,實(shí)際上也為反例。
模型使用Adam 優(yōu)化器,參數(shù)設(shè)置為:dw=200、dp=50,dt=50。 每批數(shù)據(jù)量的大小batch_size=8,學(xué)習(xí)率lr=0.005,LSTM 隱向量的維數(shù)hidden_size=64,dropout=0.5,迭代次數(shù)epochs=25。損失值與迭代次數(shù)的關(guān)系,如圖6 所示,其中:loss 表示訓(xùn)練集的損失值;val_loss 表示測試集的損失值。由圖6 可知,在迭代25 次左右時,損失收斂。
圖6 損失值-迭代次數(shù)曲線圖Fig.6 Loss-epoches graph
3.5.1 實(shí)體識別結(jié)果
在民航不文明旅客數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對旅客姓名、時間等8 類實(shí)體進(jìn)行識別,具體結(jié)果如表6 所示。
表6 實(shí)體識別結(jié)果Tab.6 Entity recognition results
由表6 中的實(shí)驗(yàn)結(jié)果可知:Tag+Bi-LSTM+CRF 模型的實(shí)體識別效果較好,其P、R、F1 均值都達(dá)到了96%以上。 對于單個實(shí)體,根據(jù)實(shí)體的復(fù)雜程度和訓(xùn)練集中的數(shù)量不同會有差異。同一個實(shí)體的B-、I-、E-識別結(jié)果不同是因?yàn)樵谝粋€實(shí)體中,可以包含多個中間的字。 由表6 可看出:①對于罰款金額、拘留時間和不文明期限實(shí)體的識別準(zhǔn)確率較高,基本能達(dá)到99%,原因可能是這幾個屬性的結(jié)果較為穩(wěn)定,且原始數(shù)據(jù)集里存在大量的包含這幾個屬性的重復(fù)句子,導(dǎo)致分割得到的測試集包含了一些訓(xùn)練集中的內(nèi)容;②相對而言,不文明行為實(shí)體的識別準(zhǔn)確率較低,其準(zhǔn)確率為79%左右,原因可能是旅客的不文明行為多種多樣,且沒有統(tǒng)一的行為描述詞;③姓名、航班、機(jī)場等實(shí)體的識別效果和平均識別效果差距不大。
3.5.2 對比實(shí)驗(yàn)
為了驗(yàn)證Tag+Bi-LSTM+CRF 模型對民航不文明旅客實(shí)體識別的有效性,將該模型與已有的經(jīng)典模型如HMM、CRF、雙向Bi-LSTM 進(jìn)行對比,對8 類實(shí)體識別的結(jié)果進(jìn)行綜合評估,實(shí)驗(yàn)結(jié)果如表7所示。
表7 實(shí)驗(yàn)結(jié)果對比Tab.7 Comparison of experimental results
從表7 可看出:Tag+Bi-LSTM+CRF 模型對民航不文明旅客實(shí)體識別表現(xiàn)出更好的總體性能,能夠識別出民航不文明旅客數(shù)據(jù)中的8 類實(shí)體,可以用在民航不文明旅客服務(wù)規(guī)則庫的命名實(shí)體識別上;HMM 模型的表現(xiàn)效果最差,可能原因?yàn)镠MM 只依賴于每一個狀態(tài)和其對應(yīng)的觀察對象,而實(shí)體識別問題不僅和單個詞相關(guān),而且和序列長度、單詞上下文都相關(guān);CRF模型和Bi-LSTM 模型的效果相當(dāng),但這兩個模型的性能依賴于數(shù)據(jù)規(guī)模的大小和應(yīng)用場景,在數(shù)據(jù)規(guī)模較小時,CRF 的實(shí)驗(yàn)效果要略優(yōu)于Bi-LSTM,當(dāng)數(shù)據(jù)規(guī)模較大時,Bi-LSTM 的效果會超過CRF,從場景來說,如果需要識別的任務(wù)不需要太依賴長久的信息,此時Bi-LSTM 等模型只會增加額外的復(fù)雜度。考慮到數(shù)據(jù)規(guī)模大、識別任務(wù)不需要太依賴長久的信息,結(jié)合了Bi-LSTM 和CRF,充分利用了模型的優(yōu)點(diǎn),實(shí)現(xiàn)了最佳性能。
3.5.3 網(wǎng)絡(luò)優(yōu)化器對實(shí)驗(yàn)結(jié)果的影響
網(wǎng)絡(luò)優(yōu)化器對實(shí)體識別的結(jié)果有很大影響,因此選用合適的優(yōu)化器是非常重要的。本實(shí)驗(yàn)通過對比不同的優(yōu)化器對實(shí)體識別效果的影響,選取了Adam、AdaGrad、SGD 進(jìn)行實(shí)驗(yàn),結(jié)果如圖7 所示。
由圖7 可知,當(dāng)選用Adam 優(yōu)化器時,命名實(shí)體識別的P、R 和F1 均達(dá)到最大值,而使用SGD 優(yōu)化器,各項(xiàng)性能指標(biāo)都最低。
圖7 網(wǎng)絡(luò)優(yōu)化器對實(shí)驗(yàn)結(jié)果的影響Fig.7 The influence of network optimizer on experimental results
3.5.4 dropout 對實(shí)驗(yàn)結(jié)果的影響
為增強(qiáng)模型的泛化能力,在Bi-LSTM 和CRF 層之間加入了dropout 層,不同的取值會影響模型的效果,如圖8 所示,當(dāng)dropout=0.5 時,模型的各項(xiàng)性能達(dá)到最優(yōu)。
圖8 Dropout 曲線Fig.8 Dropout curve
結(jié)合民航不文明旅客數(shù)據(jù)記錄每條數(shù)據(jù)包含多個實(shí)體的特點(diǎn),提出基于字的Tag + Bi-LSTM + CRF的實(shí)體識別模型。與經(jīng)典模型相比,該模型表現(xiàn)較好,對民航不文明旅客信息實(shí)體識別精確率、召回率與F1均高達(dá)96%以上,能有效獲取民航不文明旅客行為、等級、處罰、期限等信息。但由于旅客記錄數(shù)據(jù)有些屬性值相對簡單,且描述較為單一,其對應(yīng)屬性的F1 值較高,而描述相對復(fù)雜屬性的F1 值相對較低。 在未來的工作中需要繼續(xù)優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),采集更多不規(guī)則的民航不文明旅客數(shù)據(jù)集,提高模型訓(xùn)練性能。