论文阅读:Sequence to sequence learning for joint extraction of entities and relations

news/2024/9/24 13:23:09/文章来源:https://www.cnblogs.com/zinger/p/18329681

用以解决重叠关系问题

GGNNs模型

GGNNs(门控图神经网络,Gated Graph Neural Networks)是一种处理图结构数据的神经网络模型。它是图神经网络(GNN)的一个变体,使用了类似于长短时记忆网络(LSTM)中的门控机制来更有效地处理图中的信息流。

GGNNs的核心机制

GGNNs的核心思想是通过在图结构中使用带门控的循环神经网络(如GRU或LSTM)来更新节点的状态。这种结构使得网络能够在多个时间步内维持和传递节点状态,进而捕捉节点间长距离的依赖关系。

GGNNs的组成

  1. 节点状态更新:每个节点的状态是通过考虑其邻居的状态来更新的。这一过程通常使用GRU(门控循环单元)来实现,其中节点的当前状态和从邻居聚合的信息共同决定了节点状态的更新。
  2. 信息聚合信息从节点的邻居那里聚合,通常使用加权和的形式。权重可以是固定的,也可以是通过学习得到的,依赖于节点间的关系类型。
  3. 门控机制:门控机制帮助模型决定在每个时间步应该保留多少旧状态,以及接受多少新的输入信息。这是通过一个sigmoid激活函数来实现的,它输出一个在0到1之间的值,作为更新的权重。

本文提出的模型


编码器解码器两部分组成。

  • 编码器模块包含嵌入层Bi-LSTM层GGNNs层
  • 解码器模块包含注意力层LSTM关系元组生成层

编码器

首先建立了一个字典词汇表V,其中包含原始句子token预定义的关系集R两个特殊的分隔标记(";"和"and")、起始目标标记(SOS)和未知词标记(UNK)。

嵌入层

嵌入层包括单词嵌入层字符嵌入层
给定一个句子x,它包含n个token和目标实体-关系三元组。

  • 首先,根据字典词汇V将输入标记转换为数字身份,然后利用预训练的词嵌入权重参数来初始化输入句子token,得到\(w_i^0\)
  • 接着,采用具有Max-pooling函数的卷积神经网络来提取每个单词的特征向量,得到\(w_i^1\)
  • 因此,输入表示为\(W_i = [w_i^0,w_i^1]\)

Bi-LSTM层

由于Bi-LSTM具有很强的句子语义特征提取能力,我们通过一层Bi-LSTM对词嵌入进行获取,以获取每个词的词隐藏状态。

  • 首先前向 LSTM 将词顺序地嵌入到词隐藏状态\(\overrightarrow{h_i}\)中。
  • 其次后向 LSTM 将输入词嵌入到隐藏状态\(\overleftarrow{h_i}\)中。
  • 最后,我们得到每个词的词表示:\(h_i = [\overrightarrow{h_i}, \overleftarrow{h_i}]\)

GGNNs层

为了更好地将区域特征与序列结构化特征相结合,我们通过依赖边缘自边缘前向边缘后向边缘的关系建立了每个节点的边缘\(M\)。并利用GGNNs层来保持整个句子的图和序列结构。

\[g_i = GGNNs(M, h_i) \]

解码器

为了预测关系元组,采用一层单向LSTM作为解码器模块。

  • 在每个训练阶段 t,单向 LSTM 采用目标词嵌入\(y_i\)编码上下文隐藏状态\(h_i\)来预测新的解码隐藏阶段。

\[s_t = LSTM(h_{t-1}, y_{t-1}, s_{t-1}) \]

  • 采用Bahdanau注意力机制来获取每个单词的上下文表示。
  • 最后,通过线性连接运算得到每个生成的词的概率值:

\[r_t = We_t + b \]

注意力层

  • 在训练过程中,我们采用交叉熵来优化生成的令牌和直接的目标标签令牌。
  • 然而,在推理过程中,解码器生成了一个在原始句子中找不到的单词、特殊标记和关系集 R。
  • 因此,使用掩码方法(在映射层利用了Softmax函数),解决训练阶段和推理阶段的不一致问题。

Liang Z, Du J. Sequence to sequence learning for joint extraction of entities and relations[J]. Neurocomputing, 2022, 501: 480-488.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/773548.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于网站安全狗卸载了仍然能拦截的问题解决

关于网站安全狗卸载了仍然能拦截的问题解决如果你将所有safedog的文件删除的话,可能会导致Apache服务启动不了例如:这里没有提示相关安全狗的信息是因为我已经删除了Apache访问safedog的配置代码,只是提醒错误信息会如上图所示。 导致这种原因的结果大概率是因为Apache的con…

搭建自动化 Web 页面性能检测系统 —— 部署篇

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:琉易 liuxianyu.cn这一篇是系列文章: 搭建自动化 Web 页面性能检测系统 —— 设计篇 搭建自动化 Web 页面性能检测系统 —— 实现…

如何根据Linux Kernel Mailing List打patch

Linux内核正在不断开发和改进。每天的补丁都会提交到Linux内核邮件列表(LKML)。其中一些补丁被接受并合并到主流Linux内核中,供用户使用,而其他补丁则永远无法使用。 有时从LKML获取补丁是有用的,例如,如果你在内核中开发,或者只是因为你想保持在前沿。另一个原因可能是…

基于Drone实现CI/CD【0到1架构系列】

CI/CD是持续性集交和持续性部署,简单来讲就是自动化构建和自动化部署。目前有很多集成方案,也有很多组装方案,只要能实现自动化构建出制品,再自动部署到生产环境就行。 目前很多源代码都集成了CI/CD功能,drone也是目前比较流行的一个方案,简单易用,高性能。 前提条件 已…

Django项目快速上手:从安装到创建应用

Django项目快速上手:从安装到创建应用 安装Django 首先,确保你已经安装了 Python 和 pip。然后,使用以下命令来安装 Django : pip install django安装成功后,你就可以开始创建Django项目了。 创建Django项目 打开你的终端或命令提示符,然后使用 django-admin 命令来创建一…

Pulsar客户端消费模式揭秘:Go 语言实现 ZeroQueueConsumer

前段时间在 pulsar-client-go 社区里看到这么一个 issue:import "github.com/apache/pulsar-client-go/pulsar"client, err := pulsar.NewClient(pulsar.ClientOptions{URL: "pulsar://localhost:6650", }) if err != nil {log.Fatal(err) } consumer, er…

配置 setting.py

配置 setting.py Django项目的配置主要通过settings.py文件完成。这个文件位于项目的根目录下(与manage.py同级)。为了让你的应用更加本地化,你可能需要修改一些设置,比如语言、时区等。打开settings.py文件,并找到以下设置进行修改: # setting.py# 语言设置(en-us:英文…

关于GPIO输出模式下3种频率的解释

配置GPIO输出模式时,有3种频率可以选择,2MHz、10MHz和50MHz,如下图:这三个频率说的是I/O口驱动电路的响应频率而不是输出信号的频率。芯片的内部做了多个响应频率不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路。通过选取不同频率的输出驱动电路达到最佳的…

二手车交易预测模型笔记

一、梯度下降法 梯度下降法就是一种通过求目标函数的导数来寻找目标函数最小化的方法。梯度下降目的是找到目标函数最小化时的取值所对应的自变量的值,目的是为了找自变量X。 梯度:是一个矢量,其方向上的方向导数最大(意味着在这个方向上,函数的值增加最快。从图形上看,就…

Qt+OpenCascade开发笔记(二):windows开发环境搭建(二):Qt引入occ库,搭建基础工程模板Demo和发布Demo

前言Open CASCADE是由Open Cascade SAS公司开发和支持的开源软件开发平台,旨在为特定领域快速开发程序而设计。它是一个面向对象的C++类库,提供了丰富的几何造型、数据交换和可视化等功能,成为许多CAD软件的核心组件。  本篇描述搭建Qt开发occ环境过程。 Demo注意:用的是…