[论文阅读笔记28]Deep Biaffine Attention for Neural Dependency Parsing_biaffine注意力矩阵讲解-程序员宅基地

技术标签: 深度学习  人工智能  NER  神经网络  

题目

Deep Biaffine Attention for Neural Dependency Parsing

论文:https://arxiv.org/pdf/1611.01734.pdf

代码:https://github.com/tdozat/Parser-v1
https://github.com/bamtercelboo/PyTorch_Biaffine_Dependency_Parsing

作者

Timothy Dozat
Stanford University 斯坦福大学
Christopher D. Manning
Stanford University 斯坦福大学

摘要

主是是研究依存句法分析方法。

解决基于图的依存句法分析两个问题:

1、哪两个节点连依存弧;

2、弧的标签是什么;

提出了biaffifine classififiers去预测arcs及它的labels;

模型

提出的模型是基于论文【3】【4】【5】进行的修改。

image-20210304113407635

第一点,模型使用了biaffine attention,而不是bilinear 或 传统的基于MLP attetion;

第二点,使用了biaffifine依赖标签分类器;

第三点,在应用Biaffine变换之前,我们将降维MLP应用于每个递归输出向量r_i;

从上图可以看出输入为词与词性向量拼接后的向量;经过bi-LSTM获得r_i; r_i经过两个MLPs,计算得到两隐变量h_arc-dep,h_arc-head; 最后一层h_arc-head还拼接了一个单位向量,利用U进行仿射变换,最后得到S,即arc分数矩阵,具体的公式理解如下:

biaffine并不是双线性(bilinear)或MLP机制,它使用一个仿射变换在单个LSTM输出状态r预测所有类别上的得分,提出的双仿射注意力机制(Biaffine Attention)可以看成为传统的仿射分类器:

image-20210304151020310

基于上式改进为:

image-20210304151256624

W采用多层LSTM堆叠计算后的结果,维度变为(d x d),b参数数也变成(d x 1)的向量;

由于句子中的词数是不定的,可是又要给每个词一个分数,这是一个不定类别分分类问题,上式(1)显然是满足不了,本文采用了两个MPLs来解决这个问题,把式(4)式(5)代入式(2)就得到最终的式(6):

image-20210304153232605

它的作用是使数据进行降维输出处理,可以对LSTM进行降维,然后输入到仿射层,避免过拟合。

双仿射分类器使用双线性层,比传统使用两层线性层和一个非线性激活单元的MLP网络更简单。同时,arc双仿射分离器对两种概率直接建模:

image-20210304152256539,结点j接受任意依赖的先验概率;

image-20210304152351518,结点j接受单词i依赖的概率;

使用另一个label双仿射分类器预测单词与其头结点间的依赖标签:

image-20210304152625602

U的维度为mxdxd的高维张量(m是标签个数,d是biaffine的输入维度);

arc分类器是不定类别分类器,类别数与序列长度有关,label分类器是固定类别分类器,类别数等于所有可能的依存关系数。

实验

image-20210304113702615

image-20210304113641108

总结

相关知识点

引用【2】的一段话来补充一下对句法分析相关概念的理解:

句法分析(syntactic parsing)是NLP中的关键技术之一,通过对输入的文本句子进行分析获取其句法结构。句法分析通常包括三种:
(1) 句法结构分析(syntactic structure parsing),又称短语结构分析(phrase structure parsing)成分句法分析(constituent syntactic parsing)。作用是识别出句子中的短语结构以及短语之间的层次句法关系。
(2)依存关系分析,又称依存句法分析(dependency syntactic parsing),简称依存分析(denpendency parsing),作用是识别句子中词与词之间的相互依存关系。
(3)深层文法句法分析,即利用深层文法,例如词汇化树邻接文法(Lexicalized Tree Adjoining Grammar, LTAG)、词汇功能文法(Lexical Functional Grammar,LFG)、组合范畴文法(Combinatory Categorial Grammar,CCG)等, 对句子进行深层的句法以及语义分析。

Dependency Parsing 主要有两种方法:Transition-basedGraph-based

例如句子“他给我一台美丽的高性多CPU电脑。”,通过LTP进行句法分析,句法分析结果:

image-20210304110537736

语义依赖结果:

image-20210304105926345

可以按照这个箭头建成一棵依存树。

相关技术

Transition-based

Chen & Manning (2014) 第一次把神经网络引入到Transition-based中去。—陈丹奇的这篇有有影响力( A fast and accurate dependency parser using neural

networks);

接下来,Weiss et al. (2015),Andor et al. (2016) ,使用beam search与条件随场损伯目标去做讨论这个话题;

接着,Dyer et al. (2015) ,(Kuncoro et al., 2016) ,通过建立句法结构分析的方法而不采用LSTM的方法去处理;

Transition-based parsing方法不可以使用机器学习直接预测边,而只是去预测transition算法的操作。

Graph-based

可以对某些边赋予概率或权重,然后构建maximum spaning tree (MST) ;

Kiperwasser & Goldberg (2016)提出neural graph-based parser;

Hashimoto et al. (2016)在多任务中包含了graph-based dependency parser;

Cheng et al. (2016)提出graph-based neural dependency parser;

参考

【1】Deep Biaffine Attention for Neural Dependency Parsing,http://www.hankcs.com/nlp/parsing/deep-biaffine-attention-for-neural-dependency-parsing.html

【2】Deep Biaffine Attention for Dependency Parsing,https://zhuanlan.zhihu.com/p/71553871

【3】Eliyahu Kiperwasser and Yoav Goldberg. Simple and accurate dependency parsing using bidirectional LSTM feature representations. *Transactions of the Association for Computational Linguistics, 4:313–327, 2016.

【4】Kazuma Hashimoto, Caiming Xiong, Yoshimasa Tsuruoka, and Richard Socher. A joint many-task model: Growing a neural network for multiple nlp tasks. arXiv preprint arXiv:1611.01587, 2016.

【5】 Hao Cheng, Hao Fang, Xiaodong He, Jianfeng Gao, and Li Deng. Bi-directional attention with agreement for dependency parsing. arXiv preprint arXiv:1608.02076, 2016.

happyprince.https://blog.csdn.net/ld326/article/details/115012759

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ld326/article/details/115012759

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签