本期導(dǎo)讀:近年來,序列到序列(seq2seq)方法成為許多文本生成任務(wù)的主流思路,在機器翻譯、文本摘要等絕大多數(shù)生成任務(wù)上都得到了廣泛的應(yīng)用。與此同時,一些研究人員另辟蹊徑,跳脫出傳統(tǒng)的seq2seq方法,探索如何將 編輯方法(edit-based approach) 應(yīng)用于一些文本生成任務(wù),從而提升模型在生成任務(wù)上的表現(xiàn)。本期結(jié)合Google Research的三篇工作,對基于編輯方法的文本生成技術(shù)進行介紹。
1. 引言
在文本生成任務(wù)中引入編輯方法的 motivation 主要有兩方面:
首先,基于Transformer結(jié)構(gòu)的seq2seq模型在當(dāng)前各項文本生成任務(wù)上得到了廣泛使用。而這類傳統(tǒng)seq2seq模型的不足主要有以下幾點:
(1)數(shù)據(jù)效率: 為使模型在文本生成任務(wù)上獲得較好的表現(xiàn),傳統(tǒng)seq2seq模型通常需要在大量數(shù)據(jù)上進行訓(xùn)練,時間長,計算量龐大。
(2)推理時間: 傳統(tǒng)seq2seq模型在解碼時主要采用自回歸的方式。這種方式按順序從左至右一個詞一個詞地預(yù)測輸出,雖然遵循了人類語言的單向順序性,但大大增加了模型的推理時間。
(3)可控性與可解釋性: 傳統(tǒng)seq2seq模型在輸出時會發(fā)生一些錯誤。例如,產(chǎn)生輸入文本中并不支持的輸出(hallucination)。此外,模型在輸出時的可解釋性也較差。
其次,以句子融合、語法糾錯等為代表的一些文本生成任務(wù)均具有 “重合”(overlap) 的特點,即源文本和目標(biāo)文本在語言上重復(fù)性較大,只需要對源文本做微小的改動就能生成目標(biāo)文本(圖1)。因此從頭訓(xùn)練一個seq2seq模型然后自回歸地預(yù)測輸出就顯得較為浪費?;诖?,復(fù)制機制(copy mechanism)的引入使得模型能夠?qū)Ξ?dāng)前輸出是復(fù)制原詞還是生成新詞進行選擇。但即使模型使用了復(fù)制機制,仍需要較大規(guī)模的訓(xùn)練數(shù)據(jù)來滿足解碼時的詞匯量需求,從而保證模型性能。
綜上,在文本生成任務(wù)中引入文本編輯的方法,意在針對一些生成任務(wù)中的overlap特點,合理利用源文本與目標(biāo)文本的相似部分,改善傳統(tǒng)seq2seq模型的不足。這種方法直觀上保留了從源文本到目標(biāo)文本的編輯過程(如哪些詞保留,哪些詞需要刪除等),與人類實際處理這類生成任務(wù)的思路不謀而合,從而也帶來了較好的可解釋性。
2. LaserTagger
LaserTagger是Google Research在 “Encode, Tag, Realize: High-Precision Text Editing” 一文中提出的文本生成模型,該論文發(fā)表于EMNLP 2019。
這篇工作的主要貢獻有:
(1)將序列標(biāo)注作為源文本到目標(biāo)文本的跳板,即首先對源文本標(biāo)注編輯操作標(biāo)簽,再根據(jù)標(biāo)注得到的標(biāo)簽序列將源文本并行轉(zhuǎn)化為目標(biāo)文本(圖2)。
(2)基于(1)的思路,設(shè)計了基于編輯操作的文本生成模型LaserTagger(包括LaserTaggerFF和LaserTaggerAR兩種模型變體),并且在四種文本生成任務(wù)上進行了對比實驗,獲得了較好的效果。
2.1 主要方法
標(biāo)注操作定義
本文定義文本編輯操作標(biāo)簽由兩部分構(gòu)成:基本標(biāo)簽B和附加標(biāo)簽P,表示為。
基本標(biāo)簽分為兩種:保留()或刪除(),指對當(dāng)前位置的token進行保留還是刪除操作。
附加標(biāo)簽指需要在當(dāng)前位置插入新短語(可以是單個詞、多個詞或標(biāo)點等,也可以為空)。
在構(gòu)造編輯標(biāo)簽序列時,由匹配算法(見圖4)從訓(xùn)練語料構(gòu)造出的phrase vocabulary 中選出合適的短語插入。因此,若詞典的大小為,則編輯標(biāo)簽的總規(guī)模則約為。
此外,可以根據(jù)不同的下游任務(wù)定義一些特殊標(biāo)簽。例如在句子融合任務(wù)中有時需要交換輸入句子的語序,此時可以設(shè)置標(biāo)簽SWAP代表交換語序操作。
構(gòu)造phrase vocabulary
在構(gòu)造訓(xùn)練數(shù)據(jù)對應(yīng)的編輯標(biāo)簽序列時,若詞典無法提供可插入的新短語,則該條訓(xùn)練數(shù)據(jù)會被篩掉。因此理想的詞典應(yīng)滿足以下兩點:一方面,詞典規(guī)模應(yīng)盡可能的??;另一方面,該詞典應(yīng)能夠盡可能的覆蓋更多的訓(xùn)練數(shù)據(jù)。
構(gòu)造詞典的步驟為:
(1) 將源文本和目標(biāo)文本對齊,計算出它們的最長公共子序列(longest common subsequence, LCS)。
(2) 將目標(biāo)文本中不屬于LCS的n-grams加入詞典中。
(3) 最終保留出現(xiàn)頻率最高的個phrases。
在實驗中發(fā)現(xiàn),詞典保留頻率最高的500個phrases已能覆蓋85%的訓(xùn)練樣本,且再繼續(xù)增大詞典規(guī)模對LaserTagger的性能幫助很小。因此,在本文的各主要實驗中,詞典的大小均被設(shè)置為500。
構(gòu)造編輯標(biāo)簽序列
在定義好標(biāo)簽、構(gòu)造完詞典之后,就可以根據(jù)訓(xùn)練語料中的源文本和目標(biāo)文本構(gòu)造出對應(yīng)編輯標(biāo)簽序列,進行有監(jiān)督學(xué)習(xí)。
構(gòu)造編輯標(biāo)簽序列的算法如圖4中偽代碼所示。該算法主要采用貪心匹配的思想,通過設(shè)置兩個指針(is與it)對源文本和目標(biāo)文本進行遍歷,進而構(gòu)造出標(biāo)簽序列。值得注意的是偽代碼中并未給出PDELETE標(biāo)簽如何生成。筆者猜測可能是由于PDELETE標(biāo)簽與PKEEP標(biāo)簽實際上可以相互替代(如圖5所示),在實驗中二者使用一個即可。
2.2 模型概述
本文設(shè)計的LaserTagger有兩種變體:LaserTaggerFF與LaserTaggerAR。前者Decoder部分采用前饋網(wǎng)絡(luò)(feed forward network),推理速度更快;后者Decoder部分采用的是1層Transformer Decoder,推理效果更好。兩種變體Encoder部分均與BERT-base結(jié)構(gòu)相同,為12層Transformer Encoder。
3. Seq2Edits
Seq2Edits是Google Research在 “Seq2Edits: Sequence Transduction Using Span-level Edit Operations” 一文中提出的文本生成模型,該論文發(fā)表于EMNLP 2020。
本篇工作的主要改進有:
(1)與LaserTagger不同,Seq2Edits是在span-level上進行標(biāo)簽標(biāo)注。即,LaserTagger對每一個詞(token)標(biāo)注一個編輯標(biāo)簽,而Seq2Edits對一個或多個詞(span)標(biāo)注一個編輯標(biāo)簽。
論文作者認(rèn)為在span-level上進行標(biāo)注操作能夠更好地對局部依賴(local dependencies)進行建模,而對于語法糾錯等生成任務(wù)而言,人類實際解決這類問題時的主要根據(jù)也是span與span間的局部依賴,因此在span-level上進行標(biāo)注操作也與人類實際解決問題時的思路相吻合。
(2)Seq2Edits將標(biāo)注操作進一步細(xì)化,每一個span對應(yīng)的編輯標(biāo)簽都由一個三元組組成,相比LaserTagger的標(biāo)簽定義方式粒度更細(xì),因此可解釋性也更好。
(3)推理時間不再取決于目標(biāo)文本的長度,而是依賴于編輯操作的規(guī)模。推理速度相比傳統(tǒng)seq2seq模型仍得到大幅提升。
3.1 主要方法
標(biāo)注操作定義
Seq2Edits的標(biāo)注操作與LaserTagger主要有兩點不同:(1)Seq2Edits是在span-level上打標(biāo)簽;(2)Seq2Edits的編輯標(biāo)簽被定義為三元組的形式。
編輯標(biāo)簽被定義為一個三元組,其中代表編輯操作類型(例如修改標(biāo)點,修改動詞形式等),代表編輯操作的結(jié)束位置(默認(rèn)當(dāng)前操作的開始位置為上一個標(biāo)簽的結(jié)束位置),為替換短語(保留原文為)。
生成任務(wù)表示
設(shè)源文本為序列,長度為;目標(biāo)文本為序列,長度為。
則傳統(tǒng)seq2seq思路下文本生成任務(wù)可表示為:
使用本文方法,則任務(wù)可表示為:
以圖7中句子為例,若源文本、目標(biāo)文本分別為:
則編輯標(biāo)簽序列為:
從源文本到目標(biāo)文本的過程則可表示為:
從本文對生成任務(wù)的概率表示中可以看出,在每一個上,標(biāo)簽三元組中相互并不是條件獨立的,而是有著一定的依賴關(guān)系,即:
因此,模型在預(yù)測標(biāo)簽三元組時存在著先后順序:在第個上,先預(yù)測,然后預(yù)測,最后預(yù)測。
3.2 模型概述
在理解Seq2Edits生成文本的概率表示后就不難理解其模型結(jié)構(gòu)。Seq2Edits沿用了標(biāo)準(zhǔn)的Transformer Encoder-Decoder結(jié)構(gòu),將Decoder分為A和B兩部分來分別預(yù)測標(biāo)簽、和。Decoder A和Decoder B之間使用殘差連接(residual connections)。
對于位置標(biāo)簽的預(yù)測基于pointer-network,使用了類似Transformer中attention的機制,即:其中(queries)來自歷史的decoder states,(keys)和(values)來自當(dāng)前的encoder states。
本期介紹了Google Research的LaserTagger和Seq2Edits兩篇工作,下一期將繼續(xù)介紹Google的第三篇工作FELIX以及三篇工作的實驗評價部分和總結(jié),敬請關(guān)注。
編輯:jq
-
Google
+關(guān)注
關(guān)注
5文章
1772瀏覽量
57841
原文標(biāo)題:基于編輯方法的文本生成(上)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論