賽爾原創 | 基於序列到序列模型的句子級複述生成

哈工大SCIR發表於2017-07-17

作者:哈工大SCIR  寧丹丹、冷海濤

摘要:句子複述是指將一個句子換一種表達方式,意思與之前一樣。複述在自然語言處理中應用廣泛,例如被應用在資訊檢索、自動文摘、資訊抽取、句子翻譯等任務中。本文主要研究句子級複述生成的相關內容,首先我們嘗試了基本seq2seq模型用於句子複述,在encoder階段採用雙向LSTM,在此基礎上加入attention機制,比較句子生成結果,可以得出加入attention機制的模型生成結果效果要好。此外本文提出copy機制和coverage機制對模型進行改進,其中copy機制旨在解決原句中出現人名、地名等特殊詞彙的情況,對這些特殊詞彙我們希望模型可以對其進行復制,不進行改變。實驗結果證明,copy機制對這一情況有所改善,句子生成效果較好。最後,針對seq2seq普遍存在的重複問題,我們在copy機制的基礎上加入coverage機制,有效改善了生成句子的重複問題。對於模型生成結果,我們採用BLEU值進行評價。

1. 引言

複述(paraphrase)是自然語言中普遍存在的一種現象,它體現了自然語言的多樣性。隨著深度學習的發展以及自然語言處理各項技術的提高,對複述技術的需求也日趨強烈,因此各大研究機構及高校等對複述任務的研究也越來越關注,複述研究的物件主要是有關短語或者句子的同義現象。它在資訊檢索、自動問答、資訊抽取、自動文摘、機器翻譯等方面應用廣泛。之前,對於複述生成的研究主要利用句子中詞語之間的關係,句子的依存句法關係等進行復述生成。隨著深度學習的發展,很多研究將深度學習技術應用到複述生成的任務中,效果顯著。本文采用序列到序列模型的方法,進行句子級複述研究,在基本seq2seq模型上嘗試三種改進方法,分別是基於雙向LSTM with attention機制的改進方法、加入複製(copy)機制以及加入覆蓋(coverage)機制的方法。其中複製機制主要解決句子中詞頻比較低的詞語的生成,例如在句子中會存在人名、地名等詞頻較低的詞,在複述過程中,我們希望生成的句子將這些名稱進行復制,不進行改變,因此提出copy機制來解決這一問題,另外,seq2seq模型存在重複這一共性問題,本文采用coverage機制對這一現象進行改進。經過這三種改進方法,句子生成結果改進效果明顯。

2. 基於序列到序列的句子級複述生成模型

在國內,句子級複述生成的研究主要圍繞seq2seq模型進行改進,2016年,Gu Jiatao等人[1]提出CopyNet方法,在Attention-based Encoder-Decoder模型的基礎上,進行了一些改進,他在decoder過程中,詞的概率由generate-mode和copy-mode共同決定,其中後者表示該詞來自原句。例如,在生成對話的過程中,就可以將人名這樣的特殊詞彙拷貝到回覆句中。Cao Ziqiang等人[2]在句子級複述生成中借鑑CopyNet方法,提出了基於copy機制的複述生成模型,相較於Gu Jiatao等人提出CopyNet模型,該模型比較簡單易懂,他們將該模型應用到文字簡化,摘要生成等任務上,取得了較好的結果。國外在句子級複述任務上也做了很多的研究工作,Prakash A[3]等人在2016年提出了Stacked Residual LSTM networks用於複述生成問題上,他們利用基本seq2seq 的encoder-decoder模型,採用多層結構,在層與層之間加入一個殘差,來改善多層網路存在的梯度消失問題。Hasan[4]等人提出Neural Clinical Paraphrase Generation方法,用於臨床醫學術語等的複述問題上,目的是用通俗易懂的詞代替一些專業醫學術語,讓患者更加容易理解,他們採用attention-based Bi-direction RNN的端到端結構進行復述生成,得到了較好的結果。此外,2017年,See A[5]等人提出一種基於seq2seq模型的改進方法——Pointer-Generator Networks,並將其用到文字摘要生成的任務當中,取得了較好的結果。

在本文中,我們嘗試了三種序列到序列模型的改進方法進行句子級複述生成,首先我們在基本seq2seq模型上加入attention機制,在encoder階段採用雙向LSTM模型,用於提高seq2seq模型效果,模型結構圖如下所示。

           

賽爾原創 | 基於序列到序列模型的句子級複述生成

圖1  雙向LSTM with attention模型結構·

上述模型存在一定的問題:當原句中存在一些人名、地名等詞頻較低,不在詞表中的詞時,期望的結果是生成的句子中也存在這些詞,但是基本seq2seq模型和加入attention機制的模型對這一問題沒有做特別的處理,所以導致生成的句子中人名、地名的特殊詞語生成結果不好。所以,針對這一問題本文引入copy思想,在attention機制的模型上進行改進,一定程度上解決像人名、地名等OOV(out of vocabulary)的詞語的生成情況。另一方面,seq2seq模型和加入attention機制的模型生成的句子存在重複的問題,這個問題是seq2seq模型的一個通病。生成的句子越長,重複問題越明顯,針對這一問題,本文提出coverage機制來對這一問題進行改善,模型結構如下圖所示。

賽爾原創 | 基於序列到序列模型的句子級複述生成

圖2  複製及覆蓋機制模型結構

 

3. 語料獲取及處理

目前自然語言處理研究中,沒有大規模現成的複述語料資源,需要採取一定的方法獲取複述語料。例如英文詞語級複述資源用WordNet[6]、MindNet[7]等獲取,中文可以採用同義詞詞林、知網等。2001年,Barzilay[8]提出了一種基於外文翻譯獲取句子級複述語料庫的方法。Shinyama[9]等人提出了利用同一個新聞事件的不同描述來獲取複述語料,他們假定若兩個句子中共同包含的命名實體超過一定的數量,那麼這兩個句子可以組成一個複述例項。

本課題借鑑前人Barzilay[8]及哈工大李維剛[10]等人的方法,從單語平行語料庫中,也就是外文名著的不同譯本獲取複述例項。由於待處理的平行譯文文字,大多數是從網路上得到的,這些文字具有很多不規範的特徵,例如這些文字一般是篇章對齊的,其中的段落沒有嚴格的對齊,並且在翻譯時,為了保證翻譯後語句的通順,源語言的一句話可能被翻譯成多句話。基於以上問題,為了獲取複述例項,我們需要將句子進行對齊。首先我們將文字整合為一篇文章消除段落界限,利用二分圖最優匹配的過程,對句子進行對齊,獲取複述例項。

本文利用《百年孤獨》和《呼嘯山莊》兩部外文名著的不同翻譯版本獲取複述語料,語料規模為:10159句對。對抽取出的複述句對再次進行過濾處理,若對應的兩句長度差超過一定的值則將該句對進行過濾,過濾處理後的語料規模為8022句。

4. 實驗結果

本文采用BLEU值對句子級複述生成的結果進行評價。該評價方式最先由IBM[11]在2002年提出。利用BLEU值對上述模型生成的句子進行評價。結果如下表所示。

賽爾原創 | 基於序列到序列模型的句子級複述生成

由BLEU值可以得出,加入copy機制的結果比attention機制的結果有所提高,在copy機制上繼續加入coverage機制後,結果再次提高。說明copy機制和coverage機制對句子級複述生成具有一定的效果。

賽爾原創 | 基於序列到序列模型的句子級複述生成

通過分析實驗結果示例,我們可以得出,當加入copy機制後,原句中存在人名、地名等特殊詞彙時,可以進行復制生成,而不是生成其他的人名或地名,例如示例1~3中,人名“霍·阿·布恩蒂亞”和“烏蘇娜”都在生成句中出現。對於coverage機制,在未加入coverage機制之前,在生成的後半階段重複問題比較嚴重,例如示例1、3中,在後續生成過程中總是重複最後一個詞生成,加入coverage機制後,我們可以看到,重複問題有所改善。例如示例1、3,已經生成的詞語不會再出現,說明coverage機制對實驗結果效果的提升起了很大作用。


5. 結束語

本文主要嘗試了三種基於序列到序列模型的改進方法應用到句子級複述生成任務中,首先我們嘗試了基本seq2seq模型用於句子複述,並嘗試在encoder階段採用雙向LSTM,之後在雙向LSTM基礎上加入attention機制,比較句子生成結果,可以得出加入attention機制的模型生成結果效果要好。之後本文用copy機制和coverage機制對模型進行改進,其中copy機制旨在解決原句中出現人名、地名等特殊詞彙的情況,對這樣的情況我們希望模型可以對詞進行復制,不進行改變。實驗結果證明,copy機制對這一情況有所改善,句子生成效果較好,針對seq2seq普遍存在的重複問題,我們在copy機制的基礎上加入coverage機制,有效改善了生成句子中的重複問題。

參考文獻:

[1] Gu J, Lu Z, Li H, et al. Incorporating copying mechanism in sequence-to-sequence learning[J]. arXiv preprint arXiv:1603.06393, 2016.

[2] Cao Z, Luo C, Li W, et al. Joint Copying and Restricted Generation for Paraphrase[J]. arXiv preprint arXiv:1611.09235, 2016.

[3] Prakash A, Hasan S A, Lee K, et al. Neural Paraphrase Generation with Stacked Residual LSTM Networks[J]. 2016.

[4] Hasan S A, Liu B, Liu J, et al. Neural Clinical Paraphrase Generation with Attention[J]. ClinicalNLP 2016, 2016: 42.

[5] See A, Liu P J, Manning C D. Get To The Point: Summarization with Pointer-Generator Networks[J]. arXiv preprint arXiv:1704.04368, 2017.

[6] George Miller,Richard Beckwith, Christiane Felbaum, Derek Gross, and Katherine Miller. Introduction to wordnet: An online lexical database, 1993 

[7] Stephen D. Richardson, William B. Dolan, and Lucy Vanderwende. Mindnet: Acquiring and structuring semantic information from text. Technical Report TR-98-23, Microsoft Research, 1998

[8] Regina Barzilay and Kathleen McKeown. Extracting paraphrases from a parallel corpus. In Proceedings of the ACL/EACL, Toulouse, 2001 

[9] Yusuke Shinyama, Satoshi Sekine, Kiyoshi Sudo, and Ralph Grishman. Automatic paraphrase acquisition from news articles, In Proceedings of Human Language Technology Conference (HLT2002), San Diego, USA, Mar. 15, 2002

[10] 李維剛. 中文複述例項與複述模板抽取技術研究[D]. 哈爾濱工業大學, 2008.

[11] Papineni K, Roukos S, Ward T, et al. BLEU: a method for automatic evaluation of machine translation[C]// Meeting on Association for Computational Linguistics. Association for Computational Linguistics, 2002:311-318.


本文來源於哈工大SCIR

原文連結點選即可跳轉

賽爾原創 | 基於序列到序列模型的句子級複述生成

相關文章