阿里few shot learning文章的个人理解

先贴结构图:

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时,也能很好学到新的知识。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章