中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

sjyttkl 2019-06-24

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

作者| Yuxian Meng、Xiaoya Li、Xiaofei Sun、Qinghong Han、Arianna Yuan、 Jiwei Li译者 | Rachel责编 | Jane出品 | AI科技大本营(ID: rgznai100)

【导读】通常,中文文本处理的第一步称为分词,这好像已经成为一种“共识”,但对其必要性的研究与探讨很少看到。本文中,作者就提出了一个非常基础的问题:基于深度学习方法的自然语言处理过程中,中文分词(CWS)是必要的吗?

近日,香侬科技 AI 团队(Shannon AI)与斯坦福大学联合联合发表了一篇研究《Is Word Segmentation Necessary for Deep Learning of Chinese Representations》,并被 ACL 2019 接收。

在这项研究中,作者在四个端到端 NLP 基线任务中进行评测,对比基于分词的 word model (“词”级别)和无需分词的 char model (“字”级别)两种模型的效果,评测内容包括语言建模、机器翻译、句子匹配/改写和文本分类。实验结果显示,基于char model 比 word model 效果更优。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

论文中,本文还进一步通过实验分析了两种模型存在差异的原因。作者认为,除了大家都认为的 OOV(out-of-vocabulary) 带来的影响, word model 的 data sparsity (数据稀疏)问题也是导致过拟合的一个重要原因。也正是希望这项研究,可以让大家发现分词有意思的地方,还有它还未曾被大家挖掘、探索的一面,以及 rethinking 分词在基于深度学习模型的 NLP 任务的必要性。

论文作者之一,香侬科技(Shannon AI)李纪为也参与到这项研究中,还在知乎上回答了大家对这篇研究的疑问。

问:如何评价李纪为的论文Is Word Segmentation Necessary?

李纪为:中文分词确实是个非常有意思、也很重要的话题,这篇文章尝试抛砖引玉去探究一下这个问题,也希望这一问题获得学术界更广泛的重视。因为之前的工作,分词本身的优缺点并没有详尽地被探讨。鉴于笔者本身的局限性,文章在 intro 的结尾也提到:Instead of making a conclusive (and arrogant) argument that Chinese word segmentation is not necessary, we hope this paper could foster more discussions and explorations on the necessity of the long-existing task of CWS in the community, alongside with its underlying mechanisms.

这个问题涉及到的更本质的问题,就是语言学的structure在深度学习的框架下有多重要 (因为词是一种基本的语言学structure)。这个问题近两年学者有不同的争论,有兴趣的同学可以看 manning 和 lecun的 debate。更早的15年,manning 和 andrew ng 就有过讨论,当时 andrew的想法比lecun还要激进,认为如果有足够的训练数据和强有力的算法,哪怕英文都不需要word,char就够了。

debate 链接:https://www.youtube.com/watch?v=fKk9KhGRBdI

也有网友质疑论文中的实验:

@Cyunsiu To :这类论文是有意义的,但是这篇论文的实验持质疑态度。这篇文章在分析分词不 work 的时候,很大一部分把不 work 的原因归因于 oov 太多,我个人不认同,至少分类动不动就能开十万+ 级别的词表,一方面 oov 不会太多,另一方面即使 oov 太多,也应该分析一下哪些 oov 导致模型不 work 吧,其实我个人认为根本不是 oov 的原因造成的。要不然英文里面的 word 也不会 work 了。

对此,李纪为回答道:

李纪为:文章提到几个方面,OOV 是其中一个方面,但并不是所有。除了 OOV 之外, data sparsity 也是一个重要原因。从文章的图2上看,在同样的数据集上,对于不同 OOV 的frequency bar (意思是 frequency 小于 1 算作 OOV,还是 frequency 小于 5 算作 OOV),实验结果是先升再降的。这个其实也比较好理解,如果 frequency bar 小,对于那些 infrequent 的词会单独认为是词,而不是 OOV。因为 data sparsity 的问题,会使学习不充分,从而影响了效果。 从这个角度,char 模型比 word 模型会学习得更充分。

以上回答来源https://www.zhihu.com/question/324672243

究竟这项论文中是如何实验对比得出 char 模型效果优于 word 模型效果的?OOV 和 data sparsity 又带来了哪些影响?下面我们就为大家解读分析。

一、介绍

英文(以及其他基于拉丁字母的语言)和中文(以及其他没有明显的词语分隔符的语言,如韩文和日文)存在一个明显的差别:根据空格就能很明显、直接地识别每个英文词,但中文中并不存在这样的词语分隔符,这也是中文分词任务(CWS)的来源。在深度学习中,词往往是操作的基本单位,本文将此种模型称为基于词语的模型(word model)。在模型中,分词后得到的词语,再使用固定长度的向量来表示,这就和英语词语的处理方式相同了。那 word model 存在哪些缺陷呢?

首先,data sparsity 会导致模型出现过拟合,OOV 则会限制模型的学习能力。根据齐普夫定律(Zipf’s law),很多中文词的出现频率都非常低,这使得模型难以学习到词语的语义信息。以使用较为广泛的 Chinese Treebank 数据集(Chinese Treebank dataset, CTB)为例进行说明。通过使用结巴分词对 CTB 数据集进行切词,可以得到615,194个词语,其中不同词语50,266个。这些词语中,有24,458个词仅出现一次,占总词数的48.7%,仅占语料的4%。表1展示了针对这一语料的统计数据,可以看出基于词语的数据集非常稀疏。由于词语数的增加会使模型参数增多,数据稀疏很容易引起过拟合问题。另外,由于维护大规模的词语-向量表存在难度,很多词语都会被处理为OOV,进一步限制了模型的学习能力。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表1 CTB 词语统计数据

第二,现在的分词技术还存在很多问题,分词不当产生的错误会导致 NLP 任务出现偏差。中文中词语并没有清晰的边界,增加了中文分词的难度和复杂性。从不同的语言学角度来看,中文分词也可以有不同的标准。从表2展示的例子可以看出,在使用最广泛的两个中文分词数据库 PKU 和 CTB 中,相同的句子存在不同的分词结果。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表2 CTB 和 PKU 不同的分词标准

第三,分词产生的收益效果尚不明确。还取决于带标签的 CWS 数据能够带来附加语义信息的多少。对于word model 和 char model 而言,两者的差异在于是否使用了带标签的 CWS 数据作为模型学习使用的信号。但在现有研究中,针对这一问题讨论较少。举例来说,在机器翻译模型中,学者往往使用百万级的样例进行训练,但带标签的 CWS 数据集规模往往较小( CTB 有6.8万 条数据,PKU 有2.1 万条数据),而且领域较为狭窄。这一数据似乎并不能为模型效果带来明显的增益。

其实在大规模使用神经网络模型方法之前,就有学者对分词是否必要及其能够带来增益的多少进行了讨论。在信息检索领域,有学者指出,如果在查询词和检索内容中应用相同的分词方法,就能提升检索效果。但如果在char model 中使用 bigram 对字符进行表示,则word model 的优势就会大大减弱;在机器翻译的相关研究中,有学者指出,分词并不能带来明显的效果提升,也并非提升模型效果的关键因素。

在本文中,探讨基于深度学习的中文自然语言处理任务中分词的必要性,作者首先在不涉及分词的任务中比较了word model 和 char model 的效果差异。作者通过语言建模、文本分类、机器翻译和句子匹配四个 NLP 任务比较了两个模型的效果,并发现char model 的效果更佳,比混合模型的效果更佳或等同。这一结果说明,实际上cahr model 已经对足够的语义信息进行了编码。

另外,本文对word model 的不足也做了进一步的探究,并指出了导致模型缺陷的主要原因,例如,OOV、data sparsity 会导致过拟合,以及领域转换能力较差。

二、回顾

对分词的研究并不是一项新研究,曾经大家都是如何进行实验与研究的呢?

自2003年第一个国际中文分词库出现以来,中文分词取得了很多进展。在早期,大多时候,分词都基于一个预定义的词典进行。在这一时期,一个最为简单且具有健壮性的模型即最大匹配模型,该模型最简单的版本即从左至右的最大匹配模型(maxmatch)。这一时期,新模型的提出主要来源于出现新的分词标准。

随着统计机器学习模型的出现, CWS 问题逐渐变为打标签问题。例如,使用 BEMS 标签进行标注,确认句子的起始词(Start),结尾词(End),中间词(Middle)或独立词(Single)。传统的序列标注方法包括 HMM,、MEMN,、CRF 等。

到了神经网络时代,基于神经元的 CWS 模型包括CNN、RNN、LSTM等。这类模型能更灵活地使用上下文语义信息对词语进行标注,并且使特征工程更简单易行。词语的神经元表示可以作为 CRF 模型的特征,也可作为决策层的输入。

三、实验结果

在这一部分,我们将为大家展示研究中作者将两种模型在 4 个 NLP 任务中实验的评测结果。在模型训练中,为便于比较,作者使用网格搜索对超参数进行了微调,包括学习率、dropout、batch size 等。

3.1 语言建模

该任务要求模型通过给定的前述语境信息的表示,预测后续词语。在语言建模任务中使用CTB 6.0 数据集来对比两模型效果。将数据划分为训练集、验证集和测试集,占比分别为80%,10%,10%,使用 Jieba 进行分词,LSTM 模型对字符和词语进行了编码。

实验中,对比了不同维度下,单独的 word、char 模型和混合模型的效果。可以发现,char 模型的效果都优于 word 模型,维度为 2048 时,ppl 达到最优的结果差距明显 。作者在标准 CWS 包和 LTP 包也进行了实验,并获得了相同的结果。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表3 语言建模结果:char model 优于 word model

另外,本文对混合模型的效果也进行了探究,为便于比较,本文构建了两种不同的混合模型,对 word+char 及 only char 进行表示。词的表示由其组成词的表示向量和剩余字符的表示向量联合构成。由于中文词语的构成字符数量不定,为保证输出数据维度一致,本文使用 CNN 对字符向量的结合进行了处理。

可以发现,在语言建模任务中,分词没有带来明显的模型增益,加入词嵌入信息还降低了模型效果。

3.2 机器翻译

本部分评测使用中英翻译,使用语料为从 LDC 语料中抽取的125万个句子对。验证数据使用的是NIST 2002 ,测试数据使用的是NIST 2003,2004,2005,2006和2008。实验使用了出现频次最高的前30,000个英语词语,以及前27,500个中文词语。char model 的词语量设置为4500。作者对中译英和英译中两种任务都进行了评测,表4所示中译英结果,表5表示英译中结果。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表4 中译英机器翻译评测结果(Mixed RNN, Bi-Tree-LSTM, PKI 模型效果)

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表5 英译中机器翻译评测结果

在机器翻译中,无论是「中译英」还是「英译中」任务,char 模型效果都优于word 模型。

3.3 句子匹配

作者基于 BQ 和 LCQMC 两个语料对句子匹配任务进行了评测。这两个语料为每一个语句对提供了一个二元标签,以标示两个句子是否具有相似性(或相同意图)。在这部分实验中,评测内容为使用不同模型对语句对的二元标签进行预测。评测结果如表6所示。在句子匹配任务中,基于char 模型效果优于基于word 的模型效果,表明 char 模型更能捕捉单元之间的语义联系。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表6 LCQMC 和 BQ 语料库的评测结果

3.4 文本分类

文本分类任务中使用的评测基线包括 ChinaNews, Ifeng, JD_Full, JD _binary, Dianping。作者使用双向 LSTM 模型对基于word 和基于char 的模型分别进行训练用于评测,评测结果如表7所示。除 ChinaNews语料库外,基于字符的模型的表现均优于基于词语的模型。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表7 文本分类任务的验证和测试情况

领域适应能力

模型的领域适应能力展现了模型基于对已有数据分布(源领域)的训练,学习新数据分布(目标领域)的能力。作者基于不同的情感分析数据库对两种模型进行了评测,结果如表8所示。可以发现,基于字符的模型具有更强的领域适应能力,且表现更优。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

表8 基于字符的模型和基于词语的模型的领域适应能力

四、分析

在这一部分,作者探究了 char model 效果优于 word model 的原因,尽管未能完全指出基于词语的模型的运行机制,但作者尝试分析了几个主要的影响因素。

4.1 数据稀疏性

防止词规模过大的常用方法是设置词频率的阈值,并使用 UNK 字符替代所有未达到阈值的词语。阈值的设置对词规模的大小有直接影响,并进一步影响了模型参数的数量。图2展示了词汇量、频率阈值以及模型效果之间的联系。无论是char 模型还是model 模型,当词规模过大,模型效果都会明显下降。模型对于低频词的语义的学习是存在困难的。因此,要获得较好的基于词语或字符的模型训练效果,必须保证词语或字符的出现频率。但对于word 模型,这一条件更难以达到。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

图2 数据稀疏性对基于词语和基于字符的模型的影响

4.2 OOV

对word model 来说,OOV 是另一重要影响因素。但考虑到简单降低词频率的阈值以减少OOV,会使数据稀疏问题更加严重,因此本文采用了一个替代性策略,即基于不同的词频率阈值,分别移除验证集和测试集中包含OOV 的句子。图4展示了训练集词汇数量、准确度和词频率阈值间的关系。随着词频率阈值的增加,两种模型效果的差异在逐渐减小。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

图4 移除包含OOV 的训练实例带来的影响

4.3 过拟合

数据稀疏导致模型需要学习的参数增加,使得模型更加容易过拟合。本文在 BQ 数据集上进行了实验,结果如图1所示。要获得与基于词语的模型相似的效果,基于词语的模型需要设置更高的 dropout 值。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

图1 dropout 对基于词语和基于字符的模型的影响

4.4 可视化

图3 展示了char model 在 BQ 数据集上获得更好的语义匹配效果的原因。该热图展示了 BiPMP 计算出的两句子间的注意力匹配值。对于char model 而言,句子间的映射更加容易。

中文NLP的分词真有必要吗?李纪为团队四项任务评测 | ACL 2019

图4 基于词语和基于字符的模型对两个中文语句的语义匹配情况

五、结论

这项研究探究了基于深度学习方法中文 NLP 任务中,分词的必要性这一基础性问题,并在四类端到端自然语言处理任务上发现char 模型效果更优于 word 模型。本文认为,word 模型效果不佳的原因在于OOV、数据稀疏导致的过拟合和领域转换能力差问题。也希望这篇论文可以启发更多针对中文分词必要性的探讨工作。

原文链接:https://arxiv.org/abs/1905.05526

(*本文为 AI科技大本营编译文章,转载请微信联系 1092722531)

相关推荐