[关闭]
@songying 2019-05-22T18:22:31.000000Z 字数 1815 阅读 1179

深度学习时代,分词真的有必要吗

博客文章


前言

中文数据集是我一直尽量避免的问题,但生活所迫,毕竟咱还是要在国内混江湖的,于是,最近开始研究研究深度学习模型在中文数据集上的各种表现, 但随之而来的一个问题是: 我真的需要分词吗? 香侬科技在 ACL2019 的一篇文章中告诉了我们这个答案,不一定适用于任何数据集,但具有很强的参考价值。

文章从语言模型、机器翻译、句子匹配和文本分类四个任务上进行对比,得出了字往往要比词更好的结论,这也与我同学前期做的一个文本分类项目的结果相符, 词级别的表现往往差强人意,而字往往能够给出较好的结果。

为何词的表现往往较差?

词级别之所以表现差往往有几个原因:

但分词真的无用吗?并非如此,在深度学习时代之前,有研究人员就探索了分词对于IR(信息检索)方面的作用,并提出,如果我们在 query 和 document 端都采用同样的分词手段,那么分词是很有帮助的。 但在深度学习时代,这种提升是要打一个问号的, 如果看看 SQuAD 数据集或 MS MARCO数据集的话,就可以预见,其实通过阅读理解任务在 IR 领域的应用是能够获得传统的方法更佳的表现的, 而阅读理解任务,需要分词吗?这依旧回到问题的起点。

字级别也并非完美无缺

在字级别中, 一个很关键的问题就是一字多义, 词一定程度上减轻了这个问题,这也是在统计时代,分词存在的必要性。

而在深度学习时代,如果一字多义的问题能够通过预训练语言模型等这种高深度网络来解决,那么我个人认为,分词的时代或许就将完全过去。而在预训练语言模型上的探索将是大公司如Google, 百度等在接下来几年一个很重大的课题。 其实,从 Bert 的表现上就可见一斑,Bert 完全舍弃了分词的过程,而是采用字为划分的粒度, 而 Bert 的表现大家有目共睹。

实验说明

文章从语言模型、机器翻译、文本分类和句子匹配四个方面来评估分词在深度学习的意义。

在语言模型任务中,同维度下,字级别的模型要显著优于词级别的模型。 而如果采用 "字+词" 的模型,效果反而不如字级别的模型,但优于词级别的模型,这表明字级别的模型其实已经编码了语言模型任务所需的语言信息,加入词级别反而会损害表现。

在机器翻译任务中,依旧是字级别 > 字+词级别 > 词级别。

在句子匹配任务中,字级别的表现依旧显著优于词级别的表现。

在分类任务中,值得一提的是在 ChinaNews数据集上,词级别的表现略高于字级别的表现,且其余数据集效果相差也没有上述任务那么大,文章并没有给出解释, 我个人认为这是因为分类问题更依赖于 n-grams 信息的原因。

最后

这篇文章通篇就告诉了我们一点: 字级别在大多数情况下要优于词级别。但我更想从最新的预训练语言模型来看,如果说预训练语言模型能够解决一字多义问题, 那么分词真的是毫无必要了, 接下来或许就是探索如何融入先验知识如成语,歇后语,诗句等信息了。

Reference

[1] Is Word Segmentation Necessary for Deep Learning of Chinese Representations?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注