論文解讀:膠囊網路在小樣本做文本分類中的應用(下)

1.jpeg

論文提出Dynamic Memory Induction Networks (DMIN) 網路處理小樣本文本分類。

2.jpeg

兩階段的(two-stage)few-shot模型:

在監督學習階段(綠色的部分),訓練數據中的部分類別被選為base set,用於finetune預訓練Encoder和分類器也就是Pretrained Encoder和Classfiier圖中的部分。

在元學習階段(紅色的部分),數據被構造成一個個episode的形式用於計算梯度和更新模型參數。對於C-way K-shot,一個訓練episode中的Support Set是從訓練數據中隨機選擇C個類別,每個類別選擇K個實例構成的。每個類別剩下的樣本就構成Query Set。也就是在Support Set上訓練模型,在Query Set上計算損失更新參數。

Pretrained Encoder

用[CLS]預訓練的句子的Bert-base Embedding來做fine-tune。W_{base}  就作為元學習的base特徵記憶矩陣,監督學習得到的。

Dynamic Memory Module

在元學習階段,為了從給定的Support Set中歸納出類級別的向量表示,根據記憶矩陣 W_{base} 學習Dynamic Memory Module(動態記憶模組)。

3.jpeg

給定一個 M ( W_{base} )和樣本向量 q , q 就是一個特徵膠囊,所以動態記憶路由演算法就是為了得到適應監督資訊 W_{base} 的向量 q^{‘}

image.png

學習記憶矩陣 M 中的每個類別向量 M^{‘} 進行更新,

image.png

其中

image.png

這裡的 $W_j$  就是一個權重。因此變換權重 $W_j$ 和偏差 $b_j$ 在輸入時候是可以共享的, 因此計算 $\hat{m}{ij}$ 和 $\hat{q}_j$ 之間的皮爾遜相關係數 

image.png

其中

image.png

接下來就是進行動態路由演算法學習最佳的特徵映射(這裡添加了$p_{ij}$到路由協議中),到第11行為止。從第12行開始也會根據監督學習的記憶矩陣和膠囊的皮爾遜相關係數來更新$p_{ij}$,最後把部分膠囊💊合併。 

 動態記憶路由模組的目的就是能夠在監督資訊$W_{base}$的指導下對樣本向量$e_{c,s}$ (膠囊)進行適應,

image.png

Query-Enhanced Induction Module 

 得到的樣本向量${e^{‘}{c,s}}{s=1,…,K}$ 和Query set預訓練encode得到的查詢向量 ${e_q}^{L}{q=1}$ ,為了更好的去分類$e_q$,也就是動態路由用$e_q$來再做一步自適應

image.png

Similarity Classifier

novel class vector $e_c$和 query vector $e_q$ 輸入到監督訓練部分的分類器中,但是由於存在新類別的出現可能,因此用 $softmax(\bullet)$ 並不可以,於是論文考慮通過餘弦相似度來計算分類分數,

image.png

第一階段訓練的記憶矩陣(分類權重)為

image.png

Objective Function監督學習的部分就還是用CE_loss,

image.png

在元學習的部分,對於 $S$ 和 $Q={x_q, y_q}^{L}{q=1}$ ,

image.png

其中 $\hat{y}{k}=softmax(s_k) $或者 $\hat{y}q=softmax(s_q)$ ,區別在於L_1 是在 $C{base}$ 全部的分類上做交叉熵,$L_2$ 是在新增的類別上做。 

 論文地址:

[Dynamic Memory Induction Networks for Few-Shot Text Classification](//www.aclweb.org/anthology/2020.acl-main.102.pdf) 

當然我們是利用小樣本來做短文本文本分類和命名體識別的落地應用,也有結合一些其他的方法來優化和處理。希望更多的在自然語言處理領域的小樣本的研究和落地應用能更多出現和迭代發展,謝謝閱讀。