• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于注意力與神經(jīng)圖靈機(jī)的語義關(guān)系抽取模型

    2018-08-27 10:53:56張潤巖孟凡榮
    計(jì)算機(jī)應(yīng)用 2018年7期
    關(guān)鍵詞:注意力神經(jīng)網(wǎng)絡(luò)神經(jīng)

    張潤巖,孟凡榮,周 勇,劉 兵,2

    (1.中國礦業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 221116; 2.中國科學(xué)院 電子研究所,北京 100080)(*通信作者電子郵箱mengfr@cumt.edu.cn)

    0 引言

    語義關(guān)系抽取(或語義關(guān)系分類)任務(wù)是指在給定一段文字并標(biāo)記兩個(gè)實(shí)體詞的情況下,給出兩個(gè)實(shí)體詞的語義關(guān)系。關(guān)系抽取是自然語言處理(Natural Language Processing, NLP)系統(tǒng)的重要組成部分,準(zhǔn)確的語義關(guān)系抽取對(duì)句意理解有十分重要的作用,理解句子核心詞之間的關(guān)系是把握句子整體含義的重要一步,因此,近些年語義關(guān)系抽取越來越受到國內(nèi)外研究學(xué)者的關(guān)注。

    機(jī)器學(xué)習(xí)方法在關(guān)系抽取上的高效性已被多次證明,許多傳統(tǒng)模型都致力于機(jī)器學(xué)習(xí)和特性設(shè)計(jì)上,這些模型通常依賴于一個(gè)完備的NLP流水線,同時(shí)還需要額外的手工特性或內(nèi)核[1-4]。而近年來,深度學(xué)習(xí)方法被廣泛應(yīng)用于關(guān)系分類任務(wù),它能夠在保證準(zhǔn)確率的前提下大幅減少人為調(diào)整的工作。如今有許多基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型用于該任務(wù),如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN),循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN),它們有些使用最短依賴路徑或依賴子樹[5-7],而另一些則減少預(yù)訓(xùn)練的操作,直接輸入原始語句來學(xué)習(xí)隱含特征[8-9]。這些方法都已被證明有效,但它們會(huì)平等地考慮句中每個(gè)詞,因而不可避免地會(huì)被無實(shí)意的詞所干擾。

    針對(duì)這一問題,一些研究提出注意力機(jī)制與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法[10-12],該機(jī)制使模型能夠自動(dòng)關(guān)注句子的核心詞,給予其更高的價(jià)值權(quán)重。如例句“The news brought about a commotion”,句中“brought(引起)”一詞對(duì)“Cause-Effect(因果)”關(guān)系有決定性作用,因此在整個(gè)句子的信息時(shí),模型會(huì)自動(dòng)為“brought(引起)”詞分配很高的權(quán)重,以加強(qiáng)其對(duì)關(guān)系標(biāo)簽的預(yù)測(cè)能力。此為詞層面的注意力機(jī)制,本文將其與神經(jīng)網(wǎng)絡(luò)結(jié)合以實(shí)現(xiàn)一個(gè)端到端的模型。

    神經(jīng)圖靈機(jī)(Neural Turing Machine, NTM),也可稱神經(jīng)記憶網(wǎng)絡(luò)(Neural Memory Network),本文使用循環(huán)神經(jīng)網(wǎng)絡(luò)作為其控制器,因而其本質(zhì)是一個(gè)具有額外存儲(chǔ)矩陣的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),而相比長(zhǎng)短時(shí)記憶(Long Short-Term Memory, LSTM)網(wǎng)絡(luò)或門控循環(huán)神經(jīng)網(wǎng)絡(luò)(Gated Recurrent Unit, GRU)等RNN上強(qiáng)化記憶能力的改進(jìn)模型,神經(jīng)圖靈機(jī)擁有更多且互不干擾的存儲(chǔ)空間,它允許RNN對(duì)輸入進(jìn)行無損的保存,從而賦予RNN更優(yōu)秀的記憶能力甚至使RNN擁有長(zhǎng)時(shí)記憶(持久記憶),因此,本文將其用于關(guān)系抽取任務(wù)作為循環(huán)神經(jīng)網(wǎng)絡(luò)的替代,以獲得更好的語境特征提取效果。

    綜上所述,本文的研究有以下三個(gè)核心點(diǎn):

    1)使用神經(jīng)圖靈機(jī)代替循環(huán)神經(jīng)網(wǎng)絡(luò)來提取語境特征,使每個(gè)詞的高級(jí)特征考慮語境信息,其中本文使用一種簡(jiǎn)化且更高效的神經(jīng)圖靈機(jī)。

    2)在神經(jīng)圖靈機(jī)之上加入詞層面的注意力機(jī)制,它使模型能夠自動(dòng)識(shí)別核心詞,促進(jìn)核心詞對(duì)分類的積極作用,并弱化干擾詞的影響,其中本文使用一種更適合任務(wù)的權(quán)重評(píng)分函數(shù)。

    3)將模型應(yīng)用于語義關(guān)系抽取任務(wù),與該任務(wù)的相關(guān)研究對(duì)比分析,并在SemEval- 2010 Task 8這一標(biāo)準(zhǔn)數(shù)據(jù)集上基本達(dá)到最好效果。

    1 相關(guān)工作

    雖然半監(jiān)督或無監(jiān)督的方法在關(guān)系抽取領(lǐng)域有一些應(yīng)用并得到了可觀的效果[1-2],但本文的研究主要針對(duì)有監(jiān)督的方法,它一般會(huì)得到更好的效果同時(shí)更易于驗(yàn)證和評(píng)價(jià)。

    在早期的關(guān)系分類研究中,學(xué)者多通過一系列自然語言處理工具進(jìn)行特征提取,或是使用一些精心設(shè)計(jì)的核心[3]加上支持向量機(jī)(Support Vector Machine, SVM)等分類器[4],他們?cè)谔卣魈崛』蚰P驮O(shè)計(jì)工作上會(huì)花費(fèi)大量精力,國內(nèi)許多研究也多基于此[13-14]。另一方面,針對(duì)缺少語料庫的問題,一些遠(yuǎn)程監(jiān)督方法將知識(shí)庫與非結(jié)構(gòu)化文本進(jìn)行對(duì)齊[15]。而SemEval- 2010 Task 8[16]發(fā)布后,后續(xù)研究大多使用它作為標(biāo)準(zhǔn)數(shù)據(jù)集來測(cè)試模型。

    傳統(tǒng)的方法確實(shí)可行且有效,但必然強(qiáng)烈依賴于模型設(shè)計(jì)和特征提取的質(zhì)量,易引入人為誤差。而隨著近年深度學(xué)習(xí)的發(fā)展,許多基于神經(jīng)網(wǎng)絡(luò)的模型被用來提取隱藏特征。文獻(xiàn)[5]的遞歸矩陣-矢量(Matrix-Vector Recurrent Neural Network, MV-RNN)模型為RNN中的每個(gè)節(jié)點(diǎn)添加一個(gè)矩陣,以提高整個(gè)網(wǎng)絡(luò)的適應(yīng)能力;文獻(xiàn)[6]提出了基于因子的組合嵌入模型(Factor-based Compositional embedding Model, FCM),將句子分解為子結(jié)構(gòu),獨(dú)立提取特征,并通過匯總層將其組合;文獻(xiàn)[7]提出了一種深度循環(huán)神經(jīng)網(wǎng)絡(luò)(Deep Recurrent Neural Network, DRNN)模型,通過解析樹的根詞將句子分為兩部分,并將其輸入到多層RNN中,其中神經(jīng)元會(huì)額外考慮上一層的相鄰詞信息。上述工作中的模型,根據(jù)語法分析樹來設(shè)計(jì),通過最小生成子樹整合語句,它們?nèi)〉昧撕芎玫男Ч?。另一方面,一些研究者嘗試構(gòu)建端到端模型,嵌入NLP特征來描述詞匯,直接將原始語句作為神經(jīng)網(wǎng)絡(luò)的輸入。文獻(xiàn)[8]提出了CNN提取詞匯和句子層面的特征。文獻(xiàn)[9]提出了擴(kuò)展中間語境的CNN,并使用簡(jiǎn)單的投票方案將其與雙向RNN結(jié)合。端到端模型更簡(jiǎn)潔且易于實(shí)現(xiàn),但不同于基于分析樹的模型,它無法刪減語法上不相關(guān)的詞,因此可能會(huì)受到無意義詞的干擾。

    近三年,注意力機(jī)制被用于NLP領(lǐng)域,首先由文獻(xiàn)[17]用于機(jī)器翻譯中的文本對(duì)齊問題,而后因其能夠自動(dòng)發(fā)現(xiàn)核心詞的特性,注意力機(jī)制很快引起人們的關(guān)注,并用于更多任務(wù);文獻(xiàn)[10]將注意機(jī)制與雙向RNN相結(jié)合用于語義關(guān)系抽取任務(wù);文獻(xiàn)[11]將句子按兩個(gè)實(shí)體詞拆分,使用分層的基于注意力RNN模型;文獻(xiàn)[12]提出了一種基于注意力的CNN模型,用實(shí)體來評(píng)價(jià)每個(gè)詞的重要程度。這些基于注意力的方法都以原始語句作為輸入,不再進(jìn)行額外的特征篩選或裁剪,然而性能卻比不使用注意力機(jī)制的模型更好。

    另一方面,神經(jīng)圖靈機(jī)于2014年由Google DeepMind實(shí)驗(yàn)室[18]提出。神經(jīng)圖靈機(jī)不能代替循環(huán)神經(jīng)網(wǎng)絡(luò),但它被證明確實(shí)比傳統(tǒng)的RNN及LSTM等改進(jìn)模型有更好的記憶能力,并能夠應(yīng)付一些復(fù)雜序列任務(wù)。文獻(xiàn)[19]后續(xù)又提出一種改進(jìn)模型,稱其為可微分神經(jīng)計(jì)算機(jī)(Differentiable Neural Computer, DNC),該模型具備高度定制的存儲(chǔ)尋址機(jī)制,并出色地完成了地鐵線路規(guī)劃、族譜關(guān)系推測(cè)、閱讀理解等實(shí)際問題。

    神經(jīng)圖靈機(jī)比傳統(tǒng)的RNN及其改進(jìn)有更好的記憶能力,因而它可以更好地完成語句信息提取。本文模型使用神經(jīng)圖靈機(jī)提取語句信息,而后使用注意力機(jī)制,強(qiáng)化核心詞的作用。最終本文的模型可以有效地從原始語句中提取關(guān)鍵特征,并出色地完成語義關(guān)系分類任務(wù)。

    2 模型描述及實(shí)現(xiàn)

    本文研究的模型,稱其為基于注意力的神經(jīng)圖靈機(jī)(Attention based Neural Turing Machine, Ab-NTM)模型。如圖1所示,該模型通過詞嵌入層獲得每個(gè)詞的數(shù)值化表示,使句子文本轉(zhuǎn)化為一個(gè)二維的數(shù)值矩陣表示,然后將該矩陣輸入一組雙向神經(jīng)圖靈機(jī)中獲得每個(gè)詞的高級(jí)特征,之后將所有詞通過注意力層進(jìn)行合并得到句子特征,最后輸入到分類器進(jìn)行分類。本文模型兩個(gè)關(guān)鍵點(diǎn)如下:

    1)雙向神經(jīng)圖靈機(jī)。神經(jīng)圖靈機(jī)在形式上類似于循環(huán)神經(jīng)網(wǎng)絡(luò),以同樣的方式接受序列輸入,因而本文模型以雙向RNN的方式構(gòu)建一組雙向神經(jīng)圖靈機(jī)。

    2)詞級(jí)注意力層。模型對(duì)所有詞使用注意力機(jī)制進(jìn)行加權(quán)合并,從而有針對(duì)性的提取句子特征,同時(shí)詞級(jí)的注意力層可以體現(xiàn)每個(gè)詞的重要程度。

    2.1 詞嵌入層

    詞嵌入層用于將詞語文本轉(zhuǎn)化為數(shù)值表示,其中數(shù)值應(yīng)在一定程度上包含詞語信息。本文選擇三種屬性對(duì)詞語進(jìn)行數(shù)值化表示,分別為word2vector的詞向量表示(簡(jiǎn)稱詞向量)、詞與實(shí)體的位置關(guān)系以及詞性信息。此外,還進(jìn)行了一個(gè)只使用word2vec詞向量屬性作為詞語表示的對(duì)比實(shí)驗(yàn),其效果稍差。

    圖1 本文模型概覽

    2.2 雙向神經(jīng)圖靈機(jī)

    2.2.1 長(zhǎng)短時(shí)記憶(LSTM)網(wǎng)絡(luò)

    本模型采用的神經(jīng)圖靈機(jī)其本質(zhì)是一個(gè)配備額外存儲(chǔ)矩陣的循環(huán)神經(jīng)網(wǎng)絡(luò)(使用LSTM單元),模型使用LSTM單元作為神經(jīng)圖靈機(jī)控制器(Controller),用于保持內(nèi)部狀態(tài)并生成存儲(chǔ)矩陣的地址信息。

    循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)多用于有時(shí)序的數(shù)據(jù),它對(duì)當(dāng)前時(shí)刻輸入進(jìn)行特征提取時(shí)會(huì)考慮之前時(shí)刻的特征信息,因而RNN可以完整地考慮整個(gè)序列信息。對(duì)于自然語言文本,語句可以視為一個(gè)文字序列,因此RNN被廣泛用于許多自然語言處理(NLP)任務(wù)中。為了增強(qiáng)RNN在長(zhǎng)序列上的性能,大多數(shù)模型使用LSTM作為傳統(tǒng)RNN(BasicRNN)的替代。LSTM由文獻(xiàn)[20]提出。其主要思想是利用線性存儲(chǔ)單元存儲(chǔ)每次迭代的信息,并利用三個(gè)門單元進(jìn)行讀取、寫入和擦除。此外還有許多LSTM變種被設(shè)計(jì)用于特定的任務(wù)作相應(yīng)的改進(jìn),在本文中,采用由文獻(xiàn)[21]提出的LSTM變體,這是一種被廣泛使用的變體形式。

    LSTM包含一個(gè)存儲(chǔ)單元ct,該存儲(chǔ)單元貫穿每個(gè)時(shí)間步,允許信息在沒有交互的情況下流過時(shí)間步。為了改變存儲(chǔ)器單元中的信息,LSTM設(shè)置三個(gè)邏輯門:用于寫入的輸入門it,用于擦除的遺忘門ft和用于讀取的輸出門ot。每個(gè)門的計(jì)算由輸入xt和前一個(gè)時(shí)間步的隱層值ht-1共同決定,并最終得出一個(gè)操作信息的比值。詳細(xì)計(jì)算如下所示:

    (1)

    (2)

    (3)

    ct=itgt+ftct-1

    (4)

    (5)

    (6)

    其中:W和b均為神經(jīng)網(wǎng)絡(luò)待訓(xùn)練的參數(shù),下標(biāo)表示所屬計(jì)算單元。

    2.2.2 神經(jīng)圖靈機(jī)

    神經(jīng)圖靈機(jī)(NTM)使用LSTM作為控制器,LSTM內(nèi)部的存儲(chǔ)單元作為內(nèi)部狀態(tài),而在LSTM外部本文額外使用一個(gè)二維的存儲(chǔ)矩陣,用于保存外部狀態(tài),其整體架構(gòu)如圖2所示。

    與文獻(xiàn)[19]提出的可微分神經(jīng)計(jì)算機(jī)(DNC,一種最新的神經(jīng)圖靈機(jī)改進(jìn))相比,本文精簡(jiǎn)了NTM的尋址機(jī)制,直接利用注意力機(jī)制,使用LSTM的隱層以及存儲(chǔ)-輸入相似度來生成,計(jì)算寫入和讀取的存儲(chǔ)地址;而DNC在尋址上引入連續(xù)存儲(chǔ)、先進(jìn)先出等機(jī)制,這適用于其研究的序列復(fù)制、線路規(guī)劃等任務(wù),但對(duì)于關(guān)系抽取的研究任務(wù)并不十分適用,而且引入這些機(jī)制會(huì)使模型變得十分復(fù)雜。實(shí)驗(yàn)表明,本文精簡(jiǎn)的模型達(dá)到了相當(dāng)?shù)男Ч?,并且?xùn)練耗時(shí)更短。

    在圖2中,標(biāo)有“時(shí)序”的虛線表示模型在時(shí)間序列中的狀態(tài)維持,即按時(shí)間順序從頭至尾傳遞;標(biāo)有“LSTM”的實(shí)線是常規(guī)LSTM的工作機(jī)制;標(biāo)有“NTM”的實(shí)線是神經(jīng)圖靈機(jī)的改進(jìn)之處,每個(gè)時(shí)間步存儲(chǔ)矩陣獲得輸入將其存放在合適的地址位置上,然后讀取一行內(nèi)容分別送入輸出單元和下一個(gè)時(shí)間步的控制器;標(biāo)有“地址”的點(diǎn)狀線是存儲(chǔ)地址的生成,本文使用LSTM隱層以及輸入-存儲(chǔ)矩陣相似度(圖中未標(biāo)出)來計(jì)算地址。圖中下方為輸入地址,上方為輸出地址,兩者分別計(jì)算。

    圖2 神經(jīng)圖靈機(jī)

    存儲(chǔ)矩陣的地址計(jì)算公式如下:

    cost=softmax(cosine(Mt-1,xt))

    (7)

    (8)

    (9)

    (10)

    (11)

    得到地址后,存儲(chǔ)矩陣的寫入和讀取計(jì)算公式如下:

    vt=relu(Wxmxt+bxm)

    (12)

    (13)

    (14)

    (15)

    最終模型得到一系列神經(jīng)圖靈機(jī)的隱層輸出,并且它們與最初的輸入一一對(duì)應(yīng),即每個(gè)輸出對(duì)應(yīng)句中的一個(gè)詞,這可認(rèn)為是該詞的深層特征。本文將它們拼接在一起[h1,h2,…,ht,…],然后輸入到后續(xù)網(wǎng)絡(luò)。

    2.2.3 雙向網(wǎng)絡(luò)

    通常,一個(gè)單詞的語義信息會(huì)同時(shí)受到前文和后文的影響,而單向的循環(huán)神經(jīng)網(wǎng)絡(luò)只考慮前文信息,因此,本文用構(gòu)造雙向RNN的方法構(gòu)建雙向神經(jīng)圖靈機(jī),它由兩個(gè)神經(jīng)圖靈機(jī)組成,分別使用正向和反向序列作為輸入,然后將兩個(gè)網(wǎng)絡(luò)的隱層輸出拼接在一起作為雙向網(wǎng)絡(luò)的輸出,最后的輸出將包含整個(gè)句子的語義信息。

    2.3 詞級(jí)注意力層

    考慮到每個(gè)單詞可能對(duì)分類任務(wù)有不同的貢獻(xiàn),即有些詞起到關(guān)鍵作用而有些詞作用不大,因而本文引入了單詞層面的注意力層。利用注意力機(jī)制,本文將每個(gè)單詞對(duì)應(yīng)的高級(jí)特征和整個(gè)句子的特征作為驅(qū)動(dòng),為每個(gè)單詞計(jì)算一個(gè)評(píng)分權(quán)重,然后將所有詞的高級(jí)特征加權(quán)合并,因此,注意機(jī)制會(huì)更多地關(guān)注對(duì)預(yù)測(cè)有重要意義的單詞,并賦予它們更大的權(quán)重。

    詞級(jí)注意力層的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。合并每個(gè)單詞對(duì)應(yīng)的隱層輸出ht和代表整句信息的最終時(shí)刻隱層hlast,對(duì)其進(jìn)行非線性映射并作歸一化,從而模型可求解出一個(gè)權(quán)值at,然后將詞的高級(jí)特征加權(quán)求和,得到句子的最終特征。

    圖3 詞級(jí)注意力層結(jié)構(gòu)

    受文獻(xiàn)[20]的啟發(fā),本文同樣考慮了三種不同的評(píng)分函數(shù),如式(19)所示,用于注意力中ht和hlast的組合,并測(cè)試其性能。最終注意力層的計(jì)算如下所示:

    (16)

    (17)

    et=k*score(ht,hlast)

    (18)

    (19)

    其中:ha是注意力層的輸出,即句子的最終特征;at對(duì)應(yīng)于t位置單詞的權(quán)重,是通過score函數(shù)計(jì)算并進(jìn)行歸一化的實(shí)數(shù)。

    2.4 正則化與訓(xùn)練

    dropout方法在訓(xùn)練時(shí)按比例隨機(jī)屏蔽一些神經(jīng)元,在測(cè)試時(shí)打開所有神經(jīng)元進(jìn)行預(yù)測(cè),從而減緩過擬合速度,使神經(jīng)網(wǎng)絡(luò)更充分地自我學(xué)習(xí),已經(jīng)有諸多實(shí)驗(yàn)證明dropout方法是切實(shí)有效的。文獻(xiàn)[23]進(jìn)行了改進(jìn),提供了一種在循環(huán)神經(jīng)網(wǎng)絡(luò)上使用dropout的方法。在本模型中,采用類似的方法對(duì)神經(jīng)圖靈機(jī)單元進(jìn)行封裝,并在神經(jīng)圖靈機(jī)層和輸出層分別使用0.6和0.4的drop比例。

    另外,本文使用L2范式對(duì)參數(shù)矩陣進(jìn)行限制,L2范式可以有效地提高矩陣的稀疏性。以λ和λ2作為學(xué)習(xí)率,J(θ)作為損失函數(shù),本文使用交叉熵函數(shù)計(jì)算損失。

    3 實(shí)驗(yàn)結(jié)果及分析

    3.1 數(shù)據(jù)集和參數(shù)設(shè)置

    3.1.1 數(shù)據(jù)集

    本文使用常用的標(biāo)準(zhǔn)數(shù)據(jù)集SemEval- 2010 Task 8[14]來評(píng)估模型,該數(shù)據(jù)為每個(gè)樣本注釋一種關(guān)系,包含9種類型以及1個(gè)不屬于任何一種關(guān)系的“Other”類型,9種關(guān)系類型分別為Cause-Effect(原因-效果)、Instrument-Agency(工具-使用者)、Product-Producer(產(chǎn)品-生產(chǎn)者)、Content-Container(內(nèi)容-容器)、Entity-Origin(實(shí)體-源頭)、Entity-Destination(實(shí)體-歸宿)、Component-Whole(部分-整體)、Member-Collection(成員-集體)和Message-Topic(消息-話題)。考慮到關(guān)系存在方向,即主動(dòng)方和被動(dòng)方的區(qū)別,該數(shù)據(jù)集額外注釋了9種關(guān)系的方向(“Other”類型沒有方向),因此數(shù)據(jù)集標(biāo)簽一共有19種。該數(shù)據(jù)集有8 000個(gè)訓(xùn)練樣本和2 717個(gè)測(cè)試樣本,本文直接使用這一樣本分配方案。SemEval- 2010 Task 8官方提供了一個(gè)評(píng)分程序,本文使用其中的宏(Macro)平均F1分?jǐn)?shù)方法來評(píng)估本文模型的表現(xiàn),其他學(xué)者在本任務(wù)的研究也多采用該評(píng)分方式。

    3.1.2 參數(shù)設(shè)置

    本文使用在維基百科上訓(xùn)練的word2vec skip-gram模型[21]將單詞轉(zhuǎn)化為數(shù)值化的向量表示,即詞向量,該模型作為公共數(shù)據(jù)集被許多研究使用。此外,本文還嘗試了senna模型[23]和glove模型[24]進(jìn)行詞向量嵌入,同時(shí)測(cè)試了不同詞向量維度下模型的效果。本文對(duì)詞性(POS)特征和位置特征作了預(yù)處理將其轉(zhuǎn)化為dpos和dp維度的數(shù)值化向量,使用Stanford POS Tagger工具包自動(dòng)進(jìn)行詞性分析。本文使用高斯分布來隨機(jī)初始化權(quán)重矩陣,使用Adam優(yōu)化方法[25]迭代更新參數(shù),訓(xùn)練神經(jīng)網(wǎng)絡(luò)。表1列出了其他一些超參數(shù)的詳細(xì)設(shè)置。

    3.2 對(duì)比實(shí)驗(yàn)分析

    3.2.1 不同模型對(duì)比

    表2展示了本文模型與語義關(guān)系抽取領(lǐng)域相關(guān)研究的F1分?jǐn)?shù)比較,本文模型的性能基本達(dá)到了最優(yōu)水平。為便于分析,本文將本領(lǐng)域相關(guān)研究分為4類。

    本文實(shí)驗(yàn)結(jié)果評(píng)價(jià)指標(biāo)使用F1值計(jì)算方法,如式(20)所示。本文采用的數(shù)據(jù)集有9個(gè)子類別和1個(gè)“Other”類別,總體F1指標(biāo)使用子類別平均F1值計(jì)算方式:

    (20)

    表1 部分超參數(shù)的設(shè)置

    表2 SemEval 2010 Task 8數(shù)據(jù)集上的不同模型對(duì)比

    1)非神經(jīng)網(wǎng)絡(luò)模型。本文選擇了一個(gè)使用支持向量機(jī)(SVM)分類器的代表性方法[4],該方法考慮了8組原始特征:詞匯(Lexical)、語法依賴(Dependency)、PropBank、FrameNet、Hypernym、NomLex-Plus、NGrams和TextRunner。該研究將這8種特征進(jìn)行數(shù)值化表示用以表示詞或句子,然后將它們放入SVM進(jìn)行分類,該研究發(fā)現(xiàn)這些特征都有助于分類。該方法以82.19%的分?jǐn)?shù)奪得SemEval任務(wù)的冠軍,但后續(xù)的關(guān)系分類領(lǐng)域研究超越了這一分?jǐn)?shù)。這是因?yàn)樽罱难芯恐饕峭ㄟ^神經(jīng)網(wǎng)絡(luò)對(duì)原始信息進(jìn)行深層特征挖掘,而不是手動(dòng)地精心挑選原始特征,即后續(xù)的研究將重點(diǎn)放在了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)上,而不是特征挑選,挖掘特征表示的任務(wù)交給神經(jīng)網(wǎng)絡(luò)來完成,因?yàn)槿藶榈幕蛲ㄟ^預(yù)處理引入的特征可能存在偏差或干擾,而足夠強(qiáng)大的神經(jīng)網(wǎng)絡(luò)可以自動(dòng)尋找特征關(guān)系進(jìn)行分類。也有越來越多的研究表明,通過隱層特征提取,少量的NLP特征就足以完成分類。

    2)最短依賴樹(Shortest Dependency Path, SDP)模型。SDP是檢測(cè)語法結(jié)構(gòu)和語法邏輯的一個(gè)有效方法,它通過構(gòu)建語法樹上兩實(shí)體的最短生成樹,消除了兩個(gè)實(shí)體聯(lián)系之外的不相關(guān)詞,即剩余詞語是與兩實(shí)體的表達(dá)直接相關(guān)的(在語法上)。根據(jù)這個(gè)樹框架,父節(jié)點(diǎn)對(duì)子節(jié)點(diǎn)有直接影響,樹中的詞語都是有直接聯(lián)系的,因此,基于SDP的模型可以忽略無意義的單詞,并且輸入序列可以依據(jù)語法結(jié)構(gòu)建立;但這只是理想狀態(tài),實(shí)際情況下,SDP可能并不總是準(zhǔn)確,許多語義上相關(guān)甚至極為重要的詞,在語法上可能并不相連,這些詞如果刪去就會(huì)丟失信息;并且另一方面,語法樹的解析時(shí)間會(huì)隨著句子長(zhǎng)度增加而成倍地增長(zhǎng),所以語法樹預(yù)處理在長(zhǎng)句子上會(huì)消耗大量時(shí)間。盡管如此,從實(shí)驗(yàn)結(jié)果來看,基于SDP的模型具有優(yōu)勢(shì),SDP是一個(gè)十分有效的改進(jìn)。而本文模型使用注意力機(jī)制,這在一定程度上可以代替SDP刪除無意義詞的工作。

    3)端到端模型。隨著深度學(xué)習(xí)的發(fā)展,一些研究者寄希望于通過網(wǎng)絡(luò)自動(dòng)提取語句特征、探尋語句內(nèi)在聯(lián)系,不再專注于挑選特征或進(jìn)行人為的結(jié)構(gòu)重建,而是改善網(wǎng)絡(luò)結(jié)構(gòu),加強(qiáng)網(wǎng)絡(luò)表達(dá)能力,使其表現(xiàn)力更強(qiáng)、更加健壯。換句話說,端到端的模型旨在盡量減少人為干預(yù),同時(shí)也減輕工作量,把預(yù)訓(xùn)練的任務(wù)交給神經(jīng)網(wǎng)絡(luò)完成,真正實(shí)現(xiàn)輸入端(原始語句)到輸出端(分類結(jié)果)的網(wǎng)絡(luò)構(gòu)建。根據(jù)實(shí)驗(yàn)結(jié)果,這些模型比過去的研究具有一定優(yōu)勢(shì),模型雖計(jì)算量增大但更易于實(shí)現(xiàn)。而與SDP的神經(jīng)網(wǎng)絡(luò)模型相比,不相上下,這是因?yàn)榧词股顚泳W(wǎng)絡(luò)結(jié)構(gòu)也存在表現(xiàn)能力的極限,不引入人工先驗(yàn)知識(shí)雖然減少了誤差,但也為模型減少了幫助,所以性能上還有待改進(jìn)。

    4)基于注意力的模型。通過注意機(jī)制可為輸入的每個(gè)單詞提供權(quán)重,句子完整特征通過此權(quán)重加權(quán)地整合,這能減少噪聲詞的干擾,并將更大的權(quán)重賦予核心詞以加強(qiáng)它們對(duì)分類預(yù)測(cè)的影響。從表2中實(shí)驗(yàn)結(jié)果可看出,由于對(duì)詞語影響力的調(diào)節(jié),基于注意力的模型比端到端模型更勝一籌。與SDP模型相比,對(duì)于不相關(guān)的詞,注意力模型不是將其從句子中直接去除,而是為它們賦予較小的權(quán)重,這可以減輕錯(cuò)誤判斷的情況。然而,如果探討注意力機(jī)制的計(jì)算方法,就可發(fā)現(xiàn)注意力機(jī)制的權(quán)重評(píng)分十分依賴于上一層網(wǎng)絡(luò)的隱層輸出,因此首先使用更加有效的神經(jīng)網(wǎng)絡(luò)進(jìn)行高級(jí)特征提取,可以改善模型整體的性能,這也就是本文模型進(jìn)行的一個(gè)改進(jìn)。

    3.2.2 對(duì)比不同詞向量

    一般來說,更大的詞向量維度可以為詞義的表現(xiàn)提供更多空間,然而這種表現(xiàn)力不會(huì)隨著維度增加而無限增長(zhǎng)。因?yàn)橥ǔ:线m維度的向量空間已足夠詞義表示,更大的維度反而可能因詞向量難以訓(xùn)練,導(dǎo)致訓(xùn)練不完全而引入噪聲,同時(shí)也會(huì)使網(wǎng)絡(luò)更復(fù)雜、穩(wěn)定性變差,使訓(xùn)練變得困難。從表2的實(shí)驗(yàn)結(jié)果也可看出,使用640維比使用100維詞向量的模型效果要差不少(本文沒有在公共數(shù)據(jù)中找到兩者中間的維度)。然而,適當(dāng)?shù)卦黾釉~向量維度,可以增強(qiáng)詞語的表現(xiàn)力,以此提高模型整體的性能。如表2所示,具有100維度的word2vec skip-gram模型[21]效果最好,許多已有研究也同樣使用該詞向量模型,因此本文使用該種詞向量進(jìn)行下面的實(shí)驗(yàn)。

    3.3 注意力機(jī)制的實(shí)驗(yàn)分析

    3.3.1 注意力評(píng)分函數(shù)的比較

    本節(jié)比較了注意力機(jī)制中不同評(píng)分函數(shù)的效果,計(jì)算公式如式(19)所示。評(píng)分函數(shù)接受兩個(gè)輸入,分別為每個(gè)單詞的隱層特征和整個(gè)句子的隱層特征,輸出為一個(gè)實(shí)數(shù),用于表示該詞的得分,即該詞的權(quán)重。不同的評(píng)分函數(shù)會(huì)影響到整個(gè)注意力層的好壞,從而影響到模型的效果,圖4顯示了分別使用3個(gè)評(píng)分函數(shù)的模型的訓(xùn)練損失曲線,評(píng)分函數(shù)如式(19)所示。

    如圖4所示,3個(gè)模型在下降速度上幾乎沒有差別,只有concat的計(jì)算方式略微慢于另外兩個(gè),這或許是因?yàn)樵撚?jì)算方式需要更大的參數(shù)矩陣Wa,即待訓(xùn)練參數(shù)更多,因而需要更多時(shí)間進(jìn)行訓(xùn)練;但總體來看,三者的訓(xùn)練速度可以認(rèn)為是相同的。

    圖4 注意力評(píng)分函數(shù)的訓(xùn)練Loss

    在模型性能上,dot、consine、concat三個(gè)方法的F1得分分別為86.2%、85.9%和85.6%,concat方法的得分較低,因?yàn)閏oncat方法實(shí)際上就是一個(gè)單層的神經(jīng)網(wǎng)絡(luò),通過單層神經(jīng)網(wǎng)絡(luò)往往很難有效地提取特征,進(jìn)而單詞權(quán)重的評(píng)分也不會(huì)太好,本文同樣嘗試了多層神經(jīng)網(wǎng)絡(luò)(Multi-Layer Perceptron, MLP)來代替單層神經(jīng)網(wǎng)絡(luò),但效果提升不明顯。

    3.3.2 詞級(jí)注意力的可視化展示

    詞級(jí)注意力一個(gè)優(yōu)勢(shì)就在于可以查看模型對(duì)哪些詞語進(jìn)行了加強(qiáng),對(duì)哪些詞語進(jìn)行了削弱,因?yàn)樽⒁饬C(jī)制會(huì)為每個(gè)詞提供一個(gè)權(quán)值,查看這些權(quán)值就可以了解模型“偏袒”了哪些詞,相應(yīng)地,本文可以推斷出模型認(rèn)為這些詞更有助于分類任務(wù)。

    圖5展示了兩個(gè)樣本句的注意力權(quán)重分布情況,其中圖5(a)是注意力機(jī)制有效的情況,而圖5(b)則是一個(gè)反例。

    如圖5(a)所示,對(duì)于樣本的句子“The most common were about and recycling.(最常見的是關(guān)于和再循環(huán)。)”,兩個(gè)實(shí)體間的關(guān)系是“Message-Topic(消息-話題)”。實(shí)際上,通過句中的“about(關(guān)于)”一詞就基本足以斷定兩個(gè)實(shí)體的關(guān)系。而從圖上也可看出,模型為“about(關(guān)于)”一詞賦予了很高的權(quán)重,即模型同樣認(rèn)為該詞十分重要。這說明注意力機(jī)制在語義關(guān)系抽取任務(wù)上是十分有效的,同時(shí)它鼓勵(lì)模型以抓關(guān)鍵詞的方法進(jìn)行句意理解,這在實(shí)際情況下通常也是十分有效的。

    然而,如圖5(b)所示,注意力機(jī)制也不能應(yīng)付全部句子,比如對(duì)于“My stay tied all the time.(我的 總是系得很緊。)”,句中兩個(gè)實(shí)體的關(guān)系是“Component-Whole(部分-整體)”,單從句子很難獲得“鞋”和“鞋帶”的關(guān)系,實(shí)際上判斷兩者的關(guān)系更多的是通過常識(shí),或者說通過兩個(gè)詞自身的意思,所以在注意力層,模型也很難區(qū)分出哪個(gè)詞更為重要,但從圖上看,至少模型得出“My(我的)”單詞貢獻(xiàn)不大。

    綜上所述,詞級(jí)注意力層可促使模型著重理解關(guān)鍵詞,從而完成分類,這在大多數(shù)情況下是十分有效的。而在少數(shù)情況下,句中沒有詞對(duì)分類起到顯著作用,則注意力機(jī)制效果不明顯,這也是本文模型的一個(gè)主要失分點(diǎn),相信在以后研究中,更準(zhǔn)確的詞向量表示或更強(qiáng)大的模型結(jié)構(gòu)可以改善這一問題。

    圖5 注意力層權(quán)重分布

    3.4 神經(jīng)圖靈機(jī)的實(shí)驗(yàn)分析

    3.4.1 神經(jīng)圖靈機(jī)與LSTM對(duì)比

    考慮在關(guān)系抽取任務(wù)上使用的神經(jīng)圖靈機(jī),其存儲(chǔ)矩陣十分龐大,不便于展示,并且很難給出一個(gè)明確定義指明怎樣使用存儲(chǔ)器是正確的,即對(duì)于在每次計(jì)算中使用多少信息是很難設(shè)定正確結(jié)果的(神經(jīng)網(wǎng)絡(luò)本來就是黑盒計(jì)算),所以本文使用一個(gè)相對(duì)簡(jiǎn)單且有明確答案的例子來證明神經(jīng)圖靈機(jī)的有效性,同時(shí)將展示它如何使用內(nèi)部的存儲(chǔ)矩陣。

    本文使用“隨機(jī)多次復(fù)制”的任務(wù)來對(duì)比神經(jīng)圖靈機(jī)和LSTM。該任務(wù)給模型一串隨機(jī)長(zhǎng)度的數(shù)字以及一個(gè)隨機(jī)的復(fù)制次數(shù),期望的模型輸出結(jié)果是復(fù)制了相應(yīng)次數(shù)的該數(shù)字串。該任務(wù)需要模型有十分牢靠的記憶能力,在多次復(fù)制后仍能保持?jǐn)?shù)字串的準(zhǔn)確性;同時(shí)還需要模型有一定的泛化能力,因?yàn)閿?shù)字串長(zhǎng)度和復(fù)制次數(shù)是隨機(jī)的,即模型需要理解并使用自身記憶,而不是單純地輸入輸出。

    如圖6(a)所示,為便于展示,本文將輸入的01序列轉(zhuǎn)化為像素方格(按列分成不同時(shí)間步輸入),灰色代表1,白色代表0,實(shí)驗(yàn)?zāi)繕?biāo)是連續(xù)復(fù)制并輸出10次該輸入內(nèi)容。相比LSTM,神經(jīng)圖靈機(jī)在較長(zhǎng)的時(shí)間序列上也保持了良好的記憶能力,如圖6(a)中NTM模型的結(jié)果,每個(gè)時(shí)間步的圖形與輸入基本一致,而只在最后幾步有細(xì)微畸變;但使用LSTM,在長(zhǎng)時(shí)間迭代后,記憶信息發(fā)生了很大的改變。

    分析其原因,是因?yàn)長(zhǎng)STM只有一塊存儲(chǔ)單元,對(duì)于不同時(shí)間步的信息,需要反復(fù)寫入或擦除存儲(chǔ)單元。如果記憶的保存和使用間隔較短,這種方式是直接且有效的;但如果任務(wù)需要模型進(jìn)行較長(zhǎng)時(shí)間的記憶,或模型需要同時(shí)維持多段記憶,則LSTM存儲(chǔ)單元中的信息會(huì)交叉干擾,難以無阻礙地傳播到較遠(yuǎn)時(shí)刻。而NTM在存儲(chǔ)上使用二維的存儲(chǔ)矩陣,使用注意力機(jī)制進(jìn)行地址選擇,這可以較好地解決多記憶維持問題,不同地址的存儲(chǔ)信息相互隔離,記憶可以不經(jīng)修改地穿過不相關(guān)的時(shí)間步,并且可以有順序地存放和使用,如圖6(b)所示。

    圖6 “隨機(jī)多次復(fù)制”實(shí)驗(yàn)效果

    對(duì)于語義關(guān)系抽取任務(wù),本文使用NTM來為每個(gè)詞加入上下文信息,這與“隨機(jī)多次復(fù)制”任務(wù)是相似的,同樣是多記憶同時(shí)維持的任務(wù)。因?yàn)榫渥又胁皇敲總€(gè)單詞之間都有聯(lián)系的,更多情況下應(yīng)把單詞分成幾組,不同組應(yīng)使用不同的記憶單元,即對(duì)應(yīng)NTM中不同地址上的存儲(chǔ)單元。通過圖7,可以發(fā)現(xiàn)在語義關(guān)系抽取任務(wù)上NTM的F1結(jié)果確實(shí)比LSTM好。

    圖7 不同模型的抽取任務(wù)效果對(duì)比

    3.4.2 模型在各分類上的F1分?jǐn)?shù)

    表3展示了本文的模型在語料9個(gè)類別中分類的F1分?jǐn)?shù),可看出在一些分類中(如Cause-Effect(原因-效果)和Entity-Origin(實(shí)體-源頭))表現(xiàn)較好,而在一些分類中(如Component-Whole(部分-整體)和Instrument-Agency(工具-使用者))表現(xiàn)較差。

    本文分析了這些分類的句子特點(diǎn),發(fā)現(xiàn)在表現(xiàn)較好的分類中,句子常出現(xiàn)一些明確的關(guān)鍵詞,如“原因-效果”類別的句子中常出現(xiàn)“cause”“result”等詞以及“實(shí)體-源頭”類別的句子中常出現(xiàn)“from”等詞,這些關(guān)鍵詞在對(duì)應(yīng)分類中往往詞性相同、語義相近。相對(duì)的,表現(xiàn)不好的分類,其句子表述可能存在多種形式,且差異很大,模型較難從中提取相同特征;或者與其他分類表述形式類似,易造成干擾,如“部分-整體”和“成員-集體”有些表述是一致的。

    得益于神經(jīng)圖靈機(jī)的記憶能力優(yōu)化,本文模型可以更準(zhǔn)確地獲取上下文信息,從表3中準(zhǔn)確率的分布情況可知,各類別準(zhǔn)確率較平均,即本文的模型沒有表現(xiàn)非常差的類別,這意味著模型在一定程度上理解了語義關(guān)系抽取這個(gè)任務(wù),并對(duì)每個(gè)子類別都有一套分類方式;但是總體來看,F(xiàn)1分?jǐn)?shù)還有近14%的上升空間,此模型還存在改進(jìn)之處以得到更好的效果。

    表3 本文模型在各類別上的F1分?jǐn)?shù) %

    4 結(jié)語

    本文在語義關(guān)系抽取任務(wù)上,針對(duì)核心詞表現(xiàn)力弱和長(zhǎng)語句效果不佳的問題,提出一種基于詞級(jí)注意力的雙向神經(jīng)圖靈機(jī)模型。其中,詞級(jí)注意力層可增強(qiáng)句中關(guān)鍵詞的影響力,促使模型以抓關(guān)鍵詞的方法理解句意,這可以解決端到端模型(即輸入語句不作裁剪或結(jié)構(gòu)調(diào)整)易被不相關(guān)詞干擾的問題;神經(jīng)圖靈機(jī)可視為一種循環(huán)神經(jīng)網(wǎng)絡(luò)的改進(jìn),擁有一個(gè)額外的存儲(chǔ)矩陣,允許網(wǎng)絡(luò)通過存儲(chǔ)地址進(jìn)行信息記憶,使得模型可以進(jìn)行多方面的記憶(不同方面放于不同地址),且各方面之間互不干擾,相比常用的LSTM,這可以增強(qiáng)詞語高級(jí)特征提取的效果。本文將兩者進(jìn)行分層組合,使其共同服務(wù)于關(guān)系抽取任務(wù)。

    在語義關(guān)系抽取常用的公共數(shù)據(jù)集SemEval- 2010 Task 8上測(cè)試了模型,并分成非神經(jīng)網(wǎng)絡(luò)模型、最短依賴樹模型、端到端模型、基于注意力的模型4組與該領(lǐng)域相關(guān)研究作比較,進(jìn)行了詳細(xì)對(duì)比分析。此外,還單獨(dú)分析了詞級(jí)注意力層和神經(jīng)圖靈機(jī)的有效性以及它們?cè)陉P(guān)系抽取任務(wù)上的適應(yīng)性。本文的模型最終實(shí)驗(yàn)結(jié)果以86.2%的F1值優(yōu)于目前大多數(shù)相關(guān)研究,但仍存在一些需要改進(jìn)的地方,未來工作中,更準(zhǔn)確的詞向量表示或一組更合適的網(wǎng)絡(luò)超參數(shù)可以帶來更好的效果。

    猜你喜歡
    注意力神經(jīng)網(wǎng)絡(luò)神經(jīng)
    神經(jīng)松動(dòng)術(shù)在周圍神經(jīng)損傷中的研究進(jìn)展
    讓注意力“飛”回來
    中西醫(yī)結(jié)合治療橈神經(jīng)損傷研究進(jìn)展
    神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
    電子制作(2019年19期)2019-11-23 08:42:00
    “揚(yáng)眼”APP:讓注意力“變現(xiàn)”
    A Beautiful Way Of Looking At Things
    “神經(jīng)”病友
    Coco薇(2015年5期)2016-03-29 22:51:13
    基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
    復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
    各種神經(jīng)損傷的病變范圍
    健康管理(2015年2期)2015-11-20 18:30:01
    体育| 台江县| 西乌| 二手房| 汤阴县| 武义县| 华容县| 贵阳市| 莱西市| 甘洛县| 白河县| 沿河| 安图县| 晋州市| 西乌| 无棣县| 涡阳县| 集贤县| 大连市| 依安县| 唐海县| 山阳县| 万安县| 河西区| 延长县| 佛冈县| 通化县| 新晃| 永福县| 木兰县| 黄陵县| 星子县| 台南县| 凤凰县| 唐海县| 绥中县| 江津市| 绥滨县| 台州市| 广汉市| 临猗县|