阿里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计算相似度,得到分类结果。