之前毕设是做微博NER的,无意之中翻到了这篇论文,个人感觉这篇文章还是比较有价值的,在此简单介绍一下。
论文链接:https://www.aclweb.org/anthology/D18-1017(ACL2018)
code:https://github.com/CPF-NLPR/AT4ChineseNER
核心思想
这篇文章做的最核心的事情就是标题中提到的这几个事儿:
- Adversial:对抗
文章本身采用的结构是多任务学习,框架还是熟悉的BiLSTM+CRF,只不过是通过多任务学习共享一个BiLSTM,分词和NER一左一右。这里采用对抗训练解决分词提供的不正确的信息。
- Transfer:迁移
文章做的是中文微博的命名实体识别,数据集巨小。如果不使用迁移学习(也就是常说的多任务学习),单纯的从文本中当前任务进行学习的话,很难有大的提升。
- Self-attention:自注意力
大家最熟悉的NER结构就是BiLSTM+CRF,十分常见,效果也有保障。文章认为,self-attention可以提升前后文依赖关系的发掘程度(说白了就是能刷分高点),而BiLSTM能做到的十分有限。
以上就是个人总结的这篇文章的简要贡献,如果是想水一水逛一逛的话,就可以结束了;下面是详细的笔记。
Motivation
任何一篇文章提出来,一定是有问题需要解决的。问题可能多种多样,比如我觉得当前模型有什么信息没有利用啦,现存研究没有考虑到什么啦blablabla(说白了就是你的模型效果没我好,我分高我说了算),不论是什么理由,他总会有一个(甚至多个)。
那这篇文章的动机是什么呢?
文章是做微博的NER,前人的工作已经从多任务学习开始入手了,所以这篇文章认为:多任务学习中,我们使用的是中文分词和命名实体识别两个任务,目的是为了从分词中学习到词边界的信息,以用来给NER提供支持;然而,分词所提供的信息,并不都一定正确。这涉及到分词任务和NER任务的边界不统一的问题,作者这里给了一个例子:
显然,如果我们把分词的信息全部融合进来的话,会在一定程度上影响NER的结果。分词的时候,休斯顿机场会被切开;但是在NER的过程中,这是一个实体,是不能切开的。所以,作者对于这个问题,提出了使用对抗学习来解决。另外,作者认为,任意字符都可以提供信息