張潤巖,孟凡榮,周 勇,劉 兵,2
(1.中國礦業大學 計算機科學與技術學院,江蘇 徐州 221116; 2.中國科學院 電子研究所,北京 100080)(*通信作者電子郵箱mengfr@cumt.edu.cn)
語義關系抽取(或語義關系分類)任務是指在給定一段文字并標記兩個實體詞的情況下,給出兩個實體詞的語義關系。關系抽取是自然語言處理(Natural Language Processing, NLP)系統的重要組成部分,準確的語義關系抽取對句意理解有十分重要的作用,理解句子核心詞之間的關系是把握句子整體含義的重要一步,因此,近些年語義關系抽取越來越受到國內外研究學者的關注。
機器學習方法在關系抽取上的高效性已被多次證明,許多傳統模型都致力于機器學習和特性設計上,這些模型通常依賴于一個完備的NLP流水線,同時還需要額外的手工特性或內核[1-4]。而近年來,深度學習方法被廣泛應用于關系分類任務,它能夠在保證準確率的前提下大幅減少人為調整的工作。如今有許多基于深度學習的神經網絡模型用于該任務,如卷積神經網絡(Convolutional Neural Network, CNN),循環神經網絡(Recurrent Neural Network, RNN),它們有些使用最短依賴路徑或依賴子樹[5-7],而另一些則減少預訓練的操作,直接輸入原始語句來學習隱含特征[8-9]。這些方法都已被證明有效,但它們會平等地考慮句中每個詞,因而不可避免地會被無實意的詞所干擾。
針對這一問題,一些研究提出注意力機制與神經網絡相結合的方法[10-12],該機制使模型能夠自動關注句子的核心詞,給予其更高的價值權重。如例句“The news brought about a commotion”,句中“brought(引起)”一詞對“Cause-Effect(因果)”關系有決定性作用,因此在整個句子的信息時,模型會自動為“brought(引起)”詞分配很高的權重,以加強其對關系標簽的預測能力。此為詞層面的注意力機制,本文將其與神經網絡結合以實現一個端到端的模型。
神經圖靈機(Neural Turing Machine, NTM),也可稱神經記憶網絡(Neural Memory Network),本文使用循環神經網絡作為其控制器,因而其本質是一個具有額外存儲矩陣的循環神經網絡(RNN),而相比長短時記憶(Long Short-Term Memory, LSTM)網絡或門控循環神經網絡(Gated Recurrent Unit, GRU)等RNN上強化記憶能力的改進模型,神經圖靈機擁有更多且互不干擾的存儲空間,它允許RNN對輸入進行無損的保存,從而賦予RNN更優秀的記憶能力甚至使RNN擁有長時記憶(持久記憶),因此,本文將其用于關系抽取任務作為循環神經網絡的替代,以獲得更好的語境特征提取效果。
綜上所述,本文的研究有以下三個核心點:
1)使用神經圖靈機代替循環神經網絡來提取語境特征,使每個詞的高級特征考慮語境信息,其中本文使用一種簡化且更高效的神經圖靈機。
2)在神經圖靈機之上加入詞層面的注意力機制,它使模型能夠自動識別核心詞,促進核心詞對分類的積極作用,并弱化干擾詞的影響,其中本文使用一種更適合任務的權重評分函數。
3)將模型應用于語義關系抽取任務,與該任務的相關研究對比分析,并在SemEval- 2010 Task 8這一標準數據集上基本達到最好效果。
雖然半監督或無監督的方法在關系抽取領域有一些應用并得到了可觀的效果[1-2],但本文的研究主要針對有監督的方法,它一般會得到更好的效果同時更易于驗證和評價。
在早期的關系分類研究中,學者多通過一系列自然語言處理工具進行特征提取,或是使用一些精心設計的核心[3]加上支持向量機(Support Vector Machine, SVM)等分類器[4],他們在特征提取或模型設計工作上會花費大量精力,國內許多研究也多基于此[13-14]。另一方面,針對缺少語料庫的問題,一些遠程監督方法將知識庫與非結構化文本進行對齊[15]。而SemEval- 2010 Task 8[16]發布后,后續研究大多使用它作為標準數據集來測試模型。
傳統的方法確實可行且有效,但必然強烈依賴于模型設計和特征提取的質量,易引入人為誤差。而隨著近年深度學習的發展,許多基于神經網絡的模型被用來提取隱藏特征。文獻[5]的遞歸矩陣-矢量(Matrix-Vector Recurrent Neural Network, MV-RNN)模型為RNN中的每個節點添加一個矩陣,以提高整個網絡的適應能力;文獻[6]提出了基于因子的組合嵌入模型(Factor-based Compositional embedding Model, FCM),將句子分解為子結構,獨立提取特征,并通過匯總層將其組合;文獻[7]提出了一種深度循環神經網絡(Deep Recurrent Neural Network, DRNN)模型,通過解析樹的根詞將句子分為兩部分,并將其輸入到多層RNN中,其中神經元會額外考慮上一層的相鄰詞信息。上述工作中的模型,根據語法分析樹來設計,通過最小生成子樹整合語句,它們取得了很好的效果。另一方面,一些研究者嘗試構建端到端模型,嵌入NLP特征來描述詞匯,直接將原始語句作為神經網絡的輸入。文獻[8]提出了CNN提取詞匯和句子層面的特征。文獻[9]提出了擴展中間語境的CNN,并使用簡單的投票方案將其與雙向RNN結合。端到端模型更簡潔且易于實現,但不同于基于分析樹的模型,它無法刪減語法上不相關的詞,因此可能會受到無意義詞的干擾。
近三年,注意力機制被用于NLP領域,首先由文獻[17]用于機器翻譯中的文本對齊問題,而后因其能夠自動發現核心詞的特性,注意力機制很快引起人們的關注,并用于更多任務;文獻[10]將注意機制與雙向RNN相結合用于語義關系抽取任務;文獻[11]將句子按兩個實體詞拆分,使用分層的基于注意力RNN模型;文獻[12]提出了一種基于注意力的CNN模型,用實體來評價每個詞的重要程度。這些基于注意力的方法都以原始語句作為輸入,不再進行額外的特征篩選或裁剪,然而性能卻比不使用注意力機制的模型更好。
另一方面,神經圖靈機于2014年由Google DeepMind實驗室[18]提出。神經圖靈機不能代替循環神經網絡,但它被證明確實比傳統的RNN及LSTM等改進模型有更好的記憶能力,并能夠應付一些復雜序列任務。文獻[19]后續又提出一種改進模型,稱其為可微分神經計算機(Differentiable Neural Computer, DNC),該模型具備高度定制的存儲尋址機制,并出色地完成了地鐵線路規劃、族譜關系推測、閱讀理解等實際問題。
神經圖靈機比傳統的RNN及其改進有更好的記憶能力,因而它可以更好地完成語句信息提取。本文模型使用神經圖靈機提取語句信息,而后使用注意力機制,強化核心詞的作用。最終本文的模型可以有效地從原始語句中提取關鍵特征,并出色地完成語義關系分類任務。
本文研究的模型,稱其為基于注意力的神經圖靈機(Attention based Neural Turing Machine, Ab-NTM)模型。如圖1所示,該模型通過詞嵌入層獲得每個詞的數值化表示,使句子文本轉化為一個二維的數值矩陣表示,然后將該矩陣輸入一組雙向神經圖靈機中獲得每個詞的高級特征,之后將所有詞通過注意力層進行合并得到句子特征,最后輸入到分類器進行分類。本文模型兩個關鍵點如下:
1)雙向神經圖靈機。神經圖靈機在形式上類似于循環神經網絡,以同樣的方式接受序列輸入,因而本文模型以雙向RNN的方式構建一組雙向神經圖靈機。
2)詞級注意力層。模型對所有詞使用注意力機制進行加權合并,從而有針對性的提取句子特征,同時詞級的注意力層可以體現每個詞的重要程度。
詞嵌入層用于將詞語文本轉化為數值表示,其中數值應在一定程度上包含詞語信息。本文選擇三種屬性對詞語進行數值化表示,分別為word2vector的詞向量表示(簡稱詞向量)、詞與實體的位置關系以及詞性信息。此外,還進行了一個只使用word2vec詞向量屬性作為詞語表示的對比實驗,其效果稍差。




圖1 本文模型概覽
2.2.1 長短時記憶(LSTM)網絡
本模型采用的神經圖靈機其本質是一個配備額外存儲矩陣的循環神經網絡(使用LSTM單元),模型使用LSTM單元作為神經圖靈機控制器(Controller),用于保持內部狀態并生成存儲矩陣的地址信息。
循環神經網絡(RNN)多用于有時序的數據,它對當前時刻輸入進行特征提取時會考慮之前時刻的特征信息,因而RNN可以完整地考慮整個序列信息。對于自然語言文本,語句可以視為一個文字序列,因此RNN被廣泛用于許多自然語言處理(NLP)任務中。為了增強RNN在長序列上的性能,大多數模型使用LSTM作為傳統RNN(BasicRNN)的替代。LSTM由文獻[20]提出。其主要思想是利用線性存儲單元存儲每次迭代的信息,并利用三個門單元進行讀取、寫入和擦除。此外還有許多LSTM變種被設計用于特定的任務作相應的改進,在本文中,采用由文獻[21]提出的LSTM變體,這是一種被廣泛使用的變體形式。
LSTM包含一個存儲單元ct,該存儲單元貫穿每個時間步,允許信息在沒有交互的情況下流過時間步。為了改變存儲器單元中的信息,LSTM設置三個邏輯門:用于寫入的輸入門it,用于擦除的遺忘門ft和用于讀取的輸出門ot。每個門的計算由輸入xt和前一個時間步的隱層值ht-1共同決定,并最終得出一個操作信息的比值。詳細計算如下所示:
(1)
(2)

(3)
ct=itgt+ftct-1
(4)
(5)
(6)
其中:W和b均為神經網絡待訓練的參數,下標表示所屬計算單元。
2.2.2 神經圖靈機
神經圖靈機(NTM)使用LSTM作為控制器,LSTM內部的存儲單元作為內部狀態,而在LSTM外部本文額外使用一個二維的存儲矩陣,用于保存外部狀態,其整體架構如圖2所示。
與文獻[19]提出的可微分神經計算機(DNC,一種最新的神經圖靈機改進)相比,本文精簡了NTM的尋址機制,直接利用注意力機制,使用LSTM的隱層以及存儲-輸入相似度來生成,計算寫入和讀取的存儲地址;而DNC在尋址上引入連續存儲、先進先出等機制,這適用于其研究的序列復制、線路規劃等任務,但對于關系抽取的研究任務并不十分適用,而且引入這些機制會使模型變得十分復雜。實驗表明,本文精簡的模型達到了相當的效果,并且訓練耗時更短。
在圖2中,標有“時序”的虛線表示模型在時間序列中的狀態維持,即按時間順序從頭至尾傳遞;標有“LSTM”的實線是常規LSTM的工作機制;標有“NTM”的實線是神經圖靈機的改進之處,每個時間步存儲矩陣獲得輸入將其存放在合適的地址位置上,然后讀取一行內容分別送入輸出單元和下一個時間步的控制器;標有“地址”的點狀線是存儲地址的生成,本文使用LSTM隱層以及輸入-存儲矩陣相似度(圖中未標出)來計算地址。圖中下方為輸入地址,上方為輸出地址,兩者分別計算。

圖2 神經圖靈機
存儲矩陣的地址計算公式如下:
cost=softmax(cosine(Mt-1,xt))
(7)
(8)
(9)

(10)

(11)

得到地址后,存儲矩陣的寫入和讀取計算公式如下:
vt=relu(Wxmxt+bxm)
(12)

(13)
(14)

(15)
最終模型得到一系列神經圖靈機的隱層輸出,并且它們與最初的輸入一一對應,即每個輸出對應句中的一個詞,這可認為是該詞的深層特征。本文將它們拼接在一起[h1,h2,…,ht,…],然后輸入到后續網絡。
2.2.3 雙向網絡
通常,一個單詞的語義信息會同時受到前文和后文的影響,而單向的循環神經網絡只考慮前文信息,因此,本文用構造雙向RNN的方法構建雙向神經圖靈機,它由兩個神經圖靈機組成,分別使用正向和反向序列作為輸入,然后將兩個網絡的隱層輸出拼接在一起作為雙向網絡的輸出,最后的輸出將包含整個句子的語義信息。
考慮到每個單詞可能對分類任務有不同的貢獻,即有些詞起到關鍵作用而有些詞作用不大,因而本文引入了單詞層面的注意力層。利用注意力機制,本文將每個單詞對應的高級特征和整個句子的特征作為驅動,為每個單詞計算一個評分權重,然后將所有詞的高級特征加權合并,因此,注意機制會更多地關注對預測有重要意義的單詞,并賦予它們更大的權重。
詞級注意力層的網絡結構如圖3所示。合并每個單詞對應的隱層輸出ht和代表整句信息的最終時刻隱層hlast,對其進行非線性映射并作歸一化,從而模型可求解出一個權值at,然后將詞的高級特征加權求和,得到句子的最終特征。

圖3 詞級注意力層結構
受文獻[20]的啟發,本文同樣考慮了三種不同的評分函數,如式(19)所示,用于注意力中ht和hlast的組合,并測試其性能。最終注意力層的計算如下所示:
(16)
(17)
et=k*score(ht,hlast)
(18)
(19)
其中:ha是注意力層的輸出,即句子的最終特征;at對應于t位置單詞的權重,是通過score函數計算并進行歸一化的實數。
dropout方法在訓練時按比例隨機屏蔽一些神經元,在測試時打開所有神經元進行預測,從而減緩過擬合速度,使神經網絡更充分地自我學習,已經有諸多實驗證明dropout方法是切實有效的。文獻[23]進行了改進,提供了一種在循環神經網絡上使用dropout的方法。在本模型中,采用類似的方法對神經圖靈機單元進行封裝,并在神經圖靈機層和輸出層分別使用0.6和0.4的drop比例。
另外,本文使用L2范式對參數矩陣進行限制,L2范式可以有效地提高矩陣的稀疏性。以λ和λ2作為學習率,J(θ)作為損失函數,本文使用交叉熵函數計算損失。
3.1.1 數據集
本文使用常用的標準數據集SemEval- 2010 Task 8[14]來評估模型,該數據為每個樣本注釋一種關系,包含9種類型以及1個不屬于任何一種關系的“Other”類型,9種關系類型分別為Cause-Effect(原因-效果)、Instrument-Agency(工具-使用者)、Product-Producer(產品-生產者)、Content-Container(內容-容器)、Entity-Origin(實體-源頭)、Entity-Destination(實體-歸宿)、Component-Whole(部分-整體)、Member-Collection(成員-集體)和Message-Topic(消息-話題)。考慮到關系存在方向,即主動方和被動方的區別,該數據集額外注釋了9種關系的方向(“Other”類型沒有方向),因此數據集標簽一共有19種。該數據集有8 000個訓練樣本和2 717個測試樣本,本文直接使用這一樣本分配方案。SemEval- 2010 Task 8官方提供了一個評分程序,本文使用其中的宏(Macro)平均F1分數方法來評估本文模型的表現,其他學者在本任務的研究也多采用該評分方式。
3.1.2 參數設置
本文使用在維基百科上訓練的word2vec skip-gram模型[21]將單詞轉化為數值化的向量表示,即詞向量,該模型作為公共數據集被許多研究使用。此外,本文還嘗試了senna模型[23]和glove模型[24]進行詞向量嵌入,同時測試了不同詞向量維度下模型的效果。本文對詞性(POS)特征和位置特征作了預處理將其轉化為dpos和dp維度的數值化向量,使用Stanford POS Tagger工具包自動進行詞性分析。本文使用高斯分布來隨機初始化權重矩陣,使用Adam優化方法[25]迭代更新參數,訓練神經網絡。表1列出了其他一些超參數的詳細設置。
3.2.1 不同模型對比
表2展示了本文模型與語義關系抽取領域相關研究的F1分數比較,本文模型的性能基本達到了最優水平。為便于分析,本文將本領域相關研究分為4類。
本文實驗結果評價指標使用F1值計算方法,如式(20)所示。本文采用的數據集有9個子類別和1個“Other”類別,總體F1指標使用子類別平均F1值計算方式:
(20)

表1 部分超參數的設置

表2 SemEval 2010 Task 8數據集上的不同模型對比
1)非神經網絡模型。本文選擇了一個使用支持向量機(SVM)分類器的代表性方法[4],該方法考慮了8組原始特征:詞匯(Lexical)、語法依賴(Dependency)、PropBank、FrameNet、Hypernym、NomLex-Plus、NGrams和TextRunner。該研究將這8種特征進行數值化表示用以表示詞或句子,然后將它們放入SVM進行分類,該研究發現這些特征都有助于分類。該方法以82.19%的分數奪得SemEval任務的冠軍,但后續的關系分類領域研究超越了這一分數。這是因為最近的研究主要是通過神經網絡對原始信息進行深層特征挖掘,而不是手動地精心挑選原始特征,即后續的研究將重點放在了神經網絡結構的設計上,而不是特征挑選,挖掘特征表示的任務交給神經網絡來完成,因為人為的或通過預處理引入的特征可能存在偏差或干擾,而足夠強大的神經網絡可以自動尋找特征關系進行分類。也有越來越多的研究表明,通過隱層特征提取,少量的NLP特征就足以完成分類。
2)最短依賴樹(Shortest Dependency Path, SDP)模型。SDP是檢測語法結構和語法邏輯的一個有效方法,它通過構建語法樹上兩實體的最短生成樹,消除了兩個實體聯系之外的不相關詞,即剩余詞語是與兩實體的表達直接相關的(在語法上)。根據這個樹框架,父節點對子節點有直接影響,樹中的詞語都是有直接聯系的,因此,基于SDP的模型可以忽略無意義的單詞,并且輸入序列可以依據語法結構建立;但這只是理想狀態,實際情況下,SDP可能并不總是準確,許多語義上相關甚至極為重要的詞,在語法上可能并不相連,這些詞如果刪去就會丟失信息;并且另一方面,語法樹的解析時間會隨著句子長度增加而成倍地增長,所以語法樹預處理在長句子上會消耗大量時間。盡管如此,從實驗結果來看,基于SDP的模型具有優勢,SDP是一個十分有效的改進。而本文模型使用注意力機制,這在一定程度上可以代替SDP刪除無意義詞的工作。
3)端到端模型。隨著深度學習的發展,一些研究者寄希望于通過網絡自動提取語句特征、探尋語句內在聯系,不再專注于挑選特征或進行人為的結構重建,而是改善網絡結構,加強網絡表達能力,使其表現力更強、更加健壯。換句話說,端到端的模型旨在盡量減少人為干預,同時也減輕工作量,把預訓練的任務交給神經網絡完成,真正實現輸入端(原始語句)到輸出端(分類結果)的網絡構建。根據實驗結果,這些模型比過去的研究具有一定優勢,模型雖計算量增大但更易于實現。而與SDP的神經網絡模型相比,不相上下,這是因為即使深層網絡結構也存在表現能力的極限,不引入人工先驗知識雖然減少了誤差,但也為模型減少了幫助,所以性能上還有待改進。
4)基于注意力的模型。通過注意機制可為輸入的每個單詞提供權重,句子完整特征通過此權重加權地整合,這能減少噪聲詞的干擾,并將更大的權重賦予核心詞以加強它們對分類預測的影響。從表2中實驗結果可看出,由于對詞語影響力的調節,基于注意力的模型比端到端模型更勝一籌。與SDP模型相比,對于不相關的詞,注意力模型不是將其從句子中直接去除,而是為它們賦予較小的權重,這可以減輕錯誤判斷的情況。然而,如果探討注意力機制的計算方法,就可發現注意力機制的權重評分十分依賴于上一層網絡的隱層輸出,因此首先使用更加有效的神經網絡進行高級特征提取,可以改善模型整體的性能,這也就是本文模型進行的一個改進。
3.2.2 對比不同詞向量
一般來說,更大的詞向量維度可以為詞義的表現提供更多空間,然而這種表現力不會隨著維度增加而無限增長。因為通常合適維度的向量空間已足夠詞義表示,更大的維度反而可能因詞向量難以訓練,導致訓練不完全而引入噪聲,同時也會使網絡更復雜、穩定性變差,使訓練變得困難。從表2的實驗結果也可看出,使用640維比使用100維詞向量的模型效果要差不少(本文沒有在公共數據中找到兩者中間的維度)。然而,適當地增加詞向量維度,可以增強詞語的表現力,以此提高模型整體的性能。如表2所示,具有100維度的word2vec skip-gram模型[21]效果最好,許多已有研究也同樣使用該詞向量模型,因此本文使用該種詞向量進行下面的實驗。
3.3.1 注意力評分函數的比較
本節比較了注意力機制中不同評分函數的效果,計算公式如式(19)所示。評分函數接受兩個輸入,分別為每個單詞的隱層特征和整個句子的隱層特征,輸出為一個實數,用于表示該詞的得分,即該詞的權重。不同的評分函數會影響到整個注意力層的好壞,從而影響到模型的效果,圖4顯示了分別使用3個評分函數的模型的訓練損失曲線,評分函數如式(19)所示。
如圖4所示,3個模型在下降速度上幾乎沒有差別,只有concat的計算方式略微慢于另外兩個,這或許是因為該計算方式需要更大的參數矩陣Wa,即待訓練參數更多,因而需要更多時間進行訓練;但總體來看,三者的訓練速度可以認為是相同的。

圖4 注意力評分函數的訓練Loss
在模型性能上,dot、consine、concat三個方法的F1得分分別為86.2%、85.9%和85.6%,concat方法的得分較低,因為concat方法實際上就是一個單層的神經網絡,通過單層神經網絡往往很難有效地提取特征,進而單詞權重的評分也不會太好,本文同樣嘗試了多層神經網絡(Multi-Layer Perceptron, MLP)來代替單層神經網絡,但效果提升不明顯。
3.3.2 詞級注意力的可視化展示
詞級注意力一個優勢就在于可以查看模型對哪些詞語進行了加強,對哪些詞語進行了削弱,因為注意力機制會為每個詞提供一個權值,查看這些權值就可以了解模型“偏袒”了哪些詞,相應地,本文可以推斷出模型認為這些詞更有助于分類任務。
圖5展示了兩個樣本句的注意力權重分布情況,其中圖5(a)是注意力機制有效的情況,而圖5(b)則是一個反例。
如圖5(a)所示,對于樣本的句子“The most common were about and recycling.(最常見的是關于和再循環。)”,兩個實體間的關系是“Message-Topic(消息-話題)”。實際上,通過句中的“about(關于)”一詞就基本足以斷定兩個實體的關系。而從圖上也可看出,模型為“about(關于)”一詞賦予了很高的權重,即模型同樣認為該詞十分重要。這說明注意力機制在語義關系抽取任務上是十分有效的,同時它鼓勵模型以抓關鍵詞的方法進行句意理解,這在實際情況下通常也是十分有效的。
然而,如圖5(b)所示,注意力機制也不能應付全部句子,比如對于“My stay tied all the time.(我的 總是系得很緊。)”,句中兩個實體的關系是“Component-Whole(部分-整體)”,單從句子很難獲得“鞋”和“鞋帶”的關系,實際上判斷兩者的關系更多的是通過常識,或者說通過兩個詞自身的意思,所以在注意力層,模型也很難區分出哪個詞更為重要,但從圖上看,至少模型得出“My(我的)”單詞貢獻不大。
綜上所述,詞級注意力層可促使模型著重理解關鍵詞,從而完成分類,這在大多數情況下是十分有效的。而在少數情況下,句中沒有詞對分類起到顯著作用,則注意力機制效果不明顯,這也是本文模型的一個主要失分點,相信在以后研究中,更準確的詞向量表示或更強大的模型結構可以改善這一問題。

圖5 注意力層權重分布
3.4.1 神經圖靈機與LSTM對比
考慮在關系抽取任務上使用的神經圖靈機,其存儲矩陣十分龐大,不便于展示,并且很難給出一個明確定義指明怎樣使用存儲器是正確的,即對于在每次計算中使用多少信息是很難設定正確結果的(神經網絡本來就是黑盒計算),所以本文使用一個相對簡單且有明確答案的例子來證明神經圖靈機的有效性,同時將展示它如何使用內部的存儲矩陣。
本文使用“隨機多次復制”的任務來對比神經圖靈機和LSTM。該任務給模型一串隨機長度的數字以及一個隨機的復制次數,期望的模型輸出結果是復制了相應次數的該數字串。該任務需要模型有十分牢靠的記憶能力,在多次復制后仍能保持數字串的準確性;同時還需要模型有一定的泛化能力,因為數字串長度和復制次數是隨機的,即模型需要理解并使用自身記憶,而不是單純地輸入輸出。
如圖6(a)所示,為便于展示,本文將輸入的01序列轉化為像素方格(按列分成不同時間步輸入),灰色代表1,白色代表0,實驗目標是連續復制并輸出10次該輸入內容。相比LSTM,神經圖靈機在較長的時間序列上也保持了良好的記憶能力,如圖6(a)中NTM模型的結果,每個時間步的圖形與輸入基本一致,而只在最后幾步有細微畸變;但使用LSTM,在長時間迭代后,記憶信息發生了很大的改變。
分析其原因,是因為LSTM只有一塊存儲單元,對于不同時間步的信息,需要反復寫入或擦除存儲單元。如果記憶的保存和使用間隔較短,這種方式是直接且有效的;但如果任務需要模型進行較長時間的記憶,或模型需要同時維持多段記憶,則LSTM存儲單元中的信息會交叉干擾,難以無阻礙地傳播到較遠時刻。而NTM在存儲上使用二維的存儲矩陣,使用注意力機制進行地址選擇,這可以較好地解決多記憶維持問題,不同地址的存儲信息相互隔離,記憶可以不經修改地穿過不相關的時間步,并且可以有順序地存放和使用,如圖6(b)所示。

圖6 “隨機多次復制”實驗效果
對于語義關系抽取任務,本文使用NTM來為每個詞加入上下文信息,這與“隨機多次復制”任務是相似的,同樣是多記憶同時維持的任務。因為句子中不是每個單詞之間都有聯系的,更多情況下應把單詞分成幾組,不同組應使用不同的記憶單元,即對應NTM中不同地址上的存儲單元。通過圖7,可以發現在語義關系抽取任務上NTM的F1結果確實比LSTM好。

圖7 不同模型的抽取任務效果對比
3.4.2 模型在各分類上的F1分數
表3展示了本文的模型在語料9個類別中分類的F1分數,可看出在一些分類中(如Cause-Effect(原因-效果)和Entity-Origin(實體-源頭))表現較好,而在一些分類中(如Component-Whole(部分-整體)和Instrument-Agency(工具-使用者))表現較差。
本文分析了這些分類的句子特點,發現在表現較好的分類中,句子常出現一些明確的關鍵詞,如“原因-效果”類別的句子中常出現“cause”“result”等詞以及“實體-源頭”類別的句子中常出現“from”等詞,這些關鍵詞在對應分類中往往詞性相同、語義相近。相對的,表現不好的分類,其句子表述可能存在多種形式,且差異很大,模型較難從中提取相同特征;或者與其他分類表述形式類似,易造成干擾,如“部分-整體”和“成員-集體”有些表述是一致的。
得益于神經圖靈機的記憶能力優化,本文模型可以更準確地獲取上下文信息,從表3中準確率的分布情況可知,各類別準確率較平均,即本文的模型沒有表現非常差的類別,這意味著模型在一定程度上理解了語義關系抽取這個任務,并對每個子類別都有一套分類方式;但是總體來看,F1分數還有近14%的上升空間,此模型還存在改進之處以得到更好的效果。

表3 本文模型在各類別上的F1分數 %
本文在語義關系抽取任務上,針對核心詞表現力弱和長語句效果不佳的問題,提出一種基于詞級注意力的雙向神經圖靈機模型。其中,詞級注意力層可增強句中關鍵詞的影響力,促使模型以抓關鍵詞的方法理解句意,這可以解決端到端模型(即輸入語句不作裁剪或結構調整)易被不相關詞干擾的問題;神經圖靈機可視為一種循環神經網絡的改進,擁有一個額外的存儲矩陣,允許網絡通過存儲地址進行信息記憶,使得模型可以進行多方面的記憶(不同方面放于不同地址),且各方面之間互不干擾,相比常用的LSTM,這可以增強詞語高級特征提取的效果。本文將兩者進行分層組合,使其共同服務于關系抽取任務。
在語義關系抽取常用的公共數據集SemEval- 2010 Task 8上測試了模型,并分成非神經網絡模型、最短依賴樹模型、端到端模型、基于注意力的模型4組與該領域相關研究作比較,進行了詳細對比分析。此外,還單獨分析了詞級注意力層和神經圖靈機的有效性以及它們在關系抽取任務上的適應性。本文的模型最終實驗結果以86.2%的F1值優于目前大多數相關研究,但仍存在一些需要改進的地方,未來工作中,更準確的詞向量表示或一組更合適的網絡超參數可以帶來更好的效果。