<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【NLP】預(yù)訓(xùn)練時代下的文本生成|模型&技巧

          共 3977字,需瀏覽 8分鐘

           ·

          2022-01-23 18:53

          今天推薦一篇人大出品的37頁文本生成綜述:

          A?Survey?of?Pretrained?Language?Models?Based?Text?Generation
          https://arxiv.org/abs/2201.05273

          雖然綜述讀起來累些,但多讀綜述有利于知識體系的梳理。而且NLP領(lǐng)域的綜述讀多了會發(fā)現(xiàn),很多優(yōu)化方法都是想通的,也能提供一些新的思路。

          這篇文章從把文本生成的方法分成了三類:輸入編碼、模型設(shè)計、優(yōu)化方法。同時也從數(shù)據(jù)、模型、優(yōu)化層面給出了下面我們就順著文章的思路,梳理一下最近幾年文本生成領(lǐng)域的進(jìn)展。

          如何編碼輸入

          這部分其實跟NLU任務(wù)都是一樣的,想要做好預(yù)測,首先要對輸入進(jìn)行充分理解。本文主要從輸入形態(tài)進(jìn)行了劃分。

          非結(jié)構(gòu)化文本

          Paragraph-level

          1. Hierarchy-based:先對句子進(jìn)行編碼,再用一個編碼器進(jìn)行對句子表示進(jìn)行聚合
          2. Graph-based:相比于上面的序列化層次編碼,圖學(xué)習(xí)的方法可以更好地對不相鄰的句子進(jìn)行聚合

          Document-level

          1. 同樣使用層次化的方法
          2. 抽取關(guān)鍵信息:層次化方法自下而上,難免引入噪聲,而更重要的是抓住整個文檔的主題信息,可以用topic model或者設(shè)置更高級別的目標(biāo)去做
          3. 提升效率:當(dāng)文本過長時,可以使用局部注意力、稀疏注意力去提升效率,編碼更長的內(nèi)容

          多語言

          1. Cross-lingual:跨語言的思想是在整個語料上生成subword,并用一套embedding和encoder去編碼多種語言,可以參考XLM
          2. Multi-lingual:多語言的思想是多套embedding共用一個encoder,可以參考mBART、mT5

          結(jié)構(gòu)化輸入

          結(jié)構(gòu)化輸入在知識圖譜的應(yīng)用場景下很常見,編碼器主要面臨著三個問題。

          預(yù)訓(xùn)練是用非結(jié)構(gòu)化文本,而當(dāng)前輸入的是結(jié)構(gòu)化文本,如何消除這個Gap?

          1. 預(yù)處理:把結(jié)構(gòu)化數(shù)據(jù)拼成序列輸入,比如「胡歌-職業(yè)-演員」變成「胡歌的職業(yè)是演員」
          2. 通過圖學(xué)習(xí)或其他編碼器,把輸入變成embedding在喂給預(yù)訓(xùn)練模型,比如清華ERNIE

          上述方法消除了Gap,但也喪失了結(jié)構(gòu)帶來的重要信息,如何保持這些特征呢?

          1. 通過加入新的目標(biāo),比如表格化的輸入,讓模型去預(yù)測每個數(shù)據(jù)的字段名,強(qiáng)迫模型編碼進(jìn)這些信息
          2. 直接把結(jié)構(gòu)化信息加到輸入里,比如上面的三元組例子,可以變成「<\S>胡歌<\P>職業(yè)

            <\O>演員」
          3. 利用可以編碼結(jié)構(gòu)信息的encoder,比如圖神經(jīng)網(wǎng)絡(luò)

          一些場景下(比如報表生成),如何保持輸出數(shù)據(jù)與輸入的一致性?

          1. 加入額外的訓(xùn)練目標(biāo),去檢測輸入輸出的一致性
          2. 使用Copy機(jī)制:pointer-generator是比較經(jīng)典的方法
          3. 在輸入側(cè)加入更多限制,讓模型學(xué)習(xí)到這些強(qiáng)pattern

          多模態(tài)輸入

          多模態(tài)輸入可玩的就多了,在這方面也有不少的研究,這里的難點主要是通過各種任務(wù),讓文本和多模態(tài)輸入對齊。或者在無監(jiān)督的情況下,讓多模態(tài)的表示和文本表示在同一個空間。

          如何設(shè)計預(yù)訓(xùn)練模型

          經(jīng)典結(jié)構(gòu)

          Masked Language Model

          MLM模型和生成任務(wù)的預(yù)訓(xùn)練目標(biāo)不一致,所以很少被用在生成任務(wù)上,當(dāng)然也有研究[1]把BERT、RoBERTa、GPT2三個模型混合起來去做生成,用BERT初始化encoder和decoder,效果竟然還不錯。

          在MLM任務(wù)的啟發(fā)下,整個19年里生成模型也曾出不窮,變化不同的結(jié)構(gòu)去做類似MLM的自監(jiān)督任務(wù)。

          Causal Language Model

          單向語言模型就不用多說了,GPT系列是經(jīng)典中的經(jīng)典,當(dāng)然還有CTRL等條件生成模型也不錯。但由于這類模型本身從左到右的限制,在文本摘要、翻譯這種需要雙向信息的任務(wù)上表現(xiàn)欠佳。

          Prefix Language Model

          這類模型十分優(yōu)雅,兼具雙向編碼和單向解碼,比如UniLM系列、GLM。不過研究顯示[](https://arxiv.org/abs/1910.10683 “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”),比起經(jīng)典的encoder-decoder結(jié)構(gòu)還是稍稍遜色。

          Encoder-Decoder Language Model

          這類模型各個都比較能打,比如MASS、ProphNet、BART,不過我用下來還是覺得T5比較強(qiáng)。

          結(jié)構(gòu)擴(kuò)展

          生成式預(yù)訓(xùn)練模型的結(jié)構(gòu)基本局限于上述四種,但他們本身還存在一些問題,文中列舉了兩類,跟NLU任務(wù)的優(yōu)化點差不多:

          1. 附加Embedding:位置編碼一直都是Transformer的一個小弱項,針對這個問題,T5、UniLMv2都加入了相對位置編碼。另外在詩歌生成任務(wù)中,還可以升華成層次位置編碼[2],去指示句子內(nèi)或者句子間的位置。還可以參考segment編碼,在對話場景去區(qū)分不同說話人,或者多語言場景區(qū)分不同語言
          2. 注意力機(jī)制:在encoder-decoder結(jié)構(gòu)中,存在著用來連接它們的cross-attention,這個模塊也能進(jìn)行優(yōu)化,可以加入圖神經(jīng)網(wǎng)絡(luò)、門控機(jī)制等

          如何優(yōu)化生成模型

          Fine-tuning

          精調(diào)最主要的問題就是監(jiān)督數(shù)據(jù)太少了,作者提供了一些通用trick迅速幫忙提升效果,對NLG和NLU都很有用

          1. Intermediate Fine-tuning:利用一個中間任務(wù),先對預(yù)訓(xùn)練模型進(jìn)行精調(diào)。這個方法又分為兩種,第一種是Domain adaption,先在與目標(biāo)相同的領(lǐng)域上進(jìn)行精調(diào),最簡單的就是直接MLM,如果有標(biāo)注數(shù)據(jù)更好。但如果任務(wù)簡單(比如二分類)就要小心了,別太過擬合,可能會降低表示的質(zhì)量。第二種是Task adaption,在與目標(biāo)相同的任務(wù)上進(jìn)行精調(diào),這個方法我一直用,在文本匹配上百發(fā)百中
          2. Multi-task Fine-tuning:也是GLUE刷榜的場景技巧,防止過擬合十分有效,任務(wù)目標(biāo)可以和最終的相同也可以不同,也可以當(dāng)做一個intermediate任務(wù),不過效果不是一直都好,需要耐心調(diào)教
          3. Parameter-Efficient Fine-tuning:在當(dāng)今的大模型時代下,別說預(yù)訓(xùn)練了,可能精調(diào)都調(diào)不起。尤其是生成任務(wù)需要更強(qiáng)的預(yù)訓(xùn)練模型。所以作者就提供了這種優(yōu)化思路,第一種是在結(jié)構(gòu)里增加一些adapter,比如在Transformer里增加一個FFN,映射到很低的維度再映射回去,精調(diào)時只更新adapter的參數(shù)。第二種是freeze掉部分子網(wǎng)絡(luò),比如有研究發(fā)現(xiàn)cross-attention很重要,那就只更新這部分參數(shù)。第三種是蒸餾。

          Prompt-tuning

          Prompt是今年最熱的NLP方向了,最初是GPT2發(fā)起的,在輸入中加入對任務(wù)的描述,比如「把下面的句子翻譯成英文:XX」,這樣一個生成模型就可以同時做過個任務(wù)。不過最初這種形式很依賴人工設(shè)計的prompt,所以之后的研究者也提出了AutoPrompt等自動發(fā)現(xiàn)模版的方法。

          再演變到后來就是參數(shù)化的Continuous Prompt,利用這些模版初始化一些token,然后直接精調(diào)這些token的embedding。參數(shù)化模版的優(yōu)點是:

          1. 解除了手工自然語言模版的限制
          2. 讓模版變得可以調(diào)節(jié)優(yōu)化,不受預(yù)訓(xùn)練模型embedding的限制

          這類研究可以參考Prompt-tuning、P-tuning等。

          Property-Tuning

          文本生成由于其任務(wù)的天性,使得文本可控變得十分重要。Property-tuning的目的就是限制生成結(jié)果的一些性質(zhì):

          1. Relevance:一方面可以通過增加其他目標(biāo)函數(shù)去提升相關(guān)性,另一方法也可以從訓(xùn)練入手,比如有的方法會通過TF-IDF選擇mask哪些詞,強(qiáng)迫模型生成更相關(guān)的結(jié)果
          2. Faithfulness:在文本摘要任務(wù)中比較重要,避免生成結(jié)果與輸入相差太大,可以加入主題模型等loss進(jìn)行約束
          3. Order:在翻譯、復(fù)述中比較重要,可以設(shè)計特殊的任務(wù),讓模型學(xué)習(xí)如何對齊輸入與輸出

          其他挑戰(zhàn)

          除了上述的優(yōu)化方法外,作者還從數(shù)據(jù)、模型、優(yōu)化三個層面列出了文本生成的一些其他挑戰(zhàn),解決方案很多上面都提到了:

          評價指標(biāo)

          1. N-Gram Overlap:BLEU、ROUGE、METEOR、ChrF++
          2. Divesity:Distinct
          3. Semantic Similarity:BERTScore

          總結(jié)

          本文主要分享了預(yù)訓(xùn)練時代下的文本生成方法,當(dāng)然還有一些方向沒有涉及,比如跟decoder更相關(guān)的解碼策略、非自回歸生成等。整體讀下來體系還是挺清晰的,也推薦同學(xué)們沒事兒多讀讀綜述,即使是已經(jīng)熟悉的領(lǐng)域,也還可能有一些模型、方法不太熟悉,知識體系完善后對平時的思路會有很多幫助。

          參考資料

          [1]

          Leveraging Pre-trained Checkpoints for Sequence Generation Tasks: https://aclanthology.org/2020.tacl-1.18.pdf

          [2]

          Rigid Formats Controlled Text Generation: https://aclanthology.org/2020.acl-main.68.pdf



          往期精彩回顧




          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  又黄又爽又粗又大又长又硬视屏 | 中文字幕亚洲乱伦 | 成人网视频在线 | 黄色色情网站在线观看 | 五月激情婷婷中文字幕 |