前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【论文】使用bilstm在中文分词上的SOTA模型

【论文】使用bilstm在中文分词上的SOTA模型

作者头像
zenRRan
发布2019-09-17 16:21:04
1.3K0
发布2019-09-17 16:21:04
举报

作者:choose_c

原文链接:

https://blog.csdn.net/choose_c/article/details/86545299

论文题目:State-of-the-art Chinese Word Segmentation with Bi-LSTMs

作者:Ji Ma Kuzman Ganchev David Weiss

机构:Google AI Language

论文发表:EMNLP2018

模型:

文章主要是针对中文分词任务,模型十分简单,使用的双向的LSTM。模型的输入是两种特征(字和bigram),输入先通过embedding,进行concatenate之后送入堆叠的bi-lstm,最后通过softmax输出四个标签(Begin,Inside,End,Single)。

trick:

文章提到三个手段来达到State-of-the-art,分别是预训练字向量 、dropout 、调整超参数。1.预训练词(字)向量现在应该是NLP任务的标配了。文章模型使用的是字和字bigram作为输入,所以使用wang2vec(https://github.com/wlin12/wang2vec),在word2vec中加入了顺序信息。2.在LSTM中加入了dropout。3.使用momentum-based averaged SGD(Weiss et al.2015)方法训练模型。主要就是优化算法的小改进加上超参数的网格搜索。

结果:

下面两张表分别是有预训练字向量和没有预训练字向量的实验结果。在大部分的数据集上加入预训练的字向量都能有一个点左右的提升,除了MSR和PKU两个数据集,这两个数据集上本文算法表现并不好。另外文章还比较了固定的预训练字向量和更新的预训练字向量的效果,固定的预训练字向量在7个数据集中有5个数据集的效果要好于更新的字向量。在我的认知和平时的实验中,一般使用预训练字向量时会选择fine-tuning,因为考虑到任务的特殊性,比较通用的词向量很难学到某些特定领域词在任务中的表示。出现本文的结果个人觉得有几个点,首先是词向量的表示和获得,文章中使用的词向量生成方法不是常用的word2vec等方法,而且输入也不同用到了字和字bigram;再者,因为任务的原因,分词算是NLP中比较的基础的任务,语料比较通用,所以fine-tuning的作用可能不是很大,还有就是在预训练的语料达到一定量级的时候,fine-tuning可能也不是必要的。

附加实验:

论文也对每一个trick对实验提升的贡献做了实验分析。上图中,在LSTM dropout、stacked bi-LSTM、pretrain三个优化中pretrain的贡献是最大的,平均可以提升0.78个点。论文也给出了fully tuned的提升贡献,下图中,文章对比的是多个任务共享参数和针对每个任务调整不同参数,这个结果应该是很好解释,调参工程师的作用还是有的。个人在看到文章中的三个trick时觉得网格搜索的参数优化可能会是实验效果的最大贡献者,其次才是预训练字向量,最后才是模型结构(因为模型结构很简单,没有多大改进),事实证明自己还是太嫩了,作为NLP初学者还有很长的路要走。

错误分析:

文章还对错误进行了分析,其中三分之二的错误来自out of vocabulary,而实验证明了pretrain word embedding在oov情况下可以提高10%的召回率,对pretrain word embedding肃然起敬(今年elmo、GPT、bert的惊艳效果也证明了预训练模型和迁移学习在NLP中的巨大发展前景)。对于oov问题,基于字的特征会更加有效,而且基于知识库的研究也可以优化这方面的问题。另外三分之一的错误来自标注错误(人工智能问题=模型+数据,模型优化到头秃,只能数据背锅了)。文章使用一个脚本计算了每个数据集标注的不一致性,不一致性严重的数据集也是现在已有方法效果不好的,这个锅数据就顺理成章地背下了。作者脚本的大概思路是统计单词作为双词出现的次数,或者是双词作为单词和三次出现的次数,没有说的很详细,应该就是一些词频统计的东西。说实话,这些小脚本工具确实有时候很有用,很能快速反映一些数据的问题或者是帮助找到一些特征和信息。

结论:

作者没有对本文做过多的总结,给出了中文分词两个挑战,也可以说是展望吧:1.模型结构上的调优,2.外部知识库的使用。本文没有过多的创新,用到了都是一些很基础的技巧,可能这就是大神吧。简单的bi-LSTM加一点word embedding,调调弄弄,效果就是好,就是State-of-the-art,甩手就是一篇emnlp。本人NLP的低级玩家一枚,以上也只是在看了论文之后的一些些笔记,没有啥个人见解,大致翻译了一下而已。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档