![](https://image.jiqizhixin.com/uploads/editor/1f08f4f0-7d39-4b73-b21b-d560cb6ffe69/1.jpeg)
论文提出Dynamic Memory Induction Networks (DMIN) 网络处理小样本文本分类。
![](https://image.jiqizhixin.com/uploads/editor/da21c9f0-b405-4ca4-a62d-122f06375e2c/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(动态记忆模块)。
![](https://image.jiqizhixin.com/uploads/editor/0c899895-fc09-49b4-a6af-ee6cfd7ff05b/3.jpeg)
给定一个 $M$ ( $W_{base}$ )和样本向量 q , q 就是一个特征胶囊,所以动态记忆路由算法就是为了得到适应监督信息 $ W_{base} $ 的向量 $q^{'}$ ,
![](https://image.jiqizhixin.com/uploads/editor/e0cb5c1d-45c4-4468-addd-a0ff047e243c/1621584910863.png)
$$ q^{'} \leftarrow DMR(M, q) $$ 学习记忆矩阵 $M$ 中的每个类别向量 $M^{'} $ 进行更新,
![](https://image.jiqizhixin.com/uploads/editor/82b41011-83d3-4e3d-a4f3-a5d708de452e/1621584936266.png)
![](https://image.jiqizhixin.com/uploads/editor/ff260963-b2b9-48da-9b20-78c90e8e634c/1621584979875.png)
这里的 $W_j$ 就是一个权重。因此变换权重 $W_j$ 和偏差 $b_j$ 在输入时候是可以共享的, 因此计算 $\hat{m}{ij}$ 和 $\hat{q}_j$ 之间的皮尔逊相关系数
其中![](https://image.jiqizhixin.com/uploads/editor/84ba8969-c27d-4df5-952d-4e945fd120b4/1621585081559.png)
![](https://image.jiqizhixin.com/uploads/editor/94cf72b6-cc1b-46c1-a763-a9c22632b17d/1621585047017.png)
![](https://image.jiqizhixin.com/uploads/editor/84ba8969-c27d-4df5-952d-4e945fd120b4/1621585081559.png)
接下来就是进行动态路由算法学习最佳的特征映射(这里添加了$p_{ij}$到路由协议中),到第11行为止。从第12行开始也会根据监督学习的记忆矩阵和胶囊的皮尔逊相关系数来更新$p_{ij}$,最后把部分胶囊💊合并。
动态记忆路由模块的目的就是能够在监督信息$W_{base}$的指导下对样本向量$e_{c,s}$ (胶囊)进行适应,
Query-Enhanced Induction Module
得到的样本向量${e^{'}{c,s}}{s=1,...,K}$ 和Query set预训练encode得到的查询向量 ${e_q}^{L}{q=1}$ ,为了更好的去分类$e_q$,也就是动态路由用$e_q$来再做一步自适应 ![](https://image.jiqizhixin.com/uploads/editor/e1339584-87b7-40ee-a66f-275974970722/1621585161482.png)
![](https://image.jiqizhixin.com/uploads/editor/e1339584-87b7-40ee-a66f-275974970722/1621585161482.png)
Similarity Classifier
novel class vector $e_c$和 query vector $e_q$ 输入到监督训练部分的分类器中,但是由于存在新类别的出现可能,因此用 $softmax(\bullet)$ 并不可以,于是论文考虑通过余弦相似度来计算分类分数,
第一阶段训练的记忆矩阵(分类权重)为 ![](https://image.jiqizhixin.com/uploads/editor/8b46cf94-09d1-49e7-a0b5-631fa3252925/1621585219130.png)
![](https://image.jiqizhixin.com/uploads/editor/20b450d8-975c-4530-b86d-15c735f38f24/1621585193508.png)
![](https://image.jiqizhixin.com/uploads/editor/8b46cf94-09d1-49e7-a0b5-631fa3252925/1621585219130.png)
Objective Function
监督学习的部分就还是用CE_loss,
在元学习的部分,对于
其中 $\hat{y}{k}=softmax(s_k) $或者 $\hat{y}q=softmax(s_q)$ ,区别在于L_1 是在 $C{base}$ 全部的分类上做交叉熵,$L_2$ 是在新增的类别上做。
![](https://image.jiqizhixin.com/uploads/editor/04c04374-f80d-4f1e-bdf4-679279aaed63/1621585252141.png)
![](https://image.jiqizhixin.com/uploads/editor/84da8d19-75c7-49eb-ba9d-f3e83797668b/1621585277966.png)
论文地址:
当然我们是利用小样本来做短文本文本分类和命名体识别的落地应用,也有结合一些其他的方法来优化和处理。希望更多的在自然语言处理领域的小样本的研究和落地应用能更多出现和迭代发展,谢谢阅读。