本文对Semi-supervised sequence tagging with bidirectional language models一文做一个简短介绍,该文发表在ACL2017.
一、任务介绍
利用语言模型学习得到的RNN表示,来增强有监督的序列标注任务。
往往序列标注的数据集是有限的,在有限的数据下,模型很难学习到一个足够好的embedding来表示单词。
本文通过语言模型可以利用到大量没有标注的数据,来增强单词的语义表示。
二、模型
![](https://i-blog.csdnimg.cn/blog_migrate/02455f7258209849ffcf4dc3d4eeceb6.png)
做法也很简单,
1)第一步用大量的未标注数据进行前向和反向语言模型的训练,预训练好两个RNN网络。
2)对于给定句子中每一个单词,例如“New”,先得到单词的embedding表示,然后经过第一层双向RNN,得到隐层表示。
这个时候该句子经过预训练好的两个RNN网络,得到New的前后RNN输出表示,与之前的网络隐层进行拼接,输入到第二层RNN网络中,进行序列标注。
比起正常的序列标注模型来,多了一个拼接预训练好语言模型的输出表示。这一块多余的东西还不用标注,岂不妙哉。
三、实验
![](https://i-blog.csdnimg.cn/blog_migrate/b222c283199384524b8cdb9c96e7412f.png)
主实验如table1所示,我们可以看出,性能从90.87提高了91.93,增加了一个多点,效果还是挺明显的。
至于语言模型的输出到底加在RNN的哪一层,作者也做了实验:
![](https://i-blog.csdnimg.cn/blog_migrate/e2d18bc2d00552a6850caa8cb1c3c55f.png)
发现加在第一层RNN的输出的时候结果最好,不要问为什么,问了就是炼丹。
四、贡献
本文没有在基本的序列标注模型再继续搞一些fancy的骚结构,或者其它怼模型的操作,而是采用半监督方法创新的利用大量没有标注的数据来提高性能,很nice。
整篇文章通俗易懂,赏心悦目。
PS:如果觉得本文对你有任何帮助,希望右下角点个【在看】,谢谢。
往期精彩回顾
适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册AI基础下载(pdf更新到25集)备注:加入本站微信群或者qq群,请回复“加群”获取一折本站知识星球优惠券,请回复“知识星球”
喜欢文章,点个在看