在刚刚结束的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 依存句法分析领域移植评测技术分享(封闭情况下双第一)相关推荐

  1. 【Yocto移植】技术分享

    采用Yocto构建嵌入式Linux系统 前言 一.获取Yocto软件源码 二.初始化Yocto构建目录 2.1.imx-setup-release.sh脚本运行 2.2.imx-setup-relea ...

  2. 技术分享|在Ubuntu下编译安装GreatSQL

    本文首发于GreatSQL社区,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.准备工作 1.1.配置Ubuntu环境下的apt源配置文件 1.2.构建docker镜像 2.编译Grea ...

  3. ICCV 2019 COCO Mapillary挑战赛冠军团队技术分享

    近日,在 ICCV 2019 Workshop 举办的 COCO + Mapillary Joint Recognition Challenge(COCO + Mapillary 联合挑战赛)公布了最 ...

  4. 【技术分享】Ubuntu下使用微信教程

    做后端开发的同学用的Linux(ubuntu),肯定会因为没有适配微信版本会感觉不太舒服,很多时候因为缺少一些办公通讯软件而感到不便.现在已经有很方便的Wine WeChat方案,但是微信在Wine上 ...

  5. 技术分享 | Linux 环境下针对进程维度的监控实现

    作者:莫善 某互联网公司高级 DBA. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.背景介绍 运维工作中可能会遇到这么一个痛点,因线上机器基 ...

  6. 【技术分享】Windows10下安装深度学习常用软件教程分享

    文章目录 Anaconda3 vscode geek chrome everything 向日葵远程软件 Anaconda3 anaconda3用于有效管理python函数库 在anaconda3官网 ...

  7. 【技术分享】Windows10下安装Nvidia显卡驱动及cuda和cudnn

    文章目录 下载cuda安装包 安装cuda 安装cudnn 下载cuda安装包 这里我用CUDA10.1演示,具体看个人需求选择版本,如果已经安装好显卡驱动,需要根据显卡驱动版本选择对应的CUDA工具 ...

  8. Android逆向writeup,【技术分享】春秋杯逆向第一题writeup

    最近被春秋杯逆向题坑了两天,记录一下解题过程. 程序一运行,就弹个控制台窗口,啥也没有,拖进IDA看了才知道,是在等待用户输入验证的key: 程序的主框架很简单,就是一运行后初始化一些数据,等待用户输 ...

  9. 基于深度学习的依存句法分析进展

    http://www.cipsc.org.cn/qngw/?p=885 前言: 中国中文信息学会青年工作委员会(简称青工委)是中国中文信息学会的下属学术组织,专门面向全国自然语言处理领域的青年学者和学 ...

最新文章

  1. Android面试真题解析火爆全网,薪资翻倍
  2. 从windows上传文件到linux,中文名乱码解决方法
  3. 网上订票抢票攻略(亲测)
  4. 原型链 —— 以隐式引用作为存储方式的单向链表
  5. 树莓派 + Windows IoT Core 搭建环境监控系统
  6. Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)
  7. Unity3D中关于场景销毁时事件调用顺序的一点记录
  8. 比特币矿池是什么意思
  9. 蓝桥杯 ADV-97 算法提高 十进制数转八进制数
  10. 下载EPM包详细运行日志
  11. loadrunner四大部分
  12. Visual studio2012密钥 vs2012密钥 本人亲测 真实有效
  13. ensp VRRP配置2
  14. mac怎么显示服务器中隐藏文件,mac怎么显示隐藏文件夹-mac显示隐藏文件命令与使用教程 - 河东软件园...
  15. 物理内存管理-ucore操作系统的PADDR宏
  16. ajax查询全国天气预报,使用聚合数据api接口
  17. 分布式系统必懂——SSO单点登录
  18. centos5部署open***
  19. R语言中的bug集合
  20. bat: 删除文件、文件夹

热门文章

  1. 【智能制造】工业软件:智能制造的大脑
  2. 重磅!Science发表西湖大学周强实验室关于“新冠”的最新研究成果
  3. 我国个人缴税计算实例
  4. 【QT】缺少Qt5Widgetsd.dll等文件的问题
  5. 数据库初级入门sqlite3版本
  6. IIS URL 重写
  7. perf trace跟踪系统调用
  8. 《大数据之路-阿里巴巴大数据实践》读书笔记
  9. 数据集成-5-批数据集成
  10. ERP中Bom的替代料