4. FELIX
FELIX是Google Research在“FELIX: Flexible Text Editing Through Tagging and Insertion”一文中提出的文本生成模型,該論文發(fā)表于EMNLP 2020 Findings。
受限于有限的編輯操作標(biāo)簽,LaserTagger、Seq2Edits主要進(jìn)行單詞或短語的保留、刪除、替換操作,更多的是對文本的局部編輯,無法直接改變文本的結(jié)構(gòu)特征(例如主動句改被動句:“They ate steak for dinner.” “Steak was eaten for dinner.”)。
同時,受限于詞典規(guī)模,LaserTagger與Seq2Edits也不支持大量插入新文本。而如果使用自回歸的方法來支持大量插入新文本,勢必大大降低模型的推理速度。所以,F(xiàn)ELIX希望能夠兼顧文本生成的推理速度和靈活性。
本篇工作的主要改進(jìn)有:
(1)在保留、刪除等基本編輯操作上引入重排序(reorder)操作。通過重排序操作,在復(fù)用重復(fù)文本的同時實現(xiàn)文本結(jié)構(gòu)特征的改變,提高文本生成的靈活性。
(2)受BERT自監(jiān)督預(yù)訓(xùn)練任務(wù)啟發(fā),通過引入Masked Language Model(MLM)來預(yù)測待插入的新詞。
4.1 主要方法
FELIX將文本生成分為兩步:通過標(biāo)注模型(tagging model)對源文本標(biāo)注編輯標(biāo)簽后進(jìn)行重排序,然后輸入插入模型(insertion model)對要插入的新文本進(jìn)行預(yù)測。
標(biāo)注
以圖10為例,源文本為 “The big very loud cat.” ;目標(biāo)文本為 “The noisy large cat.” 。其中為tagger模塊預(yù)測的標(biāo)簽序列;為經(jīng)過Pointer重排序后加入特殊標(biāo)簽(, )得到的序列,將輸入插入模型預(yù)測得到最終結(jié)果。
圖 10 FELIX對插入文本的兩種預(yù)測方式
FELIX對編碼后的源文本進(jìn)行標(biāo)注,保留操作和刪除操作標(biāo)簽仍為和。結(jié)合MLM,F(xiàn)ELIX設(shè)計了兩種方式預(yù)測要插入的新文本:Masking 和 Infilling 。Masking 方式不僅需要模型預(yù)測插入內(nèi)容,還需要模型預(yù)測插入文本的長度(如,對應(yīng)中加入兩個標(biāo)簽)。
Infilling 方式直接讓模型預(yù)測待插入的新文本的內(nèi)容,不需要模型預(yù)測插入文本的長度。即,在中插入固定個數(shù)的標(biāo)簽(實驗中插入8個即可覆蓋99%的樣本),預(yù)測插入內(nèi)容時多余的標(biāo)簽使用標(biāo)簽覆蓋。
需要注意的是,在將輸入到MLM進(jìn)行預(yù)測時,F(xiàn)ELIX保留了待刪除的span(用一對特殊的token 和 將span括起來,而非直接將待刪除部分替換為標(biāo)簽)。即使這樣做會導(dǎo)致fine-tuning和pre-training的不一致,但能夠保留更多的語義信息,提高模型預(yù)測的準(zhǔn)確性。
重排序
為了保證推理效率,F(xiàn)ELIX的重排序也是非自回歸(non-autoregressive)的,類似于non-projective dependency parsing。具體實現(xiàn)時使用constrained beam search來保證除了待刪除的token外,每一個token都會被指向,且避免有token被指向兩次而產(chǎn)生循環(huán)。
4.2 模型概述
FELIX tagging model:
Encoding: 使用12層的BERT-base模型對源文本進(jìn)行編碼。
Tagging: 使用一層feed-forward layer預(yù)測標(biāo)簽。
Pointing: 基于注意力機制的pointer network進(jìn)行重排序。
FELIX insertion model:
12層的BERT-base模型。并使用預(yù)訓(xùn)練權(quán)重進(jìn)行初始化。
5. 實驗評價
三篇工作分別在句子融合、句子分割復(fù)述、語法糾錯等多種文本生成任務(wù)上進(jìn)行了實驗,主要驗證了模型在三方面的性能:生成文本的質(zhì)量、模型推理效率以及模型在小樣本上的表現(xiàn)。
句子融合(Sentence Fusion) | ? | ? | ? |
句子分割復(fù)述(Split & Rephrase) | ? | ? | |
文本摘要(Summarization) | ? | ? | |
語法糾錯(Grammatical Error Correction) | ? | ? | |
文本規(guī)范化(Text Normalization) | ? | ||
文本簡化(Text Simplification) | ? | ? | |
自動后編輯(Automatic Post-Editing) | ? | ||
LaserTagger | Seq2Edits | FELIX |
---|
5.1 生成質(zhì)量
句子融合 & 分割復(fù)述
三篇工作均在句子融合任務(wù)上進(jìn)行了實驗,使用數(shù)據(jù)集為DiscoFuse,評價指標(biāo)為SARI、Exact。其中SARI將預(yù)測輸出與輸入文本以及reference比較,評價模型對源文本進(jìn)行各種編輯操作后生成文本的“好壞”;Exact主要評價模型生成的文本和標(biāo)準(zhǔn)答案之間“有多接近”。
SARI | Exact | ||
---|---|---|---|
full sequence model | BERT2BERT | 89.52 | 63.90 |
Seq2SeqBERT | 85.30 | 53.60 | |
edit-based model | LaserTagger | 85.45 | 53.80 |
Seq2Edits | 88.73 | 61.71 | |
FELIX | 88.78 | 61.31 |
從上表中可以看出,基于編輯方法的生成模型較之傳統(tǒng)full sequence model在生成文本的質(zhì)量上有下降,但改進(jìn)后的Seq2Edits和FELIX在兩項指標(biāo)上已經(jīng)和full sequence model十分接近。
LaserTagger和Seq2Edits均在句子分割復(fù)述任務(wù)上進(jìn)行了實驗。該任務(wù)為句子融合任務(wù)的逆任務(wù),使用數(shù)據(jù)集為WikiSplit 。Seq2Edits在該項任務(wù)上表現(xiàn)較優(yōu)。
SARI | Exact | ||
---|---|---|---|
full sequence model | Seq2SeqBERT | 62.3 | 15.1 |
edit-based model | LaserTagger | 61.7 | 15.2 |
Seq2Edits | 63.6 | 17.0 |
文本簡化
Seq2Edits和FELIX均在文本簡化任務(wù)上進(jìn)行了測試,并與LaserTagger進(jìn)行了對比。該任務(wù)需要在保持源文本基本語義的情況下,通過改寫降低源文本的復(fù)雜度,以方便兒童等特殊群體閱讀。實驗使用數(shù)據(jù)集為WikiLarge,評價指標(biāo)為SARI。在該項任務(wù)上FELIX有著較好的表現(xiàn)。
SARI | ||
---|---|---|
edit-based model | LaserTagger | 32.31 |
Seq2Edits | 37.16 | |
FELIX | 38.13 |
5.2 推理效率
在推理效率方面三篇工作均與傳統(tǒng)full sequence model進(jìn)行了對比實驗,結(jié)果證明相較于傳統(tǒng)seq2seq方法,基于編輯方法確實能夠大大提高模型的推理速度。在推理速度上對三種模型進(jìn)行橫向?qū)Ρ?,F(xiàn)ELIX最優(yōu),而Seq2Edits由于模型本身的復(fù)雜性,在三者中速度最慢(FELIX > LaserTagger > Seq2Edits)。
5.3 小樣本表現(xiàn)
LaserTagger和FELIX兩篇工作均在小樣本訓(xùn)練數(shù)據(jù)上測試了模型性能。相比full sequence model而言,LaserTagger和FELIX兩者對訓(xùn)練數(shù)據(jù)規(guī)模變化并不敏感(訓(xùn)練數(shù)據(jù)規(guī)模從45k縮小到4.5k時full sequence model性能出現(xiàn)了較大下降),且在小樣本數(shù)據(jù)上FELIX表現(xiàn)要好于LaserTagger。
6. 總結(jié)
LaserTagger |
token-level; 保留、刪除、插入 |
根據(jù)訓(xùn)練數(shù)據(jù)構(gòu)造短語詞典,從詞典中直接選擇。 |
一輪序列標(biāo)注; 非自回歸; |
加速10x-100x (相比SEQ2SEQBERT) |
Seq2Edits |
span-level; 三元組 不同任務(wù)有不同tag vocabulary |
open-vocab |
預(yù)測N個三元標(biāo)簽組; 自回歸; |
加速5.2x(相比 full sequence model) |
FELIX |
token-level; 保留、刪除、MASK、重排序 |
open-vocab 用MLM預(yù)測MASK對應(yīng)的token |
標(biāo)注+重排序+MLM; 非自回歸; |
加速100x(相比 full sequence model) |
模型 | 編輯操作 | 插入新文本 | 推理方式 | 推理效率 |
---|
基于編輯方法的文本生成優(yōu)勢與不足主要如下:
與full sequence models相比,推理速度大大加快。 模型輸出可解釋性強。 對訓(xùn)練數(shù)據(jù)規(guī)模較不敏感;在小樣本上表現(xiàn)較好。 |
遵循較弱的語言模型。 生成的靈活性不足。 |
Pros | Cons |
---|
未來工作的關(guān)鍵在于生成質(zhì)量和推理效率的對立統(tǒng)一。目前基于編輯方法使用非自回歸預(yù)測輸出時,雖然能夠提高推理效率,但勢必會損失生成文本的質(zhì)量。因此,質(zhì)量和效率盡量做到“魚與熊掌二者兼得”將成為未來研究工作的希冀。
References
[1] Malmi, Eric, et al. "Encode, tag, realize: High-precision text editing." arXiv preprint arXiv:1909.01187 (2019).
[2] Stahlberg, Felix, and Shankar Kumar. “Seq2Edits: Sequence Transduction Using Span-level Edit Operations.” arXiv preprint arXiv:2009.11136 (2020)。
[3] Mallinson, Jonathan, et al. “Felix: Flexible text editing through tagging and insertion.” arXiv preprint arXiv:2003.10687 (2020)。
[4] https://ai.googleblog.com/2020/01/encode-tag-and-realize-controllable-and.html
[5] https://ai.googleblog.com/2021/05/introducing-felix-flexible-text-editing.html
[6] https://thinkwee.top/2021/05/11/text-edit-generation/
編輯:jq
-
文本
+關(guān)注
關(guān)注
0文章
118瀏覽量
17087
原文標(biāo)題:基于編輯方法的文本生成(下)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論