InteractE: Improving Convolution-Based Knowledge Graph Embeddings by Increasing Feature Interactions

《InteractE》论文阅读 InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing Feature Interactionsabstract1.introduction二级目录三级目录 by Increasing Feature Interactions) abstract 众多的知识图(knowledge graphs)suffer from不完整性(incompleteness),可以通过在known facts上进行缺失lin 阅读详情

其它关于卷积知识图谱补全:
ConvR:Adaptive Convolution for Multi-Relational Learning
ConvE:Convolutional 2D Knowledge Graph Embeddings
ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network

1 介绍

1.1 引言

本篇论文是对于论文ConvE的模型进行改进,与ConvR论文类似,其都发现ConvE在实现实体entity与relation之间,进行交互时,只是进行简单的进行entity和relation之间的向量进行简单的堆积,其交互能力很低(来源于ConvR论文),大于只有20%的交互,与ConvR相比,该论文InteractE采用另外一种策略,增加其交互能力。

1.2 提高交互方法

  • feature permutation(特征进行全排类)
  • a novel feature reshaping(新型的reshape方式)
  • circular convolution(循环神经网络)

2 模型

2.1 Feature Permutation

生成 e s e_s es​和 e r e_r er​的t-random排列, P t = [ ( e s 1 , e r 1 ) , . . . . , ( e s t , e r t ) ] \mathcal P_{t} = [(e_s^1, e_r^1), ....,(e_s^t, e_r^t)] Pt​=[(es1​,er1​),....,(est​,ert​)]作为一组,进行随机打乱,进行t次,每次随机打乱产生一组数据,产生t次数据,其作为输入数据的int_channel则为t,但由于所有的数据本质上是一样的,对每层进行卷积的卷积核应该一致,应该在初始时是一致的,在具体实现时采用分组卷积的形式。

2.2 Reshaping Function

在这里插入图片描述

  • Stack

堆叠的形式,ConvE在实现时采用这种方式,其交互能力很低,只有20%,但其操作比较简单。

  • Alternate

交替形式,其采用实体的feature和关系的feature交替的方式,能有效的提高交互,交互能力有所提升。

  • Chequer

这种方式交互更加彻底,其在使用时,将其所有元组进行交替,能够更加充分。

2.3 循环卷积

常规的卷积,在使用时,边界与边界之间没有任何关系,因此提出循环卷积,在卷积的时候,使其边界之间的内容进行交互。其交互的方式是使边界 ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋,其中k为kernal_size。在实现时,将 ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋左侧内容放到右侧边界, ⌊ k / 2 ⌋ \lfloor {k/2} \rfloor ⌊k/2⌋右侧内容放到左侧;同理下侧放到上侧,上侧放到下侧。
在这里插入图片描述
图解循环卷积:
在这里插入图片描述

2.4 整体模型图

在这里插入图片描述

  • 将头实体 e s 和 e r e_s和e_r es​和er​进行全排列,进行t次全排列,产生t个通道
  • 进行reshape,采用Chequer方式进行reshape
  • 进行卷积,采用循环卷积
  • 进行全连接,映射维度为 e s e_s es​的维度一致
  • 进行1-N评分,进行rank评分

2.5 评分函数

在这里插入图片描述

3 总结

在这里插入图片描述
在这里插入图片描述

4 代码

来源:在这

from helper import *

class InteractE(torch.nn.Module):
	"""
	Proposed method in the paper. Refer Section 6 of the paper for mode details 

	Parameters
	----------
	params:        	Hyperparameters of the model
	chequer_perm:   Reshaping to be used by the model
	
	Returns
	-------
	The InteractE model instance
		
	"""
	def __init__(self, params, chequer_perm):
		super(InteractE, self).__init__()

		self.p                  = params
		self.ent_embed		= torch.nn.Embedding(self.p.num_ent,   self.p.embed_dim, padding_idx=None); xavier_normal_(self.ent_embed.weight)
		self.rel_embed		= torch.nn.Embedding(self.p.num_rel*2, self.p.embed_dim, padding_idx=None); xavier_normal_(self.rel_embed.weight)
		self.bceloss		= torch.nn.BCELoss()

		self.inp_drop		= torch.nn.Dropout(self.p.inp_drop)
		self.hidden_drop	= torch.nn.Dropout(self.p.hid_drop)
		self.feature_map_drop	= torch.nn.Dropout2d(self.p.feat_drop)
		self.bn0		= torch.nn.BatchNorm2d(self.p.perm)

		flat_sz_h 		= self.p.k_h
		flat_sz_w 		= 2*self.p.k_w
		self.padding 		= 0

		self.bn1 		= torch.nn.BatchNorm2d(self.p.num_filt*self.p.perm)
		self.flat_sz 		= flat_sz_h * flat_sz_w * self.p.num_filt*self.p.perm

		self.bn2		= torch.nn.BatchNorm1d(self.p.embed_dim)
		self.fc 		= torch.nn.Linear(self.flat_sz, self.p.embed_dim)
		self.chequer_perm	= chequer_perm

		self.register_parameter('bias', Parameter(torch.zeros(self.p.num_ent)))
		self.register_parameter('conv_filt', Parameter(torch.zeros(self.p.num_filt, 1, self.p.ker_sz,  self.p.ker_sz))); xavier_normal_(self.conv_filt)
	#96
	def loss(self, pred, true_label=None, sub_samp=None):
		label_pos	= true_label[0]; 
		label_neg	= true_label[1:]
		loss 		= self.bceloss(pred, true_label)
		return loss

	def circular_padding_chw(self, batch, padding):
		upper_pad	= batch[..., -padding:, :]
		lower_pad	= batch[..., :padding, :]
		temp		= torch.cat([upper_pad, batch, lower_pad], dim=2)

		left_pad	= temp[..., -padding:]
		right_pad	= temp[..., :padding]
		padded		= torch.cat([left_pad, temp, right_pad], dim=3)
		return padded

	def forward(self, sub, rel, neg_ents, strategy='one_to_x'):
		sub_emb		= self.ent_embed(sub)
		rel_emb		= self.rel_embed(rel)
		comb_emb	= torch.cat([sub_emb, rel_emb], dim=1)
		chequer_perm	= comb_emb[:, self.chequer_perm]
		stack_inp	= chequer_perm.reshape((-1, self.p.perm, 2*self.p.k_w, self.p.k_h))
		stack_inp	= self.bn0(stack_inp)
		x		= self.inp_drop(stack_inp)
		x		= self.circular_padding_chw(x, self.p.ker_sz//2)
		x		= F.conv2d(x, self.conv_filt.repeat(self.p.perm, 1, 1, 1), padding=self.padding, groups=self.p.perm)
		x		= self.bn1(x)
		x		= F.relu(x)
		x		= self.feature_map_drop(x)
		x		= x.view(-1, self.flat_sz)
		x		= self.fc(x)
		x		= self.hidden_drop(x)
		x		= self.bn2(x)
		x		= F.relu(x)

		if strategy == 'one_to_n':
			x = torch.mm(x, self.ent_embed.weight.transpose(1,0))
			x += self.bias.expand_as(x)
		else:
			x = torch.mul(x.unsqueeze(1), self.ent_embed(neg_ents)).sum(dim=-1)
			x += self.bias[neg_ents]

		pred	= torch.sigmoid(x)

		return pred
论文笔记:AAAI 2020 InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing 1. 前言 论文链接:https://arxiv.org/pdf/1911.00219.pdf github:https://github.com/malllabiisc/InteractE 现有的大多数知识图都存在不完整的问题,可以通过基于已知事实推断缺失的链接来缓解这种情况。一种实现此目的的流行方法是生成实体和关系的低维嵌入,并使用它们进行推断。 ConvE 是最近提出的一种基于卷积神经网络的知识图谱嵌入方法,它在实体和关系嵌入的2D重塑上应用卷积过滤器,以捕获其组件之间的丰富交互。但是,ConvE 可 阅读详情

相关推荐

可解释性机器学习_Feature Importance、Permutation Importance、SHAP

本文讲的都是建模后的可解释性方法。建模之前可解释性方法或者使用本身具备可解释性的模型都不在本文范围内~ 哪些特征在模型看到是最重要的? 关于某一条记录的预测,每一个特征是如何影响到最终的预测结果的? 从大量的记录整体来考虑,每一个特征如何影响模型的预测的? 为什么这些解释信息是有价值的 调试模型用 指导工程师做特征工程 指导数据采集的方向 指导人们做决策 建立模型和人之间的信任 本文主要讲三种方法: 特征重要性(Feature Importance) Permutation Importance SHAP

李梦瑶的博客 2万+

ConvR:Adaptive Convolution for Multi-Relational Learning

关于卷积的知识图谱补全: ConvE:Convolutional 2D Knowledge Graph Embeddings ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network ConvR论文:点击 1 介绍 本论文的思想是在ConvE论文的基础上进行改进,进行知识图谱补全。ConvE成功实现实体和关系之间的交互,但是实体和关系之间的交互非常少,仅仅只有百分

REfusing的博客 3627

请查收!顶会AAAI 2020录用论文之知识图谱篇

2020年人工智能顶级会议AAAI录用的知识图谱领域的研究论文已为您准备就绪,请查收!

语言智能技术笔记簿 5588

基于神经网络的知识图谱推理模型 (ConvE、ConvKB、ConvR、InteractE)

ConvE是一种使用嵌入上的 2D 卷积来预测知识图中缺失链接的模型,在学习及提取实体及关系的语义特征方面具有很强的优势。,dropout随机丢弃,防止过拟合,通常表示某种加权或融合。。通过这样处理,可以捕获源实体、目标实体和关系 r 之间的复杂交互关系。除此之外,该模型提出了1-N评分方法,采用一对 (s, r) 并针对所有实体 o 对其进行评分 ,使得模型的评测速度相比1-1评分方法提升了300倍。

weixin_54387067的博客 1438

InteractE: Improving Convolution-based Knowledge Graph Embeddings by Increasing Feature Interactions

研究问题 在ConvE的基础上提出了InteractE,通过进一步增强关系嵌入与实体嵌入间的交互,提升链路预测任务的效果 背景动机 ConvE通过将一维的实体和关系嵌入转换为二维并拼接作为卷积操作的输入来增强交互性,这对提升性能有一定效果,但这种简单方法的交互性还不够。 符号定义 假设实体嵌入和关系嵌入分别表示为es=(a1,…,ad),er=(b1,…,bd)\boldsymbol{e}_{s}=\left(a_{1}, \ldots, a_{d}\right), \boldsymbol{e}_{r

羊城迷鹿的博客 1551

Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化

Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化 目录 Python计算树模型(随机森林、xgboost等)的特征重要度及其波动程度:基于熵减的特征重要度计算及可视化、基于特征排列的特征重要性(feature permutation)计算及可视化 #仿真数据生成 #构建随机森林分类器 #特征重要度计算及可视化(基于熵减) #基于特征排列的特征重要性(f

data+scenario+science+insight 1895

ConvKB代码:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network

1 介绍 本篇论文以卷积的方式对知识图谱进行补全,在实现时进行预测三原组是正确的还是错误的,该方法在论文ConvK的基础上进行改进,其在逻辑实现的过程中十分简单,通过相应的模型图即可知道其原理。 2 模型 2.1 模型图 2.2 模型解释 将三元组进行embedding,将(h,r,t)(h, r, t)(h,r,t)三元组转化为(vh,vr,vt)\left(\boldsymbol{v}_{h}, \boldsymbol{v}_{r}, \boldsymbol{v}_{t}\right)(vh​,vr

REfusing的博客 3435

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4689

【ACL2020】SEEK:一种轻量级的知识图谱嵌入框架

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要12分钟跟随小博主,每天进步一丢丢作者: 林哲乐方向: 知识图谱、问答知乎专栏:https://zhuanlan.zhihu.co...

zenRRan的博客 1009

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

某勾网之登录过程逆向

拉勾网的登录过程逆向,包含请求头(X-S-HEADER、X-K-HEADER、X-SS-REQ-HEADER等) 以及 请求参数/返回数据的加解密。

shanf7921的博客 3万+

AAAI2020知识图谱论文集

全部列表:https://aaai.org/Conferences/AAAI-20/wp-content/uploads/2020/01/AAAI-20-Technical-Program-Schedule.pdf 本文精选了知识图谱有关论文集: 知识图谱补全(Graph Completion) 1322: Improving Entity Linking by Modeling Latent Entity Type Information Shuang Chen; Jinpeng Wang; Feng .

夏栀的博客 3215

AI一键生成带货短视频:电商直播的未来

随着电子商务行业的快速发展,直播带货已成为一种极为有效的营销手段。然而,传统的人工直播方式存在诸多局限性,如人力成本高、主播培训周期长等问题。为了解决这些挑战,一种基于AI技术的一键生成带货视频解决方案应运而生——这就是“Anchor Crafter”。这项创新技术不仅能够自动创建高质量的带货视频,而且还能实现人物与商品之间的自然交互,极大地提升了用户体验。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 2202

多模态知识表示系列——ConvKB模型学习

A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 引用格式: GB/T7714:Nguyen D Q , Nguyen T D , Nguyen D Q , et al. A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network[C]// Procee

KH的博客 1677

SSH 远程登录报错:kex_exchange_identification: Connection closed.....

不知道为啥会出现这样的情形,最近这段时间登录都是正常的,不知道哪里抽风了,就提示这个。错误信息 kex_exchange_identification: Connection closed by remote host 出现在尝试使用 SSH 连接到远程服务器过程中,表明在密钥交换阶段的一开始,远程主机就关闭了连接。服务器的sshd_config文件中配置错误,可能是不允许的加密算法、修订文件中的语法错误,或者未正确指定用于SSH的HostKey。如果当前已有太多活动连接,新的连接尝试可能会被拒绝。

飞越蓝天的专栏 8296

一条 POST 创建整棵业务对象树,SAP Gateway Deep Create 的运行机制与 ABAP 实现

SAPUI5 的 OData V2 Model 支持 Deep Create,可以为一个新建的 transient parent context 创建 Navigation Property 下的 subentity,并把这些子实体的数据合并进 Root Entity 对应的 OData 请求 Payload。销售组织是否合法,客户是否允许下单,物料是否存在,销售区域是否匹配,计量单位是否正确,项目类别如何确定,定价是否成功,合作伙伴如何派生,交货工厂如何确定,这些都可能在一次创建过程中被触发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 146

基于卷积神经网络的KBC

基于卷积神经网络的KBC 原文: A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 摘要 本篇文章是将图片卷积的概念扩展并应用于知识图谱点的嵌入表示,简单来说,是对知识图谱中的每一个三元组组合而成的嵌入矩阵(vh,vr,vt)∈Rk×3,(v_h,v_r,v_t)\in R^{k \times 3},(vh​,vr​,vt​)∈Rk×3,k表示的是嵌入向量的维度,与不同的1×

ruichuang2的博客 1032

深入RKNN Toolkit2:自定义算子与内存优化秘籍

本文系统探讨了RKNNToolkit2在模型转换中的关键技术与优化策略。首先介绍了该工具包的基础功能及模型转换流程,重点阐述了自定义算子的实现方法,包括算子分析、代码编写和注册集成等步骤,并以ReduceLogSumExp算子为例进行案例分析。在内存优化方面,详细论述了模型量化、内存复用和参数配置等策略,通过具体案例展示优化效果。最后结合智能安防项目实践,分享了YOLOv5模型部署经验及问题解决方案。文章指出,随着AI技术发展,RKNNToolkit2将在算子支持、量化技术和硬件适配等方面持续优化,为边缘计

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1387

论文阅读 ConvKB

A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network 基于卷积神经网络的知识库补全嵌入模型 发表于:NAACL-HLT 2018 摘要:本文提出了一种新的用于知识库完成的嵌入模型——ConvKB。我们的模型ConvKB通过使用卷积神经网络改进了最先进的模型,从而可以捕获实体和知识库中的关系之间的全局关系和过渡特征。在ConvKB中,每个三元组(头实体、关系、尾实体)表示为一个3列

qq_41669355的博客 3600

web逆向伪瑞数案例:宝武资源有限公司(面向对象补环境)

声明:该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关前言:之所以称伪瑞数案例,是因为该网站,无论是补环境的方法、还是环境都和瑞数差不多,因为第一次遇到这种网站,不确定是不是瑞数的一种,所以这里称伪瑞数,有知道的道友,可以评论区评论下,共同进步。,这里就不做多介绍了1.瑞数中的是t​s,而该网站是_ss。2.外链js代码不能格式化,否则补环境时会遇到一个超过数组长度的报错。3.call执行后的虚拟文件中有超多的debugger。

老衲爱洗头的博客 2534

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

知识图谱嵌入模型 (KGE) 的总结和比较

知识图谱嵌入(KGE)是一种利用监督学习来学习嵌入以及节点和边的向量表示的模型。它们将“知识”投射到一个连续的低维空间,这些低维空间向量一般只有几百个维度(用来表示知识存储的内存效率)。向量空间中,每个点代表一个概念,每个点在空间中的位置具有语义意义,类似于词嵌入。一个好的KGE 应该具有足够的表现力来捕获 KG 属性,这些属性解决了表示关系的独特逻辑模式的能力。并且KG 可以根据要求添加或删除一些特定属性。以下是常见的KGE 模型在捕获关系类型方面的比较,我们将对这些常见的模型进行比较。

deephub 6754

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

知识图谱嵌入|KG-BERT代码 ConvE ConvR

烦 重新下载typora导致我的图片全没了(大家在已经有一个typora的情况下千万别重新下载!)【】部分原本是图片 KG-BERT开源项目实现 python安装 电脑里现有三个版本的python 2.7 3.7 以及3.6 安装3.6 在路径 C:\Users\xxx\AppData\Local\Programs\Python\Python36 【】 Q: 左侧的几个环境有什么不同?怎么使用? A: 选了第一行的virtualenv environment,下上两个按顺序都试了一下(一顿瞎操作)1.几.

weixin_43235829的博客 3002

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【可解释性机器学习】Permutation Feature Importance

排列特征重要性测量我们在排列了特征值后模型预测误差的增加,这打破了特征与真实结果之间的关系。

wxl173的博客 1326

【深度学习】Permutation feature importance (PFI) 置换特征重要性方法解释机器(深度)学习

对于深度学习模型,PFI可以用于解释神经网络的输入特征对模型输出的影响。然而,需要注意的是,PFI的计算成本较高,因为需要对每个特征执行多次模型评估。此外,对于某些复杂的深度学习模型,PFI的解释可能仍然有一定的限制,因为模型的复杂性可能导致一些特征交互的影响难以捕捉。这种方法的核心在于,如果一个特征对模型很重要,那么对该特征进行置换会导致模型性能下降,因为模型失去了对该特征的依赖性。差异越大,说明相应特征越重要。原始模型评估: 使用原始的、未改变的输入数据,计算模型的性能指标(例如准确度、损失等)。

Keep Patching 小菜鸡的debug记录~ 4645

【AAAI 2020】全部接受论文列表(六)

今年共收到的有效论文投稿超过 8800 篇,其中 7737 篇论文进入评审环节,最终收录数量为 1591 篇,收录率为 20.6%, 虽然今年 AAAI 论文收录率的分母要比去年的 7700 ...

yinizhilianlove的博客 9210

这应该是最全的机器学习模型可解释性的综述

模型可解释性方面的研究,在近两年的科研会议上成为关注热点,因为大家不仅仅满足于模型的效果,更对模型效果的原因产生更多的思考,这样的思考有助于模型和特征的优化,更能够帮助更好的理解模型本身和提升模型服务质量。本文对机器学习模型可解释性相关资料汇总 survey。

Python学习与数据挖掘 1144
上一篇: ConvR:Adaptive Convolution for Multi-Relational Learning
下一篇: ConEx:Convolutional Complex Knowledge Graph Embeddings+代码
Re:fused
博客等级 码龄9年 474粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值