一、概述
最近对小样本学习+多标签分类很感兴趣,找到一篇原型网络来做多标签分类的文章,很符合我的需求,所以来读一下。
文章是2020年完稿的,但还没有发表,所以没有开源代码。
二、创新点
- 通过联合估计非线性嵌入空间(nonlinear embedding space)中所有标签的类别分布来解决多标签学习问题,有效利用了非线性标签依赖性和特征标签预测关系。
三、方法
上图里面符号很多,逐一来看一下。
- k=1,2,…,K,一共有K个标签;
- E p o s _ k \mathbb E_{pos\_k} Epos_k代表的是 X p o s _ k \mathbb X_{pos\_k} Xpos_k经过embedding network后得到的特征,pos下标代表标签k下的正样本,neg代表标签k下的负样本;
- P p o s _ k \mathbb P_{pos\_k} Ppos_k代表由 E p o s _ k \mathbb E_{pos\_k} Epos_k得到的标签k下的正类原型;
- d p o s _ k d_{pos\_k} dpos_k代表 P p o s _ k \mathbb P_{pos\_k} Ppos_k和查询集样本 x i x_i xi经过distance network of label k得到的距离值;
-
P
k
P_k
Pk是
x
i
x_i
xi具有标签k的预测概率。
基于原型的生成方法,文章分了两种:
1.PNML-multiple:采用基于自适应距离的聚类方法产生原型,其中原型的数量和参数在训练过程中联合调整。
2.PNML-single: P p o s _ k \mathbb P_{pos\_k} Ppos_k是 E p o s _ k \mathbb E_{pos\_k} Epos_k特征集的平均。
PNML-single方法很好理解
计算原型的方式跟最初的Prototypical Network一样,就是把所有embedding加起来求平均。
PNML-multiple方法
- 初始化 μ c = μ E p o s _ k ( μ E n e g _ k ) \mu_c=\mu_{\mathbb E_{pos\_k}}(\mu_{\mathbb E_{neg\_k}}) μc=μEpos_k(μEneg_k)作为 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)的均值,C=1作为原型数量的初始值, σ c = σ \sigma_c=\sigma σc=σis the trainable variance of one cluster from which instance is assumed to be sampled(这句话不是很懂,我理解就是选取的多个 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)计算得到的方差)
- 根据以下公式估计距离阈值,其中 ρ \rho ρ是用于绘制原型的基本分布的标准偏差的度量。M是 embedding vector的维度。 α \alpha α是名为concentration parameter的超参数。
- 对于 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)中的每一个embedding vector e i e_i ei,计算其与{1,…,C}中原型 c c c的距离 d i , c = d ψ ( e i , μ c ) d_{i,c}=d_{\psi}(e_i,\mu_c) di,c=dψ(ei,μc)。如果 m i n c d i , c > λ min_cd_{i,c}>\lambda mincdi,c>λ,则C=C+1,更新 μ c = e i \mu_c=e_i μc=ei和 σ c = σ \sigma_c=\sigma σc=σ。之后通过softmax计算 e i e_i ei属于每个cluster的概率 z i , c z_{i,c} zi,c,并重新计算cluster的均值
- 重复步骤3cluster的数量次,最终每一个 μ c \mu_c μc都是一个prototype vector,所有的 μ c \mu_c μc构成了 P p o s _ k ( P n e g _ k ) \mathbb P_{pos\_k}(\mathbb P_{neg\_k}) Ppos_k(Pneg_k)
四、损失函数
第一部分是交叉熵损失
p是查询样本
X
i
X_i
Xi具有标签k的概率。
第二部分与PNML-multiple中计算距离的
d
i
,
c
=
d
ψ
(
e
i
,
μ
c
)
d_{i,c}=d_{\psi}(e_i,\mu_c)
di,c=dψ(ei,μc)有关。由于多标签问题具有non-spherical distribution的特性,所以采用Mahalanobis distance function
d
m
k
d_m^k
dmk来估计Bregman divergence
d
ψ
(
e
i
,
μ
c
)
d_{\psi}(e_i,\mu_c)
dψ(ei,μc)
其中权重矩阵
U
k
U_k
Uk是通过一层全连接网络+线性激活函数学习得到的,就是overview图片中的Distance Network。此外,需要在损失函数中加入以下正则化项来防止过拟合。
第三部分考虑了标签之间的相关性。假设标签j和标签k相关,那么它们的正原型也应该是相似的,也就是说两者的向量会具有更大的内积。因此定义相关性正则化项:
因此完整的损失函数是