Motivation
本文出发点还是荣multi-source domain adaptation出发,如何利用多个source domain的知识,来更好的预测target domain. 还是从target的分布可以用source distribution的加权来接近。
作者对domain之间的relationship建模提出了mixture-of-expert(MoE)的方法,
- 将不同的source domain和target domain投影到不同的子空间,而不是将所有的domain投影到同一个子空间。
- target的后验概率,通过不同source域的分类器加权组合,这里权重反应了target样本到每一个source domain的距离
- 定义了point-to-set 的metric,并作为loss训练,采用了meta-training的方式
Method
如图所示模型主要包括四个部分 1)encoder 用来提取特征 2)classifier, domain-specific 分类器,每一个source的都有一个3)metric用来将多个domain-specific的target的结果融合 4)adversary用来align不同域之间的距离
Metric
pmoe(y∣x)=∑i=1Kα(x,Si)pSi(y∣x)
p_{moe}(y|x)=\sum_{i=1}^K\alpha(x,S_i)p^{S_i}(y|x)
pmoe(y∣x)=i=1∑Kα(x,Si)pSi(y∣x)
pSip^{S_i}pSi是由第i个source分类器FSiF^{S_i}FSi产生的后验概率(给定提取的特征x,判断属于类别y的概率),作者首先定义了point-to-set的马氏距离,即样本x到集合S
d(x,S)=((E(x)−μS)TMS(E(x)−μS))1/2
d(x,S) = ((E(x)-\mu^S)^TM^S(E(x) - \mu^S))^{1/2}
d(x,S)=((E(x)−μS)TMS(E(x)−μS))1/2
其中μS\mu^SμS是S的特征的平均值,MSM^SMS是S的特征的协方差矩阵的逆矩阵
其中α(x,Si)\alpha(x,S_i)α(x,Si)反应了对第i个分类器的可靠程度
α(x,Si)=exp(e(x,Si))∑j=1Kexp(e(x,Sj))
\alpha(x,S_i)=\frac{exp(e(x,S_i))}{\sum_{j=1}^K exp(e(x,S_j))}
α(x,Si)=∑j=1Kexp(e(x,Sj))exp(e(x,Si))
而e(x,Si)=f(d(x,Si))e(x,S_i)=f(d(x,S_i))e(x,Si)=f(d(x,Si))是基于point-to-set马氏距离设计的score函数,而α(x,Si)\alpha(x,S_i)α(x,Si)是其归一化后的结果。作者针对不同的任务设计了不同的socre函数
- binary classification
考虑到在二分类任务中,SSS 的feature(encoding)的平均值μS\mu^SμS往往接近于decision boundary,样本到boundary越近,往往置信度越低,因此直接用d(x,s)不合适。
e(x,S)=∣d(x,S+)−d(x,S−)∣
e(x,S) = |d(x,S^+)-d(x,S^-)|
e(x,S)=∣d(x,S+)−d(x,S−)∣
上述的函数对outlier的点e(x,S)的值低,
- Sequence tagging
e(x,S)=−d(x,S) e(x,S) = -d(x,S) e(x,S)=−d(x,S)
Training
借鉴了few-shot里面的学习方法,从K个source domain里面任意选一个作为meta-target,其余作为meta-source,这样得到K组(meta-source,meta-target)的训练pair,
loss一共有两个部分:MoE objective和multi-task
Lmoe=−∑i=1K∑j=1∣Si∣log(pmoe(yjSi∣xjSi))
L_{moe} = -\sum_{i=1}^{K}\sum_{j=1}^{|S_i|}log(p_{moe}(y_j^{S_i}|x_j^{S_i}))
Lmoe=−i=1∑Kj=1∑∣Si∣log(pmoe(yjSi∣xjSi))
对每个pair里面的meta-target中的每个样本计算moe loss,meta-target的分类是通过meta-source加权得到,moe就是约束这样的关系,让meta-source中同样的标签的分类变大
Lmtl=−∑i=1K∑j=1∣Si∣log(pSi(yjSi∣xjSi))
L_{mtl} = -\sum_{i=1}^K\sum_{j=1}^{|S_i|}log(p^{S_i}(y_j^{S_i}|x_j^{S_i}))
Lmtl=−i=1∑Kj=1∑∣Si∣log(pSi(yjSi∣xjSi))
Muti-task是分类的交叉熵损失
- Adversary-augmented MoE
使用MMD来最小化target domain和source domain的边缘分布
整体的训练算法如图