Yutai Hou, et al, “Few-shot Slot Tagging with Collapsed Dependency Transfer and Label-enhanced Task-adaptive Projection Network”, ACL 2020
这篇文章是解决小样本的序列标注问题,属于 metric learning 类方法的一个小改进。本文的算法基于 Tapnet[4]【#TODO 1】,引入了改进的 CRF 来限制标签的语义信息。最后 1-shot 5-shot 的序列标注效果都是 SOTA。
1 简介
小样本学习(FSL)是从原来的领域学到先验知识,将其应用到样本少的新领域。之前 FSL 主要研究的是分类问题,都基于相似度的方法:遇到 query(要分类的样本),寻找与 query 的特征表示最近的那一类的特征表示。但序列标注问题并不是一个简单的相似度就能解决的,之前的序列标注问题,比如 Bi-LSTM、CRF 等,都利用了标签之间的依赖关系。
然而,少样本的序列标注问题中,从原始 domain 学到标签的语义关系,并不能迁移到新的领域(每个领域的标签都不一样)。为解决这个问题,作者提出了 collapsed dependency transfer mechanism,改进了 CRF 中 transition score 的计算。
另外,文本之间的相似度也是难以计算的。因为在不同 domain,同样的词语可能有不同的含义。为了解决这个问题,作者提出了 Label-enhanced Task-Adaptive Projection Network,把当前领域 label 的信息也融入样本的特征表示,这样就能分开词语在不同 domain 的特定语义,从而计算 CRF 中的 emission score。
2 问题定义
句子 $x = (x_1,x_2,…,x_n)$ 标签 $y = (y_1,y_2,…,y_n)$,一个 domain $\mathcal{D} = \{(x^{(i)},y^{(i)})\}_{i=1}^{N_D}$ 是 $(x,y)$ 的集合。对于每个 domain,都有自己的一套标签集合 $\mathcal{L}_{\mathcal{D}} = \{l_i\}_{i=1}^N$。为了简化,我们认为每个 domain 都有 $N$ 种标签。
FSL 是先在 $\{\mathcal{D}_1,\mathcal{D}_2,…\}$ 上学习,然后在 $\{\mathcal{D}_1′,\mathcal{D}_2’…\}$ 上不 fine-tune,直接工作。
target domain $\mathcal{D}_j’$ 只有很少的有标签样本,这些样本叫做 support set。一般 support set 是 N-way K-shot(N 个 label,每个 label 有 K 个样本)
query 是我们要预测的句子,要得到 query 的最好的标注序列 $y^*$。
3 算法
3.1 总览
在了解这个模型之前,一定先了解 CRF 的原理,推荐 [5] 这篇文章。
给定 query $x$ 和 support set $\mathcal{S}$,我们要计算标签 $y$ 的概率:$$p(y|x,\mathcal{S}) = \frac{1}{Z}\exp(TRANS(y) + \lambda\cdot EMIT(y,x,S))$$
其中,$$Z = \sum_{y’\in Y} \exp (TRANS(y’) + \lambda\cdot EMIT(y’,x,S))$$ $TRANS(y) = \sum_{i=1}^n f_T(y_{i-1},y_i)$ 是 transition score, $EMIT(y,x,S) = \sum_{i=0}^n f_E(y_i,x,\mathcal{S})$ 是 transition score,
整体的 CRF loss 为$$L_{CRF} = -\log(p(y|x,\mathcal{S}))$$
那么下面两部分,就分别介绍 $f_T(y_{i-1},y_i)$ 和 $f_E(y_i,x,\mathcal{S})$ 的设计。
3.2 transition score: collapsed dependency transfer(CDT)
transition score 是由两个标签之间的转移概率决定的:$$f_T(y_{i-1},y_i) = p(y_i|y_{i-1})$$
传统的 CRF 里,这些转移概率是经过统计,直接存成一个矩阵的 $T^{N\times N}$。但是在 FSL 问题中,每个不同的 domain 都有不同的 label,在新的 domain,只有那么少得可怜的样本,难以统计出转移概率的矩阵。于是作者提出了 collapsed dependency transfer。

他直接把转移到的标签分成五类:O(无标签)、sB(到一样的 Begin)、dB(到不一样的 Begin)、sI(到一样的 Inside)、dI(到不一样的 Inside),这样的一个 $3\times 5$ 的矩阵。这个分数是对于每个 domain 都恒定的。
那么到了新的 domain,就把这个 $3\times 5$ 的矩阵扩充到 $N\times N$ 的形状(单纯的复制)(如上图所示)。
3.3 emission score: L-TapNet
emission score 是 token 标签标错的概率:$$f_E(y_i,x,\mathcal{S}) = p(y_i | x ,\mathcal{S})$$
在 FSL 中,词的 emission score 是计算 label 和词的相似度得到的。在 TapNet 中,定义了每个 label $\phi_i$,于是 emission score 为:$$f_E(y_i,x,\mathcal{S}) = \text{softmax}\{\text{sim}(M(E(x)),M(\phi_i))\}$$
其中 $M(·)$ 是映射函数,$E(·)$ 是把 token embed 成向量,$\text{sim}(·)$ 是相似度函数。TapNet 在每所有 domain 有一个共享的标签向量集合 $\Phi$,那对于每一个被标注成同一类的词语 $c_j$,通过 $M(·)$ 之后,得到特征表示,这些特征表示的质心就是 $\phi_i$。
前文说过,label 的语义信息和要标注的词往往是相关的,因此 label 的语义信息对于 embedding 也是有意义的。于是作者对 TapNet 进行了修改,设计了 Label-enhanced TapNet,融入了 label 的信息:$$\psi_i = (1-\alpha)\cdot \phi_i + \alpha \cdot s_i$$
其中 $\alpha$ 是个权重参数,$s_i$ 是 label 的语义信息(就是词向量)。这样得到的 $\psi_i$ 就用上了 label 的语义信息。
但是这还不太行,因为之前说过,不同领域的同一个词,甚至是不同上下文的同一个词,含义都可能不一样。因此,在 embedding query 的词时,作者不仅仅直接把 query 转换成词向量。这篇文章先将 query 复制 $N$ 个,每个都和同一 domain 的 support set 进行匹配,一起 embedding,最后再平均,得到 query 的 embedding【#TODO 2,得 refer [6]】。
4 实验结果
数据集的构建:
取少样本的规则是 ① 每个 label 至少有 $K$ 个样本 ② 只要少一个样本,就会有 label 的样本少于 $K$ 个。
原始数据集里有七个 domain,训练时就用一个 domain 当做 test FSL,一个当做 dev,另外五个当做 train。对于每个 domain,取 100 个不同的 1-shot support set,对于每个 support set,取 20 个句子作为 query。这样每个 (query, support set) 就是一个 few-shot 任务,算是一个测试样本。
因此,训练集有 5*100*20=10000 个数据,测试集有 2000 个。
测试结果:
- L-TapNet+CDT SOTA
- Bi-LSTM 和 TransferBERT 非常糟糕,表明 FSL 情况,传统的机器学习不行、transfer learning 也不行
- SimBERT 表现还可以,表明 metric learning 的方法在 FSL 还可以凑合
- WPZ 如果不用预训练的 embedding(BERT),将比用 BERT 差得多。表明在 FSL 问题中,预训练的 embedding 非常重要
- MN 不行,因为 MN 单纯是当做分类进行,把 O 标签也一视同仁了
- 基于 metric learning 的方法(WPZ 和 MN)label 预测还靠谱,但是很容易混淆相似的 label。表明还是要让 label 映射到一个新的特征空间,让这些特征表示可以区分开才行
- 本文提出的 CDT、pair-wise embedding、Label-TapNet,去掉了都会让性能下降,说明都很有用。
- CDT 比 CRF 原来的 transition rules 更有效,具体表现为,使用 CDT 要比使用 rule,在标注实体的 Inner 词上表现更好,也就说明这样的规则才真正起到了作用
5 相关工作
这一段作者介绍了 FSL、FSL 应用于 NLP(trick、metric learning、data augmentation)。我感觉都还挺有意思的,以后都要读。不过现在,还是先把 metric learning 的经典方法了解一下叭!【#TODO 5】
6 总结
这篇文章可能还挺曲折的,我发现作者去年有一篇 [3],是与这篇文章一模一样的 trick + NMN,可能没中,今年又把这些 trick 用到最新的 TapNet[4],才中了一篇 ACL。这么厉害的人都会如此曲折,我的前景更不会简单啊!
这篇文章也是我看的第一篇 FSL 文章。发现其中的 metric learning 的想法,和我之前做毕设做深度聚类的子空间的想法、高维特征表示的方法,都非常有关系!我感觉可以交叉发文章!(我还什么都不懂呢,就激动起来了)
7 引用和扩展阅读
[1] 赛尔原创 | ACL20 让模型“事半功倍”,探究少样本序列标注方法 做着自己写的介绍
[2] Exploration on Few shot Slot Tagging 作者自己的汇报 PPT
[3] Yutai Hou, et al, “Few-Shot Sequence Labeling with Label Dependency Transfer and Pair-wise Embedding”
[6] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: pre-training of deep bidirectional transformers for language under- standing. In Proc. of the NAACL-HLT, Volume 1 (Long and Short Papers), pages 4171–4186.
[7] Jeremy Howard and Sebastian Ruder. 2018. Universal language model fine-tuning for text classification. In Proc. of the ACL, Volume 1: Long Papers, pages 328–339.
[8] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: pre-training of deep bidirectional transformers for language under- standing. In Proc. of the NAACL-HLT, Volume 1 (Long and Short Papers), pages 4171–4186.
[9] Alexander Fritzler, Varvara Logacheva, and Maksim Kretov. 2019. Few-shot classification in named en- tity recognition task. In Proc. of the SAC, pages 993– 1000.
[10] Oriol Vinyals, Charles Blundell, Timothy Lillicrap, Daan Wierstra, et al. 2016. Matching networks for one shot learning. In NIPS, pages 3630–3638.
8 TODO
- [4] TapNet
- [6] pair embedding
- [7] the trick of fine-tune BERT
- 对比的模型:[8] TransferBERT [9] WPZ [10] MN
- related work
[mathjax]
我去,这做的也太好了吧。。。惊了
哈哈哈哈被你发现了!谢谢!