点击上方,选择星标置顶,每天给你送干货

阅读大概需要1分钟

跟随小博主,每天进步一丢丢

作者:刘宗林

编辑:zenRRan

刘宗林个人主页:

https://bamtercelboo.github.io

欢迎大家访问!

导读

句法分析(syntactic parsing)是NLP中的关键技术之一,通过对输入的文本句子进行分析获取其句法结构。句法分析通常包括三种:

  • 句法结构分析(syntactic structure parsing),又称短语结构分析(phrase structure parsing)、成分句法分析(constituent syntactic parsing)。作用是识别出句子中的短语结构以及短语之间的层次句法关系。

  • 依存关系分析,又称依存句法分析(dependency syntactic parsing),简称依存分析(denpendency parsing),作用是识别句子中词与词之间的相互依存关系。

  • 深层文法句法分析,即利用深层文法,例如词汇化树邻接文法(Lexicalized Tree Adjoining Grammar, LTAG)、词汇功能文法(Lexical Functional Grammar,LFG)、组合范畴文法(Combinatory Categorial Grammar,CCG)等, 对句子进行深层的句法以及语义分析。

依存分析

百度百科定义:依存句法是由法国语言学家L.Tesniere最先提出。它将句子分析成一颗依存句法树,描述出各个词语之间的依存关系。

依存句法理论中依存是指词与词之间支配与被支配的关系,这种关系不是对等的,这种关系具有方向指向。确切的说,处于支配地位的成分称之为支配者(governor,regent,head),而处于被支配地位的成分称之为从属者(modifier,subordinate,dependency)。依存关系连接的两个词分别是核心词(head)和依存词(dependent)。依存关系可以细分为不同的类型,表示两个词之间的具体句法关系, 依存关系用一个有向弧表示,叫做依存弧。依存弧的方向为由从属词指向支配词。

如下图列举出一个依存句法分析的例子

Dependency Parsing 主要有两种方法:Transition-based 和 Graph-based。

Deep Biaffine Attention for Neural Dependency Parsing

基于图的依存句法分析从左向右解析句子,针对句中的每个词,找该词的head词(该词到head词之间的arc)以及从该词到head词之间的依存关系类型,即需要解决两个问题:哪两个节点连依存弧以及弧的标签是什么。目前的深度学习的方法使用分类器来解决这两个问题。该模型是针对图的依存句法分析,是对Kiperwasser & Goldberg(2016),Hashimoto et al.(2016), and Cheng et al.(2016)提出的模型加以修改。主要的修改如下:

  • 使用双仿射注意力机制(Biaffine Attention)代替双线性(bilinear)或传统的MLP-based注意力机制, 运用了一个双线性层而不是两个线性层和一个非线性层。

  • 使用Biaffine依存标签分类器。

  • 在双仿射变换(Biaffine transformation)之前,将降维MLP应用于每个循环输出。

biaffine并不是双线性(bilinear)或MLP机制,它使用一个仿射变换在单个LSTM输出状态r预测所有类别上的得分。在本文提出的双仿射注意力机制(Biaffine Attention)可以看做为一个传统的仿射分类器(公式1),但是对stacked LSTM的输出RU(1)进行一个 (d×d)线性变换代替权重矩阵W,并且对Ru(2)采用一个(d×1)线性变换来替代偏置项b(公式2)。

arc得分

若句子中有N个单词,包含虚根ROOT在内一共d=N+1个词。对每个词都需要得到一个分数si。因为句子中的词的个数是不确定的,所以这是一个不定类别分类问题。而一般MLP是个固定类别的分类器(公式1),为了能够处理不定类别分类问题,本文采用两个MLP对BILSTM隐层输出向量进行重新编码(公式4、公式5)。然后套用公式(2)得到公式(6), 得到分数。这里两个MLP分别针对于dep和head。MLP得到的向量表示通常更小,好处是能够去除多余的信息。因为原始BiLSTM隐层中含有预测依存弧标签的信息。对预测head无用。

本文把上述公式称之为deep bilinear attention mechanism,因为并没有直接用RNN输出的向量表示,而是采用了对head和dep专用的两个MLP进行再次编码。这里并没有用到熟悉的attention公式,但是称之为attention的原因是,输入是所有时刻的LSTM隐层向量表示,输出是一个在各个时刻上归一化之后向量表示。和其它Graph-based模型一样,在训练时,预测的解析树是每一个单词都依存于其得分最高的head(虽然在测试时也会通过MST算法确保解析树是一个格式良好的树)。

arc标签

head与dep之间的依存关系数目是确定的,这是一个确定类别的分类问题,采用下述公式(3)计算标签分数。

这里的优势在于可以直接对单词 j 在第二项收到任何dependents的先验概率和 j 在第一项中收到特定依存项 i 的可能性之间进行建模。还双仿射分类器来预测给定的head或预测对应的依存标签。假设一共有m个标签,U(1)是m x d x d的高阶tensor,ri是第i个词在BiLSTM的输出向量表示(d x 1),yi是第i个词head,ryi对应的是其BiLSTM的向量表示(d x 1)。

整体结构图

模型的整体结构图

该模型图从下向上看,输入是词与词性向量拼接之后的向量表示,通过BiLSTM提取到特征ri,经过两个不同的MLP分别得到 h(arc−dep) 和 h(arc−head) ,d(所有词)个这样的h stack得到H(arc−dep)和H(arc−head),并且H(arc−dep)额外拼接了一个单位向量。利用中间矩阵U(arc)进行仿射变换,每个词以dep的身份与以head的身份的每个词进行点积,得到arc成立的分数矩阵S(arc)。也就是上述公式(6)得到的结果。

实验设置及实验结果

https://github.com/bamtercelboo/PyTorch_Biaffine_Dependency_Parsing

欢迎大家star和fork!

总结

本文是对Deep Biaffine Attention for Neural Dependency Parsing做的一个简单的总结,同时也是NLPCC2019 shared tasks(跨领域依存句法分析)的一个baseline方法。

References

[1] Deep Biaffine Attention for Neural Dependency Parsing
[2] https://zhuanlan.zhihu.com/p/51186364
[3] https://xiaoxiaoaurora.github.io/2019/04/11/Deep-Biaffine-Attention-for-Neural-Dependency-Parsing/
[4] http://www.hankcs.com/nlp/parsing/deep-biaffine-attention-for-neural-dependency-parsing.html
[5] http://hlt.suda.edu.cn/index.php/Nlpcc-2019-shared-task

写作不易,还望给个在看

推荐阅读:

一大批历史精彩文章啦

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】轻松解读Semi-supervised Sequence Learning半监督序列学习

详解Transition-based Dependency parser基于转移的依存句法解析器

干货 | 找工作的经验总结(一)

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

是时候研读一波导师的论文--一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing相关推荐

  1. 信息抽取(四)【NLP论文复现】Multi-head Selection和Deep Biaffine Attention在关系抽取中的实现和效果

    Multi-head Selection和Deep Biaffine Attention在关系抽取中的应用 前言 Multi-head Selection 一.Joint entity recogni ...

  2. Deep Biaffine Attention for Dependency Parsing

    Abstract 本文在一个简单的基于图的依赖解析器中使用神经注意,并使用biaffine分类器来预测弧和标签.将传统的基于MLP注意力机制和仿射标签分类器替换为biaffine注意力 Model b ...

  3. 论文阅读【A multi-task attention tree neural net for stance classification and rumor veracity detection】

    论文题目:<A multi-task attention tree neural net for stance classification and rumor veracity detecti ...

  4. 【论文阅读】AU检测|《Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment》

    <Deep Adaptive Attention for Joint Facial Action Unit Detection and Face Alignment>(ECCV 2018) ...

  5. 交通事故风险预测——《TA-STAN: A Deep Spatial-Temporal Attention Learning Framework...》

    一.文章信息 <TA-STAN: A Deep Spatial-Temporal Attention Learning Framework for Regional Traffic Accide ...

  6. 【论文阅读】Attention Based Spatial-Temporal GCN...Traffic Flow Forecasting[基于注意力的时空图卷积网络交通流预测](1)

    [论文阅读]Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting[基于注 ...

  7. 论文---overcoming catastrophic forgetting in neural networks

    不定期更新--论文 overcoming catastrophic forgetting in neural networks 出处:2017 Jan 25 PNAS(proceedings of t ...

  8. 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering

    文章目录 一.摘要 二.介绍 三.准备知识 3.1 从隐式数据中进行学习 3.2 矩阵分解 四.神经协同过滤 4.1 总体框架 4.1.1 学习NCF 4.2 广义矩阵分解(GMF) 4.3 多层感知 ...

  9. 论文阅读:Multi-view Convolutional Neural Networks for 3D Shape Recognition

    Preface 今天阅读一篇ICCV2015的论文:<Multi-view Convolutional Neural Networks for 3D Shape Recognition>, ...

  10. 神经网络注意力机制--Attention in Neural Networks

    Attention in Neural Networks and How to Use It http://akosiorek.github.io/ml/2017/10/14/visual-atten ...

最新文章

  1. OpenCV下设置灰度直方图的阈值来对图像进行查找(查表)变换的源码
  2. linux序列比对程序,序列比对软件简单使用教程
  3. 使用PHP生成分享图片
  4. 支付系统整体设计:整体架构设计以及注意要点(一)
  5. 测试集没标签,可以拿来测模型吗?
  6. notepad++格式化插件安装
  7. [iOS] ios的runtime
  8. NYOJ96 - n-1位数
  9. python sdklive2d_纯干货!live2d动画制作简述以及踩坑
  10. 比特率和波特率的区别
  11. 互联网日报 | 58同城签署私有化协议;支付宝将发放百亿全国通用消费券;碧桂园开天猫店上线特价商品房...
  12. 曝光!中国知名互联网公司背后的风投
  13. 计算机辅助工程试卷,《计算机辅助工程软件(UG)》试卷10–2答.doc
  14. android 禁用触摸屏,如何在Android手机中禁用触摸屏?
  15. [4G5G专题-91]:流程 - 4G LTE 终端移动性管理总体概述
  16. DB2性能调整优化问题
  17. SQL数据库msdb置疑(急)
  18. day 63 Django基础九之中间件
  19. Matlab演奏天空之城
  20. 学徒浅析Android——Android原生下载机制针对0K大小文件下载异常的分析

热门文章

  1. Drcom账户管理Server端解说
  2. jquery对标签属性操作
  3. 架构设计--逻辑层 vs 物理层
  4. 将你的blog变成英文版
  5. Cookie使用基础
  6. Java之导入Excel 后端篇
  7. UnityShader - 模拟动态光照特效
  8. Linux下MariaDB 安装及root密码设置(修改)
  9. C#对称加密(3des)和非对称加密(rsa)算法
  10. 二分图匹配匈牙利算法BFS实现