劉 廣,涂 剛,李 政,劉譯鍵,占志強(qiáng)
華中科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430074
隨著即時(shí)通信、微博、論壇、朋友圈等的快速流行,人們?cè)诰W(wǎng)絡(luò)上發(fā)布的文字信息也越來(lái)越多。這些文字信息蘊(yùn)含極大的價(jià)值,它們是分析社會(huì)整體及公眾個(gè)體的觀點(diǎn)、喜好、情緒、趨勢(shì)等的入口。快速準(zhǔn)確地分析文字信息,是自然語(yǔ)言處理研究的目標(biāo)。
目前,實(shí)體識(shí)別與依存關(guān)系分析,采用的主要是基于監(jiān)督學(xué)習(xí)的深度端到端方法。這種方法存在一些不足。首先,不能借助背景知識(shí),比如:“中華人民共和國(guó)”是知識(shí)庫(kù)中已知實(shí)體名稱,但是算法模型不能方便地導(dǎo)入這些知識(shí)庫(kù)信息;其次,不能很好地識(shí)別出語(yǔ)言的多粒度、嵌套特征。比如:“中華人民共和國(guó)國(guó)務(wù)院”,包括“中華人民共和國(guó)”“國(guó)務(wù)院”“中華人民共和國(guó)國(guó)務(wù)院”等多粒度、嵌套的實(shí)體名稱,但是端到端模型只能預(yù)測(cè)出單一的標(biāo)簽;再者,一個(gè)端到端模型只能完成一類預(yù)測(cè)任務(wù),不能同時(shí)預(yù)測(cè)命名實(shí)體以及它們之間的依存關(guān)系。
為了解決這些問(wèn)題,只能從源頭上入手:改變標(biāo)注規(guī)則,同時(shí)設(shè)計(jì)更加合適的算法。本文首先提出了基于短語(yǔ)窗口的標(biāo)注規(guī)則。該標(biāo)注規(guī)則既可以表示語(yǔ)言的多粒度、嵌套關(guān)系,又可以表示語(yǔ)言片段之間的依存關(guān)系。然后,使用該規(guī)則,標(biāo)注了各種類型的句子數(shù)據(jù)集,把這個(gè)數(shù)據(jù)集稱為中文短語(yǔ)窗口數(shù)據(jù)集(Chinese phrase window dataset,CPWD)。最后,設(shè)計(jì)了相應(yīng)的算法。新的算法采用多維輸入和多維輸出的端到端模型,可以把背景知識(shí)作為信息輸入,同時(shí),識(shí)別出多粒度、嵌套短語(yǔ),以及短語(yǔ)之間的依存關(guān)系,對(duì)應(yīng)模型稱為多維端到端模型(multi-dimensional end-to-end model,MDM)。實(shí)驗(yàn)的結(jié)果表明,該標(biāo)注規(guī)則方便易用;MDM模型比端到端模型更加適用于語(yǔ)法的多粒度與多樣性特征,準(zhǔn)確性有明顯提高。
語(yǔ)塊分析體系最早是由Abney在1991年提出的語(yǔ)塊描述體系[1],之后Kudo等[2]提出了一種基于支持向量機(jī)的語(yǔ)塊自動(dòng)分析方法;同時(shí),Shen等[3]提出了一種投票分類策略,將多種不同的數(shù)據(jù)表示和多種訓(xùn)練模型結(jié)合在一起,根據(jù)投票分類策略確定最終結(jié)果;此外,Mancev等[4]提出了一種處理支持向量機(jī)非凸結(jié)構(gòu)的斜率損失的最小化問(wèn)題的序列雙向方法。在漢語(yǔ)的語(yǔ)塊分析方面,周強(qiáng)等[5-6]構(gòu)造了基于規(guī)則的漢語(yǔ)基本塊分析器,并設(shè)計(jì)了相應(yīng)的基本塊規(guī)則,給出了一整套解決方案,提高了基于規(guī)則的基本塊分析器的性能;此外,李超等[7]應(yīng)用最大熵模型和馬爾科夫模型構(gòu)建了一套漢語(yǔ)基本塊的分布識(shí)別系統(tǒng)。
深度學(xué)習(xí)方法出現(xiàn)后,短語(yǔ)識(shí)別研究迎來(lái)了快速發(fā)展。Chiu等[8]使用雙向LSTM提取文本全局特征,同時(shí),使用CNN提取單詞的特征,進(jìn)行名詞短語(yǔ)實(shí)體的識(shí)別;Kuru等[9]使用Stacked Bidirectional LSTMs提取文本全局特征進(jìn)行名詞短語(yǔ)實(shí)體識(shí)別,取得了較大進(jìn)展;侯瀟琪等[10]利用深度模型,將詞的分布表征作為模型的輸入特征維度,用于基本短語(yǔ)識(shí)別任務(wù)中,比使用傳統(tǒng)的詞特征表示方法提高明顯;李國(guó)臣等[11]以字作為標(biāo)注單元和輸入特征,基于深層模型研究短語(yǔ)的識(shí)別問(wèn)題,并將基于C&W和Word2Vec兩種方法訓(xùn)練得到的字分布表征作為模型的特征參數(shù),避免了對(duì)分詞及詞性標(biāo)注結(jié)果的依賴;徐菁[12]利用知識(shí)圖譜,提出基于主題模型和語(yǔ)義分析的無(wú)監(jiān)督的名詞短語(yǔ)實(shí)體指稱識(shí)別方法,同時(shí)具備短語(yǔ)邊界檢測(cè)和短語(yǔ)分類功能;程鐘慧等[13]提出了一種基于強(qiáng)化學(xué)習(xí)的協(xié)同訓(xùn)練框架,在少量標(biāo)注數(shù)據(jù)的情況下,無(wú)須人工參與,利用大量無(wú)標(biāo)注數(shù)據(jù)自動(dòng)提升模型性能,從非結(jié)構(gòu)化大數(shù)據(jù)集中抽取有意義的名詞短語(yǔ)。
語(yǔ)法依存最早是著名的法國(guó)語(yǔ)言學(xué)家特思尼耶爾在《怎樣建立一種句法》一書(shū)談到,我國(guó)學(xué)者徐烈炯[14]認(rèn)為,語(yǔ)義角色是一個(gè)“句法-語(yǔ)義”接口概念,而不是單純的語(yǔ)義概念;劉宇紅[15]提出語(yǔ)義和語(yǔ)法雙向互動(dòng)的觀點(diǎn);孫道功[16]基于詞匯義征和范疇義征的分析,研究了詞匯與句法的銜接機(jī)制;亢世勇等[17]通過(guò)構(gòu)建“現(xiàn)代漢語(yǔ)句法語(yǔ)義信息語(yǔ)料庫(kù)”,研究了義類不同的體詞在施事(主語(yǔ)、賓語(yǔ)、狀語(yǔ))和受事(主語(yǔ)、賓語(yǔ)、狀語(yǔ))六個(gè)語(yǔ)塊的分布特點(diǎn)。這其中還包括哈工大、百度、清華等團(tuán)隊(duì)的語(yǔ)法分類貢獻(xiàn)。
在語(yǔ)法分析方面,McDonald等[18]提出了基于圖模型的依存句法分析器MSTParser;Nivre等[19]提出了基于轉(zhuǎn)移模型的依存句法分析器MaltParser;Ren等[20]對(duì)MaltParser依存句法分析器的Nivre算法進(jìn)行了優(yōu)化,有效地改進(jìn)了在漢語(yǔ)中難以解決的長(zhǎng)距離依存等問(wèn)題;車萬(wàn)翔等[21]對(duì)MSTParser依存句法分析器進(jìn)行了改進(jìn),使用了圖模型中的高階特征,提高了依存句法分析的精度;Dyer等[22]在基于轉(zhuǎn)移模型的依存句法分析框架上運(yùn)用長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò),將傳統(tǒng)的棧、隊(duì)列、轉(zhuǎn)移動(dòng)作序列看作3個(gè)LSTM細(xì)胞單元,將所有轉(zhuǎn)移的歷史均記錄在LSTM中,改進(jìn)了長(zhǎng)距離依存問(wèn)題;Ji等[23]開(kāi)發(fā)了一種依賴樹(shù)節(jié)點(diǎn)表示形式,可以捕獲高階信息,通過(guò)使用圖神經(jīng)網(wǎng)絡(luò)(GNN),解析器可以在PTB上實(shí)現(xiàn)最佳的UAS和LAS;Wang等[24]提出了一種基于神經(jīng)過(guò)渡的解析器,通過(guò)使用基于列表的弧躍遷過(guò)渡算法的一種變體,進(jìn)行依賴圖解析,獲得了較好的效果;Fried等[25]通過(guò)強(qiáng)化學(xué)習(xí)來(lái)訓(xùn)練基于過(guò)渡的解析器,提出了將策略梯度訓(xùn)練應(yīng)用于幾個(gè)選區(qū)解析器的實(shí)驗(yàn),包括基于RNN過(guò)渡的解析器。
在語(yǔ)義分析方面,丁偉偉等[26]利用CRF在英文語(yǔ)料上能夠利用論元之間的相互關(guān)系、提高標(biāo)注準(zhǔn)確率的特點(diǎn),將其運(yùn)用到中文命題庫(kù),使用CRF對(duì)中文語(yǔ)義組塊分類,取得好的效果;王麗杰[27]提出了基于圖的自動(dòng)漢語(yǔ)語(yǔ)義分析方法,使用哈工大構(gòu)建的漢語(yǔ)語(yǔ)義依存樹(shù)庫(kù)完成了依存弧和語(yǔ)義關(guān)系的分析;王倩等[28]基于謂詞和句義類型塊,使用支持向量機(jī)的語(yǔ)義角色對(duì)句子的句義類型進(jìn)行識(shí)別,也有一定的啟發(fā)意義。
綜上,傳統(tǒng)方法存在一些不足。首先,不能引入背景知識(shí);其次,不能很好識(shí)別出語(yǔ)言的多粒度、嵌套特征;再者,端到端模型只能完成一類預(yù)測(cè)任務(wù),不能同時(shí)預(yù)測(cè)命名實(shí)體以及它們之間的依存關(guān)系。
為了解決這些問(wèn)題,從源頭上入手:改變標(biāo)注規(guī)則,同時(shí)設(shè)計(jì)更加合適的算法。本文首先提出了基于短語(yǔ)窗口的標(biāo)注規(guī)則。然后,使用該規(guī)則,標(biāo)注了各種類型的句子數(shù)據(jù)集CPWD。最后,設(shè)計(jì)了相應(yīng)的多維端到端模型MDM。
為了實(shí)現(xiàn)句子的短語(yǔ)識(shí)別與依存關(guān)系分析,制定了一套短語(yǔ)標(biāo)注規(guī)范。該短語(yǔ)標(biāo)注規(guī)范不僅可以對(duì)嵌套短語(yǔ)進(jìn)行標(biāo)注,而且可以反映短語(yǔ)之間的依存關(guān)系。例如嵌套詞語(yǔ):“中國(guó)海軍”,傳統(tǒng)端對(duì)端模型只可以識(shí)別出“中國(guó)”“海軍”或者“中國(guó)海軍”,不可以同時(shí)識(shí)別3個(gè)短語(yǔ)。本文提出的短語(yǔ)標(biāo)注規(guī)范和MDM模型解決了詞語(yǔ)嵌套問(wèn)題。標(biāo)注規(guī)則相對(duì)簡(jiǎn)單,容易推廣。
根據(jù)該規(guī)則,標(biāo)注了中文短語(yǔ)窗口數(shù)據(jù)集CPWD,數(shù)據(jù)集包括45 000條從對(duì)話、新聞、法律、政策、小說(shuō)中挑選的非文言文的中文句子。為了方便模型設(shè)計(jì),句子最大長(zhǎng)度限制在50個(gè)字以內(nèi)。
標(biāo)注規(guī)范將句子中的短語(yǔ)分成:名詞短語(yǔ)、動(dòng)詞短語(yǔ)、數(shù)量詞短語(yǔ)、介詞短語(yǔ)、連詞短語(yǔ)、語(yǔ)氣詞、從句,總共7類基本類型。句子由短語(yǔ)組成,因此7類短語(yǔ)類型通過(guò)樹(shù)狀結(jié)構(gòu)組成句子,即依存關(guān)系。
通常,句子的樹(shù)狀結(jié)構(gòu)由主、謂、賓關(guān)系組成,圖1是句子語(yǔ)法樹(shù)結(jié)構(gòu)圖。(a)句子成分樹(shù):句子“我愛(ài)祖國(guó)”,按照句子語(yǔ)法可以分為主語(yǔ)“我”、謂語(yǔ)“愛(ài)”、賓語(yǔ)“祖國(guó)”;(b)句子原型樹(shù):把“我”“愛(ài)”“祖國(guó)”放到對(duì)應(yīng)的主謂賓位置;(c)短語(yǔ)類別樹(shù):“我”是名詞短語(yǔ),“愛(ài)”是動(dòng)詞短語(yǔ),“祖國(guó)”是名詞短語(yǔ)。

圖1 句子語(yǔ)法樹(shù)結(jié)構(gòu)圖Fig.1 Syntax tree structure
對(duì)于復(fù)雜的句子同樣可以采用這種方法進(jìn)行短語(yǔ)識(shí)別和依存關(guān)系的分析。圖2是復(fù)雜句子的語(yǔ)義單元?jiǎng)澐诌^(guò)程。為了方便介紹,使用“()”表示名詞短語(yǔ),“[]”表示動(dòng)詞短語(yǔ),“{}”表示數(shù)量詞短語(yǔ),“<>”表示介詞短語(yǔ),“##”表示連詞短語(yǔ),“@@”表示語(yǔ)氣詞短語(yǔ),“/”表示從句。

圖2 短語(yǔ)依存關(guān)系Fig.2 Phrase dependency
短語(yǔ)類別有名詞短語(yǔ)“()”、動(dòng)詞短語(yǔ)“[]”、數(shù)量詞短語(yǔ)“{}”、介詞短語(yǔ)“<>”、連詞短語(yǔ)“##”、語(yǔ)氣詞短語(yǔ)“@@”、從句“/”。標(biāo)注允許嵌套結(jié)構(gòu)的存在,每種短語(yǔ)類別的標(biāo)注規(guī)則如下。
(1)連詞短語(yǔ)
連詞短語(yǔ)是用來(lái)連接詞與詞、詞組與詞組或句子與句子、表示某種邏輯關(guān)系的虛詞。連詞短語(yǔ)可以表并列、承接、轉(zhuǎn)折、因果、選擇、假設(shè)、比較、讓步等關(guān)系。連詞短語(yǔ)主要成分為連詞。
如:“但是”表轉(zhuǎn)折,“因?yàn)椤薄八浴北硪蚬取?/p>
在標(biāo)注體系中連詞短語(yǔ)一般無(wú)嵌套關(guān)系。
(2)語(yǔ)氣詞短語(yǔ)
語(yǔ)氣詞短語(yǔ)是表示語(yǔ)氣的虛詞,常用在句尾或句中停頓處表示種種語(yǔ)氣。語(yǔ)氣詞短語(yǔ)的主要成分即為語(yǔ)氣詞。
如:“嗎”“吧”“呢”等在詞語(yǔ)、句子末,表示語(yǔ)氣。
在標(biāo)注體系中語(yǔ)氣詞短語(yǔ)一般無(wú)嵌套關(guān)系。
(3)名詞短語(yǔ)
表示人或事物以及時(shí)間、方位等,在句子中主要充當(dāng)主語(yǔ)、賓語(yǔ)、定語(yǔ)。它包括:以名詞為中心詞的偏正短語(yǔ)(如“偉大祖國(guó)”“這些孩子”);用名詞構(gòu)成的聯(lián)合短語(yǔ)(如“工人農(nóng)民”);復(fù)指短語(yǔ)(如“首都北京”);方位短語(yǔ)(如“桌面上”“大樓前面”);“的”字短語(yǔ)(如“打更的老漢”)等。某些名詞短語(yǔ)的中心詞也可以是動(dòng)詞、形容詞,定語(yǔ)可以是代詞、名詞或其他名詞短語(yǔ)。名詞短語(yǔ)的主要成分有多種形式,模板種類復(fù)雜,主要包括以動(dòng)詞、形容詞為中心詞,以代詞、名詞和其他名詞短語(yǔ)為定語(yǔ)而組成的名詞短語(yǔ)。
(4)動(dòng)詞短語(yǔ)
動(dòng)詞短語(yǔ)代表動(dòng)作,包括起修飾作用的狀語(yǔ)與補(bǔ)語(yǔ)。動(dòng)詞短語(yǔ)的主要成分是動(dòng)詞,包括部分修飾狀語(yǔ)。
如:“馬上開(kāi)始了”包括狀語(yǔ)“馬上”,中心動(dòng)詞“開(kāi)始”,補(bǔ)語(yǔ)“了”。
(5)介詞短語(yǔ)
又稱為介賓短語(yǔ),是介詞和其他代詞或名詞或從句搭配形成的短語(yǔ)。介詞短語(yǔ)的主要成分由介詞和名詞短語(yǔ)構(gòu)成。
“在這次考試中”為介詞+名詞短語(yǔ),標(biāo)注為<在({這次}考試中)>。
“被”“把”字句。如:<被(他)>,<把(他)>。
(6)數(shù)量詞短語(yǔ)
數(shù)量短語(yǔ),指由數(shù)詞和量詞組合構(gòu)成的短語(yǔ)。
數(shù)量詞和名詞搭配,如:({一首}動(dòng)聽(tīng)的曲子)。
作為狀語(yǔ),如:[{一蹦一跳}地走著]。
作為補(bǔ)語(yǔ),如:[看了](他){一眼}。
(7)從句
為了標(biāo)注一個(gè)完整的語(yǔ)義單元,需要使用從句結(jié)構(gòu)體現(xiàn)短語(yǔ)間的層次關(guān)系。從句的主要成分較為復(fù)雜,主要成分包括名詞、動(dòng)詞、介詞等,從句允許存在嵌套現(xiàn)象。
兼語(yǔ)句標(biāo)為從句。如“我命令他去外面”,這里“他”既是前面的賓語(yǔ),又是后面的主語(yǔ),標(biāo)注:(我)[命令]/(他)[去](外面)。
連動(dòng)句標(biāo)為從句。如“我出去騎車打球”,“騎車”“打球”為連動(dòng),標(biāo)注為:(我)//[出去]/[騎](車)/[打](球)\。
主語(yǔ)從句、賓語(yǔ)從句。如:(他)[說(shuō)]/(計(jì)算機(jī))[正在改變](世界)。
本章詳細(xì)介紹短語(yǔ)多維端到端算法。短語(yǔ)多維端到端算法采用多維輸入,多維輸出的形式。以句子長(zhǎng)度50為例,例句為“我的祖國(guó)是中華人民共和國(guó)”。
多維輸入包括50維,其中,第n維對(duì)應(yīng)的是知識(shí)庫(kù)中的長(zhǎng)度為n的短語(yǔ)的信息,例如:長(zhǎng)度為7的“中華人民共和國(guó)”是知識(shí)庫(kù)中的實(shí)體,第7維輸入對(duì)應(yīng)于“中”字的偏移位置,會(huì)放入實(shí)體分類的標(biāo)記。標(biāo)記類型包括名詞、動(dòng)詞、介詞等多種詞性。
多維輸出包括50維,其中,第n維對(duì)應(yīng)預(yù)測(cè)結(jié)果中的長(zhǎng)度為n的短語(yǔ)類型(7類),例如:長(zhǎng)度為7的“中華人民共和國(guó)”被預(yù)測(cè)成了名詞,則第7維輸出對(duì)應(yīng)于“中”字的偏移位置開(kāi)始的7個(gè)標(biāo)簽,會(huì)預(yù)測(cè)為名詞標(biāo)記。標(biāo)記類型包括7種短語(yǔ)類型。
可見(jiàn),算法可以預(yù)測(cè)多粒度、嵌套短語(yǔ),以及短語(yǔ)依存關(guān)系。下面幾節(jié)詳細(xì)介紹算法對(duì)應(yīng)的模型MDM,包括算法模型基本結(jié)構(gòu)圖,以及具體的背景知識(shí)、分類網(wǎng)絡(luò)、短語(yǔ)分片及依存關(guān)系的應(yīng)用。
算法流程如下。
(1)輸入維度。
使用“我愛(ài)祖國(guó)”字向量作為輸入。字向量以外的50維,需要引入知識(shí)庫(kù)查找結(jié)果:第1維對(duì)應(yīng)標(biāo)簽包括,“我”標(biāo)記為“名詞”,“愛(ài)”標(biāo)記為“動(dòng)詞”;第2維對(duì)應(yīng)標(biāo)簽包括,“祖國(guó)”標(biāo)記為“名詞”;如果有沒(méi)找到的字詞,則標(biāo)記為0。這里并不關(guān)注分詞正確性,只要是知識(shí)庫(kù)找到的詞,都會(huì)作為輸入,即使是錯(cuò)誤的分詞,由模型訓(xùn)練判斷對(duì)錯(cuò)。字詞查找采用AC(Aho-Corasick automaton)樹(shù)算法。
(2)短語(yǔ)特征提取。
通過(guò)特征提取網(wǎng)絡(luò)進(jìn)行特征提取,可以使用語(yǔ)言模型進(jìn)行特征提取。
(3)短語(yǔ)分類。
使用全連接識(shí)別出短語(yǔ)類別與依存關(guān)系。例如:“我”是名詞短語(yǔ),“愛(ài)”是動(dòng)詞短語(yǔ),“祖國(guó)”是名詞短語(yǔ)。
(4)輸出維度。
將50維短語(yǔ)分類預(yù)測(cè)結(jié)果綜合,去除有沖突的預(yù)測(cè),比如長(zhǎng)度與維度不匹配錯(cuò)誤等,使用標(biāo)注符號(hào)表示出來(lái),得到結(jié)果。例如:“(我)[愛(ài)](祖國(guó))”。
短語(yǔ)算法模型采用多維輸入與多維輸出的端到端模型,識(shí)別短語(yǔ)類別及它們之間的依存關(guān)系。圖3是模型結(jié)構(gòu)圖。主要分為四個(gè)部分:(1)字向量和背景知識(shí)層。字向量是將句子中的字進(jìn)行嵌入的一種方式;背景知識(shí)是使用知識(shí)庫(kù)查詢結(jié)果進(jìn)行標(biāo)示;字向量與背景知識(shí)concat后通過(guò)embedding層輸入。(2)特征提取層。特征提取層負(fù)責(zé)特征的抽取,該層使用Bi-LSTM或者BERT語(yǔ)言模型。(3)分類層。使用特征提取層提取的特征進(jìn)行全連接分類,實(shí)現(xiàn)短語(yǔ)類別預(yù)測(cè)。(4)短語(yǔ)分片及依存關(guān)系層。對(duì)句子中的短語(yǔ)進(jìn)行識(shí)別,同時(shí)解決沖突,預(yù)測(cè)出依存關(guān)系。

圖3 算法結(jié)構(gòu)Fig.3 Algorithm structure
(1)字向量和背景知識(shí)嵌入層
模型輸入是字向量和背景知識(shí)。字向量是通過(guò)word2vec訓(xùn)練得到的一組向量,每個(gè)字向量是256維組成。
背景知識(shí)以標(biāo)記形式輸入,包括分詞與詞性信息。標(biāo)記包含詞性信息,并且,標(biāo)記以B標(biāo)示開(kāi)始位置,而且只在開(kāi)始位置標(biāo)示,與分詞的BIO方式不同,見(jiàn)表1。

表1 輸入標(biāo)記類型Table 1 Input tag type
背景知識(shí)是增加的維度,由50維的知識(shí)編碼形成。其中,第n維對(duì)應(yīng)的是知識(shí)庫(kù)中的長(zhǎng)度為n的短語(yǔ)的信息,例如,句子“一輛汽車停在馬路邊”中,長(zhǎng)度為2的詞包括“一輛”“汽車”“馬路”“路邊”,長(zhǎng)度為3的詞為“馬路邊”,這些是從知識(shí)庫(kù)中的查找獲得的。那么,第2維輸入對(duì)應(yīng)于詞的第一個(gè)字“一”“汽”“馬”“路”的位置,會(huì)放入實(shí)體分類的標(biāo)記,標(biāo)記類型包括名詞、動(dòng)詞、介詞等多種詞性(這里為了方便圖示,簡(jiǎn)化成統(tǒng)一用B代替)。第3維輸入對(duì)應(yīng)“馬”的位置,放入實(shí)體分類的標(biāo)記,代表“馬路邊”是一個(gè)長(zhǎng)度為3的詞。
背景知識(shí)引入了一句話的不同組成成分在知識(shí)庫(kù)中的信息。增加背景知識(shí)后模型能學(xué)到更多的語(yǔ)言特征,可以引入更多的信息來(lái)進(jìn)行監(jiān)督學(xué)習(xí),提高短語(yǔ)識(shí)別和依存關(guān)系的準(zhǔn)確性。引入的知識(shí)庫(kù)分類信息并不需要關(guān)注分詞結(jié)果,而是查找到了對(duì)應(yīng)的詞就把輸入信息加入相應(yīng)維度,由模型訓(xùn)練判斷取舍。如圖4,“馬路邊”在該句里面的正確分詞是“馬路”而不是“路邊”,但是由于知識(shí)庫(kù)中存在“路邊”一詞,所以還是引入到輸入的維度信息中,讓模型訓(xùn)練去習(xí)得規(guī)律。

圖4 背景知識(shí)Fig.4 Background knowledge
實(shí)驗(yàn)證明,這種處理方式可以省略分詞步驟,而且結(jié)果比分詞后進(jìn)行預(yù)測(cè)更準(zhǔn)確。
由于模型輸入的句子長(zhǎng)度限定為50,所以有50維的輸入知識(shí)編碼,對(duì)應(yīng)從最短的(長(zhǎng)度為1)的短語(yǔ)到最長(zhǎng)的(長(zhǎng)度為50)的短語(yǔ)。如圖5所示,第n維背景知識(shí)表示的是長(zhǎng)度為n的詞的知識(shí)編碼,其中第一維、第二維背景知識(shí)大多是一些名詞、動(dòng)詞、介詞等基本詞分類。第三維以后,隨著長(zhǎng)度變長(zhǎng),短語(yǔ)大多是一些實(shí)體名稱,經(jīng)過(guò)訓(xùn)練,發(fā)現(xiàn)模型對(duì)于實(shí)體名稱的權(quán)重設(shè)置較大,遇到長(zhǎng)于3的實(shí)體名稱,都可以正確識(shí)別,而且可以識(shí)別出多粒度、嵌套的實(shí)體名稱與各類短語(yǔ)。

圖5 多維背景知識(shí)輸入標(biāo)記舉例Fig.5 Examples of multi-dimensional background knowledge input tags
用B-ming、B-dong等標(biāo)示名詞、動(dòng)詞的起始位置,如圖5的方式進(jìn)行輸入編碼:“馬路邊”是名詞,“在馬路邊”是介詞短語(yǔ),“一輛”是數(shù)詞,“一輛汽車”是名詞。嵌套與依存關(guān)系都蘊(yùn)含在這種標(biāo)示中。
(2)特征提取層
特征提取層負(fù)責(zé)短語(yǔ)特征的提取,特征提取比較成熟,可以選用卷積神經(jīng)網(wǎng)絡(luò)、雙向長(zhǎng)短記憶網(wǎng)絡(luò)Bi-LSTM、BERT等來(lái)實(shí)現(xiàn)特征抽取。目前測(cè)試最佳的網(wǎng)絡(luò)架構(gòu)是BERT與Bi-LSTM的組合。經(jīng)過(guò)特征提取網(wǎng)絡(luò)后,輸出的是512維的隱層權(quán)值向量,特征提取提取的結(jié)果將被用于后續(xù)的分類網(wǎng)絡(luò)。
(3)分類層
對(duì)特征提取層提取到的特征進(jìn)行全連接,輸出50維的預(yù)測(cè)標(biāo)簽,輸出第n維對(duì)應(yīng)的是長(zhǎng)度為n的短語(yǔ);標(biāo)簽是分詞常用的B/I組合方式,其中B代表開(kāi)始字,I代表后續(xù)的字,如:三個(gè)字“馬路邊”在第三維輸出,對(duì)應(yīng)的標(biāo)簽是“B-ming I-ming I-ming”,這里與輸入層只用B作為標(biāo)記不同,如圖6。

圖6 短語(yǔ)及依存關(guān)系識(shí)別Fig.6 Phrases and dependency recognition
多維輸出包括50維,其中第n維對(duì)應(yīng)預(yù)測(cè)結(jié)果中的長(zhǎng)度為n的短語(yǔ)類型(7類),例如:長(zhǎng)度為7的“中華人民共和國(guó)”被預(yù)測(cè)成了名詞,則第7維輸出對(duì)應(yīng)于“中”字的偏移位置,會(huì)輸出名詞標(biāo)記,標(biāo)記類型包括7種短語(yǔ)類型,除從句外其他6種如表2。

表2 輸出標(biāo)記類型Table 2 Output tag type
(4)短語(yǔ)識(shí)別及依存關(guān)系層
該層對(duì)判斷后的短語(yǔ)類型進(jìn)行輸出。輸出50維的短語(yǔ)識(shí)別和依存關(guān)系結(jié)果,其中有錯(cuò)誤的地方。比如:第2維輸出了一個(gè)“B-ming I-ming I-ming”長(zhǎng)度為三個(gè)字的預(yù)測(cè)標(biāo)簽,即使采用CRF層也無(wú)法避免,需要把這種標(biāo)簽去掉。此外,還有預(yù)測(cè)沖突與錯(cuò)誤的標(biāo)簽,比如:以I開(kāi)頭的標(biāo)簽。該層對(duì)這些問(wèn)題進(jìn)行統(tǒng)一整理,然后輸出一致的預(yù)測(cè)標(biāo)簽,同時(shí)生成類似“(我)[愛(ài)](祖國(guó))”的預(yù)測(cè)結(jié)果。
(5)損失函數(shù)
損失函數(shù),由輸出的所有維度決定。采用交叉熵函數(shù),通過(guò)交叉熵來(lái)計(jì)算預(yù)測(cè)的結(jié)果和標(biāo)簽之間的距離。式(1)是損失函數(shù),其中M是短語(yǔ)類別數(shù)量,即M=7,yc是真實(shí)分布,pc是預(yù)測(cè)結(jié)果的分布。總的loss是50維loss的求和。

實(shí)驗(yàn)數(shù)據(jù)集使用標(biāo)注的中文短語(yǔ)窗口數(shù)據(jù)集CPWD,包括45 000條從對(duì)話、新聞、法律、政策、小說(shuō)中挑選的中文句子。其中文言文只占不到5%比例,多是一些成語(yǔ)與諺語(yǔ)組成的句子。為了方便模型設(shè)計(jì),句子最大長(zhǎng)度限制在50個(gè)字以內(nèi)。在數(shù)據(jù)集劃分上,劃分訓(xùn)練集/驗(yàn)證集/測(cè)試集,分別為43 000條、1 000條和1 000條,在訓(xùn)練過(guò)程中,針對(duì)訓(xùn)練集和驗(yàn)證集采用了交叉驗(yàn)證方式訓(xùn)練。
傳統(tǒng)端到端的結(jié)果統(tǒng)計(jì),主要根據(jù)每個(gè)字預(yù)測(cè)得到標(biāo)簽的情況。這樣的統(tǒng)計(jì)方式存在偏差,不如按照短語(yǔ)統(tǒng)計(jì)準(zhǔn)確,比如:“中華人民共和國(guó)”命名實(shí)體的標(biāo)簽是“BIIIIII”為正確,如果預(yù)測(cè)結(jié)果是“BIIIBII”,那么存在一個(gè)標(biāo)簽錯(cuò)誤。按照傳統(tǒng)方式統(tǒng)計(jì),只算7個(gè)標(biāo)簽中出現(xiàn)了一次錯(cuò)誤;按照短語(yǔ)方式統(tǒng)計(jì),“BIIIIII”全對(duì)為正確,“BIIIBII”為錯(cuò)誤,即有一個(gè)標(biāo)簽錯(cuò)誤,整個(gè)短語(yǔ)的預(yù)測(cè)是錯(cuò)誤的,這樣更加準(zhǔn)確合理。
實(shí)驗(yàn)采用Python語(yǔ)言實(shí)現(xiàn),python版本為3.6.1。使用的框架為T(mén)ensorFlow,版本為1.12.0。使用的電腦配置為內(nèi)存:32 GB,處理器:Intel Xeon?CPU E5-2623 v3@3.00 GHz×8,顯卡:TITAN Xp,操作系統(tǒng)類型:ubuntu14.04 64-bit。
首先,MDM在多種網(wǎng)絡(luò)結(jié)構(gòu)或者數(shù)據(jù)形式的情況下進(jìn)行對(duì)比優(yōu)化,同時(shí),在準(zhǔn)確性和時(shí)間上做一個(gè)均衡。在序列標(biāo)注模型中,典型的特征抽取器包括有Bi-LSTM[29]、BERT模型[30]、Transformer[31]等。雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM)是序列建模中最常用的架構(gòu)之一,結(jié)構(gòu)上包括2個(gè)LSTM單元,用2組不同參數(shù)模擬前向和后向序列。Transformer結(jié)構(gòu)最初被用于序列轉(zhuǎn)換(sequence to sequence)問(wèn)題,在這問(wèn)題上它比RNN、CNN結(jié)構(gòu)更有優(yōu)勢(shì)。同時(shí),Transformer的Encoder模塊可用于序列標(biāo)注任務(wù)。Jacob等人提出的BERT預(yù)訓(xùn)練模型,就是基于Transformer的Encoder模塊堆疊而成。因此,優(yōu)化方法包括采用雙層BiLSTM,采用BERT代替BiLSTM,使用CRF層,在BiLSTM層之前加入CNN層進(jìn)行特征抽取,在特征抽取層之后加入Transformer結(jié)構(gòu),選取不同比例的反例,輸入維度不同等。CPWD的測(cè)試集的實(shí)驗(yàn)結(jié)果如表3所示。

表3 MDM優(yōu)化過(guò)程對(duì)比Table 3 MDM optimization process comparison

從結(jié)果可以看出,最優(yōu)的模型結(jié)構(gòu)是50維輸入,1∶2正反例,BERT+CRF。但是考慮到運(yùn)行效率和資源占用情況,在做實(shí)驗(yàn)或者工程部署的時(shí)候,建議采用的模型是50維輸入,1∶2正反例,BiLSTM+Transformer。
Loss值收斂情況在BERT、BiLSTM兩種最優(yōu)模型之間進(jìn)行比較,收斂情況如圖7,可以看到,BiLSTM收斂快些,BERT語(yǔ)言模型的收斂慢,一個(gè)epoch的訓(xùn)練時(shí)間也長(zhǎng)些。在實(shí)際部署中,推薦使用BiLSTM作為特征提取層,可以提高效率。

圖7 Loss收斂情況圖Fig.7 Loss Convergence
由于各種端到端算法輸出與標(biāo)簽形式有不同,所以將標(biāo)簽形式調(diào)整成在統(tǒng)一的方式下進(jìn)行對(duì)比。MDM模型輸出標(biāo)簽比端到端多,附帶有嵌套等信息,所以需要進(jìn)行降維處理,之后與端到端模型進(jìn)行對(duì)比。降維后可以形成命名實(shí)體標(biāo)簽、依存標(biāo)簽,分別與BiLSTM、BERT等端到端算法進(jìn)行對(duì)比。同上,表4為不同模型在CPWD數(shù)據(jù)集上的F1測(cè)試結(jié)果。

表4 對(duì)比實(shí)驗(yàn)結(jié)果Table 4 Comparative experiment result %
從表4可以看到MDM模型比傳統(tǒng)端到端有優(yōu)勢(shì)。這種優(yōu)勢(shì)的產(chǎn)生,分析是由于MDM更適合語(yǔ)言多樣性,使得模型不用在嵌套的命名實(shí)體之間做多選一的抉擇,降低了模型的困惑度;而且,MDM可以預(yù)測(cè)語(yǔ)法依存關(guān)系,模型不需要進(jìn)行降維映射,所以就不會(huì)造成特征的丟失,也因此獲得了更高的準(zhǔn)確性。同時(shí),將SWM模型用于CCL2018的中文隱喻情感分析任務(wù)中,通過(guò)抽取名詞短語(yǔ)、動(dòng)詞短語(yǔ)、介詞短語(yǔ)和語(yǔ)氣詞短語(yǔ),分析不同實(shí)體詞對(duì)應(yīng)的正負(fù)面情感詞,并將此作為情感分類模型輸入的一部分進(jìn)行模型優(yōu)化,在原有模型基礎(chǔ)上提升了1個(gè)百分點(diǎn)以上,并在比賽中獲得了第一名的成績(jī)。
針對(duì)傳統(tǒng)端到端算法的一些問(wèn)題,從源頭上入手:改變標(biāo)注規(guī)則,同時(shí)設(shè)計(jì)更加合適的算法。首先提出了基于短語(yǔ)窗口的標(biāo)注規(guī)則。該標(biāo)注規(guī)則既可以標(biāo)示語(yǔ)言的多粒度、嵌套關(guān)系,又可以標(biāo)示語(yǔ)言片段之間的依存關(guān)系。然后,使用該規(guī)則,標(biāo)注了包括各種類型句子的數(shù)據(jù)集CPWD。最后,設(shè)計(jì)了多維端到端模型,可以把背景知識(shí)作為信息輸入,同時(shí),識(shí)別出多粒度、嵌套短語(yǔ),以及短語(yǔ)之間的依存關(guān)系。實(shí)驗(yàn)的結(jié)果表明,該標(biāo)注規(guī)則方便易用;MDM模型比端到端模型更加適用于語(yǔ)法的多粒度與多樣性特征,引入背景知識(shí)后,準(zhǔn)確性有明顯提高。