蔣帥 何良華
關鍵詞:深度學習;小樣本;關系三元組抽?。粚褂柧?/p>
1 概述
深度神經網絡,尤其是預訓練語言模型(如BERT) 的使用,使得關系抽取任務獲得了極大的性能提升。然而,現有的很多方法往往依賴大量的標注數據,且很難解決數據的長尾分布問題,如關系分類問題,訓練數據集中不同類別的樣本數量不同,某些關系類別樣本非常少,對于這些關系難以準確分類。又如,由于醫(yī)學中的罕見疾病病人數量非常少,難以獲得大量數據樣本。
為了解決這些問題,一些基于Few-Shot的實體識別和關系分類數據集和算法被提出。小樣本學習結合原型網絡,能夠很好地學習類別不斷變化情況下模型的泛化能力。對于目標領域樣本較少的情況,通??梢越柚硪惠^大的數據集(源域)學習通用知識,然后應用到目標域上。此外,在源域上訓練時結合領域判別對抗訓練,可以學習源域和目標域共性特征,能有效提升模型的泛化能力。結合這些方法和思想,本文的主要工作如下:
1) 結合域判別對抗訓練在Wiki域的數據集上預訓練模型,為小樣本醫(yī)學關系三元組抽取學習共性的知識;
2) 提出一個基于殘差連接的原型網絡模塊應用于小樣本醫(yī)學關系三元組抽取問題,取得了很好的抽取效果。
2 相關工作
2.1 小樣本關系三元組抽取
小樣本學習(Few-shot Learning) 模型大致分為三類:基于模型的方式、基于度量的方式和基于優(yōu)化的方式?;谀P偷姆绞街铝τ诟倪M模型的結構,使得在少量樣本上快速更新模型的參數,基于度量的方式(如原型網絡[1-3]) 通過度量測試樣本和支持集樣本的距離完成分類,基于優(yōu)化的方式則致力于改進參數的優(yōu)化方法。當前,在小樣本關系三元組抽取領域,大多數算法都采用基于度量的方式解決分類問題。
Haiyang Yu 等人[4]在2020 年提出了MPE(Multi-Prototype Embedding) 模型,應用于小樣本關系三元組抽取,先采用序列標記的方式抽取實體,然后根據support樣本學習實體原型和句子原型用于表征關系原型,關系分類準確度非常高。然而,這種方式使得整體關系三元組的抽取效果強依賴于實體抽取結果,盡管能夠取得較高的關系分類性能,但是由于實體抽取結果較差,導致最終關系三元組抽取結果不理想。
Xin Cong等人[5]在2022年提出了RelATE模型,基于原型學習和注意力網絡先對關系進行分類,然后在每個關系下學習實體的START標記原型和END標記原型,即識別出實體的第一個token和最后一個token 位置,從而抽取出實體,然后和之前的關系組合成關系三元組。此算法相對于MPE,采用關系指導的方式,一方面避免了實體對后續(xù)模塊的影響,另一方面將實體和關系進行了一定的語義結合。同時,實踐證明,基于原型網絡抽取實體比直接采用序列標記方式在小樣本情況下效果更好。但是相對地,關系分類的準確度有一定的下降。
2.2 跨域小樣本學習
對于當前域(稱為目標域)樣本較少的情況,通??梢越柚诹硪粋€較大的域(稱為源域)學習一些共性的知識,然后將其應用于目標域以提升性能。此外,域判別對抗訓練能夠學習不同域的共性特征,有助于提升模型的泛化能力,如文獻[6]中的Proto-ADV(BERT)網絡,基于原型學習和對抗訓練的方式提升小樣本關系抽取醫(yī)學域適應模型的性能。
3 小樣本醫(yī)學關系三元組抽取模型
小樣本醫(yī)學關系三元組(Few-Shot Bio Triple Ex?traction) 的總體模型如圖1所示,包含4個主要模塊:編碼器模塊、關系分類模塊、實體識別模塊以及域判別對抗訓練模塊。本文主要介紹當前所做的醫(yī)學域適應工作,用于解決小樣本醫(yī)學關系三元組抽取問題,包括一個殘差連接的實體標記原型網絡以及域判別對抗訓練模塊,其余模塊包括關系分類模塊和實體識別模塊,見圖2和圖3。
3.1 問題描述
依據傳統的Few-shot任務設定,將小樣本關系三元組抽取問題定義為NwayKshot問題,其中N對應每次分類時關系的類別數,K表示每個關系類別Support 樣本的數量。對于每個Query語句,關系分類問題即對N個類別進行分類;而實體識別問題,使用傳統的實體標記(BH、IH、BT、IT、O分別對應頭實體第一個to?ken、頭實體其他token、尾實體第一個token、尾實體其他token、非實體token) 對句子進行序列標記,實體識別即建模為標記預測問題。
3.2 殘差連接的實體標記原型網絡
對于每個query語句經過encoder層,獲得每個to?ken的特征表示Qori(t1,t2,…,tn),其中n 為句子的長度,類似的每個support語句經過encoder層得到Sori(t1,t2,…,tn)。對于support樣本,由于每個token的實體標記已知,本文對同一關系類別的K 個樣本的同類實體標記對應的token特征向量做平均池化,得到實體標記原型Tori(N,5,D)的特征矩陣,其中“5”是實體標記的類別共5 類,D 是特征向量長度。Qori(t1,t2,…,tn)和Tori(N, 5, D)基于注意力機制得到Attention之后的特征表示Qatt(t1,t2,…tn) 和Tatt(N, 5, D),則實體識別模塊的輸入:query的token特征矩陣Q(t1,t2,..tn)= Qori(t1,t2,…,tn) || Qatt(t1,t2,…tn),實體標記原型T(N,5,D)= Tori(N, 5, D) ||Tatt(N, 5, D),其中||表示拼接操作。
3.3 域判別對抗訓練
域判別對抗訓練模塊的總體流程如圖4所示。從源域(Wiki) 和目標域(Bio) 中分別選取M個樣本構造無標記樣本集合W和B,每個batch分別從兩個域選取m個樣本,經過encoder層對句子進行編碼,選取CLS作為句子表征,2m個特征構成特征矩陣E(2m,D),經過FFN 層得到預測結果Y(2)=W2*ReLU(W1E(2m,D)+B1)+B2,其中D 表示特征向量長度,“2”表示有2個域。最終,域判別對抗訓練模塊的損失:
4 實驗與結果分析
4.1 實驗數據集
本文實驗均基于Fewrel 2.0 da(domain adaption) 數據集(詳見文獻[6]) 。該數據集包含來自Wikipedia 語料庫和Wikidata知識庫采集的80種關系每種關系包含700個樣本,以及從PubMed數據庫采集的10種醫(yī)學關系,每種關系包含100個醫(yī)學樣本。
4.2 實驗設置
所有實驗基于Python3.8 和Pytorch1.7 框架,在NVIDIA GEFORCE 3090 GPU上進行訓練和測試。實驗隨機選取Wiki域的50種關系訓練模型(35 000個樣本),隨機選取PubMed域的3種關系作為驗證數據集(300個樣本),余下7種關系作為測試數據集(700個樣本)。所有實驗均在Wiki域迭代訓練10 000次,batch?size固定為1,每次迭代以5way5shot方式采樣support 樣本和query樣本,在驗證集上測試3way3shot關系三元組抽取的F1-score,保存取得最優(yōu)結果時的模型,然后在測試集上分別以3way-3shot 和7way-7shot 方式隨機采樣1 000次,計算關系三元組預測結果的pre?cision、recall、F1-score的均值。
對比實驗設置如下:
1) Rel+EntTag ProtoNet:關系采用ProtoNet,實體采用BIO標記原型(即不區(qū)分關系);
2) Rel+RGEntTag ProtoNet:關系采用ProtoNet,實體采用關系指導的實體BIO標記原型;
3) RelATE:文獻[3]中的方法;
4) FSBTE,本文方法;
5) FSBTE-Adv,減去域判別對抗訓練模塊;
6) FSBTE-Adv-Roberta_Bio,在5)的基礎上進一步將Roberta-Bio語言模型[7]替換為Bert語言模型,作文Encoder模塊;
7) FSBTE-Adv-Roberta_Bio-Ori Feature,在6)的基礎上進一步減去殘差連接模塊中Bert得到的token 特征表示,僅根據關系模塊中attention得到token特征表示計算實體標記原型;
8) FSBTE-Adv-Roberta_Bio-Att Feature,在6)的基礎上進一步減去殘差連接模塊中關系模塊的atten?tion得到token特征表示,僅根據Bert得到的token表示計算實體標記原型。
4.3 實驗結果
3way3shot和7way7shot醫(yī)學關系三元組抽取實驗結果如表1 和表2 所示。根據Rel+EntTag ProtNet、Rel+RGEntTag ProtoNet和RelATE三組實驗結果可以看出,采用關系指導的方式將實體根據關系區(qū)分學習實體的原型表示,可以顯著地提升關系三元組抽取的性能;根據FSBTE和FSBTE-Adv兩組對比實驗可以看出,域判別對抗訓練方式對于提升模型的泛化能力依然是十分有效的手段;根據最后三組對比實驗可以看出,本文提出的殘差連接模塊極大地提升了Wiki域適應到醫(yī)學域泛化性能,表明其對于小樣本醫(yī)學關系三元組抽取問題的有效性。
5 總結
本文提出了一個基于殘差連接的原型網絡模塊,應用于小樣本醫(yī)學關系三元組抽取,同時結合域判別對抗訓練,提升了網絡域適應能力。多組對比實驗證明了本文方法的有效性。