多标准中文分词:你需要的小trick

一、前言

作为NLP领域中经典任务之一,分词几乎是其他所有NLP任务的基础,开展下游NLP任务之前,往往需要先对文本进行分词。多标准分词(Multi-criteria Chinese word segmentation, MCCWS)的任务目的,即是为了利用多种标准分词结果的共性知识,来提升单一分词标准的标注效果。本文提出的模型,可以根据分词标准指示,基于单一模型,给出不同标准的分词结果。

二、模型

2.1 模型细节

从现在这个时间点看,模型相对来看比较简单(这也许是中了EMNLP Findings的原因吧...)。传统基于多任务学习的分词框架如下:

                                                                                                                              

在多个标注标准的框架下,对于有M个不同标注标准的数据集,会抽取出共享的知识,以及各单独分词标准的知识,在解码阶段,对每一个标注标准,设计一个对应的解码器解码即可。相对于传统的多任务学习的分词框架,Paper提出的框架则在两个地方进行了改进:

  • 去掉Private Encoder,即把单一标注标准的知识直接融入了共享层中;

  • 解码阶段,省去了为每一个标注标准,设计各自的解码器,转而设计一个共享的解码器, 从所提出的框架图中也可以看出:

 

实际上,上述两点的改进,都是源于模型在encode阶段加的trick(Criterion Embedding),即对于每一种标注标准,都加入其标注标准作为encoder的一部分:

那么,就算有一百种的标注标准,只要有这个作为指示的embedding,模型都不会混淆。回过头来,模型的embedding信息除了刚讲的标注Criterion Embedding,还有以下几部分:

  • Bigram Embedding,这个trick现在看来也是非常常用的了,在分词这个任务下也比较常用。除了编码字embedding之外,还会把这个字bigram embedding给concat起来,作为单个字的embedding表示。

  • Position Embedding,这个和原生Transformer一样;

Transformer这里就不讲了。那么,到了这里,对于一条标注标准为m的query,它的embedding就可以表示为:

其中,以开始指示的embedding,即为带有bigram信息的embedding:

以对应代码来更直观认识这部分:

    def forward(self, task, uni, bi1=None, bi2=None):
        y_task = self.task_embed(task[:, 0:1])
        y = self.uni_embed(uni[:, 1:])
        if bi1 is not None:
            assert self.bi_embed is not None
            y = torch.cat([y, self.bi_embed(bi1), self.bi_embed(bi2)], dim=-1)
        if self.F is not None:
            y = self.F(y)
        y = torch.cat([y_task, y], dim=1)
        return y * math.sqrt(self.d_model)

模型的Encoder没啥好讲的,就是平平无奇的Transformer了,而Decoder也是用的平平无奇的CRF,因为每条query都带有标注标准指示,解码时根据标注标准调整bies序列至对应query即可。

2.2 模型效果

作者在8个经典分词数据集(5简体,3繁体)上进行了实验,并使用Transformer作为Encoder基于单一分词标准进行了实验,验证了Transformer作为分词Encoder的有效性;并基于多标准分词(即本文研究内容),对所提出的模型进行了评估,结果如下:

 

实验结果显示,和当时最好的多标准CWS模型(Stacked BiLSTM)相比,作者所提出的多标准分词模型具有绝对的优势。除此之外,作者还进行了两方面的分析,第一是对中文简繁体协同训练预测的研究(这块我感觉并不是非常地convincing,就不展开说了),第二是对模型各模块的分析,并给出了模型各部分对最终效果的贡献:

模型的结论,和在平时工作中的基本经验一致,对于抽取能力强的Encoder而言(Transformer, BiLSTM),CRF确实比较鸡肋,但论文所说的加了CRF后的耗时问题,则倒是不至于:解码时CRF的复杂度不过是O(k*n*n),k是bies标签数量,n为query长度,对于短query而言,耗时是可以接受的,考虑在搜索这种准召、时效性要求都非常高的任务场景下,CNN作为抽取器,那必然是需要CRF来约束的。

三、总结

这篇Paper提出一个基于Transformer的多标准分词模型,相对比较好理解,可以认为是Bert时代下,必然会出现的一篇Paper,所提出的Criterion Embedding很有意义,在一些语料匮乏的NLP任务场景下,是一个值得借鉴的有效思路。

四、参考文献

[1]Qiu, Xipeng, et al. "Multi-Criteria Chinese Word Segmentation with Transformer." arXiv preprint arXiv:1906.12035 (2019).

文章公众号首发,更多文章、数据集资源,可以关注公众号,后台回复领取哦~

欢迎关注这个帅笔,不只是科研~

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值