1. 程式人生 > 實用技巧 >論文閱讀:MinTL【資料庫查詢結果的embedding】

論文閱讀:MinTL【資料庫查詢結果的embedding】

標題:

《MinTL: Minimalist Transfer Learning for Task-Oriented Dialogue Systems》

作者:香港科技大學

內容:也是基於Transformers預訓練語言模型的任務型對話,與SimpleTOD,SOLOIST,BERT-TOD合稱四大天王(狗頭)。

原始碼:https://github.com/zlinao/MinTL

Bert-TOD使用的是BERT,SimpltTOD,SOLOIST都使用的GPT-2,其中SOLOIST實現去dialogue action化與機器教學。MinTL與SimpltTOD非常像,但是使用的BART和T5,而且在序列建模上有創新之處。

作者在端到端與DST兩個setting下訓練模型。

創新點:

(1)DST步驟生成的不是新belief span,而是belief state的變化(增刪改),然後使用一個獨立的額外模組,將舊span和state的變化合成新span

【按:即SOM-DST的carryover,delete,update這三種處理,它把carryover部分獨立出來了。這樣生成的時候只需要生成delete的與update的d-s-v,減輕decoder壓力。至於encoder側,依然是輸入previous belief span和truncated context的concat】

(2)預訓練模型使用的是最新的,基於encoder-decoder形式的transformers(即BART和T5),而不是純encoder的BERT或純decoder的GPT。結果是,我們在20%訓練資料的情況下,比baseline完整資料情況下的效能還高。

Related work

Sequicity:首次提出將belief state轉化為beleif span形式用於input-seq。

BART: a standard encoder-decoder Transformer with a bidirectional encoder and an autoregressive decoder.

T5:an encoder-decoder Transformer with relative
position embeddings

SimpleTOD,Bert-TOD,SOLOIST:與MinTL一樣利用Transformers預訓練模型做任務型對話,可以放在一起讀。

MinTL

在這裡插入圖片描述

1、狀態編輯模組(State Editing)
B t = f ( L e v t , B t − 1 ) B_t=f(Lev_t,B_{t-1}) Bt=f(Levt,Bt1)
【按:這裡作者使用了Levenshtein 這個詞。Levenshtein Distance 演算法,又叫 Edit Distance 演算法,是指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。所以用於形容state editing還是很合適的,有點像Git版本管理的機制】

2、主框架(encoder-decoder)
H = E n c o d e r ( C t , B t − 1 ) L e v t = D e c o d e r L ( H ) R t = D e c o d e r R ( H , e k ) H=\bold {Encoder}(C_t,B_{t-1})\\ Lev_{t}=\bold {Decoder}_{L}(H)\\ R_{t}=\bold {Decoder}_{R}(H,e_k) H=Encoder(Ct,Bt1)Levt=DecoderL(H)Rt=DecoderR(H,ek)
這裡輸入input-seq是previous belief span和truncated context的concat。第一個生成器(DST)生成 L e v t Lev_{t} Levt,然後編輯新狀態 B t B_t Bt;這個 B t B_t Bt用於查詢資料庫,查詢結果處理為一個向量 e k e_k ek。第二個生成器(NLG)生成response。

【按:本模型沒有顯式的POL與dialogue action預測,直接基於encoder-output和DB result生成response。相應地,本文生成器也不以 B t B_t Bt為條件】

【按:作為輸入的context當然是裁剪的,這裡作者的裁剪方式的取且僅取當前輪及上一輪的utterances。這點與SOM-DST是一樣的。】

【按:輸出的 R t R_t Rt其實是Delex. Response,最後將DB result填入,得到最後的Lex. Response。】

3、DB searching

對查詢結果即KB state k t k_t kt的處理,具體如下:

We first categorize the query result k t k_t kt according to the number of matching entities and the booking availability (a detailed list of k t k_t kt values is provided in the Appendix A)

基於規則,查詢結果被分成K=16類,詳情見附錄A,如下圖:
在這裡插入圖片描述

簡單來說,book availability有null, fail, success三類;entity match有null, 0, 1, 2-3, >3(對不同領域,門限可以不一樣)五類,這樣就是 K = 3 × 5 = 15 K=3 \times5=15 K=3×5=15類。

引入一個可訓練矩陣 E k ∈ R K × d m o d e l E_k\in \bold R^{K \times d_{model}} EkRK×dmodel,叫做KB state embeddings。

【按:就是把預訓練語言模型的token embeddings增加K個special embedding,resize,最後就可以直接look up對應的那一個 e k ∈ R d m o d e l e_k\in \bold R^{d_{model}} ekRdmodel

【按:這個過程相當於代替POL,或者說不需要顯式的dialogue action。和LaRL差不多,把顯式的dialogue action學習進hidden vector裡。】

4、Loss

損失函式就是兩個生成器的genration losses加和。

Experiments

預訓練模型:T5-small, T5-base, BART-large。

【按:三個模型,引數量依次是60M,220M,400M,規模是遞增的。】

向詞表中新增special segment token embeddings and KB state embeddings。

資料預處理:與DAMD一樣。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-XPXbuZDe-1602334614257)()]

引數如表7。w=2表示只取當前輪與上一輪utterance作為context。

Evaluation Metrics:Inform,Success,Bleu,Cimbined for End2End;Joint Acc. for DST。

資料集:MultiW2.0

Results

End-to-end

在這裡插入圖片描述

【按:這裡可以看出當前(2020年)學術界喜愛的方向,即為了減少label cost,儘量不在模型內使用顯式的actions】

1 Low Resource Settings

We use 5%, 10%, and 20% of the training set data to train our models and baselines.
在這裡插入圖片描述

結論:MinTL在小樣本情況下,比很多baselines在full training data情況下,效能還高。

2 Ablation Study:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-noKFCMOg-1602334614261)(C:\Users\66820\AppData\Roaming\Typora\typora-user-images\image-20201008175942732.png)]

結論:

1、使用 state editing機制,極大提升效能。

2、兩個生成器,$Lev $ generation 和response generation,共享同一decoder引數,效能會下降,證明了兩個decoder上的分佈確實是有差異的。更多的引數帶來更好的效能。

DST

在這裡插入圖片描述

【按:效能自然是好,不過依然是52到53之間。看來現有的noisy annotation不清洗的前提下,DST的瓶頸也就這樣了。】

Latency Analysis

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-IT4X6csK-1602334614262)(C:\Users\66820\AppData\Roaming\Typora\typora-user-images\image-20201008180455897.png)]

【按:這個表參考意義其實不大。基於Transformers的生成任務,它的O(n)基本已經被引數量級和輸入序列長度這倆因素鎖死了】

Conclusion

個人認為,作者使用BART/T5的idea其實並不新穎,真正創新點是state editing、去dialogue actions的DB result處理這2個。

  • state editing使得模型不生成new belief span,取而代之生成 belief change,然後再基於規則獲取new belief span。好處是減輕generator的壓力,但是也有壞處,那就是不得不使得第二個生成器,而SOLOIST與SImpleTOD的都是隻要一個生成器
  • DB result處理方法確實新穎,15種DB state被當成15個詞嵌入,新增進語言模型的預訓練詞向量裡,一方面不需要顯式的15維one-hot,另一方面不需要預測顯式的dialogue actions,而是把動作資訊隱藏進這個嵌入向量裡,這個idea和LaRL有點相似。結果是,與SOLOIST一樣拋棄了dialogue actions,這方面是優於SimpleTOD的,而與SOLOIST打了個平手。

總體而言,SimpleTOD不需要多個生成器但是需要預測dialogue actions,MinTL需要2個生成器但是不需要預測dialogue actions,SOLOIST既不需要多個生成器,也不需要預測dialogue actions,但是SOLOIST沒有開源,而SimpleTOD和MinTL都開源了