王立凱,曲維光,,魏庭新,周俊生,顧彥慧,李 斌
(1.南京師范大學(xué)計(jì)算機(jī)與電子信息學(xué)院,江蘇 南京 210023) (2.南京師范大學(xué)文學(xué)院,江蘇 南京 210097) (3.南京師范大學(xué)國際文化教育學(xué)院,江蘇 南京 210097)
零指代是語言學(xué)中一種特殊的語言現(xiàn)象,是指為了保證語言的連貫性而省略的、且可通過上下文推斷出的語言單元. 該省略的語言單元在句子中承擔(dān)相應(yīng)的句法成分,可以和前文中一個(gè)或多個(gè)名詞短語等語言單元構(gòu)成指代關(guān)系. 這種被省略的語言單元稱為零代詞,前文中與其構(gòu)成指代關(guān)系的語言單元被稱為先行語.
例句1雖然[卓偉]的新聞裝備落后,但Ф1說起娛樂新聞觀念,Ф2卻比許多年輕同事更自由,更激進(jìn).
例句1中,Ф2就是一個(gè)零代詞,指向前文中的人名“卓偉”. 但Ф1就不是一個(gè)零代詞,前文中沒有語言單元與其構(gòu)成指代關(guān)系. 因此,零代詞的兩個(gè)必要條件是:(1)句中存在句法成分缺省;(2)前文中有語言單元與其構(gòu)成指代關(guān)系. 與英文相比,漢語是一種意合型語言,其特點(diǎn)是形態(tài)不完整,這使得漢語中存在大量的缺省. 據(jù)Kim[1]統(tǒng)計(jì),漢語中存在句法成分省略的現(xiàn)象高達(dá)36%,而英文中的省略現(xiàn)象則不超過4%,所以零指代的識別與消解對于中文信息處理來說顯得更加迫切和重要.
中文零指代通??煞譃閮蓚€(gè)子任務(wù),一是零代詞的識別,二是零代詞的消解. 目前的研究工作多數(shù)聚焦于消解部分,并取得了豐碩成果[2-4],而零代詞的識別研究相對較少. 零代詞識別是指識別出句子中有回指的缺省語言單元的位置,是零指代消解必要的前期基礎(chǔ). 在早期的零代詞識別研究中,主要是利用規(guī)則的方法去識別零代詞[5],缺點(diǎn)是難以制定較為全面的規(guī)則且可泛化性差. 也有一些學(xué)者如Zhao[6]、Kong[7]等利用傳統(tǒng)機(jī)器學(xué)習(xí)方法去識別中文零代詞,但仍受限于特征模板和專家知識,忽略了語義特征對于識別零代詞的重要作用. Zhao等[6]第一次使用了基于機(jī)器學(xué)習(xí)的方法進(jìn)行中文零代詞的識別與消解. 實(shí)驗(yàn)過程中,在識別階段使用了13個(gè)特征,在消解階段使用了多達(dá)26個(gè)特征. Kong等[7]提出了一個(gè)基于樹核支持向量機(jī)的統(tǒng)一中文零指代消解框架,該框架包含3個(gè)部分,分別為候選零代詞的生成、回指零代詞的識別和消解. Chen等[8]也提及了其使用的基于規(guī)則的零代詞識別方法來作為消解工作的鋪墊,并在之前研究的基礎(chǔ)上豐富了零代詞特征,利用SVMlight算法取得了當(dāng)時(shí)最好的效果[9]. 也有學(xué)者如Liu等[10]提出利用GRU網(wǎng)絡(luò)去學(xué)習(xí)詞向量中蘊(yùn)含的語義信息,但忽視了句子中不同詞語所蘊(yùn)含的語義信息是不同的,同時(shí)也忽視了句法結(jié)構(gòu)信息在識別過程中的重要作用. Kong等[11]在使用共指鏈信息進(jìn)行零代詞識別和消解時(shí),將零指代識別分為兩個(gè)步驟:零代詞候選位置生成和零代詞識別,在生成零代詞候選位置時(shí)使用了句法信息,在識別時(shí)則利用詞匯、句法和語義特征構(gòu)造了一個(gè)分類器. Song等[12]則使用多任務(wù)學(xué)習(xí)方法,同時(shí)使用BERT進(jìn)行編碼,對零代詞識別和消解進(jìn)行聯(lián)合學(xué)習(xí),但由于錯(cuò)誤傳遞,效果不盡如人意,聯(lián)合模型F1值均低于40%.
本文為解決上述問題、提升零代詞識別效果,提出了一種基于深度神經(jīng)網(wǎng)絡(luò)的回指零代詞識別方法,首先利用注意力機(jī)制去捕獲零代詞上下文的語義信息,對蘊(yùn)含更多語義信息的詞語分配更高的權(quán)重,同時(shí)利用Tree-LSTM去挖掘句法結(jié)構(gòu)信息,最后通過兩者的融合特征識別零代詞. 相比于傳統(tǒng)識別方法需要建立繁瑣的規(guī)則體系或特征模板、泛化性差等缺點(diǎn),本文通過深度神經(jīng)網(wǎng)絡(luò)從輸入文本中抽取抽象特征信息來識別零代詞,降低了模型對繁瑣的手工特征和專家知識的依賴. 在OntoNotes5.0中文語料上的實(shí)驗(yàn)結(jié)果證明,該方法有效提升了中文零代詞的識別效果.
圖1 中文零代詞識別整體框架圖Fig.1 Framework of Chinese zero pronoun recognition
本文的整體模型框架如圖1所示,主要由4個(gè)部分組成:零代詞候選集合的生成模塊、注意力機(jī)制模塊、Tree-LSTM模塊和輸出模塊. 首先,通過事先制定的句法規(guī)則從原始語料中篩選出零代詞的候選集合. 由于零代詞在文本中缺省,無法直接獲取零代詞的詞向量,本文通過兩種方式間接對其進(jìn)行特征表示:一是通過注意力機(jī)制模塊,包含Encoder層和Attention層,Encoder層對零代詞的上下文進(jìn)行前向后向的LSTM編碼,得到其上下文的隱藏層表示,再利用Attention層捕獲其深層語義信息;二是通過Tree-LSTM模塊挖掘其句法結(jié)構(gòu)信息. 最后,將兩者的融合特征送入輸出層,得到分類結(jié)果.
零指代識別和消解任務(wù)常采用OntoNotes5.0語料[13]數(shù)據(jù)集,本文亦采用該語料. 由于OntoNotes5.0語料只標(biāo)記了主語位置的零代詞,故本文研究只考慮主語位置零代詞的情況. 現(xiàn)代漢語中,主語位置零代詞總是出現(xiàn)在謂詞短語節(jié)點(diǎn)(VP)之前,而謂詞短語是由一個(gè)或一個(gè)以上動詞短語構(gòu)成,由此,對于句法樹中的節(jié)點(diǎn)T,若同時(shí)滿足以下3條句法規(guī)則,則節(jié)點(diǎn)T的左邊相鄰位置是零代詞的候選位置:
(1)T節(jié)點(diǎn)屬于VP節(jié)點(diǎn);
(2)T節(jié)點(diǎn)的父親節(jié)點(diǎn)不屬于VP節(jié)點(diǎn);
(3)T節(jié)點(diǎn)的左兄弟節(jié)點(diǎn)不屬于NP節(jié)點(diǎn),或者T節(jié)點(diǎn)沒有左兄弟節(jié)點(diǎn).
例句2建筑是開發(fā)浦東的一項(xiàng)主要經(jīng)濟(jì)活動,這些年有數(shù)百家建筑公司,四千余個(gè)建筑工地遍布在這片熱土.
如圖2所示,例句2中,根據(jù)上文所制定的規(guī)則,節(jié)點(diǎn)(VP(VV(開發(fā))NP(NR(浦東))))的當(dāng)點(diǎn)節(jié)點(diǎn)為VP節(jié)點(diǎn),其父親節(jié)點(diǎn)為IP節(jié)點(diǎn),且無左兄弟節(jié)點(diǎn),因此判定其為一個(gè)零代詞候選位置,但實(shí)際上該位置并不存在零代詞,因?yàn)槠洳粷M足回指前文中語言單元的條件. 而樹中“這些年有數(shù)百家公司”的句首位置也滿足規(guī)則,同時(shí)回指前文中的“浦東”,因此該候選位置存在一個(gè)零代詞.
圖2 例句2句法分析樹Fig.2 Syntactic parsing tree of sentence 2
1.3.1 Encoder層
通過零代詞候選集合生成模塊的篩選,獲取了零代詞候選集合ZPS,對于候選集合中的每一個(gè)候選零代詞zp,其上下文可表示為:
Contextprecedding=(x1,x2,…,xzp-1),
(1)
Contextfollowing=(xzp+1,xzp+2,…,xn).
(2)
式中,xi=[wi;pi],wi表示第i個(gè)詞語的詞向量,pi表示其詞性向量,xi為wi和pi的拼接. 為了獲取其上下文信息,本文采用LSTM網(wǎng)絡(luò)對兩個(gè)序列Contextprecedding和Contextfollowing分別進(jìn)行編碼. LSTM的公式如下所示:
it=σ(W(i)·[xt;ht-1]+b(i)),
(3)
ft=σ(W(f)·[xt;ht-1]+b(f)),
(4)
ot=σ(W(o)·[xt;ht-1]+b(o)),
(5)
(6)
(7)
ht=ot·tanh(Ct).
(8)
式中,·代表元素乘法,W(i),b(i),W(f),b(f),W(o),b(o),W(c)和b(c)代表LSTM網(wǎng)絡(luò)的參數(shù).
本文將零代詞的上下文通過LSTM網(wǎng)絡(luò)進(jìn)行編碼:
(9)
(10)
式中,LSTMpre和LSTMfol分別代表一個(gè)前向的LSTM網(wǎng)絡(luò)和一個(gè)后向的LSTM網(wǎng)絡(luò). 可得零代詞上下文中每一個(gè)詞語的隱藏層表示:
(11)
(12)
1.3.2Attention層
由于零代詞在文章中是缺省的,在以往的研究中,雖然學(xué)者們使用了許多方法去表示零代詞,但仍存在無法獲取部分關(guān)鍵語義信息等問題. 本文采用注意力機(jī)制去編碼零代詞的語義信息.
由于在Encoder層已經(jīng)獲得了零代詞上下文的隱藏層表示Hpre和Hfol,接下來需將Hpre和Hfol作為注意力機(jī)制的輸入,并計(jì)算權(quán)重:
(13)
(14)
式中,W1是一個(gè)a×u的參數(shù)矩陣,W2為r×a的參數(shù)矩陣,u代表零代詞上下文隱藏層輸出的維度,r代表選擇的注意力機(jī)制層數(shù).
通過該方法即可得到一個(gè)多層的權(quán)重矩陣A,與單層的注意力機(jī)制權(quán)重矩陣相比,多層注意力機(jī)制使得模型可從不同的角度關(guān)注句子的不同部分,可更高效地從語義角度對零代詞進(jìn)行句子級信息的建模. 當(dāng)?shù)玫綑?quán)重矩陣A后,將得到的r層權(quán)重與零代詞的上下文隱藏層輸出H作加權(quán)求和:
Mpre=Apre·Hpre,
(15)
Mfol=Afol·Hfol.
(16)
而后將每個(gè)矩陣(即Mpre和Mfol)的行向量取平均得到零代詞的上文表示和下文表示,將兩個(gè)表示向量做拼接得到零代詞的語義表示向量. 通過注意力機(jī)制學(xué)習(xí)上下文中不同詞對表示零代詞語義信息的重要程度,完成注意力權(quán)重的分配,可更好地從語義角度對零代詞進(jìn)行表示.
Kong等[7]指出,句法結(jié)構(gòu)信息對于中文零代詞的識別具有重要的作用. 本節(jié)通過Tree-LSTM[14]對零代詞的成分句法樹進(jìn)行編碼,從結(jié)構(gòu)化句法信息的角度對零代詞進(jìn)行更好地表示. 傳統(tǒng)的LSTM模型在每個(gè)時(shí)間步都是將當(dāng)前時(shí)間步的詞語信息和上一個(gè)時(shí)間步的輸出信息作為輸入,更新當(dāng)前時(shí)間步的記憶單元和隱藏層狀態(tài). 在Tree-LSTM中,樹中每個(gè)節(jié)點(diǎn)的輸入為當(dāng)前節(jié)點(diǎn)的詞語信息和其孩子節(jié)點(diǎn)的輸出信息,而不只考慮前一步的信息. 給定一個(gè)成分句法樹,對于節(jié)點(diǎn)j,Tree-LSTM的具體公式如下:
(17)
(18)
(19)
(20)
(21)
hj=oj·tanh(cj).
(22)
(1)保留句法樹根節(jié)點(diǎn)到零代詞出現(xiàn)位置動詞短語節(jié)點(diǎn)的路徑,并保留此路徑上直接相連的名詞短語節(jié)點(diǎn)和動詞短語節(jié)點(diǎn);
(2)保留零代詞出現(xiàn)位置前一個(gè)動詞短語節(jié)點(diǎn)和零代詞出現(xiàn)位置動詞短語之間的句法樹;
(3)對于動詞短語節(jié)點(diǎn)的子樹,只保留那些以動詞和名詞為葉節(jié)點(diǎn)的路徑.
圖3 候選零代詞的裁剪句法樹Fig.3 Pruned syntactic tree of candidate zero pronoun
對圖2句法樹中“開發(fā)浦東”前的候選零代詞進(jìn)行裁剪后的句法樹結(jié)構(gòu)如圖3所示.
通過注意力機(jī)制模塊和Tree-LSTM模塊分別獲取候選零代詞語義層次和句法層次的表示后,本文將其送入一個(gè)兩層前饋神經(jīng)網(wǎng)絡(luò)中,判斷其是否為一個(gè)零代詞. 計(jì)算公式如下:
va=[avg(Mpre);avg(Mfol)],
(23)
s1=tanh(W1·[va;hpre;hfol;vt;vfea]+b1),
(24)
s2=tanh(W2·s1+b2).
(25)
式中,va表示注意力機(jī)制模塊中Attention層所得矩陣Mpre和Mfol行向量取平均的拼接向量;hpre和hfol分別表示注意力機(jī)制模塊中Encoder層中LSTM前向和后向的最終隱層狀態(tài);vt表示零代詞句法裁剪樹經(jīng)過Tree-LSTM模塊編碼后的輸出向量;vfea為候選零代詞句法結(jié)構(gòu)、位置等手工構(gòu)建的特征信息所組成的數(shù)值向量,具體特征描述與文獻(xiàn)[3]中一致;W1,b1,W2,b2分別代表兩層前饋神經(jīng)網(wǎng)絡(luò)的參數(shù);s1和s2分別代表兩層前饋神經(jīng)網(wǎng)絡(luò)的輸出.
最后,將其輸出送入softmax層得到最終的分類概率為:
P=softmax(Wsoft·s2+bsoft),
(26)
式中,P表示候選零代詞是回指零代詞的概率;s2為前兩層隱藏層的輸出.
本文采用交叉熵作為模型訓(xùn)練的目標(biāo)函數(shù). 損失函數(shù)的公式為:
(27)
式中,Z為零代詞候選集;pi(z)表示通過本文模型的候選零代詞z屬于類別i的概率;yi(z)為候選零代詞z的標(biāo)簽.
與早期關(guān)于中文零指代任務(wù)的研究相似,本文通過召回率(Recall)、精確率(Precision)和F值(F-score)來評估本文的模型,其中Recall和Precision定義為:
(28)
(29)
(30)
式中,AZPright表示本文模型預(yù)測正確的零代詞;AZPres表示本文模型預(yù)測為正確的所有零代詞;AZPgold表示語料中標(biāo)注的所有零代詞.
表1 OntoNotes5.0數(shù)據(jù)集統(tǒng)計(jì)Table 1 Statistics of the OntoNotes 5.0 dataset
實(shí)驗(yàn)數(shù)據(jù)選擇CoNLL-2012共享任務(wù)中的OntoNotes5.0數(shù)據(jù)集[13],僅選用其中中文部分. 中文部分?jǐn)?shù)據(jù)集只有在訓(xùn)練集和驗(yàn)證集上才有零代詞的標(biāo)注,在測試集上未作標(biāo)記. 本文參照以往中文零指代文獻(xiàn)中的做法,將模型在訓(xùn)練集上進(jìn)行訓(xùn)練,在驗(yàn)證集上進(jìn)行評測. OntoNotes5.0中文數(shù)據(jù)集主要包含6種類別,分別為廣播會話、廣播新聞、雜志、通訊新聞、電話對話和博客文章. 數(shù)據(jù)集的具體統(tǒng)計(jì)數(shù)據(jù)如表1所示.
由于實(shí)驗(yàn)缺少驗(yàn)證集,本文從訓(xùn)練語料中切分了約20%的數(shù)據(jù)作為驗(yàn)證集,用以調(diào)整超參數(shù). 具體參數(shù)設(shè)置如表2所示.
表2 實(shí)驗(yàn)超參數(shù)設(shè)置Table 2 Parameter setting of the experiments
在實(shí)驗(yàn)過程中發(fā)現(xiàn),由于訓(xùn)練集正負(fù)樣本不平衡(正負(fù)比例約為1∶3),導(dǎo)致實(shí)驗(yàn)效果下降. 因此,本文通過復(fù)制正例樣本來平衡訓(xùn)練集中正負(fù)樣本的比例. 經(jīng)測試,最終選擇將正例樣本復(fù)制3次,模型達(dá)到了最優(yōu)的效果.
本文將模型初始迭代次數(shù)設(shè)置為50. 圖4所示為本文模型在驗(yàn)證集上的學(xué)習(xí)曲線,可以觀察到模型在第一個(gè)epoch時(shí),驗(yàn)證數(shù)據(jù)集上的F1-score約為56%,隨著迭代次數(shù)的增加,F1-score值不斷增加. 在第11次迭代時(shí),模型在驗(yàn)證集上的性能達(dá)到最優(yōu). 之后,本文模型的F1-score開始下降. 因此本文保存驗(yàn)證集上效果最優(yōu)的模型參數(shù),在測試集上進(jìn)行評價(jià).
圖4 模型在驗(yàn)證數(shù)據(jù)集上的學(xué)習(xí)曲線Fig.4 Learning curve of the model on the validation dataset
圖5 r值對零代詞識別的影響Fig.5 Effect of r value on zero pronoun recognition
此外,本文希望多層次的句子級信息可以為表示零代詞提供豐富的語義信息,因而通過改變注意力機(jī)制層的r值,來評估不同的r值對于中文零代詞識別的影響. 當(dāng)r=16的時(shí)候,模型達(dá)到最優(yōu)值,如圖5所示. 本文通過注意力機(jī)制將模型關(guān)注的重點(diǎn)放在對編碼零代詞更加有用的部分,將句子以零代詞為中心分成兩個(gè)部分,當(dāng)r=16時(shí),說明本文的模型分別從16個(gè)不同的角度去編碼前半部分和后半部分的語義信息,因而能夠達(dá)到較好的結(jié)果.
表3所示為本文模型和近年中文零代詞識別任務(wù)在OntoNotes5.0中文語料上的實(shí)驗(yàn)結(jié)果的對比,前 4行為以往對于中文零代詞識別任務(wù)的實(shí)驗(yàn)結(jié)果,后兩行為本文的實(shí)驗(yàn)結(jié)果. 可以看出,本文模型比以往最優(yōu)模型的F值要高出1.4%,加入Bert預(yù)訓(xùn)練詞向量后的F值更是高出了3.6%.
表3 不同模型實(shí)驗(yàn)結(jié)果對比Table 3 Comparison of experimental results of different models
從精確率來看,本文模型在未加入Bert之前比表中Chen and Ng(2013)和(2016)的模型分別低了5.2%和0.2%. 分析發(fā)現(xiàn),這兩個(gè)模型均采用傳統(tǒng)機(jī)器學(xué)習(xí)的方法. 中文零代詞具有較強(qiáng)的規(guī)則性,制定合適的特征模板會對中文零代詞識別的精確率具有較好的正向作用. 從召回率來看,本文的模型無論是加Bert之前還是之后,均優(yōu)于以往的中文零代詞識別模型.
由于近期Bert模型在各大任務(wù)上均取得了較好的成果,本文也嘗試了在現(xiàn)有模型上加入Bert預(yù)訓(xùn)練模型,主要是利用Bert的encoder層輸出去增強(qiáng)本文模型中的詞向量表示. 由于Bert的pytorch版本目前尚只能做字符級編碼,本文對中文詞語中每個(gè)字符的向量表示做了均值操作,以此來代替詞級向量. 本文并未對Bert網(wǎng)絡(luò)進(jìn)行微調(diào),僅將Bert網(wǎng)絡(luò)的輸出作為特征. 實(shí)驗(yàn)表明,加入Bert后模型在OntoNote5.0中文語料上的F值、準(zhǔn)確率和召回率分別為63.7%、54.6%和76.4%,F值比原始模型高出了2.2%,精確率上升了4.7%,但召回率下降了3.8%.
表4所示為本文中各個(gè)模塊在模型中所起的作用.
表4 各模塊在實(shí)驗(yàn)中的作用對比Table 4 Comparison of experimental results with different modules
如表4所示,Rules-based表示本文零代詞候選集生成模塊所生成零代詞候選集的實(shí)驗(yàn)效果. 在本文的規(guī)則下,回指零代詞的召回率很高,達(dá)到99.1%,但是精確率較低,只有24.2%. 因?yàn)楸疚闹饕抢靡?guī)則去生成零代詞的候選集合,對召回率的要求更高.
Rules+Tree-LSTM表示本文模型去除注意力機(jī)制模塊之后的實(shí)驗(yàn)結(jié)果,其F值為60.2%,精確率為46.7%,召回率為84.7%. 由于成分句法樹的成分缺省具有較強(qiáng)的規(guī)律性,通過Tree-LSTM對成分句法樹的學(xué)習(xí),理論上可以找回絕大多數(shù)零代詞的缺省位置. 但因語義信息的不足,對判斷其是否回指存在不足.
Rules+Attention表示本文模型去除Tree-LSTM之后的實(shí)驗(yàn)結(jié)果,其F值為57.5%,精確率為47.2%,召回率為73.6%. 相比于Rules+Tree-LSTM,準(zhǔn)確率略高,而召回率大幅下降,這主要是因?yàn)榫浞ńY(jié)構(gòu)信息的缺失導(dǎo)致無法準(zhǔn)確識別出句子中成分缺省.
Rules+Zpcenter表示同時(shí)去除Tree-LSTM模塊和注意力機(jī)制模塊之后的實(shí)驗(yàn)結(jié)果,其F值為56.8%,準(zhǔn)確率為45.4%,召回率為76.0%.F值的再次降低證明了本文注意力機(jī)制和Tree-LSTM的有效性.
表5 與先行詞不在同一句內(nèi)的零代詞數(shù)量統(tǒng)計(jì)Table 5 Statistics of zero pronouns that are not in same sentence with antecedants
對模型輸出的錯(cuò)誤結(jié)果進(jìn)行分析(例如句3)分析發(fā)現(xiàn),零代詞回指的名詞短語雖大部分都在同一句話內(nèi),但也有部分零代詞所回指的名詞短語是在之前句子中出現(xiàn)的,表5給出了相關(guān)的統(tǒng)計(jì)數(shù)據(jù). 本文的模型主要是在單句內(nèi)進(jìn)行,與前文中的句子并無聯(lián)系.
例句3本屆錦標(biāo)賽到今天為止,已決出7枚金牌. *pro*明天將進(jìn)行最后5個(gè)男女單項(xiàng)的決賽.
在例句3中,零代詞“pro”回指前一句話中的名詞短語“本屆競標(biāo)賽”. 本文模型只能在同一句內(nèi)對零代詞信息進(jìn)行捕捉,對跨句信息暫無法獲取.
本文針對中文零代詞識別任務(wù),利用LSTM編碼中文零代詞的上下文信息,再通過注意力機(jī)制捕捉句子中的關(guān)鍵語義,有效利用上下文語義,減少上下文無關(guān)信息對零代詞表示的影響. 使用Tree-LSTM對零代詞上下文的句法結(jié)構(gòu)信息進(jìn)行編碼,將語義信息和句法結(jié)構(gòu)信息的融合特征通過兩層前饋神經(jīng)網(wǎng)絡(luò)對零代詞進(jìn)行識別. 本文首次通過深度學(xué)習(xí)方法同時(shí)利用語義信息和句法結(jié)構(gòu)信息進(jìn)行中文零代詞的識別,實(shí)驗(yàn)結(jié)果表明,該方法在OntoNotes5.0語料上取得了較好的效果.