NLPCC-2019 依存句法分析领域移植评测技术分享(封闭情况下双第一)
在刚刚结束的NLPCC-2019 依存句法分析领域移植评测任务中,我们队有幸拿到了在封闭条件下无监督和半监督两个任务的双第一。这离不开大家的付出与努力,在这里想与大家分享下参赛的一些细节。
1.任务介绍
1.1NLPCC-2019 依存句法分析领域移植评测
本次评测是由苏州大学、阿里巴巴联合举办的。在本次评测任务中,提供了约 17K (句子数)平衡语料(BC)数据作为源领域数据,10K句产品评论(PC)、8K 句产品博客(PB)和 3K 句网络小说(ZX)数据作为三个目标领域数据;另外,对于目标领域的数据,还给出了大规模的无标注数据。针对半监督和无监督的领域移植场景,和封闭评测和开放评测两种设置,将评测划分为 4 个子任务:无监督领域移植(封闭或开放)、半监督领域移植 (封闭或开放)。
1.2比赛规则
这里大致说下比赛规则。无监督与半监督的区别就是,半监督可以使用目标领域的训练集,而无监督不可以,所谓的封闭条件下,就是只能使用主办方提供的词向量,像什么其他的预训练,使用其他开源工具得到新的信息,如词性、词义等特征,词典、句法语义树库等。这些都是不允许的!
1.3数据介绍
先看下数据,刚开始看到这些数据是比较蛋疼的。因为它和我们之前看到的parser数据不太一样。这份数据只是标注了一部分,其他的是用模型补全,每个词后面都是有个概率值,1代表人工标注,其他的值越高说明越靠谱。具体看图:
这是源领域训练集的一条数据,大家可以看到,不是1的就代表是模型补全的,可能有噪声。其他三个领域的训练集都大同小异,在这里就不给大家看了。
这是PC领域的开发集,大家可以看到很多是none,在算UAS,LAS(这是句法的评价指标,不懂得自己去查吧。。。)的时候大家可以这部分舍去。
这就是本次比赛的数据格式了,其中还有很多无标注数据,就是只给了词性,其他什么都没有。
下图是数据规模:
2.比赛方法
我们再跑baseline的时候发现了一个问题,pc领域出奇的低,pb居中,zx最好。最终我们发现:
PB:PB领域金标(概率值为1)大约占总词数的35.5%。
ZX:ZX领域金标(概率值为1)大约占总词数的21.6%。
PC:PC领域金标(概率值为1)大约占总词数的22.3%。
这里可以看到。虽然PC的比列比ZX高,但是!!!个人认为,ZX毕竟是小说,从写作的角度来看,还是比较工整有规律的。而不像评论,大家开心可能加个标点,不开心可能人都读不懂你写的啥。之前还标注过评论的数据(现在想想都痛苦,没准还标过你的!!!),所以在这呼吁大家,请大家认证对待你的每一次评论,因为一个好的评论不仅可以为其他买家提供参考,还可以为NLP贡献一份力量!!!
2.1基线模型(biaffine parser)
我们的基线模型是用的biaffine parser,这是一种基于图的句法解析器,我们还试过基于转移动作的parser,但是效果没这个好。可能是基于动作的无法识别交叉的情况。大家可以具体看看这篇论文,这位博士好像是专修句法的,很厉害。下面是论文地址:
biaffine parser.
2.2对抗
在半监督,我们加了对抗。因为半监督是用源领域和目标领域的训练集一起训练,我们想要bilstm提取到领域之间共有的特征,这有助于寻找句法解析的共同特性,利于迁移。我们具体怎么做的呢?就是在过bilstm之后分为两部分,一部分还是正常的进行句法,另一部分我们过一个GRL(梯度反转层),然后做一个二分类。大家看图,这是一篇论文里面的图:
这个GRL就是为了让梯度反转过来,在梯度前面加一个负号,大家可以想一下,你是为了扰乱bilstm不让它去区分出两个领域的特征,所以最终这个二分类的loss的变化趋势是:先下降,就是刚开始模型可以区分的很好,但是在我们的认为干扰下,loss越来越大,也就是分类的老是出错,也就达到了我们的目的。
2.3char特征
这一步我们加了一个char级别的特征,为了让模型收敛更快,并且还能提高点性能。
2.4threshold
由于这份语料的特殊性,许多数据不是金标,也就是说这里面有噪声,我们想了个办法,就是按照阀值来卡,低于这个阀值的句子,我们就不让他进行反向传播。这样做起到了一定作用, 但是只是在PB领域有用。应该还有其他办法解决。
2.5self-training
重头戏来了,我们在无监督使用的是self-training,因为我们拥有大量的无标注数据可以去利用,这是一种自举的方法。具体的步骤就是,用你训练好的模型去解码无标注数据,按照一定的策略(我们前几轮是随机取几分之几,后来则是按照概率值来卡)去筛选数据,然后将这些数据加到训练数据里面接着训练一个更好模型,然后这样反复的迭代,直到最后模型性能达到瓶颈不再上升。
2.6tri-training
先解释下这个方法,就是先练好三个最好的模型。在这里我们就是parser1,parser2,parser3。我们分别让三个parser去解码数据,然后将parser1 和 parser2解码的数据的相同部分添加到parser3的训练数据等待下一轮训练,其他也是两两结合。然后反复迭代。知道三个模型的性能不在提升。
这个方法最开始周志华在2005年提出来的,但是由于实验室算力有限还有比赛的时间限制,我只在PB上试了下,还是先进行了几轮self-training,然后在tri-training。最终效果比单纯的self-training要好。
2.7combine
以上实验我们都是准备三个模型。这个策略就是,我们三个模型在解码时进行投票,这样解码出来结果能够提高0.1值0.2个点。
3.实验结果分析
先是半监督的baseline:
然后是无监督的baseline:
最后是我们的比赛结果:
大家可以找找我是哪个队哈哈。
NLPCC-2019 依存句法分析领域移植评测技术分享(封闭情况下双第一)相关推荐
- 【Yocto移植】技术分享
采用Yocto构建嵌入式Linux系统 前言 一.获取Yocto软件源码 二.初始化Yocto构建目录 2.1.imx-setup-release.sh脚本运行 2.2.imx-setup-relea ...
- 技术分享|在Ubuntu下编译安装GreatSQL
本文首发于GreatSQL社区,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.准备工作 1.1.配置Ubuntu环境下的apt源配置文件 1.2.构建docker镜像 2.编译Grea ...
- ICCV 2019 COCO Mapillary挑战赛冠军团队技术分享
近日,在 ICCV 2019 Workshop 举办的 COCO + Mapillary Joint Recognition Challenge(COCO + Mapillary 联合挑战赛)公布了最 ...
- 【技术分享】Ubuntu下使用微信教程
做后端开发的同学用的Linux(ubuntu),肯定会因为没有适配微信版本会感觉不太舒服,很多时候因为缺少一些办公通讯软件而感到不便.现在已经有很方便的Wine WeChat方案,但是微信在Wine上 ...
- 技术分享 | Linux 环境下针对进程维度的监控实现
作者:莫善 某互联网公司高级 DBA. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.背景介绍 运维工作中可能会遇到这么一个痛点,因线上机器基 ...
- 【技术分享】Windows10下安装深度学习常用软件教程分享
文章目录 Anaconda3 vscode geek chrome everything 向日葵远程软件 Anaconda3 anaconda3用于有效管理python函数库 在anaconda3官网 ...
- 【技术分享】Windows10下安装Nvidia显卡驱动及cuda和cudnn
文章目录 下载cuda安装包 安装cuda 安装cudnn 下载cuda安装包 这里我用CUDA10.1演示,具体看个人需求选择版本,如果已经安装好显卡驱动,需要根据显卡驱动版本选择对应的CUDA工具 ...
- Android逆向writeup,【技术分享】春秋杯逆向第一题writeup
最近被春秋杯逆向题坑了两天,记录一下解题过程. 程序一运行,就弹个控制台窗口,啥也没有,拖进IDA看了才知道,是在等待用户输入验证的key: 程序的主框架很简单,就是一运行后初始化一些数据,等待用户输 ...
- 基于深度学习的依存句法分析进展
http://www.cipsc.org.cn/qngw/?p=885 前言: 中国中文信息学会青年工作委员会(简称青工委)是中国中文信息学会的下属学术组织,专门面向全国自然语言处理领域的青年学者和学 ...
最新文章
- Android面试真题解析火爆全网,薪资翻倍
- 从windows上传文件到linux,中文名乱码解决方法
- 网上订票抢票攻略(亲测)
- 原型链 —— 以隐式引用作为存储方式的单向链表
- 树莓派 + Windows IoT Core 搭建环境监控系统
- Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)
- Unity3D中关于场景销毁时事件调用顺序的一点记录
- 比特币矿池是什么意思
- 蓝桥杯 ADV-97 算法提高 十进制数转八进制数
- 下载EPM包详细运行日志
- loadrunner四大部分
- Visual studio2012密钥 vs2012密钥 本人亲测 真实有效
- ensp VRRP配置2
- mac怎么显示服务器中隐藏文件,mac怎么显示隐藏文件夹-mac显示隐藏文件命令与使用教程 - 河东软件园...
- 物理内存管理-ucore操作系统的PADDR宏
- ajax查询全国天气预报,使用聚合数据api接口
- 分布式系统必懂——SSO单点登录
- centos5部署open***
- R语言中的bug集合
- bat: 删除文件、文件夹