崔 卓,李紅蓮,張 樂,呂學(xué)強(qiáng)
(1. 北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101;2. 北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)中的文本數(shù)據(jù)越來越多,如何快速從大量的文本數(shù)據(jù)中提取自己想要的信息就顯得十分重要。文本摘要[1-2]是快速提取信息的一個(gè)重要手段,其可以將文本信息簡化為一個(gè)包含文本關(guān)鍵信息的摘要,方便人們檢索到對自己有用的信息。按照輸出類型,文本摘要可以分為抽取式摘要[3]和生成式摘要[4]。抽取式摘要是從原文中抽取關(guān)鍵詞或關(guān)鍵句組合成摘要,這種方法提取的摘要在語法方面錯(cuò)誤率低,但是由于缺乏連接詞,形成的摘要可讀性往往很低,而且無法生成原文本中不存在但是對語義理解很重要的詞。生成式摘要與人類寫摘要的流程比較相似,首先對冗長的文本進(jìn)行壓縮,提取文本的主要語義內(nèi)容,生成摘要。它生成的摘要中可能會出現(xiàn)原文本中未出現(xiàn)的詞語,以幫助理解摘要的語義,但是存在一定的語法錯(cuò)誤問題。隨著神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于自然處理任務(wù),基于神經(jīng)網(wǎng)絡(luò)的自動文摘受到越來越廣泛的關(guān)注[5]。
目前,基于編/解碼器與注意力機(jī)制結(jié)合的模型在生成式文本摘要中得到了廣泛的應(yīng)用,對于數(shù)據(jù)的處理分為基于字級別與基于詞級別的處理。在指針網(wǎng)絡(luò)(Pointer Network)模型出現(xiàn)之前,基于詞級別的數(shù)據(jù)處理存在嚴(yán)重的詞匯表限制(Out-of-Vocabulary,OOV)問題,因此大多模型都是基于字級別的處理研究。Pointer Network的出現(xiàn)雖然緩解了OOV問題,但是對數(shù)據(jù)集語義的理解還不夠完善,影響生成摘要的質(zhì)量與可讀性。
針對以上問題,本文提出一種新的融合義原的中文摘要生成方法ASPM。具體地,在指針網(wǎng)絡(luò)模型的基礎(chǔ)上引入知網(wǎng)(HowNet)[6]中的義原,使用融合義原知識的詞義表示模型(Sememe Attention over Target Model,SAT)[7],利用上下文與多義詞義原得到詞語的語義表示,并且基于LCSTS數(shù)據(jù)集中的一些多義詞構(gòu)造新的義原,并在數(shù)據(jù)集中進(jìn)行標(biāo)注,以得到更加精確的語義表示。實(shí)驗(yàn)結(jié)果表明,提出的ASPM方法可以生成可讀性更高的摘要文本。
本文在第1節(jié)介紹基于神經(jīng)網(wǎng)絡(luò)的自動文摘以及HowNet義原相關(guān)工作;第2節(jié)介紹ASPM的結(jié)構(gòu)及原理;第3節(jié)對實(shí)驗(yàn)數(shù)據(jù)集和評測指標(biāo)進(jìn)行介紹,并且對比數(shù)據(jù)集在不同模型中的實(shí)驗(yàn)結(jié)果;最后一節(jié)為總結(jié)以及展望。
基于神經(jīng)網(wǎng)絡(luò)的自動文摘被越來越多地應(yīng)用在文本摘要中。首先是Sutskever等人[8]提出的序列到序列(Seq2Seq)模型,由一個(gè)編碼器和一個(gè)解碼器組成。接著Rush等人[9]將注意力機(jī)制與Seq2Seq模型結(jié)合,解碼器通過解碼狀態(tài)與編碼狀態(tài)的注意力分?jǐn)?shù)從編碼器中提取信息。Hu等人[10]創(chuàng)建了一個(gè)大規(guī)模的中文摘要數(shù)據(jù)集LCSTS,并且分別以詞為單位和以字為單位對數(shù)據(jù)進(jìn)行處理,然后使用結(jié)合注意力機(jī)制的Seq2Seq模型在兩種處理方式上進(jìn)行了實(shí)驗(yàn)對比,為中文摘要模型[11-12]的發(fā)展奠定了基礎(chǔ)。Chopra等人[13]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)代替神經(jīng)網(wǎng)絡(luò)語言模型(Neural Network Language Model, NNLM),結(jié)合注意力機(jī)制進(jìn)一步提高了生成摘要的質(zhì)量,這個(gè)模型之后被當(dāng)作基礎(chǔ)模型。Lopyrev[14]使用長短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)代替RNN,緩解了網(wǎng)絡(luò)對之前信息的遺忘,但是模型依然存在OOV問題。Vinyals等人[15]提出Pointer Network[16-20],通過指針開關(guān)決定在解碼時(shí)刻從原文中復(fù)制一個(gè)詞,還是根據(jù)詞匯表生成一個(gè)詞,緩解了OOV問題。
上述工作未能對數(shù)據(jù)集語義進(jìn)行很好的理解,因此本文引入HowNet中的義原,并且針對數(shù)據(jù)集中的一些多義詞構(gòu)建新的義原,訓(xùn)練得到更能理解文本語義的詞向量來幫助模型生成更高質(zhì)量與更具可讀性的摘要。
引入義原后,如何充分利用義原信息得到更精確的詞向量表示是非常重要的。唐共波等人[21]將HowNet中的義原融入到語言模型的訓(xùn)練中,通過義原向量對多義詞進(jìn)行向量化表示。孫茂松等人[22]提出一種義項(xiàng)敏感的義原向量表示學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型,得到了HowNet中所有義原的向量表示,有助于對低頻詞和多義詞的處理。Yilin等人[7]提出SAT模型,使用注意力機(jī)制在考慮上下文信息的同時(shí)考慮詞語的義原信息,有效提升了詞語的詞向量表示。上述工作表明了引入HowNet義原對提升詞向量表示的重要作用。
本文提出的ASPM中文摘要生成方法可解決現(xiàn)有模型中存在的一些不足,進(jìn)而提升摘要的生成質(zhì)量。模型一方面通過引入HowNet義原,并且針對實(shí)驗(yàn)數(shù)據(jù)集手動構(gòu)建新的義原,使用SAT模型得到能夠更加準(zhǔn)確表示語義的詞向量。另一方面,通過利用Pointer Network來緩解OOV問題。實(shí)驗(yàn)表明,模型能有效提升摘要生成質(zhì)量。
在自然語言處理中,詞、句子、段落、文章都可以被當(dāng)作語義單位進(jìn)行劃分處理,而義原是最小的不可分的語義單位。HowNet是主要面向中文詞匯與概念的大型語言知識庫,包含了2 000多個(gè)義原的精細(xì)的語義描述體系,并為十幾萬個(gè)漢語詞語和英文單詞所代表的概念標(biāo)注了義原,結(jié)構(gòu)為詞語-義項(xiàng)-義原,其中一個(gè)詞語可以有一個(gè)或多個(gè)義項(xiàng),而一個(gè)義項(xiàng)又可以由一個(gè)或多個(gè)義原來表示,圖1為知網(wǎng)中義原、義項(xiàng)、詞語結(jié)構(gòu)表示的一個(gè)例子。
圖1 詞語-義項(xiàng)-義原結(jié)構(gòu)圖
其中,蘋果這個(gè)詞語有兩個(gè)義項(xiàng),分別為蘋果(電腦)、蘋果(水果)。而蘋果(電腦)這個(gè)義項(xiàng)又可以通過義原“可攜帶”與“特定品牌”來組成,蘋果(水果)可以由“水果”這個(gè)義原來組成。通過使用義原對詞語的不同義項(xiàng)做進(jìn)一步標(biāo)注,就可以精準(zhǔn)地刻畫詞語的語義信息。因此,可以考慮將融合義原知識的詞義表示用于文本摘要任務(wù)中,使得模型能夠更好地理解文本的語義信息,生成更加高質(zhì)量的摘要。
融合義原知識的詞義表示模型SAT可以利用義原準(zhǔn)確地捕捉到一個(gè)詞語在具體上下文中的含義。模型在經(jīng)典的Skip-Gram模型[23]上進(jìn)行改進(jìn),但是不同于Skip-Gram模型只考慮上下文信息,SAT模型同時(shí)考慮了詞語每個(gè)義項(xiàng)的義原信息以及義項(xiàng)之間的關(guān)系,模型的具體結(jié)構(gòu)如圖2所示。
圖2 融合義原知識的詞義表示模型
其中,選取固定大小窗口的上下文詞語,將上下文詞語編碼為一個(gè)統(tǒng)一的上下文向量, 這個(gè)向量中包含上下文的所有信息。
由于一個(gè)詞的詞義與上下文有很大關(guān)系,根據(jù)上下文向量可以得到詞語不同義項(xiàng)在這個(gè)上下文中所占的權(quán)重。詞語ω的詞向量表示可由式(1)~式(4)得到:
(1)
(2)
(3)
(4)
SAT模型選取多個(gè)上下文詞語,利用上下文信息對目標(biāo)詞義原的關(guān)注程度,根據(jù)目標(biāo)詞的多個(gè)義項(xiàng)得到最符合當(dāng)前情境的詞向量,以此來提升目標(biāo)詞向量的表示能力,取得了很好的效果。
指針網(wǎng)絡(luò)(Pointer Network)模型如圖3所示,在帶有注意力機(jī)制的編/解碼器模型中加入一個(gè)指針開關(guān),編碼器使用一個(gè)雙向的LSTM將原文本的詞嵌入依次輸入得到隱藏狀態(tài)序列hi,解碼器使用一個(gè)單向的LSTM,在每一個(gè)時(shí)間步t根據(jù)前一個(gè)詞語的詞嵌入得到解碼狀態(tài)向量st。
根據(jù)Bahdanau等人[24]提出的注意力機(jī)制,由hi和st可以得到輸入文本中第i個(gè)詞的注意力權(quán)重如式(5)、式(6)所示。
(7)
圖3 指針網(wǎng)絡(luò)模型
(8)
(9)
其中,wh*、ws、wx和bptr為模型可學(xué)習(xí)參數(shù),根據(jù)計(jì)算而得的pgen來決定根據(jù)詞匯表生成一個(gè)詞還是從原文中拷貝一個(gè)詞。進(jìn)一步可以得到預(yù)測詞ω的概率P(ω),如式(10)所示。
(10)
從式(10)中可以看出,當(dāng)pgen=0時(shí),加號左邊項(xiàng)為零,此時(shí)詞語需要從原文中進(jìn)行復(fù)制。當(dāng)pgen=1時(shí),1-pgen=0,公式加號右邊項(xiàng)為零,此時(shí)詞語根據(jù)詞匯表進(jìn)行生成。
融合義原的摘要生成模型如圖4所示??紤]到義原可以準(zhǔn)確地捕捉一個(gè)詞在上下文中的具體含義,ASPM以詞為單位對數(shù)據(jù)進(jìn)行處理,利用SAT模型在考慮上下文信息的同時(shí)考慮了詞語的義原信息,并且針對中文數(shù)據(jù)集LCSTS中的一些多義詞構(gòu)造新的義原對這些詞進(jìn)行標(biāo)注,使得模型更具有針對性,得到詞語在當(dāng)前上下文中精確的詞向量表示。將得到的詞向量表示作為指針網(wǎng)絡(luò)的輸入,可以解決OOV問題,得到更高質(zhì)量與高可讀性的摘要。
圖4 融合義原的摘要生成模型
覆蓋機(jī)制在損失函數(shù)中加一個(gè)懲罰項(xiàng)來抑制生成摘要中某一個(gè)詞連續(xù)重復(fù)生成。考慮到LCSTS數(shù)據(jù)集為大規(guī)模短文本摘要數(shù)據(jù)集,ASPM未引入覆蓋機(jī)制,而是通過限制解碼器輸出長度來避免摘要中出現(xiàn)大量關(guān)鍵詞重復(fù)問題,這樣做可以減少實(shí)驗(yàn)影響因素,以及加快模型的訓(xùn)練速度。ASPM中新增的義原針對LCSTS數(shù)據(jù)集中的四類詞語進(jìn)行了標(biāo)注,如表1所示。
表1 新增義原標(biāo)注
其中市類、局類、人名類詞語,由于其類型的特殊性,參考SAT模型中的相應(yīng)類別標(biāo)注進(jìn)行新增詞語-義原的標(biāo)注。其他類詞語由于其詞語的多樣性,原有義原集合已不能滿足要求,因此添加新的義原到原有義原集合中。通過查閱知網(wǎng)義原標(biāo)注相關(guān)資料,新增的義原遵循“特征描述宜粗不宜細(xì)”的原則,對詞語的標(biāo)注遵循“涵蓋詞語在當(dāng)前的主要意思”的原則,以此來保證與原有詞語-義原標(biāo)注的一致性。
表1中“市”這個(gè)類別中的詞語“大同”,“義原標(biāo)注”列第一個(gè)數(shù)字“2”表示“大同”這個(gè)詞語有兩個(gè)義項(xiàng)。第二個(gè)數(shù)字“2”表示第一個(gè)義項(xiàng)由兩個(gè)義原組成,分別為“和諧”、“現(xiàn)象”。第三個(gè)數(shù)字“4”表示第二個(gè)義項(xiàng)由四個(gè)義原組成,分別為“專”“中國”“縣”“地方”。其他幾個(gè)類別義原標(biāo)注與此類似。
實(shí)驗(yàn)使用的數(shù)據(jù)集為LCSTS數(shù)據(jù)集,該數(shù)據(jù)集是由哈爾濱工業(yè)大學(xué)智能計(jì)算研究中心從新浪微博中收集構(gòu)建而成的大規(guī)模中文摘要公開數(shù)據(jù)集。數(shù)據(jù)集中包含了200多萬篇短文本及其摘要。數(shù)據(jù)詳細(xì)信息如表2所示。
表2 LCSTS數(shù)據(jù)集劃分
其中,第一部分包含2 389 925個(gè)中文短文本及摘要,實(shí)驗(yàn)把這部分?jǐn)?shù)據(jù)當(dāng)作訓(xùn)練集對模型進(jìn)行訓(xùn)練。
第二部分包含10 666個(gè)短文本及摘要,人為進(jìn)行打分標(biāo)注,其中分?jǐn)?shù)范圍為1~5分,分?jǐn)?shù)越高表明短文本與摘要的相關(guān)性越高,實(shí)驗(yàn)使用這部分?jǐn)?shù)據(jù)集中分?jǐn)?shù)為3~5分的8 685個(gè)高相關(guān)性短文本與摘要作為模型訓(xùn)練的驗(yàn)證集。
第三部包含1 106個(gè)短文本及摘要。與第二部分一樣人為進(jìn)行打分標(biāo)注。實(shí)驗(yàn)使用這部分?jǐn)?shù)據(jù)中分?jǐn)?shù)為3~5分的725個(gè)高相關(guān)性短文本與摘要作為測試集。
LCSTS數(shù)據(jù)集三個(gè)部分包含的短文本-摘要對之間沒有交集。
在實(shí)驗(yàn)過程中,通過觀察測試集上ASPM所生成摘要與參考摘要,找出其中有主語及量詞差異的摘要。通過觀察對應(yīng)的短文本-摘要對,對少數(shù)存在事實(shí)性錯(cuò)誤的參考摘要進(jìn)行了修改。如表3所示,增加事實(shí)性描述“繳費(fèi)超15年后”。
表3 修改摘要示例
實(shí)驗(yàn)使用ROUGE(Recall-Oriented Understudy for Gisting Evaluation)得分[25]作為評價(jià)指標(biāo),該指標(biāo)通過將模型自動生成的摘要與參考摘要進(jìn)行對比,通過統(tǒng)計(jì)二者之間重疊的基本單元的數(shù)目,來評價(jià)摘要的質(zhì)量。ROUGE-N的計(jì)算方法如式(11)所示。
(11)
其中,{RefSum}表示參考摘要,Cmatch(N-gram)表示候選摘要和參考摘要同時(shí)出現(xiàn)N-gram的個(gè)數(shù),C(N-gram)表示參考摘要中出現(xiàn)N-gram的個(gè)數(shù)。
本實(shí)驗(yàn)在Ubuntu16.04、Tesla V100的環(huán)境下進(jìn)行,實(shí)驗(yàn)?zāi)P驮赑ython3.6.9、Pytorch1.3.0的條件下進(jìn)行訓(xùn)練。詞匯表大小為50 000。模型超參數(shù)的設(shè)置為詞嵌入維度為128,隱藏層單元數(shù)為256,批量大小為64。使用Adagrad[26]優(yōu)化器優(yōu)化模型參數(shù),初始學(xué)習(xí)率大小為0.3,衰減系數(shù)為0.9,學(xué)習(xí)率每兩個(gè)epoch進(jìn)行一次更新。實(shí)驗(yàn)在生成摘要時(shí)采用Beam大小為4的Beam search[27]來尋找解碼時(shí)的最優(yōu)結(jié)果。通過對參考摘要長度的統(tǒng)計(jì),生成摘要的最大長度限制為15個(gè)詞。
論文使用如下4個(gè)模型在LCSTS數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。
RNNContext: RNN Context為LCSTS數(shù)據(jù)集創(chuàng)建之初使用編碼-解碼結(jié)構(gòu)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)的模型,其中編碼器使用RNN將輸入序列轉(zhuǎn)換為輸入向量隱藏狀態(tài),解碼器使用RNN再將這個(gè)向量隱藏狀態(tài)轉(zhuǎn)換為輸出序列。實(shí)驗(yàn)使用基于漢字的方法(character-based)和基于詞的方法(word-based)對數(shù)據(jù)進(jìn)行處理。
PointerNetwork: Pointer Network模型為編碼-解碼結(jié)構(gòu)與指針網(wǎng)絡(luò)的融合,其中編/解碼器均使用LSTM對序列進(jìn)行處理,它可以通過一個(gè)指針開關(guān)來決定當(dāng)前預(yù)測是直接從原文本中復(fù)制一個(gè)詞還是通過詞匯表生成一個(gè)詞??紤]到LCSTS數(shù)據(jù)集為短文本數(shù)據(jù)集,因此本實(shí)驗(yàn)中Pointer Network沒有增加覆蓋機(jī)制,而是通過限制解碼器生成字?jǐn)?shù)來減輕重復(fù)詞的出現(xiàn)。實(shí)驗(yàn)使用基于詞的方法對數(shù)據(jù)進(jìn)行處理。
SPM: 與ASPM模型相比,SPM(Sememe-Pointer Model)未添加針對LCSTS數(shù)據(jù)集構(gòu)造的義原。作為對比實(shí)驗(yàn),可以對比得到不針對LCSTS數(shù)據(jù)集添加義原以及添加新的義原后模型生成摘要質(zhì)量的提升。
ASPM: ASPM模型在SPM模型的基礎(chǔ)上,針對LCSTS數(shù)據(jù)集中詞語多樣性問題構(gòu)建專門的義原對這些詞語進(jìn)行解釋,使得詞語-義原標(biāo)注可以進(jìn)一步涵蓋數(shù)據(jù)集中的多義詞,訓(xùn)練得到更能理解詞語語義的詞向量,進(jìn)一步提高模型摘要生成的準(zhǔn)確度。不同方法的摘要對比結(jié)果如表4所示。
表4 實(shí)驗(yàn)結(jié)果對比
從表4中可以看出,RNN Context中基于漢字的方法對數(shù)據(jù)進(jìn)行處理ROUGE分?jǐn)?shù)要優(yōu)于基于詞的方法,這是因?yàn)榛谠~的方法由于OOV問題,導(dǎo)致生成摘要中包含太多UNK,而基于字的方法可以輕松解決這個(gè)問題。Pointer Network模型通過指針開關(guān)來選擇從原文本中復(fù)制一個(gè)詞還是通過詞匯表生成一個(gè)詞,即可以使用基于詞的方法對數(shù)據(jù)進(jìn)行處理,從而讓模型能夠得到更多的語義信息,同時(shí)解決了RNN Context中OOV問題,相比RNN Context模型,ROUGE分?jǐn)?shù)有很大的提升。
而SPM模型在Pointer Network模型的基礎(chǔ)上引入義原向量,在原有模型基礎(chǔ)上對多義詞進(jìn)行消歧,使得模型更好地對語義進(jìn)行理解,生成的摘要更加貼合于參考摘要,因而獲得更高的ROUGE分?jǐn)?shù)。
ASPM模型通過針對LCSTS數(shù)據(jù)集中的特定多義詞構(gòu)造義原,添加約575個(gè)的詞語-義原標(biāo)注,得到義原向量后與Pointer Network融合取得了高于SPM模型的ROUGE分?jǐn)?shù),更加表明了添加義原向量對模型理解語義的重要性。同時(shí)對深度學(xué)習(xí)模型在其他數(shù)據(jù)集上得到更加精確的語義與生成可讀性更高的摘要,起到了一定的促進(jìn)作用。
圖5為ASPM模型與Pointer Network模型訓(xùn)練過程中的epoch-loss曲線圖,從圖中可以看出ASPM模型的準(zhǔn)確率要高于Pointer Network模型,特別是在第8輪epoch之后,效果更加明顯。這說明使用義原向量可以幫助模型更好地理解語義,使得生成的摘要更加準(zhǔn)確,更具有可讀性。
圖5 實(shí)驗(yàn)loss值
表5為實(shí)驗(yàn)選取的測試集中Pointer Network模型與ASPM模型分別生成摘要的一個(gè)例子,從表中可以看出,Pointer Network模型生成的摘要已經(jīng)可以表達(dá)出文本的大意,但是還缺乏對時(shí)間的表示。而ASPM模型生成的摘要則捕捉到了時(shí)間信息,很好地總結(jié)了文本所要表達(dá)的意思。
表5 摘要生成實(shí)例
本文提出一種融合義原的中文摘要生成模型,在Pointer Network模型的基礎(chǔ)上引入義原向量,使得模型既可以解決以詞為單位對數(shù)據(jù)進(jìn)行處理時(shí)出現(xiàn)的OOV問題,又可以更好地理解語義。并且通過增加新的義對LCSTS數(shù)據(jù)集中的四類約575個(gè)詞語進(jìn)行標(biāo)注,訓(xùn)練得到更加精確的詞向量表示,幫助模型生成更高質(zhì)量與高可讀性的摘要。實(shí)驗(yàn)結(jié)果表明,本文的針對數(shù)據(jù)集構(gòu)建義原向量的方法可以大大提升以詞為單位進(jìn)行數(shù)據(jù)處理的摘要生成模型的效果。這對以詞為單位進(jìn)行數(shù)據(jù)處理的摘要生成模型的發(fā)展以及針對不同數(shù)據(jù)集的處理有一定促進(jìn)作用。
本文沒有研究添加義原的不同類型對模型生成摘要的影響,因此模型還有一定的提升空間,針對不同數(shù)據(jù)集添加何種類型的義原更有助于提升生成摘要的質(zhì)量是下一步研究的目標(biāo)。