【ACL2020】一种新颖的成分句法树序列化方法(二)

简介: 不知不觉在字节跳动实习也快四个月了,在这高强度快节奏的工作生活中,也是收获颇多。然而博客也很久很久没更新过了,论文阅读了那么多,却一直没空写写自己中的这篇。今天趁周末分享一下自己发在今年ACL上的这篇工作,主要贡献就是提出了一种新颖的成分句法树的序列表示方法。建议配合我的PPT阅读,里面有很多例子

实验


详细的实验对比结果感兴趣的直接去看论文吧,这里放一个总表:

image.pngPTB和CTB结果

可以看出无论是单模型还是采用了BERT,我们的方法都达到了和SOTA完全一样的效果。那么速度怎么样呢?

image.png速度对比

可以看出我们速度远远快于CKY算法,甚至超过很多序列方法,并且我们没有采用Cython来优化for循环。

一些思考


image.png归一化方法比较

和全局归一化模型(CKY算法)相比,他们优化的是整棵句法树span得分之和,而我们优化的是所有的左孩子得分之和。因为我们认为,原来的优化目标是包含冗余的,左孩子得到之后,右孩子可以唯一确定。

和CKY算法的自顶向下贪心优化+张岳老师提出的两种局部模型结合相比,我认为我们的方法也是不同的。他们的方法会导致更加复杂的span表示,同一个span会被优化两次,因此需要更为复杂的表示来规避这个问题。同时我们的方法只需要矩阵运算来预测结构,span表示简单,速度也更快。

此外仍然有很多未完成的工作:

  • 利用我这个序列方法,GNN可以用上了。
  • 如果用所有的右孩子,可以产生出另一套等价的序列表示,如何结合这两套表示来准确解码?
  • 其他句法分析任务(CCG,semantic等)都可以转化为我的序列表示,如何联合学习这些任务?
  • 利用这套表示,其他很多下游任务(机器翻译等)都可以加入句法信息,能否增强它们的性能?

尾声


下一次分享不知道又会到什么时候了,秋招也进入尾声了,下面就是毕业论文了。如果有时间,我还会和大家分享我最近阅读的论文。有缘江湖再见!

Reference

[1]

论文地址:https://www.aclweb.org/anthology/2020.acl-main.299/

[2]

代码地址:https://github.com/AntNLP/span-linearization-parser

[3]

PPT地址:https://godweiyang.com/2020/08/30/acl20-yangwei-parsing/ACL2020.pdf

[4]

成分句法分析综述(第二版):https://godweiyang.com/2019/08/15/con-parsing-summary-v2/

[5]

Graph-based Dependency Parsing with Graph Neural Networks:https://www.aclweb.org/anthology/P19-1237/

image.png

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理与深度学习喜欢与人分享技术与知识,期待与你的进一步交流~


相关文章
|
存储 算法 Python
Python算法——树的序列化与反序列化
Python算法——树的序列化与反序列化
198 1
|
19天前
|
JSON JavaScript 前端开发
|
3月前
|
Java
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
JDK序列化原理问题之Hessian框架不支持writeObject/readObject方法如何解决
|
4月前
|
JSON NoSQL Java
Redis18的Java客户端-StringRedisTemplate,序列化存在的问题,使用StringRedisTemplate解决序列化的方法
Redis18的Java客户端-StringRedisTemplate,序列化存在的问题,使用StringRedisTemplate解决序列化的方法
|
6月前
|
NoSQL 容器 Kubernetes
树、二叉树、树的遍历、树的序列化
树、二叉树、树的遍历、树的序列化
|
6月前
|
存储 算法 数据库
常用的c++序列化方法
常用的c++序列化方法
166 0
剑指offer(C++)-JZ37:序列化二叉树(数据结构-树)
剑指offer(C++)-JZ37:序列化二叉树(数据结构-树)
|
存储 缓存 编解码
【JavaSE专栏21】序列化和反序列化,学会Java的编解码方法
【JavaSE专栏21】序列化和反序列化,学会Java的编解码方法
148 0
|
机器学习/深度学习 人工智能 自然语言处理
【ACL2020】一种新颖的成分句法树序列化方法
【ACL2020】一种新颖的成分句法树序列化方法
110 0
|
JSON 编译器 Go
Go-结构体类型详解(声明、初始化、结构体指针、方法、序列化等)
Go-结构体类型详解(声明、初始化、结构体指针、方法、序列化等)
197 0
Go-结构体类型详解(声明、初始化、结构体指针、方法、序列化等)