<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】如何在文本分類任務(wù)中Fine-Tune BERT

          共 3411字,需瀏覽 7分鐘

           ·

          2020-12-26 19:21



          BERT在許多自然語言理解(NLU)任務(wù)中取得了驚人的成果,但它的潛力還有待充分挖掘。目前很少有如何能進(jìn)一步提高BERT性能的研究,因此,如何通過一些技巧和方法最大限度的提升BERT在文本分類任務(wù)中的性能是此次研究的重點(diǎn)。

          ?目?標(biāo)
          在使用BERT做 text classification的時(shí)候,我們利用[CLS]的hidden state輸出做為整個(gè)輸入文本的representation,通過一層task specific層(通常是Linear Layer),再經(jīng)過Softmax層得到概率,輸出概率如下所示,其中的task specific層的參數(shù),最后通過最大化log-probability of correct label優(yōu)化模型參數(shù)。

          ?

          How to Fine-Tune BERT for Text Classification?[1]這篇論文從四個(gè)方面對BERT(BERT base)進(jìn)行不同形式的pretrain和fine-tune,并通過實(shí)驗(yàn)展示不同形式的pretrain和fine-tune之間的效果對比。

          一、Fine-Tune策略

          當(dāng)我們在特定任務(wù)上fine-tune BERT的時(shí)候,往往會(huì)有多種方法利用Bert,舉個(gè)例子:BERT的不同層往往代表著對不同語義或者語法特征的提取,并且對于不同的任務(wù),不同層表現(xiàn)出來的重要性和效果往往不太一樣。因此如何利用類似于這些信息,以及如何選擇一個(gè)最優(yōu)的優(yōu)化策略和學(xué)習(xí)率將會(huì)影響最終fine-tune 的效果。

          • 對于長文本的處理
          ① 截?cái)喾椒?/span>(不考慮[CLS]、[SEP])
          1.保留頭部(head-only):保留頭部最開始的510個(gè)tokens
          2.保留尾部(tail-only):保留尾部最后的510個(gè)tokens
          3.頭部加尾部(head+tail):頭部128+尾部382
          ② 分段的方法:
          首先將輸入文本(長度為L)分成k = L/510個(gè)小段落,將它們依次輸入BERT得到k個(gè)文本段落的表示。每個(gè)段落的representation是最后一層[CLS]的hidden state,并分別使用mean pooling, max pooling and self-attention來合并所有段落的representation。上述兩種處理方法在IMDb和Chinese Sougou News datasets上的實(shí)驗(yàn)效果如下所示,實(shí)驗(yàn)結(jié)果表明,采取head+tail的方式處理長文本更具優(yōu)勢。
          • Fine-tune層的選擇

          BERT的每一層捕獲輸入文本的不同特性,Table 3顯示了在不同層Fine-tune BERT時(shí)performance的對比。實(shí)驗(yàn)結(jié)果表明,BERT的最后一層更能表征下游任務(wù)(Layer-11表示fit前12層),在對其進(jìn)行Fine-tune時(shí)效果也是最好的。
          • 學(xué)習(xí)率優(yōu)化策略
          通常BERT模型的低層包含更general的信息,而靠近頂部的層偏向于學(xué)習(xí)下游任務(wù)的相關(guān)知識(shí),因此可以在頂層賦予較大的學(xué)習(xí)率,越往低層學(xué)習(xí)率越小。因此,我們的策略如公式(1)所示,其中代表第l層的學(xué)習(xí)率,我們設(shè)定base learning rate為,代表頂層的學(xué)習(xí)率,其他層的策略如公式(2)所示,其中是衰減系數(shù),如果,那么每層的學(xué)習(xí)率是一樣的,如果,那么越往下的層學(xué)習(xí)率就越低。
          ??? ??????(1)
          ? ???(2)
          • 災(zāi)難性遺忘問題

          災(zāi)難性遺忘(Catastrophic forgetting)是transfer learning中常見的問題,即在學(xué)習(xí)新知識(shí)的過程中,預(yù)訓(xùn)練的知識(shí)有可能被遺忘或者抹去。因此,本文探討了BERT是否也存在這種災(zāi)難性遺忘問題。如下圖所示,當(dāng)采用較低的學(xué)習(xí)率時(shí)(文中采用2e-5),BERT在訓(xùn)練的過程中能夠克服災(zāi)難性遺忘問題,而當(dāng)學(xué)習(xí)率較大時(shí)(文中采用4e-4),就會(huì)失去這種能力。
          二、進(jìn)一步預(yù)訓(xùn)練
          BERT預(yù)訓(xùn)練模型是在通用領(lǐng)域(General Domain)上做的Training,很自然的一個(gè)想法就是在目標(biāo)域(Target Domain)進(jìn)一步pretrain。
          • 任務(wù)內(nèi)進(jìn)一步預(yù)訓(xùn)練:

          任務(wù)內(nèi)(within-task)pretrain是指在任務(wù)域(通常指具體的任務(wù),比如某一金融細(xì)分領(lǐng)域的文本分類任務(wù))上對模型進(jìn)行預(yù)訓(xùn)練,預(yù)訓(xùn)練的方式仍然是unsupervised masked language model and next sentence prediction tasks,實(shí)驗(yàn)結(jié)果表明,任務(wù)內(nèi)領(lǐng)域的預(yù)訓(xùn)練可以提升模型的效果,但在進(jìn)一步預(yù)訓(xùn)練時(shí)需要注意training step,否則效果會(huì)變差
          • 領(lǐng)域內(nèi)和交叉域內(nèi)的進(jìn)一步預(yù)訓(xùn)練:

          In-Domain指的是某一領(lǐng)域內(nèi)數(shù)據(jù),比如金融領(lǐng)域、計(jì)算機(jī)領(lǐng)域等等,該領(lǐng)域的數(shù)據(jù)分布往往和任務(wù)內(nèi)數(shù)據(jù)分布相似,這里的Cross-Domain在內(nèi)容上可以理解為通用領(lǐng)域,作者通過實(shí)驗(yàn)證明領(lǐng)域內(nèi)(In-Domain)和任務(wù)內(nèi)(Within-Task)的pretrain效果都會(huì)有提升,且通常情況下領(lǐng)域內(nèi)的pretrain效果要好于任務(wù)內(nèi)的pretrain效果,但在交叉域(或者說通用領(lǐng)域)上沒什么提升,理由是BERT預(yù)訓(xùn)練本身就是在通用領(lǐng)域上訓(xùn)練的。實(shí)驗(yàn)結(jié)果對比如下圖所示,all sentiment/question/topic代表In-Domain pretrain,all代表 Cross-Domain,w/o pretrain代表原始的BERT base 模型。
          三、多任務(wù)上的Fine-tune
          在多任務(wù)數(shù)據(jù)域(比如多個(gè)文本分類的數(shù)據(jù)集,這樣做的目的是為了充分利用已有的分類任務(wù)數(shù)據(jù))上做pretrain,然后在target-domain上進(jìn)行fine-tune,也會(huì)提升模型的效果。其中,
          BERT-FiT? =? “BERT + Fine-Tuning”.
          BERT-CDPT-MFiT-FiT = “BERT + Cross-Domain Pre-Training+Multi-Task Pre-Training+ Fine-Tuning”.(先在交叉域上做pretrain,然后在多任務(wù)域上做pretrain,最后在target-domian上做fine-tune)
          四、?少樣本學(xué)習(xí)
          BERT pretrain model的一個(gè)優(yōu)勢在于,在下游任務(wù)中,只需要少量的樣本就能fine-tune一個(gè)較好的模型,但是隨著數(shù)據(jù)的增大,在任務(wù)內(nèi)數(shù)據(jù)的pretrain model和通用領(lǐng)域的pretrain model最后fine-tune的效果差不多,其中紅線代表BERT+Fine-tune,即直接利用BERT在target -domain上fine-tune,藍(lán)線代表BERT+ withIn-Task Pre-Training + Fine-Tuning,即先用BERT在within-task域上pretrain,然后在target-domain上fine-tune,這說明了BERT可以利用小數(shù)據(jù)改進(jìn)下游任務(wù),且小樣本數(shù)據(jù)上fine-tune效果較明顯,當(dāng)然如果能事先在within-task域上做進(jìn)一步的pretrain,再做fine-tune,效果會(huì)更好。
          參考文獻(xiàn)
          [1] Sun C , Qiu X , Xu Y , et al. How to Fine-Tune BERT for Text Classification?[C]// China National Conference on Chinese Computational Linguistics. Springer, Cham, 2019.

          往期精彩回顧





          獲取本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開:

          https://t.zsxq.com/qFiUFMV

          本站qq群704220115。

          加入微信群請掃碼:

          瀏覽 72
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  国产一级操逼片 | 天天爽天天色天天干 | 日本在线不卡播放视频 | 国产精品色在线 | 97电影在线观看无码视频 |