廖俊偉,程 帥
(電子科技大學 計算機科學與工程學院,四川 成都 611731)
Transformer模型[1]誕生后,其靈活性促進了一系列多任務模型的發展[2-4]。多任務模型是指僅使用一個模型來處理多個不同任務。這些模型一般都是典型的“稠密”(Dense)模型——當執行任何一個任務的時候,模型的參數被全部激活。但對于這種不同任務共享所有參數的模型,并不清楚模型中的每一部分參數分別學到了什么知識或者能力。這帶來了兩個問題: 一方面,盡管處理不同自然語言任務需要不同的技能[5],稠密模型的這個特性使我們無法根據不同任務顯式地選擇激活不同的技能;另一方面,當使用訓練好的稠密模型來執行新的任務時,不管模型中包含的技能是否與新的任務相關,這些技能都會用于新任務的學習,從而導致不相關的技能影響模型學習新的任務。
為解決上述問題,本文提出了一種基于技能網絡的通用自然語言生成模型(SkillNet-NLG)。模型的基本思想是其網絡結構中包含了多個技能模塊,其中每一個模塊代表一種獨特的技能。這些技能的定義如表1所示。
表1 SkillNet-NLG的技能及其定義
與傳統的稠密模型在執行某一任務時激活所有的參數不同,SkillNet-NLG僅激活與特定任務相關的技能模塊。如圖1所示,為了執行對話生成任務,SkillNet-NLG需要的能力包括生成開放式文本的能力(Sopen-end),理解對話的上下文的能力(Sconversation)以及理解基于自然語言的問題的能力(Squestion)。因此,對應于Sopen-end,Sconversation,Squestion和Sgeneral(1)Sgeneral定義為一種通用技能,該技能是完成任何一個任務所需要的缺省能力,默認總是處于激活狀態。四種能力的技能模塊被激活。
圖1 SkillNet-NLG模型示意圖
本文提出的SkillNet-NLG是基于Transformer[1]架構實現。Transformer是一種編碼器-解碼器(Encoder-Decoder)模型,其編碼器和解碼器分別包含多個結構相同的Transformer層,而每個Transformer層又是由多頭注意力網絡(Multi-Head Attention Network)和前饋網絡(Feed-Forward Neural Network,FFN)構成。具體來說,SkillNet-NLG針對Transformer結構的改動如下: 對于編碼器與解碼器中的Transformer層,每間隔一層將其中的FFN替換為多個結構相同的FFN。每一個FFN對應于一種技能。當模型處理某個任務時,只有與執行該任務所需的技能相關的FFN被激活。
本文在多個中文自然語言生成任務上進行了大量的實驗,驗證SkillNet-NLG的效果(2)本文提出的方法與具體的語言無關。在后續研究中將嘗試將SkillNet-NLG用于其他語言的生成任務。。在多任務訓練階段,使用了五種自然語言生成任務,包括文本摘要生成、廣告生成、問答、對話生成以及語法糾錯。經過多任務訓練后的SkillNet-NLG,在五種任務中的其中四種任務上,超過了之前工作中針對特定任務單獨訓練的表現最好的模型的性能。同時,SkillNet-NLG的性能也優于另外兩種常用的多任務模型,即稠密模型和混合專家模型(Mixture-of-Expert,MoE)。此外,本文還將經過多任務訓練的 SkillNet-NLG通過微調應用于與多任務訓練階段不同的其他文本生成任務,包括主題到文章的生成、復述生成和故事生成。實驗結果表明,SkillNet-NLG的表現優于前述的所有基線模型。
SkillNet-NLG是一種通用的自然語言生成模型,即使用一個模型執行多種自然語言生成任務。其在模型訓練階段采取了多任務的訓練方法,因此與傳統的多任務模型有相似之處。從模型結構上來看,SkillNet-NLG的主要特征是引入了技能模塊,在執行某一任務時,根據預先定義的任務技能,選擇部分技能模塊激活,因此是一種稀疏激活的模型。
1.1 多任務模型
傳統的多任務模型[2-4]通常包括一個所有任務共享的特征表示層(Feature Representation Layer)和多個針對特定任務的預測層(Task-Specific Prediction Layers)。在多任務訓練階段,共享的特征表示層從數據中學習到通用的特征表示,而預測層則學習到與任務相關的特征表示,但是并不清楚在特征表示層學習到了什么知識或者技能。與之不同,SkillNet-NLG包含清晰定義的技能模塊,這些技能模塊根據任務需要被選擇性地激活。直觀地說,SkillNet-NLG不是學習如何針對某個特定任務進行優化,而是學習如何對每個特定技能模塊進行優化,以及如何組合多個技能模塊來完成某項任務。因此,SkillNet-NLG可以更好地泛化到模型在訓練階段從未見過的新任務上。
1.2 稀疏激活模型
另外一類典型的稀疏激活模型是混合專家模型(Mixture-of-Expert,MoE)[6-9]。混合專家模型包含多個并列的專家模塊(Expert Modules),這些專家模塊通常具有相同的網絡結構?;旌蠈<夷P屯ㄟ^一個參數化的門控模塊(Gating Module)來控制激活部分或者全部的專家模塊。但是并不清楚每個專家模塊學到了什么類型的知識,同時也無法解釋為什么選擇激活某些專家模塊而不激活另外一些專家模塊。與之不同,SkillNet-NLG具有定義清晰的技能模塊,具體激活哪些技能模塊則是根據任務的需要,由人工進行判斷。
本節首先介紹了作為SkillNet-NLG基礎的Transformer結構(2.1節);其次,對SkillNet-NLG模型的實現思路和細節進行描述(2.2節);最后介紹了如何對任務分解相關技能(2.3節),以及如何對SkillNet-NLG進行多任務訓練(2.4節)。
2.1 背景介紹
SkillNet-NLG是基于Transformer的一種改進模型。下面簡單介紹一下Transformer的結構。
Transformer是一種具有多層結構的編碼器-解碼器模型。在編碼器端,如圖2(a)所示,Transformer的每一層由一個多頭自注意力網絡(Multi-head Self-attention Network, Attention)和一個前饋網絡(Feed-Forward Network,FFN)組成。對于給定的Transformer某一層輸入特征hin=(h1,h2,…,hn),該層的輸出計算如式(1)所示。
圖2 Transformer與SkillNet-NLG的層結構對比
hout=FNN(Attention(hin))
(1)
在多頭注意力機制中,輸入特征通過不同的權值矩陣被線性映射到不同的信息子空間,并在每個子空間完成相同的注意力計算,以對文本潛在的結構和語義進行充分學習。其中第i個頭的注意力headi計算過程如式(2)~式(4)所示。
Attention(hin)=Concat(head1,…,headN)WO
(5)
其中,N是注意力頭個數,WO是參數矩陣。
前饋網絡FFN對多頭注意力輸出進行兩次線性變換,并在兩次變換之間使用了ReLU激活函數,如式(6)所示。
FFN(x)=Max(0,xW1+b1)W2+b2
(6)
其中,x表示FFN的輸入,即多頭注意力的輸出;W1、b1、W2、b2是學習參數。
Transformer解碼器的每層結構與編碼器類似,不同之處在于解碼器的每層中額外增加了一個多頭注意力網絡。這個增加的多頭注意力網絡在解碼器的輸入和編碼器的輸出之間進行多頭注意力的計算操作。
2.2 SkillNet-NLG
SkillNet-NLG的基本設計思想是模型包含多個技能模塊,當模型執行某一個任務時,僅激活完成任務所需的技能對應的技能模塊。SkillNet-NLG對Transformer結構上的改動如圖2(b)所示(3)圖中以Transformer的編碼器層為例進行說明,解碼器層與之類似。。SkillNet-NLG將Transformer層中的單個FFN替換為多個相同結構的FFN,每個FFN都對應于一種技能。當模型處理某個任務時,僅激活該任務所需技能對應的FFN。例如,對于對話生成任務需要的四種技能(Sopen-end,Sconversation,Squestion和Sgeneral),模型僅激活這四種技能對應的FFN,而其余的兩個技能(Snon-open-end和Sdata-to-text)對應的FFN并沒有被激活。對于某個特定技能k的FFNk,其功能與原始的FFN類似,生成該技能的特征表示如式(7)所示。
hk=FFNk(Attention(hin))
(7)
由于激活的技能子模塊隨任務不同而變化,為了計算SkillNet-NLG的每層輸出的特征表示,對所有激活技能的特征表示進行平均池化操作如式(8)所示。
(8)
其中,S代表激活的技能集合。例如,對于圖1所示的對話生成任務,S={Sopen-end, Sconversation, Squestion, Sgeneral}。為避免增加過多的模型參數,參考Lepikhin等人[7]的做法,上述對Transformer層的改動不是針對所有的Transformer層進行,而是選擇每間隔一層進行。
2.3 任務分解
SkillNet-NLG的基本設計思想是模型包含多個技能模塊,當模型執行某一個任務時,僅激活完成任務所需的技能對應的技能模塊。因此在模型執行任務之前,需要分析完成任務需要哪些技能。
從“輸入-輸出”信息變換的角度,自然語言生成可分為開放式語言生成(Open-end Language Generation)和非開放式語言生成(Non-open-end Language Generation)[10]。在非開放式語言生成任務中,輸入信息在語義上提供了完備甚至更多的信息,模型需要將這些信息用語言文字表述出來。例如在文本摘要任務中,輸入給出了比輸出語義空間中更多的信息,模型需要通過信息過濾來選擇合適的信息表達在輸出文本中。因此,模型為完成文本摘要任務,需要非開放式語言生成能力(Snon-open-end)。對應的,開放式語言生成是指輸入信息不完備、不足以引導模型得到完整輸出語義的任務。例如,問答是典型的開放式語言生成任務,模型根據提問生成回答。這個場景下輸入信息有限,模型需要利用其他信息(如外部知識庫)或者生成輸入中未指定或未約束的部分內容。這類任務普遍具有“一到多”的特點,即同一個輸入存在多種語義顯著不同的輸出文本,因此針對這類任務需要模型具備開放式語言生成能力(Sopen-end)。此外,問答任務需要在理解提問的基礎上生成適當的回答,因此模型還需要具備理解自然語言問題的能力(Squestion)。
將多任務訓練的SkillNet-NLG用于新任務的時候,雖然模型在訓練階段沒有見過該任務,但是可以通過組合新任務所需要的技能,使模型能夠快速將多任務階段學習到的知識遷移到新任務的學習上。以主題到文章生成任務為例,該任務是根據輸入的一組與主題相關的關鍵詞生成一篇圍繞主題的文章。根據任務定義,該任務需要開放式的語言生成能力(Sopen-end)。此外,由于給定的輸入是一組關鍵詞,模型還需要具備從結構化數據生成文本的能力(Sdata-to-text)。
采用與上述類似的分析,本文對常見的自然語言生成任務定義了所需的技能(表2)。表中各個任務的介紹參見第3.1節。
表2 常見自然語言生成任務的技能定義
2.4 模型訓練
對SkillNet-NLG進行多任務訓練是通過混合所有任務的訓練數據進行的。在模型訓練過程中的每一步,首先從參與訓練的多個任務中選擇一個任務的一個小批量數據(Mini-batch),然后在輸入數據中添加代表該任務的特殊前綴。模型計算生成的文本與參考文本之間的交叉熵損失(Cross-Entropy Loss),并進行后向傳播(Back Propagation)更新模型參數。由于各個任務的訓練數據存在數量不均衡的情況,參考Raffel等人[3]的方法,本文采用了基于溫度調節(Temperature-Scaled)的數據采樣混合策略。具體來說,根據概率{p1,…,pN}從N個任務中隨機選擇一個任務并采樣該任務一個小批量數據。其中,概率pi計算如式(9)所示。
(9)
其中,ni表示第i個任務的訓練數據數量;K表示人為設置的數據大小上限,以避免某個任務的數據量過大從而導致采樣比率過高;T表示采樣溫度。當T= 1時,上述分布等于原始的數據分布;當T較大(如T=1 024)時,此時的分布接近于均勻分布。關于選擇不同T對模型訓練的影響請參見第3.6節中的分析。
本節描述了實驗設置,并對實驗結果進行了分析與討論(4)實驗代碼、數據集和模型下載地址https://github.com/david-liao/skillnet_nlg。
3.1 任務及數據集
本文在常見的自然語言生成任務的中文基準數據集上開展實驗,任務種類、每個任務使用的數據集統計信息和評測指標如表3所示。表中第一組五個任務的數據集用于SkillNet-NLG的多任務訓練及訓練后的模型在每個任務上的性能評測。表中第二組三個任務的數據集用于對訓練好的SkillNet-NLG進行微調,并評測微調后模型在新任務上的性能表現。
表3 實驗數據集統計信息
以下詳細介紹所有用到的數據集:
(1) 文本摘要任務的目的是對輸入的文本內容進行總結以獲得其主旨大意,便于人們快速理解文本含義。LCSTS是從新浪微博收集的大規模中文短文本摘要數據集[11]。本文中采用了與Shao等人[12]相同的數據集劃分及評測指標。
(2) 廣告生成任務是根據給定的一組商品屬性與屬性值對生成一段廣告文案。AdGen來自中國最大的電子商務平臺,包含約12萬條與服裝有關的屬性與屬性值對和對應的廣告文案。本文采用了與Shao等人[12]相同的數據預處理過程,將輸入數據表示為屬性與屬性值對的列表。
(3) 問答任務是根據提出的問題生成使用自然語言的回答。MATINF-QA是一個大規模中文開放域問答數據集[13],包括107萬條來自健康領域的問答數據。
(4) 對話生成任務是基于歷史對話記錄生成對話的下一句的回復。KdConv是一個多領域基于知識驅動的對話數據集,其中,包含4 500條來自三個不同領域的對話數據。本文參照Sun等人[14]對數據進行劃分和預處理,并且從輸入數據中移除了知識三元組。
(5) 語法糾錯任務主要是糾正文本中的拼寫、標點符號、語法以及用詞等錯誤。NLPCC來自NLPCC 2018 Shared Task(5)http://tcci.ccf.org.cn/conference/2018/taskdata.php[15],包含1 200萬條由非母語人士撰寫的中文文本,其中的語法錯誤已由母語人士進行了注釋和修正。本文使用官方提供的評測腳本(6)http://www.comp.nus.edu.sg/nlp/software.html計算MaxMatch(M2)得分作為評測指標。
(6) 主題到文章生成任務根據輸入的一組與主題相關的關鍵詞生成一篇圍繞主題的短文。ZhiHu是從中文問答網站知乎收集整理的主題到文章生成的數據集[16],包含約100個高頻主題詞以及長度在50至100之間的中文短文。本文采用了與Yang等人[17]相同的數據劃分和評測指標(7)數據集下載地址https://pan.baidu.com/s/17pcfWUuQTbcbniT0tBdwFQ。
(7) 復述生成任務生成與輸入句子表達意思相同但是用詞和語法有所變化的句子。PKU Paraphrase Bank (PKUPB)是一個包含509 832條復述語句對的句子級別的中文復述生成語料庫(8)https://github.com/pkucoli/PKU-Paraphrase-Bank。本文分別從原始語料中隨機采樣1萬條作為驗證集和測試集,剩下部分作為訓練集。
(8) 故事生成任務根據給出的一段提示生成一篇合乎情理的故事。生成的故事必須保持通篇主題一致并且具有一定的獨創性。OutGen是由Guan等人[18]創建的基于大綱的故事生成任務數據集,該任務要求根據給定的人物和事件大綱生成一篇連貫的故事。其中的大綱是一組打亂順序的短語。本文使用了與Guan等人[18]一致的數據劃分和評測指標(9)數據和評測腳本的下載地址https://github.com/thucoai/LOT-LongLM。。
3.2 參數設置
本文提出的SkillNet-NLG基于Huggingface Transformers開發庫(10)https://github.com/huggingface/transformers[19]的BART-large模型[4]實現。模型由分別為12層的編碼器和解碼器組成,模型的隱層維度(Hidden State Dimensions)為1 024,前饋網絡維度(Feed Forward Dimension)為4 096。所有的技能模塊(FFNk)使用本文自己預訓練的中文BART模型對應Transformer層的FFN參數進行初始化。SkillNet-NLG在多任務訓練階段,設置參數更新步數為10萬步,最大輸入序列長度(Maximum Source Length)為512,最大輸出序列長度(Maximum Target Length)為200,批量大小(Batch Size)為512。使用Adam[20]優化器(β1=0.9,β2=0.999,ε=1e-8),并且設置學習率在訓練的前1萬步逐漸預熱(Warmup)至峰值3e-5,隨后線性下降。多任務訓練階段的每個任務的訓練損失學習曲線如圖3所示。在2.4節中用于計算訓練數據采樣策略的數據大小上限K設置為221,采樣溫度(Sampling Temperature)T在候選集{1,2,4,8,16,1 024}中進行超參搜索后選擇了4。模型推理(Inference)階段使用了集束搜索(Beam Search)的解碼方法,所有任務的集束大小(Beam Size)均設置為4。
圖3 多任務訓練階段各任務的學習曲線
在基于多任務訓練的SkillNet-NLG上分別微調三個新任務的超參數設置如表4所示。表中未列出的其他參數與多任務訓練階段相同,不再贅述。
表4 模型微調超參數設置
3.3 基線模型
為了評價SkillNet-NLG在多任務上的性能,引入多種典型模型進行實驗對比,其中包括分別針對每個任務單獨訓練的模型和另外兩種多任務模型。以下詳細介紹所有參與比較的模型:
(1) 針對特定任務單獨訓練的模型(Task-specific): 基于本文自己預訓練的中文BART模型[4](以下簡稱BART模型),分別在每個任務數據集上單獨微調的模型。因此,對于用于多任務訓練階段的五個任務,一共訓練了五個模型。與此相對,SkillNet-NLG與其他基線模型都是多任務模型,即僅使用一個模型執行五個任務。
(2) 多任務訓練的稠密模型(Dense): 該模型是在五個任務數據集上使用2.4節中介紹的方法訓練的BART模型。
(3) 多任務訓練的混合專家模型(MoE): 該模型是在BART模型的基礎上,參照Lepikhin等人[7]實現的混合專家模型。對于輸入的每個詞元(Token),模型使用一個門控網絡選擇激活前兩名(top-2)的專家模塊。為了與SkillNet-NLG可比較(包含六個技能模塊),本文實現的MoE模型包含了六個專家模塊(Expert Module)。MoE模型使用了BART模型參數進行初始化,并在五個任務數據集上使用2.4節中介紹的多任務訓練方法進行訓練。
實驗中用到的所有模型參數數量統計信息如表5所示。由于SkillNet-NLG和MoE模型都屬于稀疏激活的模型,表中最后一列列出了模型在實際使用過程中激活的參數數量。從表中可以看出,SkillNet-NLG的實際激活參數數量依賴于其執行特定任務時激活的技能模塊數量。
表5 模型參數量統計
3.4 模型性能對比
表6展示了 SkillNet-NLG 和所有基線方法在參與多任務訓練的五個任務上的結果。為了便于與最新研究成果對比,表中第一行給出了當前在任務數據集上性能表現最好系統的結果。其中,LCSTS,AdGen和MATINF-QA的結果來自 CPT-Large[12],KdConv的結果來自 mBART-Large[21],NLPCC的結果來自Mask GEC[22]。同時為便于比較整體性能,表中最后一列給出模型在所有任務上的結果的平均值。
表6 不同模型在用于多任務訓練的五個任務數據集上的實驗結果
從實驗結果上看,SkillNet-NLG在所有任務的平均得分上表現優于針對特定任務單獨訓練的模型(Task-specific)和另外兩個多任務模型(Dense和MoE)。我們分別對每個任務使用 Paired Bootstrap Resampling[23-24]方法計算了模型SkillNetNLG和Task-specific的實驗結果之間的p-value值: 0.243 2(LCSTS),0.180 3(AdGen),0.718 2(MATINF-QA),0.769 2(KdConv),0.366 4(NLPCC)。結果表明在顯著性水平α= 0.05 的情況下,不能完全拒絕兩種方法之間沒有顯著性差異的假設(p>0.05)。在僅使用一個模型的執行所有任務的情況下,SkillNet-NLG在五個任務中的四個上面表現均優于目前性能最好的系統??梢姳疚奶岢龌诩寄芫W絡的稀疏激活方法對于模型在多任務上的性能提升起到了重要作用。
表7展示了所有模型在三個新任務上的實驗結果,其中的Dense、MoE、SkillNetNLG是指在上述多任務實驗中訓練好的模型基礎上針對新任務分別微調得到的模型。表中第一行給出了目前在任務數據集上性能表現最好系統的結果。其中,ZhiHu的結果來自SCTKG(Gold-Senti)[25], OutGen的結果來自LongLMlarge[18]。
表7 不同模型在三個新任務數據集上的實驗結果
從實驗結果上看,SkillNet-NLG在三個新任務上的表現均優于針對特定任務單獨訓練的模型和其他兩個多任務模型。SkillNet-NLG在Zhihu數據集(主題到文章生成任務)上取得了與Qiao等人[25]工作中記錄的最好結果相近(BLEU-2分值僅差0.04)的性能。后者的方法使用了外部的知識庫(Knowledge Base)來輔助文章的生成,而SkillNet-NLG沒有使用任何額外知識。特別值得注意的是,SkillNet-NLG在OutGen數據集(故事生成任務)上超過了Guan等人[18]的LongLMlarge模型1.22的BLEU-2分值,后者的模型使用了更多參數(約10億參數)并且在大規模的領域內的數據上進行了預訓練。
3.5 消融實驗
本文根據2.3節中描述的方法對任務中使用的技能進行了分解(表2)。為了驗證分解方案的有效性,我們分別對模型在多任務和新任務兩種場景下進行了消融實驗。
模型在多任務訓練階段的五個任務上的技能分解方案如表8所示。其中,①使用預定義的技能,即表2中定義的技能分解方案。②每個任務對應一種技能,各個技能之間沒有重疊。③ 每個任務隨機分配一組技能。由于模型實際激活參數數量依賴于其執行特定任務時使用的技能個數(表5)。為與SkillNet-NLG的激活參數數量進行公平對比,隨機分配的技能的個數與表2中定義的技能個數保持一致。④在預定義方案中通用技能Sgeneral是完成任一任務所需要的缺省能力,默認總是處于激活狀態。因此一種可供比較的分解方案是每個任務都固定包含Sgeneral,其他的技能則采用與③中類似的方法隨機分配。表中結果顯示使用其他技能分解方案的模型性能相較預定義的技能分解方案均有不同程度的下降,表明了SkillNet-NLG任務技能分解的有效性。此外,方案④由于包含通用技能,能夠學習完成所有任務所需的具有共性的能力,表現優于完全使用隨機分配技能的方案,即方案③。
表8 模型在用于多任務訓練的五個任務上消融實驗結果
模型在三個新任務上的技能分解方案如表9所示。其中,方案②使用了預定義技能集合的補集(表1 中定義了技能集合的全集)。例如,對于故事生成任務(OutGen),預定義的技能集合是 {Sgeneral,Sopen-end},預定義外的技能集合則是 {Sopen-end,Sdata-to-text,Sconversation,Squestion};方案 ⑤在預定義的技能基礎上再隨機分配一個技能; 方案⑥隨機分配與預定義技能個數一致的一組技能。表中結果顯示,使用其他技能分配方案的模型性能較預定義的方案(見表2)均有不同程度下降,表明了SkillNet-NLG技能分解方案對新任務的有效性。
表9 模型在三個新任務上的消融實驗結果
3.6 數據采樣策略分析
在SkillNet-NLG的多任務訓練階段(2.4節),為了克服任務數據量不均衡的問題,使用了基于溫度調節(Temperature-Scaled)的數據采樣混合策略。該策略根據數據采樣溫度T計算的概率選擇任務訓練數據。為了進一步考察采樣溫度T對模型在各個任務上的性能影響程度,選取了有代表性的T值進行對比實驗,以提供T值選擇的依據。在參與多任務訓練的五個任務的驗證集上的實驗結果如圖4所示。
圖4 不同采樣溫度對實驗結果的影響
當設置T= 1時,數據采樣策略按照每個任務的實際訓練數據大小的比例進行采樣,這導致用于多任務訓練的五個數據集大小極不平衡(見表3中數據集統計信息)。從圖中可以看出,此時高資源任務LCSTS(216萬條訓練數據)在不同T設置中取得最大值;而低資源任務KdConv(6.3萬條訓練數據)在不同T設置中值最小。隨著T值逐漸增大,高資源任務和低資源任務之間的數據不均衡現象逐漸得到緩解。高資源任務的分值開始下降,而低資源任務的分值開始上升。當T= 4時,模型在兩種極端情況之間達到一種平衡狀態。此時模型在五個任務上面的平均分值最高。根據這一實驗結果,本文在所有多任務訓練實驗中均采用了T= 4的設置。
本文提出了一種稱作SkillNet-NLG的通用自然語言生成模型,該模型能夠僅使用一個模型處理多種自然語言生成任務。SkillNet-NLG的核心思想是執行某一任務時,根據預先定義的任務所需要的技能,稀疏激活模型中與該技能相關的模型參數。這種模型設計思路的優勢在于使得模型在學習新任務的時候可以選擇與任務相關的技能遷移過去,從而避免不相關技能的負面影響。在多種自然語言生成任務上對模型進行評估的實驗結果表明,SkillNet-NLG性能優于常用的基線模型,充分驗證了其在自然語言生成任務上的有效性。
未來的研究工作中,可以探索將本文提出的方法應用在中文以外的其他自然語言生成任務中,以驗證方法的通用性。另外,本文中模型是通過修改Transformer的前饋網絡層來實現的,可以考慮其他實現方法,例如,改動Transformer的多頭注意力層,進一步提升模型性能。最后,可以考慮引入探查性的任務來研究模型的技能模塊學習到的知識,使模型具有更強的可解釋性。
猜你喜歡 多任務技能模塊 高級技能故事作文·高年級(2023年10期)2023-10-2328通道收發處理模塊設計成都信息工程大學學報(2022年3期)2022-07-21“選修3—3”模塊的復習備考中學生數理化(高中版.高考理化)(2022年5期)2022-06-01基于中心化自動加權多任務學習的早期輕度認知障礙診斷中國生物醫學工程學報(2019年6期)2019-07-16秣馬厲兵強技能中國公路(2017年19期)2018-01-23拼技能,享豐收學苑創造·A版(2017年6期)2017-06-23基于判別性局部聯合稀疏模型的多任務跟蹤自動化學報(2016年3期)2016-08-23基于多任務異步處理的電力系統序網絡拓撲分析電測與儀表(2016年5期)2016-04-22畫唇技能輕松Coco薇(2015年11期)2015-11-09未知環境下基于粒子群優化的多任務聯盟生成計算機工程(2014年6期)2014-02-28