作者:駱駝徐俊謝睿等
CLUE(Chinese Language Understanding Evaluation)[1]是中文語言理解權威評測榜單,包含了文本分類、句間關係、閱讀理解等眾多語意分析和語意理解類子任務,對學術界和產業界都產生了較大的影響。
圖1 FewCLUE名單(截止到2022-04-18)
FewCLUE[2,3]是CLUE中專門用於中文小樣本學習評測的子榜,旨在結合預訓練語言模型通用和強大的泛化能力,探索小樣本學習最佳模型和在中文上的實踐。 FewCLUE的部分資料集只有一百多個標籤樣本,可以衡量模型在極少有標籤樣本下的泛化性能,發布後吸引了包括網易、微信AI、阿里巴巴、IDEA研究院、浪潮人工智能研究院等多家企業與研究院的參與。不久前,美團平台搜尋與NLP部NLP中心語意理解團隊的小樣本學習模型FSL 以優越的表現在FewCLUE榜單上取得第一名,達到SOTA水準。
大規模預訓練模型雖然在各大任務裡面取得非常好的效果,但是在特定的任務上,還是需要許多標註數據。美團的各個業務中,有豐富的NLP場景,往往需要較高的人工標註成本。在業務發展早期或新的業務需求需要快速上線時,往往會出現標註樣本不足的現象,使用傳統Pretrain(預訓練) Fine-Tune(微調)的深度學習訓練法往往達不到理想的指標要求,因此研究小樣本場景的模型訓練問題就變得非常必要。
本文提出了一套大模型小樣本的聯合訓練方案FSL ,綜合了模型結構優選、大規模預訓練、樣本增強、集成學習以及自訓練等模型優化策略,最終在中文語言理解權威評測基準下的FewCLUE榜單取得了優異的成績,並且在部分任務上性能超過了人類水平,而在部分任務上(如CLUEWSC)還有一定的提升空間。
FewCLUE發布後,網易伏羲使用自研的EET模型[4],並透過二次訓練增強模型的語意理解能力,再加入模版進行多任務學習;IDEA研究院的二郎神模型[5]在BERT模型的基礎上使用更先進的預訓練技術訓練大模型,在下游任務微調的過程中用加入動態Mask策略的Masked Language Model(MLM)作為輔助任務。這些方法都使用Prompt Learning作為基本的任務架構,跟這些自研的大模型相比,我們的方法主要在Prompt Learning框架的基礎上加入了樣本增強、集成學習以及自學習等模型優化策略,極大提升模型的任務表現與穩健性,同時這套方法可以適用於各種預訓練模型,更靈活方便。
FSL 整體模型架構如下圖2所示。 FewCLUE資料集為每個任務提供160個有標籤資料以及接近兩萬個無標籤資料。在本次FewCLUE實務中,我們先在Fine-Tune階段建構多模板Prompt Learning,並對有標籤資料採用對抗訓練、對比學習、Mixup等增強策略。由於這些資料增強策略採用不同的增強原理,可以認為這些模型之間差異性比較顯著,經過整合學習後會有較好的效果。所以在採用資料增強策略進行訓練以後,我們擁有了多個弱監督模型,並且用這些弱監督模型在無標籤資料上進行預測,得到無標籤資料的偽標籤分佈。之後,我們將多個經過不同的資料增強模型預測得到的無標籤資料的偽標籤分佈整合起來,得到一份總的無標籤資料的偽標籤分佈,接著重新建構多模板Prompt Learning,並再次使用數據增強策略,選擇最優策略。目前,我們的實驗只進行一輪迭代,也可以嘗試多輪迭代,不過隨著迭代次數增加,提升不再明顯。
#圖2 FSL 模型框架
預訓練語言模型是在龐大的無標籤語料庫上進行訓練的。例如,RoBERTa[6]在160GB以上的文字進行訓練,包括百科全書、新聞文章、文學作品和網路內容。透過這些模型學習到的表示,在包含多種來源的各種大小的資料集的任務中實現出色的效能。
FSL 模型使用RoBERTa-large模型作為基礎模型,並且採用融入領域知識的Domain-Adaptive Pretraining (DAPT)[7]預訓練方法和融入任務知識的Task-Adaptive Pretraining (TAPT)[7]。 DAPT旨在預訓練模型的基礎上,增加大量領域內無標籤文字繼續訓練語言模型,之後再在指定任務的資料集上進行微調。
對目標文字領域進行繼續預訓練,可以提高語言模型的效能,尤其是在與目標文字領域相關的下游任務上的表現。並且,預訓練文本與任務領域的相關度越高,帶來的提升越大。在本次實踐中,我們最終使用了在100G包含娛樂節目、體育、健康、國際事務、電影、名人等各個領域的語料的CLUE Vocab[8]上預訓練得到的RoBERTa Large模型。 TAPT指在預訓練模型的基礎上,增加數量較少但與任務直接相關的無標籤語料進行預訓練。針對TAPT任務,我們選擇使用的預訓練資料是FewCLUE名單為每個任務提供的無標籤資料。
除此之外,在針對句間關係任務,如中文自然語言推理任務OCNLI、中文對話短文本匹配任務BUSTM的實踐中,我們使用在其他句間關係任務如中文自然語言推理資料集CMNLI、中文短文本相似度資料集LCQMC上進行預訓練的模型參數作為初始參數,相較直接以原始模型完成任務,也能提升一定的效果。
FewCLUE包含多種任務形式,我們為每個任務選擇了合適的模型結構。文字分類任務和機器閱讀理解(MRC)任務本身的類別詞就攜帶了訊息,因此更適合建模為Masked Language Model(MLM)形式;而句間關係任務判斷兩個句子的相關性,更類似Next Sentence Prediction(NSP)[9]任務形式。因此,我們為分類任務和閱讀理解任務選擇PET[10]模型,為句間關係任務選擇EFL[11]模型,EFL方法可以透過全域取樣建構負樣本,學習到更穩健的分類器。
Prompt Learning的主要目標是盡可能減少預訓練目標與下游微調目標的差距。通常現有的預訓練任務都包含MLM損失函數,但下游的任務則並未採用MLM,而是引進新的分類器,使得預訓練任務和下游任務出現了不一致。 Prompt Learning不會引入額外的分類器或其他參數,而是透過拼接模板(Template,即為輸入資料拼接語言片段,從而改造任務為MLM形式)和標籤詞映射(Verbalizer ,即為每個標籤在詞表中找到對應的詞,從而為MLM任務設定預測目標),使得模型可以在少量樣本的條件下在下游任務中使用。
#圖3 Prompt Learning方法完成情緒分析任務的流程圖
以圖3展示的電商評估情緒分析任務EPRSTMT為例。給定文字“這部電影真不錯,值得第二次觀看!”,傳統的文本分類則是在CLS部分的Embedding接上分類器,並映射到0-1分類上(0:負向, 1:正向)。這種方法在小樣本場景下需要訓練新的分類器,比較難獲得好的效果。而基於Prompt Learning的方法則是創建模板“這是一條[MASK] 評。”,再將模板與原文進行拼接,訓練時通過語言模型預測[MASK]位置的詞,再將其映射到對應的類別上(好:正向, 差:負向)。
由於缺乏足夠數據,有時很難確定表現最好的模板和標籤詞映射。因此,也可以採用多模板與多標籤詞映射的設計。透過設計多個模板,最終的結果採用多個模板的結果的整合,或設計一對多的標籤詞映射,讓一個標籤對應多個字。同上述例子,可以設計如下模板組合(左:同一個句子的多模板,右:多標籤映射)。
圖4 PET多模板與多標籤映射圖
任務範例
表1 FewCLUE資料集中PET模板建構
#EFL模型將兩個句子拼接在一起,用輸出層的[CLS]位置的Embedding後接一個分類器完成預測。 EFL的訓練過程中,除了訓練集的樣本,也會進行負樣本構造,訓練過程中,在每個Batch裡隨機選擇其他資料中的句子作為負樣本,透過建構負樣本進行資料增強。雖然EFL模型需要訓練新的分類器,但目前有許多公開的文本蘊含/句間關係資料集,如CMNLI、LCQMC等,可以透過在這些樣本上進行持續學習(continue-train ),再將學習到的參數移轉到小樣本場景中,用FewCLUE的任務資料集進一步微調。
任務範例
#表2 FewCLUE資料集中EFL模板建構
資料增強方法主要有樣本增強和Embedding增強。 NLP領域中,資料增強的目的是在不改變語意的前提下擴充文字資料。主要的方法包括簡單文字替換、使用語言模型產生相似句子等,我們嘗試過EDA等擴充文字資料的方法,但是一個字的變化就可能導致整個句子的意思發生翻轉,經過替換的文字攜帶大量噪音,所以很難用簡單的規則樣本變化產生足夠的增強數據。而Embedding增強,則不再對輸入進行操作,轉而在Embedding層面進行操作,可以透過對Embedding增加擾動或插值等方式提升模型的穩健性。
因此,本次實踐中我們主要進行Embedding增強。我們使用的資料增強策略分別有Mixup[12]、Manifold-Mixup[13]、對抗訓練(Adversarial training, AT) [ 14]和對比學習R-drop[15]。
#表3 資料增強策略簡述
Mixup透過對輸入資料進行簡單的線性變換,建構新的組合樣本和組合標籤,可以增強模型的泛化能力。在各種有監督任務或半監督任務上,使用Mixup都能大幅提升模型的泛化能力。 Mixup方法可以視為正規化操作,它要求模型在特徵層面產生的組合特徵滿足線性約束,並且利用這種約束對模型施加正規化。直觀來看,當模型的輸入為另外兩個輸入的線性組合時,其輸出也是這兩個資料單獨輸入模型後所得輸出的線性組合,其實就是要求模型近似為一個線性系統。
Manifold Mixup將上述的Mixup操作泛化到特徵上。因為特徵具有更高階的語意訊息,所以在其維度上插值可能會產生更有意義的樣本。在類似BERT[9]、RoBERTa[6]的模型中,隨機選擇層數k,對此層的特徵表示進行Mixup內插。普通的Mixup的插值發生在輸出層Embedding部分,而Manifold Mixup相當於把這一系列插值操作加入到語言模型內部的Transformers結構的隨機某處。
對抗訓練透過在輸入樣本上增加微小的擾動來顯著提高模型Loss。對抗訓練就是訓練一個能有效辨識原始樣本和對抗樣本的模型。基本原理就是透過加入擾動構造一些對抗樣本,交給模型去訓練,提高模型在遇到對抗樣本時的穩健性,同時也能提升模型的表現和泛化能力。對抗樣本需要有兩個特點,分別是:
R-Drop對同一個句子做兩次Dropout,並且強制由Dropout產生的不同子模型的輸出機率保持一致。 Dropout的引入雖然效果很好,但是它會導致訓練和推理過程的不一致問題。為緩解這種訓練推理過程的不一致性,R-Drop對Dropout進行正規化處理,在兩個子模型產生的輸出中增加對輸出資料分佈的限制,引入資料分佈度量的KL散度損失,使得Batch內同一個樣本產生的兩個資料分佈盡量接近,具有分佈一致性。具體來說,對於每個訓練樣本,R-Drop最小化了由不同Dropout產生的子模型的輸出機率之間的KL 散度。 R-Drop作為一種訓練思想,可以用到大部分有監督或半監督的訓練中,通用性強。
我們使用的三種資料增強策略,Mixup是在語言模型的輸出層Embedding和語言模型的內部隨機某層Transformers的輸出層中做兩個樣本的線性變化,對抗訓練是在樣本上增加微小的擾動,而對比學習是對同一個句子做兩次Dropout形成正樣本對,再用KL散度限制兩個子模型保持一致。三種策略都是透過在Embedding完成一些操作來增強模型的泛化性,經過不同策略得到的模型分別都具有不同的偏好,這就為下一步的集成學習提供了條件。
整合學習可以組合多個弱監督模型,以期得到一個更好、更全面的強監督模型。集成學習潛在的想法是即便某一個弱分類器得到了錯誤的預測,其他的弱分類器也可以將錯誤修正回來。如果待組合的各個模型之間差異性比較顯著,那麼整合學習之後通常會有一個較好的結果。
自訓練使用少量的標記資料和大量未標記的資料對模型進行聯合訓練,首先使用經過訓練的分類器來預測所有未標記資料的標籤,然後選擇置信度較高的標籤作為偽標籤數據,將偽標記數據與人工標記的訓練數據聯合起來重新訓練分類器。
集成学习 自训练是一套可以利用多个模型以及无标签数据的方案。这其中,集成学习的一般步骤为:训练多个不同的弱监督模型,分别用每个模型预测无标签数据的标签概率分布,计算标签概率分布的加权和,得到无标签数据的伪标签概率分布。自训练指训练一个模型用于组合其他各个模型,其一般步骤为:训练多个Teacher模型,Student模型学习伪标签概率分布中高置信度样本的Soft Prediction,Student模型作为最后的强学习器。
图5 集成学习 自训练结构
在本次FewCLUE实践中,我们先在Fine-Tune阶段构造多模板Prompt Learning,并对有标注数据采用对抗训练、对比学习、Mixup等增强策略。由于这些数据增强策略采用不同的增强原理,可以认为这些模型之间差异性比较显著,经过集成学习之后会有比较好的效果。
在采用数据增强策略进行训练以后,我们拥有了多个弱监督模型,并且用这些弱监督模型在无标签数据上进行预测,得到无标签数据的伪标签分布。之后,我们将多个经过不同的数据增强模型预测得到的无标签数据的伪标签分布整合起来,得到一份总的无标签数据的伪标签分布。筛选伪标签数据的过程中,我们不一定会选择置信度最高的样本,因为如果每个数据增强模型给出的置信度都很高,说明这个样本可能是容易学习的样本,不一定有很大价值。
我们综合多个数据增强模型给出的置信度,尽量选择置信度较高,但是又不容易学习的样本(比如多个模型预测不全部一致)。接着用标注数据和伪标注数据的集合重新构造多模板Prompt Learning,再次使用数据增强策略,并选择最好的策略。目前,我们的实验目前只进行一轮迭代,也可以尝试多轮迭代,不过随着迭代次数增加,提升也会减少,不再显著。
FewCLUE榜单提供了9个任务,其中分别为4个文本分类任务,2个句间关系任务和3个阅读理解任务。文本分类任务有电商评价情感分析、科学文献分类、新闻分类和App应用描述主题分类任务。主要归类为短文本二分类、短文本多分类和长文本多分类。其中有的任务类别众多,超过100类,并且出现了类别不均衡问题。句间关系任务有自然语言推理和短文本匹配任务。阅读理解任务则有成语阅读理解选择填空,摘要判断关键词判别和代词消歧任务。每个任务大体提供了160条有标签数据和两万条左右的无标签数据。因为长文本分类任务类别众多,过于困难,也提供了更多的有标签数据。详细的任务数据情况如表4所示:
表4 FewCLUE数据集任务介绍
表5展示了不同模型和参数量的实验结果的对比。在RoBERTa Base实验中,使用PET/EFL模型会超过传统的直接Fine-Tune模型结果2-28PP。以PET/EFL模型为基础,为了探索大模型在小样本场景中的效果,我们在RoBERTa Large上进行了实验,相对于RoBERTa Base,大模型可以提升模型0.5-13PP;为了更好地利用领域知识,我们进一步在经过CLUE数据集上增强预训练的RoBERTa Large Clue模型上进行实验,融入了领域知识的大模型进一步提升结果0.1-9pp。基于此,在之后的实验中,我们都在RoBERTa Large Clue上进行实验。
表5 不同模型與參數量的實驗結果比較(加粗紅色字型表示最好的結果)
表6展示了在PET/EFL模型上進行資料增強和整合學習實驗結果, 可以發現即使是在大模型上使用資料增強策略,模型也能帶來0.8-9PP的提升,而進一步進行整合學習&自訓練以後,模型表現會繼續提升0.4-4PP。
表6 基礎模型資料增強整合學習實驗效果(加粗紅色字體表示最好的結果)
#其中整合學習自訓練步驟中,我們嘗試了幾種篩選策略:
在美團的各個業務中,有著豐富的NLP場景,部分任務可以歸類別為文本分類任務和句間關係任務,以上提到的小樣本學習策略已應用於美團點評的各種場景,期望在資料資源稀少的情況下訓練出比較好的模型。此外,小樣本學習策略已廣泛應用於美團內部自然語言處理(NLP)平台的各個NLP演算法能力中,在眾多業務場景下落地並取得顯著收益,美團內部的工程師可透過此平台來體驗NLP中心相關的能力。
文本分類任務
#醫美主題分類:對美團和點評的筆記內容依題材分為8類:獵奇、探店、評測、真人案例、治療過程、避坑、效果比較、科普。當使用者點擊某一種題材時,返回對應的筆記內容,上線至美團和點評App醫療美容頻道的百科頁、方案頁經驗分享,小樣本學習利用2,989條訓練數據準確率提升1.8PP,達到了89.24 %。
攻略識別:從UGC和筆記中挖掘旅遊攻略,提供旅遊攻略的內容供給,應用於景點精搜下的攻略模組,召回內容為描述旅遊攻略的筆記,小樣本學習利用384條訓練資料準確率提升2PP,達到了87%。
學城文本分類:學城(美團內部知識庫)有大量的使用者文本,經歸納將文本分為17種類別,已有模型在700條資料上訓練,透過小樣本學習,在已有模型上提升模型精度2.5PP,達到84%。
項目篩選:LE生活服務/麗人等業務目前的評價列表頁混排評價的方式不便讓用戶快速找到決策信息,因此需要更有結構化的分類標籤來滿足用戶的需求,小樣本學習在這兩個業務上利用300-500條數據上準確率均達到95% (多個數據集分別提升1.5-4PP)。
句間關係任務
#醫美功效打標:對美團和大眾評論的筆記內容依功效進行召回,功效的類型有:補水、美白、瘦臉、除皺等,上線至醫美頻道頁,有110種功效類型需要打標,小樣本學習僅用2909條訓練數據準確率達到了91.88%(提升2.8PP)。
醫美品牌打標:品牌上游企業有針對旗下產品進行品牌宣傳和行銷的訴求,而內容行銷是當前主流、有效的行銷方式之一。品牌打標就是為每個品牌如「伊膚泉」、「術唯可」召回詳細介紹該品牌的筆記內容,共有103種品牌,已上線至醫美品牌館,小樣本學習僅用1676條訓練數據準確率達到了88.59%(提升2.9PP)。
在本次榜單提交中,我們建立了一個基於RoBERTa的語意理解模型,並透過增強預訓練、PET/EFL模型、資料增強和整合學習&自訓練來提升模型的效果。此模型能完成文本分類、句間關係推理任務和幾種閱讀理解任務。
透過參與這次評測任務,我們對小樣本場景下的自然語言理解領域的演算法和研究有了更深的認識,也藉此對前沿演算法的中文落地能力進行了摸底測試,為後續進一步演算法研究、演算法落地打下了基礎。此外,本次資料集中的任務場景與美團搜尋與NLP部的業務場景存在很大相似性,該模型的許多策略也直接應用在實際業務中,直接為業務賦能。
駱穎、徐俊、謝睿、武威,皆來自美團搜尋與NLP部/NLP中心。
以上是美團獲得小樣本學習榜單FewCLUE第一! Prompt Learning+自訓練實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!