bilstm+crf中文分词_多标准中文分词模型

001c04f4f890507e8045ffe195b60351.png

Multi-Criteria Chinese Word Segmentation with Transformer(19.6.28)

这是复旦19年6月刚发的文章,初略看一遍,记笔记。Chinese Word Segmentation简称CWS

https://arxiv.org/pdf/1906.12035.pdf

亮点:

多标准学习引入到CWS,不同分词标准语料共享common knowledge,能够互相提升;

作者提到应该是第一次从头开始训练transformer做分词任务,避免了RNN和CNN的长依赖;

embedding都是pre-trained,另加PE、criterion embedding,bigram-embedding;

采用共享的全连接self-attention shared model,encoder和decoder都是shared;

用transformer效果显著且模型简单高效,且用一个参数就能控制标准输出;

Transfer Capability 非常好——只需加入新的criterion embedding训练;


Abstract

中文分词为什么现存多标准——Different linguistic perspectives

做多标准分词模型的的原因——现存大多数方法只care model单一标准下的性能,造成资源浪费,不能很好的利用所有分词标准的语料及挖掘他们之间的共性基础知识

提出一个简单高效的模型——fully-connected self-attention model,根据标准指标来指定期望的model output criterion.

Introduction

中文分词不像英文分词,中文sentence是连续性的字符且words之间没有明显的区分边界

词通常作为最小语义单元,so分词成为一个比较重要的最初步骤,为NLP的下游提供便利;

the-state-of-art 是有监督机器学习方法,大多数CWS当成character-based 序列标注问题;

也有将神经网络引进来的,目的减少特征工程的耗时耗力(我理解为前期特征标注?),但他们还是比较依赖大规模的高质量标注语料;欲扬先抑作者指出这样做的劣势,语言标注需要语言学家烧钱,不同的语言学角度有不同的分词标准,应该是想指出训练的单一分词标准依赖于训练语料,不能很好的根据当前语言角度分词;

举个栗子:在不同语料库上分词结果是不一样的。

6ed65fc3a129b7613832d572282cfacc.png

巴拉巴拉讲一堆,侧面突然做这个多标准研究是有必要的,不然就是浪费资源!

e0ea1c71812038119f0d4c44febe34cd.png

主流的neural CWS架构主要三部分:

  1. character embedding layer——>map discrete language into distributed embedding
  2. encoding layer,主流LSTM(变种),还有部分RNN和CNN——>提取上下文特征
  3. decoding layer,CRF或MLP(多层感知机),文中CRF效果更好(output公式不写了)

在作者之前的研究工作中,提出了一个CWS的多标准学习框架(这是之前的工作,和本文的框架不一样,文中还详细列出了公式,肯定一下自己之前的输出哈哈),把单一标准分词任务当做MTL(multi-task-learing)中的单个任务,这个框架有一个shared layer提取标准不变的特征,还有一个private layer提取标准特定特征(我理解为敏感特征),但这篇文章的实验结果证明了没有必要为每个标准单独分个private layer,因为这些不同标准通常有部分是重叠的。

834663989814aa7be468d9688026b260.png
MTL-based 多标准分词

不忘夸一夸transformer,毕竟靠他恰饭的嘛,其他的lstm指标都是弟弟,多亏了transformer的全连接self-attention网络,作者才可以设计出fully-shared 架构 for Multi-c CWS。这个架构中encoder和decoder都是shared,就上图把private去掉,直接input给shared layer。图中m表示criterion-embeddings,直接在input的时候指定你的output的criterion。

ce694cfc0a06878f8aba6ea32a15d0e9.png

9f0dbd742fc72b065b149975df1ae04f.png

embedding layer:

  • 直接在input的X前面加入一个token[m]代表m-th个标准
  • bigram embedding,二元语法嵌入,这个是和unigram做一个级联作为character的representation,character embedding是通过改进的word2vec预训练
  • position embedding,直接用transformer的思想——三角函数(当然PE也可以作为学习参数也可以预定义)
  • 标准M的embedding矩阵表示

a9ff677b420ff3d1e28f3f05a19e73c2.png
  • pre-trained fixed at 50epochs并在实验中更新

shared encoder:提取标准感知的上下文特征;

  • 使用transformer的encoder N6

shared decoder:预测特定标准下的label,使用CRF


数据集使用五个简体语料,3个繁体语料,model超参数,6层self-attention,每层4个attention heads.

单标准学习对比模型:biSLTMS、stacked-BILSTM、SWITCH-LSTMS、transformer

多标准学习对比模型:MTL、SWITCH-LSTMS、transformer

得出结论:单标准transformer效果明显更好;多标准transformer相比单标准transformer大部分语料都有提高(F1),平均在0.4 gain。

作者在后面还做了部分切除实验,分析model效果,主要针对CRF、bigram、pretrained emb

CRF对model没有影响,且CRF训练和预测占用大量时间,bigram和pretrained emb在有些分词标准有影响,就平均性能来说,这二者对提升模型都有贡献,难分胜负。

8cb336db6f4fed1cecb94c6a9f5a1fe1.png

还有一个联合语料预训练embedding分析,因为上面的实验虽然是繁体中文,但作者都是转换为简体再预训练生成embedding,因为他不确定繁体和简体character有没有联系,所以做了个实验。我的理解是作者不确定简体中文训练的shared common knowledge对繁体语料标准有没有作用。

比较:8个全转简体pre-train简体input、8个全转繁体pre-train繁体input、5简3繁input8简8繁pre-train、8简8繁input8简8繁pre-train,结果是联合语料pre-train,繁体标准也接受到了简体的有益信息。

8b460b69783e3dc8777878dc4f3d1126.png

通过余弦相似,列出联合预训练语料中指定词的前8个相似词,证明中文和繁体character及其bigram能在embedding中很好的对齐。

561b94434522e1a4d026db5e4c872993.png

Transfer Capability

作者做了个实验,看model迁移到一个新的标准上效果会怎么样,首先让多标准模型(switch-lstms、transformer)在7个数据集上进行训练学习,随后只学习的新的criterion embedding和7个数据集上的少量训练实例。

a96fb35d0ea7388c7864d5de61539d72.png

transformer-T表示迁移学习,否则是重新开始学习,重新开始训练的transformer和switch-lstms在样本很少的情况下,性能很低,继续训练的transformer-T性能最好。

作者期望能够结合更多的序列标注任务来测试他们的模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值