趙國清,何佳洲,喬 慧,李永盛,王景石
(江蘇自動(dòng)化研究所,江蘇 連云港 222061)
隨著信息技術(shù)的發(fā)展與普及,互聯(lián)網(wǎng)、媒體、社交軟件等公開信息源的信息量變得極其龐大與繁雜,其中蘊(yùn)含了大量有價(jià)值的信息,是任何信息系統(tǒng)都不可忽視的領(lǐng)域。開源情報(bào)工作能從這些公開信息中挖掘出有價(jià)值的信息,以彌補(bǔ)傳統(tǒng)秘密情報(bào)的不足,是現(xiàn)代情報(bào)系統(tǒng)的重要組成部分,也是近十多年來引起廣泛關(guān)注的情報(bào)課題[1]。
開源數(shù)據(jù)形式多樣,有圖像、視頻、文本等形式,而其中以文本數(shù)據(jù)最為海量,挖掘情報(bào)的潛力也最大。但這些文本數(shù)據(jù)以半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)為主,信息處理慣用的數(shù)據(jù)挖掘技術(shù)在文本信息的抽取上受到掣肘,表現(xiàn)不佳。因此,一種能夠低成本、自動(dòng)化地從這些異構(gòu)多元的文本數(shù)據(jù)中抽取出有價(jià)值信息的方法,是開源情報(bào)處理的關(guān)鍵。
本文針對(duì)開源文本數(shù)據(jù)異質(zhì)多元、結(jié)構(gòu)松散等問題,提出了一種開源文本信息的自動(dòng)化處理方法,利用遠(yuǎn)程監(jiān)督方法自動(dòng)標(biāo)注訓(xùn)練數(shù)據(jù),降低人工標(biāo)注成本,同時(shí)利用神經(jīng)網(wǎng)絡(luò)從文本中抽取有價(jià)值的情報(bào)信息。最后,在中文人物關(guān)系自動(dòng)標(biāo)注數(shù)據(jù)集上對(duì)算法進(jìn)行了驗(yàn)證,結(jié)果抽取性能相較于基線模型有顯著提升。
早期的開源情報(bào)處理研究大多局限于情報(bào)管理與操作典范,如北約組織出版的開源情報(bào)操作手冊(cè)[2],對(duì)具體的開源情報(bào)處理與分析方法并未深入研究。隨著信息技術(shù)的發(fā)展與普及,能夠在互聯(lián)網(wǎng)上獲取的情報(bào)信息愈加豐富,對(duì)開源情報(bào)自動(dòng)化處理技術(shù)的研究開始受到關(guān)注。
其中的典型工作有:張恒[3]從現(xiàn)代科技情報(bào)工作的理解和需求出發(fā),結(jié)合大數(shù)據(jù)挖掘技術(shù),提出了面向大數(shù)據(jù)的開源情報(bào)處理分析框架;董尹等[4]運(yùn)用英、美等發(fā)達(dá)國家的情報(bào)案例分析,精煉得到了以7個(gè)核心范疇為支撐的公開源情報(bào)理論模型;胡望洋等[5]結(jié)合自組織映射方法,利用主題偵測(cè)和特定事件偵測(cè)來自動(dòng)化地挖掘目標(biāo)開源文本情報(bào),取得了不錯(cuò)的效果。
實(shí)體關(guān)系抽取主要是從文本中抽取出實(shí)體1和實(shí)體2之間的關(guān)系類型,以三元組形式組織存儲(chǔ)。現(xiàn)在主流的抽取方法為基于深度學(xué)習(xí)的有監(jiān)督關(guān)系抽取,其抽取的準(zhǔn)確率、召回率高,但需要高質(zhì)量的人工標(biāo)注訓(xùn)練材料,成本高昂。而基于遠(yuǎn)程監(jiān)督學(xué)習(xí)的關(guān)系抽取技術(shù),在有監(jiān)督關(guān)系抽取方法的基礎(chǔ)上,通過對(duì)齊到現(xiàn)有的遠(yuǎn)程知識(shí)庫來自動(dòng)標(biāo)注訓(xùn)練集,在保證抽取性能的同時(shí)極大地降低了標(biāo)注成本,很適合用來對(duì)開源情報(bào)信息進(jìn)行抽取[6]。
其中經(jīng)典的方法有:Zeng等[7]首先將深度學(xué)習(xí)模型用于遠(yuǎn)程監(jiān)督關(guān)系抽取,提出了PCNN-MIL模型,使用分段池化策略與多實(shí)例學(xué)習(xí)方法進(jìn)行關(guān)系抽取,效果遠(yuǎn)超傳統(tǒng)模型;Lin等[8]在Zeng等的基礎(chǔ)上提出了PCNN-ATT模型,引入注意力機(jī)制對(duì)句袋中的每個(gè)句子分配動(dòng)態(tài)權(quán)重,加權(quán)求和得到句袋向量表示用于分類;Ji等[9]在此基礎(chǔ)上引入實(shí)體描述信息,為注意力模塊學(xué)習(xí)到更好地實(shí)體表示,有效提高了關(guān)系抽取的性能。這些深度學(xué)習(xí)方法的提出極大地提升了遠(yuǎn)程監(jiān)督關(guān)系抽取的性能,但抽取性能仍受限于錯(cuò)誤標(biāo)注問題,還有很大提升空間,且對(duì)長(zhǎng)句子的學(xué)習(xí)抽取效果很差。
開源文本情報(bào)多是從網(wǎng)頁、社交平臺(tái)等公開信息源通過工具直接爬取獲得,其結(jié)構(gòu)松散,以半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)為主,這給開源情報(bào)的自動(dòng)化處理帶來了很大困難。本文所研究的基于遠(yuǎn)程監(jiān)督關(guān)系抽取的開源情報(bào)自動(dòng)化處理技術(shù)主要框架如圖1所示。首先對(duì)獲得的原始文本數(shù)據(jù)進(jìn)行預(yù)處理,再通過遠(yuǎn)程監(jiān)督關(guān)系抽取器來抽取其中的實(shí)體關(guān)系對(duì),最后以三元組形式輸出并存儲(chǔ)。
圖1 開源情報(bào)自動(dòng)化處理框架
使用網(wǎng)頁爬蟲等信息搜集工具從公開信息源獲得的文件格式多樣、大小不一,因此要先通過數(shù)據(jù)清洗從中萃取出純文本數(shù)據(jù),并存儲(chǔ)為統(tǒng)一的文本格式。針對(duì)信息來源的特點(diǎn)對(duì)獲取的文本進(jìn)行特殊字符過濾,刪除無效字元,并去除文本標(biāo)簽,如網(wǎng)頁文本信息的HTML標(biāo)簽,社交平臺(tái)文本信息的多媒體對(duì)象信息等。
數(shù)據(jù)篩選是刪除經(jīng)數(shù)據(jù)清洗后容量小于二十字節(jié)的文件,以及格式未知、無法正常打開的無效文件。然后,對(duì)獲得的句子按標(biāo)識(shí)符進(jìn)行分句處理,對(duì)超長(zhǎng)句子進(jìn)行拆分,加入分句標(biāo)識(shí),使用正則化方式剔除句子中的空格與特殊字符,同時(shí)去除重復(fù)句子,最后以純文本格式保存。
傳統(tǒng)的關(guān)系抽取方法通常采用人工標(biāo)注語料的方法獲得訓(xùn)練數(shù)據(jù),而開源文本數(shù)據(jù)信息量大、來源復(fù)雜,語料標(biāo)注的人工成本和時(shí)間代價(jià)過于昂貴。因此,本文利用外部開源數(shù)據(jù)庫來和材料進(jìn)行實(shí)體對(duì)匹配,賦予句子遠(yuǎn)程監(jiān)督標(biāo)簽,從而自動(dòng)地獲取訓(xùn)練數(shù)據(jù),其主要流程如圖2所示。
圖2 遠(yuǎn)程監(jiān)督自動(dòng)生成訓(xùn)練數(shù)據(jù)流程
原始文本數(shù)據(jù)在經(jīng)過數(shù)據(jù)清洗、篩選、分句處理后,轉(zhuǎn)換成了一個(gè)純文字的句子集。對(duì)句子集中的所有句子,首先進(jìn)行文本序列標(biāo)注和命名實(shí)體識(shí)別,抽取出句子中的實(shí)體對(duì)。然后將句子集中有相同實(shí)體對(duì)的句子存儲(chǔ)為一個(gè)個(gè)句袋(Sentence Bag),將其與開源數(shù)據(jù)庫進(jìn)行實(shí)體對(duì)匹配,以對(duì)應(yīng)的開源數(shù)據(jù)庫中的實(shí)體關(guān)系對(duì)的關(guān)系標(biāo)簽作為句袋的遠(yuǎn)程監(jiān)督標(biāo)簽。最后將其中15%的句袋留存作為測(cè)試語料,其余的部分作為關(guān)系抽取模型的訓(xùn)練語料。
本文所用的開源數(shù)據(jù)庫的數(shù)據(jù)來源主要有兩方面:一是如Dbpedia[10]、NELL[11]、Freebase[12]之類的開放知識(shí)庫;二是百度百科、互動(dòng)百科、維基百科等百科網(wǎng)站的相關(guān)條目。這兩者上的數(shù)據(jù)都是易于獲取、結(jié)構(gòu)化良好、方便處理的,可以低成本地完成開源數(shù)據(jù)庫的構(gòu)建。
本文針對(duì)開源文本信息處理任務(wù)提出的關(guān)系抽取模型主要分成兩大部分:一是基于詞級(jí)注意力的BiGRU句子編碼器模型,如圖3所示,其將每個(gè)句子都化為向量表示,輸入雙向GRU網(wǎng)絡(luò)中學(xué)習(xí)其特征,經(jīng)過詞級(jí)注意力加權(quán)求和得到句子的向量表示[13];二是關(guān)系分類器,利用句子級(jí)別的注意力加權(quán)得到句袋的向量表示后,通過全連接的softmax層進(jìn)行關(guān)系分類。該模型采用了雙向GRU網(wǎng)絡(luò)學(xué)習(xí)句子的上下文語義信息,同時(shí)采用詞級(jí)和句級(jí)注意力機(jī)制降低了無關(guān)詞匯與無關(guān)句子的影響,提升了關(guān)系抽取的性能。
圖3 基于詞級(jí)注意力的BiGRU句子編碼器
2.3.1 句子編碼器
1)向量化層
為了能使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)句子的語義信息,需要先將句子中的詞匯進(jìn)行向量化處理。對(duì)于句子s={w1,w2,…,wn},需要將其中每一個(gè)詞wi映射到向量空間中,轉(zhuǎn)換為低維向量xiw:
xiw=Wv·vi
(1)
其中,xiw∈Rdw,vi∈R|V|為詞wi的one-hot編碼表示,Wv∈Rdw×|V|是用word2vec工具訓(xùn)練得到的轉(zhuǎn)換矩陣,dw為指定的詞向量維度,|V|表示字典的大小。
此外,為了能更準(zhǔn)確描述句子含義,還需要充分利用句子的結(jié)構(gòu)信息。取詞wi到兩實(shí)體e1、e2的相對(duì)距離映射到向量空間,得到位置向量xip1,xip2∈Rdp,其中dp為指定的位置向量維度。將xiw與xip1,xip2拼接得到詞的完整向量化表示xi,其維度為d=dw+2*dp。
2)BiGRU層
循環(huán)神經(jīng)網(wǎng)絡(luò)自問世以來,就以其記憶歷史信息的特性和出色的序列數(shù)據(jù)處理能力備受關(guān)注,被廣泛應(yīng)用在自然語言處理的多個(gè)任務(wù)中。GRU(Gate Recurrent Unit)是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,由Cho等[14]在長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)[15]基礎(chǔ)上改進(jìn)而來,對(duì)長(zhǎng)句子的抽取效果相比于卷積神經(jīng)網(wǎng)絡(luò)有很大提升。GRU單元結(jié)構(gòu)示意圖如圖4所示,其與LSTM相同采用了門控的機(jī)制對(duì)歷史信息有選擇地記憶、遺忘,以此來解決長(zhǎng)期記憶和反向傳播中的梯度消失等問題。
不同的是,相比于LSTM引入細(xì)胞狀態(tài)、采用三個(gè)門控來分別控制遺忘、選擇記憶和輸出,GRU僅用重置門和更新門便實(shí)現(xiàn)了相當(dāng)?shù)墓δ?,結(jié)構(gòu)更加簡(jiǎn)單,參數(shù)量更少,更便于計(jì)算和訓(xùn)練。
圖4 GRU單元結(jié)構(gòu)示意圖
GRU對(duì)輸入和歷史信息的處理可分為兩個(gè)階段,其中重置階段有:
rt=σ(Wr·[ht-1,xt])
(2)
(3)
zt=σ(Wz·[ht-1,xt])
(4)
(5)
其中,zt表示重置門控,Wz為參數(shù)矩陣,ht為當(dāng)前時(shí)刻隱藏狀態(tài)。其中,門控信號(hào)zt越接近1,代表“記憶”下來的信息越多,反之zt越接近0則表示“遺忘”的信息越多。
此外,GRU對(duì)輸入序列的處理是單向的,這意味著在處理句子時(shí)后面的詞只能受到上文的影響,破壞了語境的連貫性。因此,本文采用了雙向GRU網(wǎng)絡(luò),將文字序列按照正反兩個(gè)方向分別輸入模型中計(jì)算,再將它們的隱藏狀態(tài)結(jié)合起來進(jìn)行輸出,以利用句子的上下文信息。
3)詞級(jí)注意力層
M=tanh (W0·H)
(6)
C=softmax(W1·M+b1)
(7)
2.3.2 關(guān)系分類器
本文提出的遠(yuǎn)程監(jiān)督關(guān)系抽取模型是通過實(shí)體對(duì)將語料劃分為一個(gè)個(gè)句袋,將句袋視為有標(biāo)簽的實(shí)例,然后在此基礎(chǔ)上進(jìn)行學(xué)習(xí)訓(xùn)練的抽取方法。為此,需要將句袋進(jìn)行實(shí)例化,即提取出句袋向量化表示,將句袋中的所有句子整合為一個(gè)向量,再用于關(guān)系的分類。
(8)
δk=softmax(sk·A·r)
(9)
其中,δk為句子sk的注意力權(quán)重,A為中間矩陣,r為關(guān)系r的向量表示。
(10)
2.3.3 模型訓(xùn)練及優(yōu)化
本文采用交叉熵?fù)p失函數(shù)作為訓(xùn)練目標(biāo)函數(shù),其定義為
(11)
本文基于pytorch實(shí)現(xiàn)了開源文本關(guān)系抽取模型,并利用Adam優(yōu)化算法來學(xué)習(xí)參數(shù)θ。同時(shí),還在BiGRU層和全連接層使用了dropout方法,以一定概率將節(jié)點(diǎn)或輸入拋棄掉,以避免模型過擬合。
本文通過上述的開源情報(bào)自動(dòng)處理框架收集了開源情報(bào)最關(guān)心領(lǐng)域之一的人物關(guān)系方面的信息,構(gòu)建了中文人物關(guān)系數(shù)據(jù)集,并結(jié)合中文維基百科語料進(jìn)行word2vec詞向量訓(xùn)練,在此基礎(chǔ)上進(jìn)行了模型驗(yàn)證。該數(shù)據(jù)集抓取了百度百科和互動(dòng)百科上的人物關(guān)系詞條與描述,共記錄了31 739條人物關(guān)系,獲得了25 877條自動(dòng)標(biāo)注句子,形成了11 023個(gè)句袋。
本文采用與文獻(xiàn)[9]相同的held-out法對(duì)模型抽取性能進(jìn)行評(píng)估,主要評(píng)價(jià)指標(biāo)有抽取的準(zhǔn)確率和準(zhǔn)確率-召回率曲線(PR曲線)的面積。其中,準(zhǔn)確率為被檢測(cè)出有關(guān)系的句子分類正確的比例,召回率為含有關(guān)系的句子被正確檢測(cè)出的比例。
模型訓(xùn)練時(shí)的超參數(shù)有:學(xué)習(xí)率lr={0.01,0.006,0.003,0.001}, GRU隱藏層尺寸hs={100,150,200,250},GRU網(wǎng)絡(luò)層數(shù)n={1,2,3},批大小bs={64,128,256}。經(jīng)格狀搜索后確定參數(shù)為:lr=0.006,hs=200,n=2,bs=256,另取詞向量維度dw為50,位置向量維度dp為5,dropout概率為0.5。
實(shí)驗(yàn)結(jié)果如圖5所示,本文選取了經(jīng)典的PCNN-MIL關(guān)系抽取模型與PCNN-ATT關(guān)系抽取模型作為基線模型對(duì)照,從PR曲線的面積可以看出,本文提出的BiGRU模型的抽取性能較兩者有顯著提升。此外,遠(yuǎn)程監(jiān)督關(guān)系抽取往往是取前N項(xiàng)作為輸出,從圖5中可以看出,在召回率25%以下時(shí),BiGRU模型的準(zhǔn)確率都能達(dá)到80%以上,能較好地支持對(duì)開源文本信息的處理分析。
圖5 各模型PR曲線
本文針對(duì)半結(jié)構(gòu)化、非結(jié)構(gòu)化開源文本信息處理問題,提出了一種基于遠(yuǎn)程監(jiān)督關(guān)系抽取的開源文本自動(dòng)化處理框架。通過與遠(yuǎn)程知識(shí)庫進(jìn)行實(shí)體對(duì)齊,賦予了句袋遠(yuǎn)程監(jiān)督標(biāo)簽,自動(dòng)生成訓(xùn)練數(shù)據(jù),極大降低了人工成本。
本文利用雙向GRU網(wǎng)絡(luò)對(duì)句子進(jìn)行編碼,使用詞級(jí)注意力機(jī)制和句子級(jí)別注意力機(jī)制降低訓(xùn)練數(shù)據(jù)中噪聲的影響,并在中文人物關(guān)系自動(dòng)標(biāo)注數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)驗(yàn)證。結(jié)果表明模型抽取性能相較于基線模型有顯著提升,初步驗(yàn)證了模型的有效性,滿足了開源情報(bào)文本信息自動(dòng)化處理的需求。本文計(jì)劃在未來研究遠(yuǎn)程監(jiān)督實(shí)體匹配策略,在源頭排除其中的干擾三元組,從而提升自動(dòng)生成的訓(xùn)練數(shù)據(jù)的質(zhì)量。