栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【论文阅读】Deep Semantic Role Labeling with Self-Attention

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【论文阅读】Deep Semantic Role Labeling with Self-Attention

碎碎念

被迫要使用语义角色标注(Deep Semantic Role Labeling)技术,本来想直接使用github上的项目Tagger,奈何作者说自己本来用tensorflow写的,后来改成pytorch但没完全改(Model ensemble不可用,且预训练好的模型只提供了tensorflow版本的,需要用pytorch来调用),所以计划来读这篇文章,方便日后的改动

任务设置

给定一个句子,SRL(Semantic Role Labeling)的目标是定义每个目标动词的论元(可以简单理解为与目标动词有关系的词),并将他们分类为语义角色。如下图这个例子:

SRL就需要为“发表”这个目标动词定义论元,并指定这些论元的语义角色(包括who did what to whom, when and where等)

所以,SRL中就包括定义论元和分类论元这两个任务。有时在定义论元前,也会对明显的非候选论元进行剪枝,或者是在分类论元后,应用后处理流程去调整不一致的预测。在测试中,动态规划算法经常被用来寻找全局最优解。

问题:训练阶段是需要指定目标动词和论元角色的,但是测试阶段需不需要也指定目标动词呢?

引入

背景:最初的SRL方法是需要句法输入的(也就是把输入句子的结构同时告诉算法),后来提出了堆叠的LSTM网络并获得了很好的效果,这种方法能够端到端地处理潜在的句法结构

动机:现在的RNN方法存在两个问题:1)内存压缩问题,也就是处理长句和短句都使用单个固定大小的向量,这种不平衡的方式导致网络在长句上表现差、短句上浪费内存 2)缺乏处理树结构输入的方式(?)

提出的方法:1)能建立任意两个token之间的直接关系 2)提供了一个更灵活的方式案例挑选、表示和合成输入信息 3)这使得网络在领域外的数据集上表现也很好

网络

简介:输入原本的句子和动词mask,首先转化为embedding,然后将其放入深度注意力神经网络(由多个相同的层组成,每层包括非线性子层和注意力子层)来获取句子的嵌套结构和label之间的潜在关系,其中,非线性子层可选RNN/CNN/FNN或合成,分别称为DeepAtt-RNN/CNN/FFN以及Model ensemble。测试阶段,只有最高层的attention子层输出被放入逻辑回归层来进行最终的预测(训练阶段不也是?)

其中每个模块在当时看来可能是比较新的技术,但在2022年已经屡见不鲜了,这里就不再一一赘述了

问题:仍然不知道训练阶段需不需要输入谓词判别向量mask,还需要去代码中找答案

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/829169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号