浅谈NLP中的领域自适应(Domain Adaptation) 技术

徐超

机器学习尤其是深度学习将 NLP 推向了前所未有的高度,近几年出现的预训练模型更是绽放异彩。在训练机器学习模型时一般假设训练数据与测试数据(或者目标领域中的数据)的分布一致,然而这种假设经常不成立。
这时候我们就面临着 dataset shift 的问题,在 NLP 中经常被称为 domain shift。并且目标领域的带标签数据很难获取(Y scarcity),甚至连预训练模型用的数据都是过于稀疏的,很少有跟目标领域相关的语料(X scarcity)。这就需要使用一种特殊类型的迁移学习技术——Domain Adaptation(领域自适应)。

何为 Domain Adaptation

领域(Domain)的形式化定义为 ,其中 是特征空间, 是特征在特征空间的边缘分布函数。任务(Task)的定义为 ,其中 是 label 空间, 是从训练数据 (X, Y) 中学习到的。Domain Adaptation 的目的是从某个源领域(source domain) 中的数据学习 使得它可以在另一个目标领域 获得很好的泛化性能,其中 。
Domain Adaptation 本质上是一种特殊形式的迁移学习,即直推式迁移学习(transductive transfer learning)。

Domain 在 NLP 中的含义

在 NLP 中,关于 Domain 的组成并没有形成共识,一般将某个特定的语料定义为一个 domain,这个语料可能属于某个主题、体裁、笔风、创作流派甚至某种语言。但这种定义显然比较模糊,我们有必要重新审议下 Domain 在 NLP 中的定义。
Variety Space:由于 NLP 面临着数据在多个维度(这些维度可能未知)上的不同质性,Plank(2016)提出了一个的直接的定义——Variety Space。在 Varziety Space 理论中一个语料可被视为一个子空间或者子区域,Variety Space 中的一个样本。
具体来说,语料是由一些实例组成,这些实例是从一个潜在未知的高维的 variety space 中抽取出来的,这个空间的维度是模糊的潜在因素,可以与体裁(例如科学论文、新闻报导或者散文),子领域(例如财经、政治、环保与娱乐等),社会人口方面(如两性),甚至抽样方式(如句子长度,主管偏好)以及其他未知因素相关。
与 Variety Space 相关的几个问题:
  • cross-lingual learning:特征空间发生巨大改变,字母表、词表与语序都可以不一样。
  • Domain generalization/robustness:旨在构建一个可以在多个已知领域稳健工作的系统。
  • Out-of-distribution generalization:在 Domain generalization 的基础上更进一步,领域可以是事先未知的。

Domain Adaptation 的类型

按照现在 Data Science 界流行的分类方式,可以分为:
  • Model-centric:这种方法主要通过重新设计模型的一部分,例如改变模型的架构、损失函数或者模型的参数以及增强模型的特征空间,来实现  Domain Adaptation。主要包括 Feature-centric 与 Loss-centric 两个子类。
  • Data-centric:这种方法专注于数据侧,通过改进训练数据来实现 Domain Adaptation,包括虚标,数据选择与预训练等技术。

另外还有综合运用 Model-Centric 与 Data-Centric 技术的综合方法,统称为 Hybird 法。


3.1 Feature-centric

在 Feature-centric 方法中存在两个不同的研究方向:
  • Feature augmentation:使用 pivots(通用的共享特征)去对齐源领域与目标领域的特征空间。
  • feature generalization:使用自编码器(autoencoder)去寻找一个潜在的特征表征方式,使其具有很好的跨领域迁移能力。

沿着这两个方向,Feature-centric 方法包含两类子方法:Pivots-based DA 与 Autoencoder-based DA 。
Pivots-based DA 旨在通过使用源领域与目标领域的无标签数据去寻找两个领域通用的特征。最简单的便是 Frustratingly Easy Domain Adaptation (FEDA),假设 x 是原始特征特征,那么源领域与目标领域在增强后的特征空间可表示为
其中第一组特征表示通用共享特征,其他为各个领域特有的特征。如果有 K 个领域,那么增强后的特征空间的维度将是原始特征空间的 K+1 倍,实际每个实例在增强后的特种空间内是一个稀疏向量,优化后并不会增加太多内存开销。这个方法虽然很简单,但却取得了很好的效果,已成为一个很强的 baseline。

这种方法为何如此有效呢?假设你的任务是坐词性标注,假设词表里面有两个词,“the” 与 “monitor” 其中 “the”在不同领域都是限定词,但 “monitor” 在源领域是动词在目标领域是名词。采用 one hot 编码,在源领域与目标领域的特征向量分别为 [1,1,1,1,0,0] 与 [1,1,0,0,1,1] ,采用 FEDA 可以为限定词的分类模型赋予权重 [1,0,0,0,0,0] ,即给予共享的通用特征 “the” 很高的权重,表示它在各个领域都是限定词。类似的,为名词分类模型赋予权重 [0,0,0,0,0,1] ,表示 “monitor” 仅仅在目标领域是名词。

Structural Correspondence Learning(SCL)是比较 General 的方法,它可以应用在目标领域没有带标签数据的场景。这种方法比较 tricky,需要手动的构建 Pivot Feature。所谓 Pivot Feature 就是频繁地在多个跨领域出现并且行为表现也相似的特征。以下面这句摘自 MEDLINE 语料中的句子为例
The oncogenic mutated forms of the ras proteins are constitutively active and interfere with normal signal transduction.
这句话里面的 “signal” 在此处是名词,但如果词性标注模型是用 WSJ 语料训练的,会将其错误的识别为形容词。对比 MEDLINE 语料中 signal 这个词的上下文与 WSJ 语料中名词的上下文,可以发现一些共同的 Pattern,比如都出现在 required、from 与 for 这些词前面,因此可以用这些共同的 Pattern 作为  Feature,训练的模型就可以获得很好的跨领域泛化能力。这些 Pattern 就是  Pivot Feature。
实际为了增加 feature 取值的平滑度,降低过拟合风险,会为每个 Pivot Feature 训练一个二分类模型,给定一个句子,每个 Pivot Feature 的值即为这句话输入对应二分类模型得到的 score。此外,还对这些二分类模型的权重做了 SVD 分解,整个流程如下。
Autoencoder-based DA:众所周知,深度学习可以捕捉到输入数据中潜在的生成因子,这些因子可以解释数据的多样性。Denoising Autoencoder(DAE)就是一种通过无监督地学习输入数据的潜在表征,从而捕捉这些潜在因子的模型。Autoencoder-based DA 假定这种表征具有跨领域的泛化能力,其具体步骤分为两步:
  • 在所有领域的数据上训练一个 Stacked Denoising Autoencoder (SDA),作为特征提取器。
  • 用这个 SDA 在有标签的源数据集上提取特征并训练一个线性分类器,如 SVM。

SDA的缺点是计算量较大,并且对高维特征的扩展能力较差,一个改进方案是使用marginalized stacked denoising autoencoder(MSDA)。


3.2 Loss-centric methods

Loss-centric methods 中具有代表性的是 Domain adversaries 与 instance-level 的 Reweighting 方法。
Domain adversaries:这种方法的灵感来自 GAN,旨在学习一种可以减少源领域与目标领域的分布差异的潜在特征表征方式。也是分两步走,先通过对抗学习,来训练通用的特征提取器
然后再在带标签的源数据上训练分类器。
Reweighting:这种方法的核心思想是给每条训练数据赋予一个权重,这个权重的大小与目标领域的相似度成正比。这种方法目前还很不成熟,这方面的 paper 只见过这篇,文中提出的方法需要目标领域有的 few shot 数据,权重是通过先训练一个目标领域的分类器计算的。
文中很多对统计学的概念的论述并不清楚,而且最后对 weight 的计算做了很多很突兀的简化处理,比如某个权重因子全部设为 1 或者要么是 0 要么是 1。


3.3 Data-centric methods

Data-centric方法主要有三种:Pseudo-labeling、Data selection 与 Pre-training。
Pseudo-labeling:即虚标法,这种方法使用类似于 self-training, co-training and tri-training 等 Bootstrap 方法来迭代地标注数据 训练模型
▲ Self-training方法
▲ Tri-training方法
具有代表性的是 Multi-task Tri-training,这种方法地创新之处在于三个模型的底层参数共享,如下图所示,都是 BiLSTM 的 encoder,模型之间的区别仅在于头部分类器部分,所以大大减少了计算量。当然这种方法提出的比较早,现在你大可以使用各种 Transformer 结构的 Encoder。
在训练过程中,每个 epoch 都会抽取一定数量的无标签样本,然后用三个模型去做标注,如果有一个模型的标注的置信度超过某个阈值,就将这个样本加入到训练数据中。
Data selection:这种方法旨在从源数据中选择合适的样本用来训练目标领域的模型,通常会使用一些衡量领域相似度的指标(比如基于词或者主题分布的 Jensen-Shannon divergence)来选择数据。具有代表性的是 Dynamic data selection 方法,简单却很有效。
这个方法在每个 epoch 会选择一定数量 的句子用于训练模型,挑选的方式是根据某个基于领域相似度计算出来的分布。 没经过 个 epoch 会缩减一次,缩减的因子为 ,即
Pre-training:如今,在基于 transformer 结构的的预训练模型上做微调几乎已经成为标准范式。虽然训练预训练模型的语料非常大,但也不可能覆盖到所有垂直领域,进一步预训练还是有提升空间的,这就是 Adaptive pre-training,即在通用预训练模型的基础上,基于垂直领域的数据与更具体地辅助任务上做进一步地预训练。这方面的而代表性工作是多阶段预训练,每个阶段使用在分布上更加接近具体任务的无标签数据,一般在通用预训练模型的基础上在做两个阶段的预训练:
DAPT(domain-adaptive pretraining):在目标领域的数据上做预训练。
TAPT(task-adaptive pretraining):在具体任务的无标签数据上做训练。
整个预训练的流程为
Broad-domain -> domain-specific -> task-specific

最终提升效果还是比较明显的。

3.4 Hybrid approaches
混合法综合运用了 model-centric 与 data-centric 方法,一般比较复杂,但效果也会更好,这里比较推荐看一下 CGCT 方法,这种方法综合运用了 Domain adversaries、GCN、Curriculum Learning、Co-Teaching 等方法,是非常好的学习案例,而且效果也不错,作者也公布了源码,可以拿来使用,具体详见:
https://zhuanlan.zhihu.com/p/386924263

参考文献

[1] Alan Ramponi, Barbara Plank. Neural Unsupervised Domain Adaptation in NLP—A Survey.

[2] Hal Daume´ III. Frustratingly Easy Domain Adaptation.

[3] John Blitzer, Ryan McDonald, and Fernando Pereira. 2006. Domain adaptation with structural correspondence learning.

[4] Xavier Glorot, Antoine Bordes, and Yoshua Bengio. 2011. Domain adaptation for large-scale sentiment classification: A deep learning approach.

[5] Jing Jiang and ChengXiang Zhai. 2007. Instance weighting for domain adaptation in nlp.

[6] Sebastian Ruder and Barbara Plank. 2018. Strong baselines for neural semi-supervised learning under domain Shift.

[7] Suchin Gururangan, Ana Marasovi´c, Swabha Swayamdipta, Kyle Lo, Iz Beltagy, Doug Downey, and Noah A. Smith. 2020. Don’t stop pretraining: Adapt language models to domains and tasks.

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

· 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注

· 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

· PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

(0)

相关推荐

  • 低资源神经机器翻译MetaNMT :来自MAML与NLP的温柔救赎

    过去十年,随着Attention模型.LSTM.记忆Memory等等方法的出现,尤其是在神经网络的加持下,机器翻译的水平取得了长足的进步. 在英法.中英这样的大语种(Rich Language)翻译任 ...

  • 2021人工智能状况分析报告

    人工智能(AI)是一个多学科领域的科学和工程,其目标是创造智能机器. 近期,Nathan Benaich 和 Lan Hogarth博士发布了<2021人工智能状况报告> 该报告试图捕捉近 ...

  • 【NLP实战系列】朴素贝叶斯文本分类实战

    实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式.因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自己动手试一试. 本篇介绍自然语言处理中一种比较简单,但是有效的文本 ...

  • 【NLP】GPT:第一个引入Transformer的预训练模型

    目前两种最重要的预训练语言模型,一种是前面介绍过的BERT,另外一种就是GPT. GPT出了两个版本,GPT1.0和GPT2.0,GPT2.0相对于GPT1.0差别不大,可以认为是它的增强版.本篇介绍 ...

  • 开启NLP新时代的BERT模型,是怎么一步步封神的?

    NLP领域的伸手党们,上个月简直像在过年! 不仅号称谷歌最强NLP模型的BERT如约开源了,而且最新版本还支持中文,可以用于中文命名实体识别的Tensorflow代码!最关键的是,这个强大的模型还横扫 ...

  • 浅谈实验室检查中肿瘤标志物检测结果的影响因素

    肿瘤标志物是指在恶性肿瘤发生和增殖过程中,由肿瘤细胞的基因表达而合成分泌的或由机体对肿瘤反应而异常产生或升高的,反映肿瘤存在和生长的一类物质,包括蛋白质.激素.酶.多胺.癌基因产物等,存在于病人的血液 ...

  • 菜鸟记165-有些单元格不用让领导看见,浅谈EXCEL中零值、错误值的处理

    关键词:EXCEL2016:零值:错误值:COUNTIF函数:IFERROR函数:操作难度* 温馨提示:结合以下文章阅读收获更大 <菜鸟记51-查询家族lookup的必杀技套路> < ...

  • 浅谈书法中的收放开合与轻重显隐伸缩艺术

    摘要:本文我就书法艺术论述了汉字的收放.开合.轻重.显隐.伸缩等艺术规律性,以此来探索书法教学的技巧,从而促进书法教学的提高. 关键词:书法:收放开合:轻重显隐 世界上,有各种各样的文字,但基本上分两 ...

  • ​浅谈象棋中的团队文化

    2018-09-20 09:17 来源:冠锦咨询 象棋作为中国的国粹,历史久远,趣味浓厚,千百年来,深受世界各国人民的喜爱.凡是象棋爱好者都知道,引人入胜的对局,构思精巧的排布,它的魔力决不亚于一曲动 ...

  • 【跑步课堂】浅谈运动中心率的认知?

    l 为什么你慢跑的时候,反而心率高于你快跑的心率? l 为什么你的心率达不到最大心率(预估值)? l 你的心率为什么偏高?动不动就快到最大心率了? l 心率训练具体怎么练?  关于运动心率与疲劳的知识 ...

  • 浅谈期货交易中的风控策略

    浅谈期货交易中的风控策略

  • 浅谈爵士乐中的黑人意识

    浅谈爵士乐中的黑人意识 文/Jamie Eyp King Oliver Creole Jazz Band,被誉为第一支录音的黑色爵士乐队 黑人民权运动前的音乐背景(19世纪-1940s) 1526年, ...

  • 周朝阳:浅谈家庭教育中“榜样”角色的重要性

    摘 要:"榜样"是孩子成长路上的重要参照,家庭教育中"榜样"角色的扮演者是家长,而当下因家庭背景.个人品德.受教育程度.社会阅历.职业特点.个人习惯等因素的影响 ...

  • 浅谈生活中开荒保洁的死角及服务详细内容

    开荒保洁浅谈生存中的干净死角 1.厨房水龙头:通常家庭里的厨房龙头前都有过滤装置,由于长期处于润湿形态,很简易滋长细菌.提议每周干净一次,拧下过滤网,用漂白剂稀释溶液浸泡,再用水冲净能够. 2.厨房垃 ...