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