比基線模型快100倍Google開源文本生成“加速器”LaserTagger
2014年,Google提出了Sequence-to-Sequence模型,旨在將句子文本映射到fixed-length向量,其中輸入和輸出的長度可能會有所不同。Seq2Seq通常應用於NLP領域的文本生成任務,例如摘要生成、語法糾錯、句子合併等。
儘管最新的研究突得端到端的方法在文本生成上比之前更有優勢,但其本身存在的不可解釋性,一方面使得該模型需要大量的訓練數據才能達到可接受的性能水平,另一方面通常只能逐字生成文字,本質上是很慢的。
近日,Google研究團隊開源了一款文本編輯模型LaserTagger,可推理出一系列編輯操作,以將源文本轉換為目標文本。研究人員斷言,LaserTagger處理文本生成一般不易出錯,且更易於訓練和執行。
在此之前,Google已經發布了Meena,一個具有26億個參數的神經網絡,可處理多輪對話。1月初,Google在論文中還提出了Reformer模型,可處理所有小說。
GitHub鏈接:https://github.com/google-research/lasertagger
LaserTagger設計和功能
對於許多文本生成任務,輸入和輸出之間存在高度重疊,LaserTagger正是利用了一點。例如,在檢測和糾正語法錯誤或多個合併句子時,大多數輸入文本可以保持不變,只需修改一小部分單詞。然後,LaserTagger會生成一系列編輯操作,而非實際單詞。
目前支持的四種編輯操作:
- Keep(將單詞複製到輸出中)
- Delete(刪除單詞)
- Keep-AddX(添加短語X到標記的單詞前)
- Delete-AddX(刪除標記的單詞)
下圖對LaserTagger在句子合併中的應用進行了說明。
圖注:LaserTagger預測的編輯操作中,刪除“Turing”,添加“ and he ”。請注意,輸入和輸出文本存在的高度重疊。
所有添加的短語均來自受限制的詞彙表。該詞彙表是一個優化過程的結果,該優化過程具有兩個目標:(1)最小化詞彙表的大小和(2)最大化訓練樣本的數量,其中添加到目標文本的唯一必要單詞僅來自詞彙表。短語詞彙量受限制會使輸出決策的空間變小,並防止模型添加任意詞,從而減輕了“幻覺”(注:hallucination,模型在所生成的文本中,輸入信息中並不存在)的問題。
輸入和輸出文本的高重疊性的一個推論是,所需的修改往往是局部的並且彼此獨立。這意味著編輯操作可以高精度地並行推理,與順序執行推理的自回歸seq2seq模型相比,可顯著提高端到端的速度。
結果
研究人員評估了LaserTagger在四個任務中的表現,分別是:句子合併,拆分和改述,抽象總結和語法糾正。結果顯示,使用大量訓練樣本情況下,LaserTagger與基於BERT的seq2seq基線成績相當,並且在訓練樣本數量有限時明顯優於基線。下面顯示了WikiSplit數據集上的結果,其中的任務是將一個長句子改寫為兩個連貫的短句子。
圖注:在100萬個樣本的完整數據集上訓練模型時,LaserTagger和基於BERT的seq2seq基線成績相當,但在10,000個或更少樣本的子樣本上進行訓練時,LaserTagger明顯優於基線模型( SARI得分越高越好)。
LaserTagger主要優點
與傳統的seq2seq方法相比,LaserTagger具有以下優點:
- 控制:通過控制輸出短語詞彙(也可以手動編輯或整理),LaserTagger比seq2seq基線更不易產生“幻覺”問題。
- 推理速度:LaserTagger計算推理的速度比seq2seq基線快100倍,能夠滿足實際情況下的實時問題。
- 數據效率:即使僅使用幾百或幾千個訓練樣本進行訓練,LaserTagger也會產生合理的輸出。實驗中,seq2seq基線需要成千上萬個樣本才能獲得相同的性能。
Google團隊最後寫道:“ LaserTagger的優勢在大規模應用時變得更加明顯,例如,通過縮短響應時間並減少重複性,改進了某些服務中語音應答的格式。高推理速度使該模型可以插入現有技術堆棧中,而不會在用戶端增加任何明顯的延遲,而改進的數據效率可以收集多種語言的訓練數據,從而使來自不同語言背景的用戶受益。 ”
相關鏈接:https://ai.googleblog.com/2020/01/encode-tag-and-realize-controllable-and.html