一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

原创刘聪NLP机器学习算法与自然语言处理前天

公众号关注 “ML_NLP”

设为 “星标”,重磅干货,第一时间送达!

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

机器学习算法与自然语言处理出品

@公众号原创专栏作者 刘聪NLP

学校 | 中国药科大学 药学信息学硕士

知乎专栏 | NLP工作站

本次分享的论文CoSDA-ML,作者是忆臻老哥 @忆臻,还有国内的两位NLP领域知名的青年才俊老师,车万翔老师和张岳老师,论文收录于IJCAI2020,全名为CoSDA-ML: Multi-Lingual Code-Switching Data Augmentation for Zero-Shot Cross-Lingual NLP,即对于自然语言处理跨语言零样本学习的多语言code-switching数据增强方法。

论文地址:https://www.ijcai.org/Proceedings/2020/0533.pdf

GitHub地址:https://github.com/kodenii/CoSDA-ML


目前,深度学习已经称霸绝大多数自然语言处理任务,甚至在某些任务可以媲美人类的表现;但使用深度学习模型的基础是具有大量可用的标记数据集去训练模型。对于英文和中文两大语言来说,存在各种任务的人工标记数据集,但是对于其他语言来说,人工标记的数据可能很少,更甚者,对于一些语言,几乎无法获取到任何标注数据。

那么如何从具有丰富资源的语言中学习知识来提高低资源的语言模型性能呢?甚至如何在没有目标语言的标记数据的情况下完成任务呢?

在上述情况下,人们提出了,跨语言迁移学习和小样本或零样本学习,去解决资源匮乏的自然语言处理任务。

多语言上下文词嵌入模型,例如:multilingual-BERT(mBERT),已经在各种零样本跨语言任务中显示出成功。但是mBERT是基于混合多国语料训练,没有显式的跨语言对齐信号。为了解决这个缺点,目前主流fine-tuning做法都聚焦于想办法学习到映射矩阵W,进行对齐。但是这个方法仍然存在一个缺点,就是一次只考虑一对源语言和目标语言,因此导致每种目标语言要有单独的模型,如图1(a)所示。

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

图1

该论文在考虑不创建多个额外模型的情况下,提出通过动态地构造多语言code-switching方法进行数据增强(如图1(b)),来更好地微调mBERT,使其在一个模型的基础上,可以适配更多种目标语言任务。

mBERT模型

mBERT模型与BERT模型具有相同的模型架构与训练过程,采用了12层Transformer编码器,但是在训练过程中,mBERT模型不只是接受单一语言的数据进行训练,而是在104种语言的维基百科数据上进行训练的,并且共享一个词汇表,这样mBERT模型可以跨语言共享词嵌入表征。

换句话说,就是预训练过程,不是仅使用英文或中文数据,而是使用很多种语言数据一起训练,并且拥有一个大的词汇表,使词嵌入的表征具有跨语言性。

Fine-tuning mBERT for Classification

给定来自于源语言序列 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! ,通过添加特定的标记来构造模型输入序列 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! ,进入mBERT模型后,得到输出 一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

对于分类任务,mBERT将 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! 通过全连接层,映射到标签 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! 上:

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

Zero-Shot Cross-Lingual Adaption

mBERT基线模型,是在源语言任务上训练,通过直接用于目标语言来完成零样本跨语言迁移任务。

CoSDA-ML方法

方法如图2所示,在Fine-tuning下游任务时,先对源语言进行多语言code-switching数据生成,即将“It’s a very sincere work”数据,变化成“It’s a 非常 aufrichtig work”。微调结束后,直接对目标语言来完成零样本跨语言迁移测试。

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

图2

注意:这里对源语言进行多语言code-switching是动态进行的,即对每一次训练batch_size数据进行动态生成,算法如图3所示,

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

图3

该数据增强算法方法由三步组成:句选择、词选择和替换选择。

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

图4

Sentence Selection

在给定批次训练数据的情况下,随机选择语句来生成code-switching语句。未选择的句子保留在原语言中。以图4(b)中的句子为例,随机选取第一个句子和第三个句子,而保留第二个句子不变。

Token Selection

对上一步骤中被选到的句子,进行随机选择要翻译的词语。以图2(c)为例,选择第一句中的“very”和第三句中的“What”。

Replacement Selection

对上一步骤中被选到的词语,根据双语词典随机选择目标语言。如图2 (d)所示,不同的目标语言可以在code-switching生成的数据中混合使用。

值得注意的是,源语言中的单词在目标语言中可能有多种翻译结果。在这种情况下,该论文随机多种翻译结果中的任意一个作为替换目标语言词语。该论文任务尽管不能保证这是上下文中正确的对应翻译,但可以将其视为任务中的数据增强(增加部分噪音)策略之一。

通过code-switching数据增强,模型可以根据目标语言中被替换的词和源语言中原始词相似的上下文信息,自动将它们对齐到相似的向量空间中。

Results

Natural Language Inference

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

Sentiment Classification

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

Document Classification

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

Dialogue State Tracking (DST)

Spoken Language Understanding

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

在上述五个任务上,CoSDA-ML数据增强方法,具有明显提高。

Analysis

鲁棒性分析

为了验证CoSDA-ML方法的的鲁棒性,该论文在微调过程中,使用了不同标记替换率 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! ,但始终保持句子替换率 一种新的涨分神器!构造code-switching增广数据进行fine-tuning! 为1。实验结果如下图所示,

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

可以看出,当一种新的涨分神器!构造code-switching增广数据进行fine-tuning!大于0.7时,CoSDA-ML方法效果均高于目前sota模型,证明该方法具有一定的的鲁棒性。

训练数据量分析

该论文,在不同数量的训练数据,进行微调,探究CoSDA-ML方法在极少数据情况下的有效性。实验结果如下图所示,

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

可以看出,仅使用1/10的训练数据,就可以到达目前sota模型的效果。

动态采样分析

该论文为了验证,所提出的动态增强机制的有效性,与静态增强方法进行了比较。结果如下图所示,

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

可以看出,动态方法在所有任务上都优于静态方法。该论文认为,动态机制由于在训练过程中生成更多变化的多语言code-switching数据,使模型在多种语言中将更多的词语进行对齐。

可视化分析

为了验证源语言与目标语言的表示是否真正对齐,该论文选择了包含三种语言的100个句子的【CLS】向量。结果如下图所示(a为mBERT,b为CoSDA-ML),

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

可以看出,mBERT在具有相同意图的多种语言表示是间隔较远的;相反,使用CoSDA-ML方法微调后模型的相同意图的多种语言表示变得更接近并相互重叠,进一步证明了方法有效且成功地使不同语言的表示更接近。

方法的迁移性分析

为了验证,CoSDA-ML方法对Transformer之外的其他编码器是否有效,该论文将CoSDA-ML方法使用了在biLSTM上。结果如下图所示,

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

可以看出,使用了CoSDA-ML方法后,结果有了明显的提示。

总结

该论文提出了一种数据增强的方法,通过生成多语言code-switching数据来微调mBERT模型,从源语言和多目标语言对齐语义表示。

个人非常喜欢该篇论文,思路很正,效果明显,做跨语言、零样本或小样本学习的小伙伴,可以看过来~~~~

下载1:动手学深度学习

在机器学习算法与自然语言处理公众号后台回复“动手学”,
即可获取547页《动手学深度学习》电子书和源码。
本书同时覆盖深度学习的方法和实践,
不仅从数学的角度阐述深度学习的技术和应用,
还包含可运行的代码,
为读者展示如何在实际中解决问题。

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

下载2:仓库地址共享
在机器学习算法与自然语言处理公众号后台回复“代码”,
即可获取195篇NAACL+295篇ACL2019有代码开源的论文。开源地址如下:https://github.com/yizhen20133868/NLP-Conferences-Code

仓库地址共享:
在机器学习算法与自然语言处理公众号后台回复“代码”,
即可获取195篇NAACL+295篇ACL2019有代码开源的论文。
开源地址如下: https://github.com/yizhen20133868/NLP-Conferences-Code
重磅!机器学习算法与自然语言处理交流群已正式成立
群内有大量资源,欢迎大家进群学习!
额外赠送福利资源!邱锡鹏深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]

例如 —— 哈工大+张三+对话系统。

号主,微商请自觉绕道。谢谢!

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!

推荐阅读:
Longformer:超越RoBERTa,为长文档而生的预训练模型
一文直观理解KL散度
机器学习必读TOP 100论文清单:高引用、分类全、覆盖面广丨GitHub 21.4k星

一种新的涨分神器!构造code-switching增广数据进行fine-tuning!