论文笔记 – Low Resource Sequence Tagging using Sentence Reconstruction

Tal Perl, et.al, Low Resource Sequence Tagging using Sentence Reconstruction, ACL 2020 short

1 简介

这篇文章是做不同语言之间的 NER 和序列标注的迁移学习任务。有两个具体的情境,一个是要从大量数据的语言训练,然后迁移到少量数据的语言上;另一个是少量数据的语言实在太少,甚至只有一句。在这个情景下,这篇文章的模型有了非常好的效果。

本文主要的贡献就是加入了重建损失,这个重建损失具体是啥,一下子说不清,留到后面讲。总之,就是对 [1] 的改进,使之输入后一个 LSTM 的 character-level + token-level embedding 更 non-trivial,用亚里士多德的话说就是“偶性”更强(机器学习要的特征就是要偶性嘛)。

2 相关

几篇迁移学习做序列标注的文章值得在看。【#TODO 3】

3 方法

整体模型结构如图所示,这玩意看着很唬人,但其实就是在 [1] 的基础上打补丁。为了方便理解,我先介绍一下 [1] 这篇文章的方法。

3.1 Baseline

[1] 的方法还原到本文的结构图中,就是右半部分:

从下到上,先是把一个词的字符输入 char NN(是一个 LSTM),得到词里面每个字母的 embedding,再将这些 embedding 与预训练模型(比如 BERT)的词的 embedding 拼到一起,得到最终的词的 embedding。用这个 embedding 直接 Bi-LSTM + CRF 就得到结果(可以参考我这篇文章)。

这样就能同时使用多粒度信息,可能也是后面 lattice-lstm 灵感的源泉。[1] 中说,学习字粒度的 embedding 有利于学习特定任务或者特定领域中的表示。在(1)形态丰富的语言,(2)解决序列标注中的词性标注和语言模型中 OOV 问题两方面很有作用。

3.2 对于多语言 transfer 的改动

  1. 多加一层 LSTM:

如图所示,中间这层 LSTM 作者希望可以是输入一种语言的 embedding,输出跨语言的、只和语义相关的、句子的表示。后面的 Bi-LSTM + CRF 再用来解码,做序列标注。

  1. 迁移学习的共享参数策略:

如图所示,橙色 layer 的参数都是跨语言共享的。包括前面 char embedding 部分(那就是说所有语言都是那一套字母的组合?可是非英文字母也有很多吧?害,与我无关,懒得看了)和后面的跨语言解码部分。

  1. 对抗训练策略:

就是整体结构图的中间这个分支。对抗训练的目标就是让 3.2.1 加入的这一层 LSTM 的输出与语言无关。为了能达到目的,作者写了一个 CNN discriminator 作为陪练,判断 LSTM 输出的 embedding 来自的语言。两兄弟共同内卷,一起上分。

一直到上面的三个部分,其实都不是本文的作者原创的,其实都是 [2] 这篇文章的工作。后面才是这篇文章的工作。

具体对抗训练的损失函数是 generator 和 discriminator 的 loss 之和,这俩 loss 都是负 log 损失(十点多了,快下班了,不打公式了,不然写不完了)

  1. 重建损失:

重建损失,就是左边的支线,相当于一个自编码器:编码使用 LSTM 得到跨语种的 embedding;解码是先 padding 补全长度,然后接 5 层全连接网络,力求得到最一开始原来语言的、只包含 token-level 信息的 embedding。

为什么要加入重建损失呢?作者说,如果只是用对抗训练的策略,那么跨语种 LSTM 的输出可能只是消除了语言的信息,但是同时,也可能消去了很多原来的语义信息,换句话说,输出可能是 trivial representation。为了保存所有的语义相关的特征,就引入自编码器,能重建,自然说明信息没丢。

解码器是对每个词解码,重建损失的形式就是自编码器输入输出最小二乘之和(即词的损失之和)。

  1. 特征向量的归一化

就是图中的两个 L2 Norm layer,作者说 Its motivation is in the fact that transforming the vectors onto a unit sphere causes the model to learn to maximize the similarity between sentences and words. 这个我没看明白。【#TODO 1】

4 实验结果

作者说实验时 focus on using word embed- dings that are aligned across different languages, specifically ”MUSE” [3]。还得看这篇文章才知道【#TODO 2】

  1. 消融实验:迁移学习共享参数很有用、重建损失很有用、对抗训练策略没啥用
  2. 在语言迁移,尤其是目标语言样本较少的时候,性能有非常大的提升:当只有 9 个样本时,f1 达到 0.59(baseline 0.16);0-shot 时,甚至也能 0.57(baseline 0)

5 总结

由于就是改动了一下 [1,2],还是在人家之后的好几年才改的,因此本文贡献不大,只是一个短文吧。

不过重建损失倒是给我一个灵感:是不是所有的中间结果(隐层 embedding)都可以通过这种对抗的方式,使之更能表达输入向量的偶性呢?这又让我突然想到了 DEC 的训练方式。怪不得预训练那么重要啊!

6 引用

[1] Guillaume Lample, et.al, Neural architectures for named entity recognition. NAACL 2016

[2] Guillaume Lample, et.al, Unsupervised machine translation using monolingual corpora only. ICLR 2018

[3] Guillaume Lample, et.al, Word translation without parallel data. ICLR 2018

7 TODO

  1. 特征向量归一化
  2. [3]
  3. related

发表评论