Estimating Node Importance in Knowledge Graphs Using Graph Neural Networks

本文主要是介绍Estimating Node Importance in Knowledge Graphs Using Graph Neural Networks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一篇将GNN运用在预测知识图谱(Knowledge Graph)节点重要性的文章,被KDD2019接收。文中提出了GENI模型,在GNN聚合信息的过程中只聚合一个标量(score)而不是聚合节点的embedding。

Introduction

KG
知识图谱可以看做是一个有向多关系图,并且节点之间可能存在不止一条边。

Given a KG, estimating the importance of each node is a crucial task that enables a number of applications such as recommendation, query disambiguation, and resource allocation optimization.
An importance score is a value that represents the significance or popularity of a node in the KG.

Method

table of symbols

在这里插入图片描述

score aggregation

在第 l l l层上,中心节点 i i i通过加权聚合邻居节点的score-estimation s ℓ − 1 ( j ) s^{\ell-1}(j) s1(j)来更新自己的score-estimation
s ℓ ( i ) = ∑ j ∈ N ( i ) ∪ { i } α i j ℓ s ℓ − 1 ( j ) s^{\ell}(i)=\sum_{j \in N(i) \cup\{i\}} \alpha_{i j}^{\ell} s^{\ell-1}(j) s(i)=jN(i){i}αijs1(j)为了获得初始的 s 0 ( i ) s^0(i) s0(i),模型通过一个全连接层将节点的embedding映射成初始的score: s 0 ( i ) = Scoring N e t w o r k ( z ⃗ i ) s^{0}(i)=\text { Scoring} \mathrm{Network}\left(\vec{z}_{i}\right) s0(i)= ScoringNetwork(z i)
聚合过程是在聚合标量而不是向量,所以本文的GNN模型和其他大多数GNN模型不太一样。

Predicate-Aware Attention Mechanism

知识图谱一般可以写成三元组的形式:(subject, predicate, object),可以看做是图上一条边上的(起点,边的类型,终点)。为了更好地得到在聚合过程中的 α i j ℓ \alpha_{i j}^{\ell} αij的值,一个合理的想法是 α i j ℓ \alpha_{i j}^{\ell} αiji,j之间边的类型有关系。使用 p i j m p^m_{ij} pijm表示i,j之间第m条边的类型, ϕ ( p i j m ) \phi(p^m_{ij}) ϕ(pijm)是这条边的向量表示。通过attention机制计算出 α i j ℓ \alpha_{i j}^{\ell} αij

α i j ℓ = exp ⁡ ( σ a ( ∑ m a ⃗ ℓ ⊤ [ s ℓ ( i ) ∥ ϕ ( p i j m ) ∥ s ℓ ( j ) ] ) ) ∑ k ∈ N ( i ) ∪ { i } exp ⁡ ( σ a ( ∑ m a ⃗ ℓ ⊤ [ s ℓ ( i ) ∥ ϕ ( p i k m ) ∥ s ℓ ( k ) ] ) ) \alpha_{i j}^{\ell}=\frac{\exp \left(\sigma_{a}\left(\sum_{m} \vec{a}_{\ell}^{\top}\left[s^{\ell}(i)\left\|\phi\left(p_{i j}^{m}\right)\right\| s^{\ell}(j)\right]\right)\right)}{\sum_{k \in N(i) \cup\{i\}} \exp \left(\sigma_{a}\left(\sum_{m} \vec{a}_{\ell}^{\top}\left[s^{\ell}(i)\left\|\phi\left(p_{i k}^{m}\right)\right\| s^{\ell}(k)\right]\right)\right)} αij=kN(i){i}exp(σa(ma [s(i)ϕ(pikm)s(k)]))exp(σa(ma [s(i)ϕ(pijm)s(j)]))

Centrality Adjustment

通常来说,图上入度越大的节点它的重要性就越高,所以可以使用 c ( i ) = log ⁡ ( d ( i ) + ϵ ) c(i)=\log (d(i)+\epsilon) c(i)=log(d(i)+ϵ)计算初始的中心性得分,但这样直接计算出来的结果不能准确地衡量入度和中心性之间的关系,所以又加上了两个可学习的参数 γ \gamma γ β \beta β c ∗ ( i ) = γ ⋅ c ( i ) + β c^{*}(i)=\gamma \cdot c(i)+\beta c(i)=γc(i)+β通过综合考虑 c ∗ ( i ) c^{*}(i) c(i)和最后一层的输出 s L ( i ) s^{L}(i) sL(i)得到节点i最终的score s ∗ ( i ) = σ s ( c ∗ ( i ) ⋅ s L ( i ) ) s^{*}(i)=\sigma_{s}\left(c^{*}(i) \cdot s^{L}(i)\right) s(i)=σs(c(i)sL(i))

architecture

在这里插入图片描述
为了增强注意力的效果,模型使用了多头注意力机制

We define s h ′ ℓ − 1 ( j ) s_{h}^{\prime \ell-1}(j) sh1(j)to be node i’s score that is estimated by (ℓ − 1)-th layer, and fed into h-th SA head in ℓ-th (i.e., the next) layer, which in turn produces an aggregation s h ℓ ( i ) s_{h}^{\ell}(i) sh(i) of these scores:

s h ℓ ( i ) = ∑ j ∈ N ( i ) ∪ { i } α i j h , ℓ s h ′ ℓ − 1 ( j ) s_{h}^{\ell}(i)=\sum_{j \in \mathcal{N}(i) \cup\{i\}} \alpha_{i j}^{h, \ell} s_{h}^{\prime \ell-1}(j) sh(i)=jN(i){i}αijh,sh1(j)
在这里插入图片描述
在第 l l l层会得到 H l H^l Hl s h l ( i ) s^l_h(i) shl(i)值,将它们取平均后得到 s h ′ l ( i ) s_{h}^{\prime l}(i) shl(i)作为第 l + 1 l+1 l+1层的输入。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于Estimating Node Importance in Knowledge Graphs Using Graph Neural Networks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904379

相关文章

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件