張晗,胡永進(jìn),郭淵博,陳吉成
(1.信息工程大學(xué)密碼工程學(xué)院,河南 鄭州 450001;2.鄭州大學(xué)軟件學(xué)院,河南 鄭州 450000;3.信息工程大學(xué)信息技術(shù)研究所,河南 鄭州 450001)
實(shí)體的共指消解(CR,coreference resolution)旨在解決文檔中對(duì)實(shí)體的重復(fù)引用問題,是自然語(yǔ)言處理(NLP,natural language processing)研究的核心內(nèi)容[1]。它主要用于提高其他NLP 任務(wù)中諸如機(jī)器翻譯[2-4]、情感分析[5-7]、關(guān)系提取[8-10]以及摘要自動(dòng)生成[11-12]等任務(wù)的性能。目前,這項(xiàng)研究多集中在通用領(lǐng)域,主要原因在于:1)關(guān)于通用領(lǐng)域的共指消解技術(shù)有豐富的研究經(jīng)驗(yàn)[13-25];2)通用領(lǐng)域內(nèi)的標(biāo)注語(yǔ)料充足,例如自動(dòng)內(nèi)容抽?。ˋCE,automatic content extraction)語(yǔ)料庫(kù)[26]、CoNLL-2012[27]、Parcor 語(yǔ)料庫(kù)[28]等。而關(guān)于此項(xiàng)工作在信息安全領(lǐng)域的研究,目前并未找到相關(guān)的研究文獻(xiàn)。
但是,這并不意味著在信息安全領(lǐng)域內(nèi)不需要此項(xiàng)工作。例如“As the world’s first cyber ‘super destructive weapon’,Stuxnet has infected more than 45 000 networks around the world.Computer security experts believe the virus is the highest level ‘worm’ever.The new virus uses a variety of advanced technologies,so it is extremely stealthy and destructive.”,在這句話中,“Stuxnet”“the virus”“the new virus”和“it”代表的都是同一個(gè)實(shí)體“Stunxnet”。通過共指消解,可以獲得“Stunxnet”與“the highest level worm”之間是“is-a”的關(guān)系,這將提高從文本中提取實(shí)體屬性關(guān)系的準(zhǔn)確性,從而使信息安全領(lǐng)域內(nèi)知識(shí)圖譜更加完善,而知識(shí)圖譜的完善也會(huì)使其對(duì)威脅的預(yù)警更加精確。
常用的共指消解技術(shù)有3 種:第一種是基于規(guī)則的方法[13-16],第二種是基于統(tǒng)計(jì)的方法[17-20],第三種是基于深度學(xué)習(xí)的方法[21-25]。其中,第一種方法依賴于手工定制的規(guī)則,覆蓋面較窄,靈活性較差,不能很好地處理豐富的詞匯信息;第二種方法雖然可以處理豐富的詞匯特征,但是有學(xué)者認(rèn)為從準(zhǔn)確性上第二種方法的表現(xiàn)弱于第一種方法[29];第三種方法更適用于包含大規(guī)模標(biāo)注數(shù)據(jù)的領(lǐng)域,而信息安全領(lǐng)域缺乏大規(guī)模的可用于共指消解的標(biāo)注數(shù)據(jù),因此該方法并不適用于信息安全領(lǐng)域。文獻(xiàn)[19]采用將規(guī)則與統(tǒng)計(jì)相結(jié)合的方法來(lái)解決共指消解的問題,雖然該文獻(xiàn)提出的方法在通用領(lǐng)域達(dá)到了比較理想的效果,但是信息安全領(lǐng)域由于其特殊性與通用實(shí)體共指消解有所不同,歸納如下。
1)處理實(shí)體類型不同,所以提取候選詞的詞類不同。在通用領(lǐng)域內(nèi),進(jìn)行提取和消解的實(shí)體類型為人名、地名、組織名等;信息安全領(lǐng)域內(nèi)的實(shí)體類型多與“產(chǎn)品”“漏洞”“攻擊”相關(guān),因此實(shí)體的組合形式通常是以短語(yǔ)的形式出現(xiàn),例如“Advanced Persistent Threat”。而且,這些實(shí)體通常為物體,文本中經(jīng)常會(huì)出現(xiàn)類似于“damage of the virus”形式的短語(yǔ),其中的“the virus”也是需要提取的待消解詞,因此對(duì)于信息安全領(lǐng)域中的文本,待提取詞除了簡(jiǎn)單的名詞、代詞、專有名詞之外,還包括名詞短語(yǔ)以及一些名詞短語(yǔ)中包含的嵌套短語(yǔ)。
2)待提取的詞類不同,所以提取方法不同。例如,文獻(xiàn)[19]中提取的候選詞包括文本中所有的普通名詞、專有名詞以及代詞,提取時(shí)用到的是諸如同位語(yǔ)、謂語(yǔ)主格以及角色同位語(yǔ)之類的句法模式。而對(duì)于信息安全領(lǐng)域中的文本來(lái)說(shuō),根據(jù)句法模式提取出的候選詞并不能滿足需要,因此要用到的提取方法也與文獻(xiàn)[19]不同。
3)對(duì)待消解詞進(jìn)行消解時(shí)用到的特征不同。例如,在通用領(lǐng)域?qū)?shí)體類型“人名”進(jìn)行消解時(shí),可以將性別作為一個(gè)重要特征進(jìn)行考量;而信息安全領(lǐng)域的實(shí)體類型多為第三人稱形式表示,沒有性別特征。
4)相較于通用領(lǐng)域,信息安全領(lǐng)域文本中含有大量的術(shù)語(yǔ)和專有名詞以及縮寫。雖然通用領(lǐng)域中也有一些關(guān)于國(guó)家或者地名的縮寫,但是文獻(xiàn)[19]以O(shè)ntoNotes[30]作為參考并沒有對(duì)此類縮寫進(jìn)行專門處理。
針對(duì)以上問題,本文提出了一種混合的方法來(lái)解決信息安全領(lǐng)域內(nèi)的共指消解問題。本文工作主要分為2 個(gè)部分:1)從給定文檔中提取出所有的候選詞語(yǔ)(包括名詞性短語(yǔ)、代詞、實(shí)體以及嵌套短語(yǔ))并進(jìn)行分類;2)對(duì)待消解項(xiàng)進(jìn)行共指消解。本文研究團(tuán)隊(duì)在之前的工作中[31],提出了一種BiLSTM+attention+CRF 模型來(lái)進(jìn)行文檔中的命名實(shí)體識(shí)別,解決了文檔中存在的同一實(shí)體標(biāo)注不一致的問題,例如Advanced Persistent Threat 和APT。該模型是在經(jīng)典BiLSTM-CRF 模型的基礎(chǔ)上加入Attention 機(jī)制來(lái)關(guān)注當(dāng)前實(shí)體與文檔中其他所有單詞的相關(guān)性,得到該單詞在文檔層面的特征表示,再進(jìn)行實(shí)體的抽取和分類。但是通過實(shí)驗(yàn)發(fā)現(xiàn),該模型對(duì)訓(xùn)練集中沒有出現(xiàn)過的稀有實(shí)體以及長(zhǎng)度較長(zhǎng)的實(shí)體識(shí)別能力稍弱,因此本文對(duì)該模型進(jìn)行了改進(jìn),提出了一種改進(jìn)之后的模型BiLSTM+dic_attention+CRF。該模型引入了領(lǐng)域詞典匹配機(jī)制,將其與文檔層面的注意力機(jī)制相結(jié)合,作為一種新的基于字典的注意力機(jī)制來(lái)計(jì)算單詞特征。此外,由于要提取的候選詞除了實(shí)體之外還包括一些名詞性短語(yǔ)、代詞以及嵌套短語(yǔ)。如果只使用BiLSTM+dic_attention+CRF 模型來(lái)提取名詞性短語(yǔ)和嵌套短語(yǔ),需要浪費(fèi)大量的人力物力來(lái)標(biāo)注數(shù)據(jù),而名詞短語(yǔ)和嵌套短語(yǔ)具有一定的語(yǔ)法規(guī)則可以進(jìn)行歸納總結(jié),因此,本文采用規(guī)則+BiLSTM+dic_attention+CRF 模型的方式來(lái)進(jìn)行候選詞的抽取和分類。本文所做貢獻(xiàn)如下。
1)提出一種將規(guī)則與深度學(xué)習(xí)模型(BiLSTM+dic_attention+CRF)相結(jié)合的方法來(lái)解決信息安全領(lǐng)域內(nèi)從文本中提取候選詞及分類的問題。
2)提出一種將規(guī)則與機(jī)器學(xué)習(xí)相結(jié)合的混合型方法來(lái)解決信息安全領(lǐng)域內(nèi)的共指消解問題。
與現(xiàn)有方法相比,本文所提出的方法在信息安全領(lǐng)域的數(shù)據(jù)集上達(dá)到了更好的性能。
關(guān)于共指消解的研究由來(lái)已久,早期主要集中在基于規(guī)則的方法,包括基于語(yǔ)法的Hobbs 理論[13]、基于對(duì)話的Centering 理論[14]和基于語(yǔ)法的RAP 算法[15]。在21 世紀(jì)早期,一部分學(xué)者認(rèn)為這種基于規(guī)則的方法在表現(xiàn)性能上要優(yōu)于機(jī)器學(xué)習(xí)的方法[29],但是,基于規(guī)則的方法的缺點(diǎn)也非常明顯,它過于依賴人們手工制定規(guī)則的能力,規(guī)則制定的好壞將直接影響方法的性能,并且基于規(guī)則的方法靈活性較差,耗費(fèi)人力過多。共指消解中關(guān)于機(jī)器學(xué)習(xí)的研究主要集中在訓(xùn)練分類器[1],其中決策樹和隨機(jī)森林是最常用的分類器[17-19]。文獻(xiàn)[19]提出了一種將規(guī)則與統(tǒng)計(jì)分類器相結(jié)合的方法來(lái)進(jìn)行共指消解,該方法針對(duì)每一種要進(jìn)行共指消解的類型都訓(xùn)練了一個(gè)統(tǒng)計(jì)分類器,通過實(shí)驗(yàn)不僅證明了這種混合型方法優(yōu)于基于規(guī)則的共指消解方法,還證明了隨機(jī)森林作為共指消解分類器的優(yōu)越性。但是該方法僅針對(duì)通用領(lǐng)域內(nèi)的共指消解,因此在選擇特征時(shí)也是根據(jù)通用領(lǐng)域內(nèi)的文本數(shù)據(jù)進(jìn)行選擇的。隨著深度學(xué)習(xí)模型在自然語(yǔ)言處理領(lǐng)域的應(yīng)用,它們也逐漸被應(yīng)用于共指消解任務(wù)[21-25]。文獻(xiàn)[21]提出了第一個(gè)關(guān)于共指消解的深度學(xué)習(xí)模型,它通過對(duì)2 個(gè)單獨(dú)的子任務(wù)(回指檢測(cè)和先行詞排序)進(jìn)行預(yù)訓(xùn)練,以學(xué)習(xí)不同的特征表示。該模型也證明了從實(shí)體類群中獲取全局特征有利于提高共指消解的性能,但該文獻(xiàn)的前提是實(shí)體類群是已經(jīng)事先分類完成的,而本文的工作是首先從文本中提取相關(guān)的候選詞,因此本文將文獻(xiàn)[21]中的實(shí)體類群中的全局特征轉(zhuǎn)換成了文檔中的全局特征。文獻(xiàn)[22]將檢測(cè)候選詞與共指消解相結(jié)合,它首先使用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)學(xué)習(xí)字符的特征,通過LSTM 學(xué)習(xí)單詞的特征,然后通過Attention 機(jī)制學(xué)習(xí)候選詞的特征表示,并通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)對(duì)候選詞對(duì)應(yīng)的先行詞進(jìn)行排序。該模型所使用的深度神經(jīng)網(wǎng)絡(luò)非常龐大,因此很難維護(hù)。
除了這些應(yīng)用于通用領(lǐng)域的研究之外,生物領(lǐng)域內(nèi)的共指消解研究也有所發(fā)展,主要原因在于,生物領(lǐng)域也具有諸如MEDSTRACT[32]和MEDCo[33]這樣的大型標(biāo)注語(yǔ)料庫(kù)。典型的應(yīng)用包括文獻(xiàn)[34]中提出的一種基于機(jī)器學(xué)習(xí)和規(guī)則的混合方法,它的F1 值為60.9%,是目前生物領(lǐng)域內(nèi)性能最先進(jìn)的方法。
針對(duì)以上方法中存在的各種問題,本文提出了一種混合型的方法來(lái)處理信息安全領(lǐng)域內(nèi)的共指消解,將從文本中提取待消解項(xiàng)也作為工作的一部分。首先,采用一種規(guī)則與深度學(xué)習(xí)模型相結(jié)合的方法來(lái)提取文本中的待消解項(xiàng)。其次,采用規(guī)則和隨機(jī)森林的方法進(jìn)行共指消解。與深度學(xué)習(xí)的方法相比,這種方法結(jié)構(gòu)簡(jiǎn)單,需要的訓(xùn)練數(shù)據(jù)較少。并且本文通過對(duì)信息安全領(lǐng)域內(nèi)文本的研究,挖掘出了適用于信息安全領(lǐng)域共指消解的數(shù)據(jù)特征并制定出一套規(guī)則,可用于信息安全領(lǐng)域的共指消解。
本文提出了一種將規(guī)則與機(jī)器學(xué)習(xí)混合的方法來(lái)進(jìn)行共指消解。該方法的工作分為2 個(gè)部分:1)從給定文檔中提取所有的候選詞語(yǔ)(包括名詞性短語(yǔ)、代詞、實(shí)體以及嵌套短語(yǔ))并進(jìn)行分類;2)對(duì)待消解項(xiàng)進(jìn)行共指消解。方法框架如圖1 所示。
從圖1 中可以看出,該方法分為提取候選詞和共指消解這2 個(gè)部分。其中,提取候選詞部分由規(guī)則+BiLSTM+dic_ttention+CRF 混合而成,用于提取文本中的待消解詞并進(jìn)行分類,該部分對(duì)應(yīng)3.1 節(jié)的內(nèi)容。共指消解則主要對(duì)分類之后的待消解詞進(jìn)行共指消解,該部分對(duì)應(yīng)3.2 節(jié)的內(nèi)容。圖1 中,最底層的其他特征代表3.1.2 節(jié)中除了單詞特征之外的其他特征;頂層中的其他特征代表3.2.2 節(jié)中的名詞短語(yǔ)共指消解除了類型一致性之外的其他特征;D(wi)表示單詞wi在領(lǐng)域詞典中的匹配度;Wd表示單詞匹配度所占的權(quán)重;表示單詞wi在文檔層面的特征表示;gi表示單詞wi基于領(lǐng)域詞典的新的文檔層面特征表示。
圖1 方法框架
本文要提取的候選詞包括名詞性短語(yǔ)、代詞、實(shí)體以及嵌套短語(yǔ),可將其分為名詞性短語(yǔ)和嵌套短語(yǔ)的提取以及實(shí)體的提取。名詞性短語(yǔ)和嵌套短語(yǔ)的提取采用規(guī)則的形式進(jìn)行提取,實(shí)體的提取采用BiLSTM+dic_ttention+CRF 模型進(jìn)行提取。具體架構(gòu)如圖1 中的提取候選詞部分所示。
3.1.1 名詞短語(yǔ)和嵌套短語(yǔ)的提取規(guī)則
通常情況下,名詞短語(yǔ)是由名詞以及它的修飾語(yǔ)組成,中心詞為名詞。名詞的修飾語(yǔ)與名詞有2種位置關(guān)系:一是放在被修飾名詞的前面,叫作前置定語(yǔ)或定語(yǔ);二是放在被修飾名詞的后面,叫作后置定語(yǔ)。通過對(duì)信息安全領(lǐng)域內(nèi)語(yǔ)料的分析發(fā)現(xiàn),需要進(jìn)行共指消解的名詞短語(yǔ)通常為前置定語(yǔ)名詞短語(yǔ),因此這里只考慮第一種位置關(guān)系的情況。
一般來(lái)說(shuō),作為前置定語(yǔ)的詞類有2 種:其一是限定詞,用來(lái)限定名詞所指范圍,例如these、three、a、the、my 等;其二是形容詞,用來(lái)表示名詞的性質(zhì)和特征,比如red、close、new、small 等。因此,可以通過如下規(guī)則來(lái)獲取名詞性短語(yǔ)。
假設(shè)U1表示冠詞集合,U2表示形容詞性物主代詞集合,U3表示名詞性物主代詞集合,U4表示指示限定詞集合,U5表示數(shù)量詞集合,U6表示基數(shù)詞集合,N表示名詞集合,NP 表示名詞短語(yǔ)集合,AD 表示形容詞集合,集合U=U1∪U2∪U3∪U4∪U5∪U6。
1)如果單詞a屬于冠詞、形容詞性物主代詞、名詞性物主代詞、指示限定詞、數(shù)詞、量詞、基數(shù)詞等集合中的任意一個(gè)單詞,單詞b屬于名詞集合,則ab構(gòu)成名詞性短語(yǔ)。
2)如果單詞c屬于形容詞,單詞b屬于名詞集合,則cb構(gòu)成名詞短語(yǔ)。
3)acb屬于名詞短語(yǔ)。
可表示為
其中,BEL 表示謂語(yǔ)動(dòng)詞“屬于”。
除此之外,還要提取嵌套短語(yǔ)。嵌套短語(yǔ)通常存在于所提取出的名詞短語(yǔ)中,通過對(duì)嵌套短語(yǔ)的語(yǔ)法分析,制定出如下提取規(guī)則。
假設(shè)NNP 表示嵌套短語(yǔ)集合,ONP 表示所有格名詞短語(yǔ)集合,P表示介詞集合。
1)嵌套短語(yǔ)來(lái)自所有格名詞短語(yǔ)。例如,短語(yǔ)“its methods”中的嵌套短語(yǔ)是代詞“its”“stuxnet’s damage”中的嵌套短語(yǔ)是專有名詞“stuxnet”,可表示為
2)嵌套短語(yǔ)是名詞性短語(yǔ)中的名詞或介詞。例如,名詞性短語(yǔ)“efficiency reduction”中嵌套短語(yǔ)是“efficiency”,可表示為
如果提取出的名詞性短語(yǔ)中包含實(shí)體,那么只提取實(shí)體部分。
3.1.2 實(shí)體提取和分類
1)輸入特征
在圖1 中,除了使用制定的規(guī)則來(lái)提取名詞短語(yǔ)和嵌套名詞短語(yǔ)之外,還要使用模型BiLSTMdic_attention-CRF 對(duì)文本中的實(shí)體進(jìn)行提取和分類。此時(shí),模型的輸入特征包括以下幾個(gè)方面。
①單詞特征。單詞特征又被稱為分布式單詞表示,可以從一個(gè)大型的未標(biāo)記語(yǔ)料庫(kù)中獲取單詞的語(yǔ)義和句法信息。Word2vec 是最常用的單詞向量訓(xùn)練工具。為了獲得高質(zhì)量的單詞向量表示,本文使用文獻(xiàn)[31]中從CVE語(yǔ)料庫(kù)中收集的94 534條漏洞記錄描述進(jìn)行單詞向量訓(xùn)練。
② 詞性標(biāo)注特征(PoS,part of speech)。詞性標(biāo)注特征也被稱為語(yǔ)法標(biāo)注或詞類消疑,是語(yǔ)料庫(kù)語(yǔ)言學(xué)中將語(yǔ)料庫(kù)內(nèi)單詞的詞性按其含義和上下文內(nèi)容進(jìn)行標(biāo)記的文本數(shù)據(jù)處理技術(shù)。人們要提取的候選詞,特別是名詞性短語(yǔ)和嵌套短語(yǔ),都要用到單詞的詞性標(biāo)注信息,因此,詞性標(biāo)注需要作為重要的輸入特征。本文使用Stanford CoreNLP 作為詞性標(biāo)注工具。
③字符特征。字符特征包含實(shí)體名稱的結(jié)構(gòu)信息,可以表示實(shí)體名稱的特定組成,特別是在信息安全領(lǐng)域。例如,影響Windows 的PE 病毒Backdoor.Win32.Gpigeon.pd 和Backdoor.Win32.Gpigeon2010.pc具有相同的前綴,因此,當(dāng)模型遇到這些單詞時(shí),人們可以根據(jù)它的前綴判斷出它是Windows 的PE病毒的名稱。與傳統(tǒng)手工設(shè)計(jì)的字符特征不同,人們可以通過訓(xùn)練得到單詞的字符特征向量。因?yàn)橛⑽闹械淖址麄€(gè)數(shù)有限,構(gòu)造出的字符表遠(yuǎn)遠(yuǎn)小于詞表,因此本文采用文獻(xiàn)[35]中提到的字符訓(xùn)練方法,通過PoS 標(biāo)記來(lái)對(duì)字符進(jìn)行訓(xùn)練,并進(jìn)行大小寫字符及特殊字符的區(qū)分。
2)BiLSTM-dic_attention-CRF 模型
BiLSTM-dic_attention-CRF 模型是在BiLSTMattention-CRF 模型的基礎(chǔ)上添加了領(lǐng)域詞典,將其與原來(lái)的文檔層面Attention 機(jī)制相結(jié)合,作為一種新的基于字典的注意力機(jī)制來(lái)計(jì)算單詞特征,以解決BiLSTM-attention-CRF模型對(duì)訓(xùn)練集中未出現(xiàn)過的稀有實(shí)體以及長(zhǎng)度較長(zhǎng)實(shí)體識(shí)別稍弱的問題。本文模型中使用到的領(lǐng)域詞典是本文研究團(tuán)隊(duì)在之前的工作[36]中,通過wikipedia 和信息安全領(lǐng)域的UCO(unified cybersecurity ontology)構(gòu)造出來(lái)的。
假設(shè)有文檔D={s1,s2,…,sn},其中,si={w1,w2,…,wm}為組成文檔D的第i個(gè)句子,wi={c1,c2,…,ck}為句子si的第i個(gè)單詞表示,ci是單詞wi的第i個(gè)字符特征表示,pi表示單詞wi的詞性特征表示,則可以得到關(guān)于單詞wi的新的特征表示hi為
其中,hi作為Attention 層的輸入,Attention 層主要用來(lái)計(jì)算單詞wi與文本中其他單詞w(jj=1,2,3,…,i-1,i+1,…,mn)的關(guān)聯(lián)度,該權(quán)重值aij可表示為式(3)。
其中,Wa為需要訓(xùn)練的模型參數(shù)。
這里引入了領(lǐng)域詞典匹配機(jī)制,將其與Attention 機(jī)制相結(jié)合,計(jì)算出新的基于領(lǐng)域詞典的全局特征表示gi如式(8)所示。
接下來(lái),使用一個(gè)tanh 層來(lái)獲取單詞wi與文檔中其他單詞相關(guān)的特征表示。
由于在信息安全領(lǐng)域缺乏大規(guī)模的可用于共指消解的標(biāo)注語(yǔ)料,因此,本文提出一種將規(guī)則與機(jī)器學(xué)習(xí)相結(jié)合的方法來(lái)進(jìn)行候選詞的共指消解。需要進(jìn)行共指消解的候選詞包括代詞以及名詞短語(yǔ)(本文提取的實(shí)體屬于名詞,也劃分進(jìn)名詞短語(yǔ)中)。
其中,最難解決的部分是關(guān)于代詞的共指消解,它與語(yǔ)句的語(yǔ)法結(jié)構(gòu)有著極大的關(guān)系[1],因此這部分工作將采用定制規(guī)則的形式完成;關(guān)于名詞短語(yǔ)的共指消解,則使用機(jī)器學(xué)習(xí)的方法完成。
3.2.1 代詞的共指消解
通過對(duì)收集來(lái)的文本進(jìn)行分析,需要進(jìn)行共指消解的代詞分為2 種:第一種是關(guān)系代詞;第二種是人稱代詞,由于信息安全領(lǐng)域中不存在人物作為實(shí)體,因此本文僅對(duì)第三人稱代詞進(jìn)行消解。
1)關(guān)系代詞消解
關(guān)系代詞的先行詞通常在同一個(gè)句子中。對(duì)于關(guān)系代詞,選擇所有位于它前面的名詞短語(yǔ)作為它的候選先行詞。然后根據(jù)句子的句法分析樹,提取關(guān)系代詞與候選詞之間的句法分析路徑并選擇最短路徑,將距離最近的名詞短語(yǔ)作為關(guān)系代詞的先行詞。舉例說(shuō)明如下。
例1Sentence:(Autoruns)1revealed that there are (two core files)2(Mrxcls.sys)3and (Mrxnet.sys)4in (the Stunex)5(which)? was (the first malicious code)to damage (the industry control system)in the world。
消解例1 分析結(jié)果如表1 所示。通過對(duì)例句進(jìn)行句法分析,提取從關(guān)系代詞到各候選詞之間的分析路徑,其中最短的一條為“NP-NP-SBARWHNP”,對(duì)應(yīng)的候選詞為“the Stunex”,則該候選詞即是關(guān)系代詞“which”的先行詞。
表1 消解例1 分析結(jié)果
2)第三人稱代詞消解
人稱代詞的先行詞最有可能位于同一句或前一句。首先在同一個(gè)句子中搜索候選先行詞,如果候選集為空,則從前一個(gè)句子中重新提取候選詞并找到可能的先行詞。由于人稱代詞必須指代實(shí)體,因此只保留安全領(lǐng)域?qū)嶓w候選詞。如果候選集不為空,則將語(yǔ)法解析樹從人稱代詞節(jié)點(diǎn)開始從下往上移動(dòng),如果有并列結(jié)構(gòu)(包括并列名詞短語(yǔ)、并列動(dòng)詞短語(yǔ)和并列從句),則選取第一段子結(jié)構(gòu)中距離最遠(yuǎn)的候選詞(按詞距計(jì)算)作為人稱代詞的先行詞;否則,從語(yǔ)法解析樹中找到最近的子句或句子,選擇其中距離最遠(yuǎn)的候選詞作為先行詞。舉例說(shuō)明如下。
例2Sentence:(Stuxnet)1searches for (specific programs)2,accesses (industrial control systems)3,((its)?attack object)is the target program development tool。
消解例2 分析結(jié)果如表2 所示?!癷ts”的實(shí)體候選詞為“Stuxnet”“specific programs”和“industrial control systems”,其中,有2 個(gè)并列結(jié)構(gòu)作為候選,分別是“(Stuxnet)1searches for (specific programs)2”和“accesses (industrial control systems)3”,這里,“(Stuxnet)1searches for (specific programs)2”為句子中的第一段并列結(jié)構(gòu),里面包含了2 個(gè)實(shí)體候選詞“(Stuxnet)1”和“(specific programs)2”,“(Stuxnet)1”距離“its”最遠(yuǎn),即為先行詞。
表2 消解例2 分析結(jié)果
3.2.2 名詞短語(yǔ)的共指消解
首先,介紹進(jìn)行機(jī)器學(xué)習(xí)時(shí)需要使用到的特征向量,每個(gè)特征是通過比較2 個(gè)待消解項(xiàng)之間相應(yīng)的屬性得來(lái)的,如下所示。
1)所屬類別是否一致。在3.1 節(jié)抽取候選詞的同時(shí)對(duì)其進(jìn)行了分類,直接比較2 個(gè)待消解項(xiàng)的類型是否一致,為二值屬性,一致為真,不一致為假。
2)別名和簡(jiǎn)稱是否一致。如果2 個(gè)待消解項(xiàng)其中一個(gè)是另外一個(gè)的別名或者簡(jiǎn)稱,則值為真,反之則為假。
3)單復(fù)數(shù)是否一致。分析2 個(gè)待消解項(xiàng)后所跟動(dòng)詞或者系動(dòng)詞的形式,判斷單復(fù)數(shù)是否一致,一致為真,不一致為假。
4)2 個(gè)待消解項(xiàng)在文本中的距離。用2 個(gè)待消解項(xiàng)在文本中所間隔的句子條數(shù)表示。
5)名稱相似性。例如短語(yǔ)“the virus”通常與某個(gè)病毒的名稱具有相同的指代,與含有“product”“company”等詞語(yǔ)的短語(yǔ)則不會(huì)。
6)同位語(yǔ)。通過句法分析器可以判斷出2 個(gè)待消解項(xiàng)中的一個(gè)是否為另外一個(gè)的同位語(yǔ),同時(shí)獲取這2 個(gè)待消解項(xiàng)的同位語(yǔ)成分。
7)中心詞的相似性。通常情況下,認(rèn)為名詞短語(yǔ)中的中心詞是名詞,本文通過余弦相似度來(lái)比較2 個(gè)名詞短語(yǔ)的中心詞的相似性。
8)結(jié)尾詞的相似性。使用余弦相似度比較2個(gè)名詞短語(yǔ)的最后一個(gè)單詞的相似性。
接下來(lái),進(jìn)行構(gòu)造訓(xùn)練集。假設(shè)文檔中含有一條指代鏈A1-A2-A3-A4,在這條鏈中直接相鄰的指代項(xiàng)對(duì)(如A1-A2,A2-A3,A3-A4)生成正訓(xùn)練樣本。在這樣的指代項(xiàng)對(duì)中,第一個(gè)名詞短語(yǔ)通常被認(rèn)為是先行詞,而第二個(gè)名詞短語(yǔ)則是后置詞。負(fù)訓(xùn)練樣本的提取如下。例如,有 B1和 B2是出現(xiàn)在 A1和A2之間的其他對(duì)象,那么可以得出負(fù)訓(xùn)練樣本為A1-B1,A1-B2,B1-A2,B2-A2。舉例說(shuō)明如下。
例3Sentence:As the world’s first cyber“super destructive weapon”,has infected more than 45,000 networks around the world.believeisever.uses a variety of advanced technologies,so it is extremely stealthy and destructive。
共指消解的問題事實(shí)上就是一個(gè)對(duì)候選詞進(jìn)行分類的問題,因此,本文采用隨機(jī)森林算法來(lái)解決此問題。隨機(jī)森林算法是一個(gè)包含多棵決策樹的分類器,易于實(shí)現(xiàn),計(jì)算開銷也很少。
圖2 舉例說(shuō)明了使用隨機(jī)森林算法進(jìn)行共指消解的過程。假設(shè)此時(shí)要對(duì)候選詞“the virus”進(jìn)行消解,算法首先根據(jù)該候選詞找出某個(gè)范圍內(nèi)的所有可能的先行詞(一般情況下選擇前后相鄰的2 個(gè)句子中的所有名詞短語(yǔ))。選擇具有最高置信度的指代鏈中的先行詞作為該候選詞的先行詞。通過設(shè)置一個(gè)最小的置信閾值ti來(lái)控制指代鏈過度生成,如果不存在置信度值大于ti的指代鏈,則該候選詞沒有共指先行詞(此狀態(tài)可能會(huì)在后續(xù)消解過程中更改)。其中,ti的值可通過訓(xùn)練得出。
圖2 共指消解示例
本文驗(yàn)證部分進(jìn)行了4 個(gè)實(shí)驗(yàn)。實(shí)驗(yàn)1 獲取了所提方法在領(lǐng)域詞典匹配度權(quán)重dW的最佳取值;實(shí)驗(yàn)2 通過與其他基準(zhǔn)模型的比較,驗(yàn)證了所提方法在信息安全領(lǐng)域語(yǔ)料上進(jìn)行共指消解的優(yōu)越性能;實(shí)驗(yàn)3 證明了單個(gè)特征對(duì)名詞短語(yǔ)共指消解的影響程度;實(shí)驗(yàn)4 驗(yàn)證了所提方法與其他基準(zhǔn)模型相比在候選詞提取時(shí)的優(yōu)越表現(xiàn),并驗(yàn)證了領(lǐng)域詞典匹配機(jī)制的加入對(duì)之前工作[31]在實(shí)體提取和分類時(shí)的改進(jìn)。
本文使用的實(shí)驗(yàn)數(shù)據(jù)來(lái)自之前工作[31]所收集的信息安全領(lǐng)域文本,包括 we live security、threatpost 等處的博客文章,CVE(common vulnerabilities and exposures)描述,微軟安全公告以及信息安全類文章摘要,從中摘取了20 篇摘要、45篇博客文章、59 段CVE 描述以及50 篇微軟安全公告,共包含9 123 條句子。在之前的工作中,已經(jīng)對(duì)這些文本中的實(shí)體標(biāo)注了類型,因此這些標(biāo)注語(yǔ)料可作為BiLSTM+dic_attention+CRF 模型的訓(xùn)練數(shù)據(jù),從中抽取了20 篇安全報(bào)告和20 篇博客標(biāo)注了指代鏈,共獲取指代鏈45 932條,其中正訓(xùn)練樣本為7.5%。這些指代鏈將作為機(jī)器學(xué)習(xí)的訓(xùn)練數(shù)據(jù)。
由于負(fù)訓(xùn)練樣本的數(shù)據(jù)遠(yuǎn)多于正訓(xùn)練樣本,為了減少訓(xùn)練時(shí)間,本文采取了文獻(xiàn)[19]的負(fù)樣本抽取方法,具體步驟如下。
1)使用訓(xùn)練數(shù)據(jù)集中所有的正訓(xùn)練樣本,隨機(jī)抽取10%的負(fù)訓(xùn)練樣本,進(jìn)行分類器的訓(xùn)練。
2)檢查所有負(fù)訓(xùn)練樣本的分類器置信值(即估計(jì)概率),只保留前10%最模糊的負(fù)訓(xùn)練樣本,即與正訓(xùn)練樣本相比置信值最高的負(fù)訓(xùn)練樣本。本文使用這些信息量更大的負(fù)訓(xùn)練樣本和所有正訓(xùn)練樣本來(lái)訓(xùn)練最終的分類器。
設(shè)置特征向量的維度為300,BiLSTM 中的神經(jīng)單元數(shù)為1 000,最小批次個(gè)數(shù)為64,最大迭代次數(shù)為100。使用文獻(xiàn)[37]中提到的方法更新模型參數(shù),并設(shè)置學(xué)習(xí)效率為10-3,l2為10-5。為了避免過擬合,本文采用 dropout 技術(shù)。BiLSTM 和Attention 層的dropout 值分別為0.3 和0.5。隨機(jī)森林中的參數(shù)設(shè)置主要是對(duì)其中單個(gè)決策樹的參數(shù)設(shè)置,最小置信閾值為30%,葉子節(jié)點(diǎn)最小樣本數(shù)設(shè)置為5,最大深度為默認(rèn)值,決策樹的個(gè)數(shù)為100。這些參數(shù)都是在訓(xùn)練集合中通過10 倍交叉驗(yàn)證得出的。
實(shí)驗(yàn)是在2 個(gè)NVIDIA GTX 1080Ti GPU 和內(nèi)存為64 GB 的機(jī)器上完成的,模型訓(xùn)練時(shí)間約為1 h。
實(shí)驗(yàn)1驗(yàn)證BiLSTM-dic_attention-CRF 模型中領(lǐng)域詞典匹配度權(quán)重dW的取值。在實(shí)驗(yàn)1 中,提取的信息安全領(lǐng)域?qū)嶓w包括4 種類型,分別是“product”“vulnerability”“attacker”和“company”,以0.05 的步長(zhǎng)將權(quán)重值從低到高進(jìn)行設(shè)置,其他參數(shù)保持不變,其表現(xiàn)性能如圖3 所示。其中,P代表準(zhǔn)確率,R代表召回率,F(xiàn)代表F-Measure。
圖3 Wd取不同值時(shí)模型的性能
從圖3 可以看出,Wd=0.25 時(shí)模型性能最優(yōu),此時(shí)F=0.78。
實(shí)驗(yàn)2驗(yàn)證本文所提方法在信息安全領(lǐng)域共指消解的優(yōu)越性。使用的4 個(gè)基準(zhǔn)模型為文獻(xiàn)[19]所提的scaffolding approach、Soon 等[17]方法、Zhang等[23]方法、Wiseman 等[24]方法。將基準(zhǔn)模型與本文所提模型一起應(yīng)用在信息安全領(lǐng)域數(shù)據(jù)中,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 各模型性能
從表3 中可以看出,本文所提模型在信息安全領(lǐng)域數(shù)據(jù)的表現(xiàn)性能要優(yōu)于其他4 個(gè)模型。通過對(duì)錯(cuò)誤樣本的分析可以看出,Wiseman 等[24]方法的主要核心在于使用RNN 學(xué)習(xí)實(shí)體類群中每一個(gè)實(shí)體的潛在全局表示,再通過RNN 對(duì)這些實(shí)體進(jìn)行共指消解。但是本文模型并沒有給出具體的聚類方式,而是默認(rèn)實(shí)體已經(jīng)聚類完成。于是,先利用本文所提模型將文本中需要進(jìn)行共指消解的候選詞提取出來(lái),然后采用最簡(jiǎn)單的k-means 聚類法對(duì)這些候選詞進(jìn)行聚類,但是實(shí)驗(yàn)后的結(jié)果并不理想。通過分析得出,在對(duì)這些實(shí)體聚類時(shí),通常會(huì)把不具備領(lǐng)域特征的代詞聚在一起,對(duì)這些類群學(xué)習(xí)全局特征表示時(shí),很難學(xué)習(xí)到領(lǐng)域特征,這無(wú)疑會(huì)影響后續(xù)共指消解的性能。scaffolding approach[19]和Soo 等[17]方法所處理的文本都是通用領(lǐng)域的文本,所制定的特征大都針對(duì)“organization”“person”等通用領(lǐng)域內(nèi)的類型實(shí)體,因此在對(duì)信息安全領(lǐng)域內(nèi)數(shù)據(jù)共指消解時(shí)的表現(xiàn)較差。Zhang 等[23]方法通過Biaffine Attention 機(jī)制以及優(yōu)化候選詞提取損失函數(shù)進(jìn)行共指消解,需要大量的標(biāo)注訓(xùn)練數(shù)據(jù)來(lái)訓(xùn)練參數(shù),因此雖然在CoNLL-2012 數(shù)據(jù)集中取得了優(yōu)良的表現(xiàn),但是在標(biāo)注數(shù)據(jù)有限的信息安全領(lǐng)域數(shù)據(jù)集中表現(xiàn)稍弱。
實(shí)驗(yàn)3針對(duì)單個(gè)特征對(duì)模型的影響進(jìn)行實(shí)驗(yàn)。8 種特征對(duì)應(yīng)的數(shù)字編號(hào)如表4 所示。
表4 特征對(duì)應(yīng)的數(shù)字編號(hào)
單個(gè)特征值對(duì)模型性能的影響如圖4 所示。
從圖4 中可以看出,在所有特征中,同位語(yǔ)特征對(duì)共指消解性能的影響最小,主要原因是對(duì)同位語(yǔ)的認(rèn)定比較復(fù)雜,對(duì)于一些語(yǔ)法結(jié)構(gòu)相對(duì)比較復(fù)雜的語(yǔ)句,僅依靠句法分析工具判定句子中的同位語(yǔ)準(zhǔn)確率并不高。此外,中心詞相似性及別名和簡(jiǎn)稱特征對(duì)共指消解性能的影響最高,主要原因分析發(fā)現(xiàn)如下:1)在信息安全領(lǐng)域的文本中含有很多領(lǐng)域內(nèi)的專業(yè)術(shù)語(yǔ)及簡(jiǎn)稱,例如,Advanced Persistent Threat 簡(jiǎn)稱APT;2)對(duì)名詞短語(yǔ)來(lái)說(shuō),中心詞往往決定了該短語(yǔ)的主要含義。
圖4 單個(gè)特征值對(duì)模型性能影響
實(shí)驗(yàn)4對(duì)文本中候選詞提取的效果也會(huì)影響共指消解的效果,因此驗(yàn)證本文所提的將規(guī)則與神經(jīng)網(wǎng)絡(luò)模型(BiLSTM-dic_attention-CRF)相結(jié)合進(jìn)行提取候選詞的方法(簡(jiǎn)稱rule-based BiLSTMdic_attention-CRF)的性能。這里使用的基準(zhǔn)模型包括實(shí)驗(yàn)2 中的3 個(gè)基準(zhǔn)模型,以及本文之前工作[31]中的方法,此處用previous work 表示。實(shí)驗(yàn)4 提取的信息安全領(lǐng)域?qū)嶓w包括 4 種類型,分別是“product”“vulnerability”“attacker”和“company”。實(shí)驗(yàn)結(jié)果如表5 所示。
表5 各模型提取候選詞的性能表現(xiàn)
從表5 中可以看出,本文所提方法(rule-based BiLSTM-dic_attention-CRF)在信息安全領(lǐng)域數(shù)據(jù)上的性能優(yōu)于目前已知的提取候選詞方法,主要原因在于,本文所提方法除了依賴深度學(xué)習(xí)之外,還通過對(duì)信息安全領(lǐng)域中的數(shù)據(jù)文本進(jìn)行分析,總結(jié)出了一套與之相契合的提取規(guī)則,兩者結(jié)合在一起才能達(dá)到較好的效果。圖5 展示了BiLSTM-dic_ttention-CRF 模型和本文之前的模型(previous work)對(duì)例句“Stunex searches for specific programs access industrial controlsystems”的實(shí)體提取分類效果。其中,B、I、O 表示的是BIO 標(biāo)注,如果單詞被標(biāo)注為B,表示該單詞為某個(gè)片段的開頭,同理,I 表示該單詞在片段的中間位置,O 表示不屬于任何類型。
圖5 2 種模型對(duì)例句的實(shí)體提取分類效果
基于文檔層面特征向量在進(jìn)行實(shí)體提取工作時(shí)的優(yōu)越性已經(jīng)在本文之前的工作[31]中進(jìn)行了驗(yàn)證,此處不再贅述。
通過對(duì)rule-based BiLSTM-dic_attention-CRF提取出的錯(cuò)誤結(jié)果進(jìn)行分析,本文方法依然存在著候選詞提取邊界過長(zhǎng)、先行詞中單詞缺失以及候選詞為無(wú)用候選詞(即無(wú)共指關(guān)系)等問題,有待于進(jìn)一步解決。
本文提出了一種混合方法來(lái)解決信息安全領(lǐng)域內(nèi)的共指消解任務(wù)中的2 個(gè)問題:1)從給定文檔中提取出所有的候選詞語(yǔ)并進(jìn)行分類;2)篩選出符合條件的待消解項(xiàng)進(jìn)行共指消解。本文針對(duì)信息安全領(lǐng)域內(nèi)文本的特點(diǎn)制定出一套規(guī)則并與深度學(xué)習(xí)模型(BiLSTM-dic_attention-CRF)相結(jié)合來(lái)解決對(duì)文本中候選詞語(yǔ)的提取和分類問題,將共指消解分解成代詞的共指消解和名詞短語(yǔ)的共指消解,代詞消解通過規(guī)則完成,而名詞短語(yǔ)的共指消解通過機(jī)器學(xué)習(xí)完成。實(shí)驗(yàn)證明,本文所提方法相較于其他基于通用領(lǐng)域構(gòu)造的模型,在信息安全領(lǐng)域上的應(yīng)用性能更加優(yōu)越。