先貼結構圖:
1、每次C類,每類K樣本,剩下的是測試集。
2、encoder層是BiLSTM+attention,得到編碼向量,假設隱含層個數是96個,句子長度是30,暫不考慮batch_size,那麼每個字的隱含層就是1*192向量,整個H就是30*192,那麼attention的最後輸出就是一個1*192的向量(計算公式如下,權重矩陣W是30*192的矩陣)。
3、induction層是加入W和b;
W = 192*192;
e(i,j)是第i個類的第j個樣本的encode層的輸出結果,192*1;
b是一個1*1向量(我大膽猜測的,爲了和下面相對應,因爲如果b是192*1的話就不對應了);
d是b的softmax結果;
W*e+b 再經過squash的壓縮=192*1的向量;
j的取值範圍是1-K,所以這點我有點疑惑了,
獲取c的加權相加時,d(i,j)像是取值範圍0<i<=C;0<j<=K
但顯然d是一個1*192的向量吧
論文中的意思是d(i)是這第i個類中所有樣本的權重相加是1,這樣的話d就是一個C*K的矩陣呀。論文中的意思是這樣的
4、預測樣本q得到編碼向量,與每個類向量c計算相似度,得到分類結果。
優點:每次訓練都採用不同的meta-mask,包含了不同的類別組合,這種機制使得模型學到不同meta-mask的共性部分,且在面對新的task時,也能很好學到新的知識。