论文提出Dynamic Memory Induction Networks (DMIN) 网络处理小样本文本分类。
两阶段的(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(动态记忆模块)。
给定一个 $M$ ( $W_{base}$ )和样本向量 q , q 就是一个特征胶囊,所以动态记忆路由算法就是为了得到适应监督信息 $ W_{base} $ 的向量 $q^{'}$ ,
$$ q^{'} \leftarrow DMR(M, q) $$ 学习记忆矩阵 $M$ 中的每个类别向量 $M^{'} $ 进行更新,
其中
这里的 $W_j$ 就是一个权重。因此变换权重 $W_j$ 和偏差 $b_j$ 在输入时候是可以共享的, 因此计算 $\hat{m}{ij}$ 和 $\hat{q}_j$ 之间的皮尔逊相关系数
其中
接下来就是进行动态路由算法学习最佳的特征映射(这里添加了$p_{ij}$到路由协议中),到第11行为止。从第12行开始也会根据监督学习的记忆矩阵和胶囊的皮尔逊相关系数来更新$p_{ij}$,最后把部分胶囊
编辑:jq
全部0条评论
快来发表一下你的评论吧 !