知识推理——CNN模型总结

news2024/11/16 15:33:41

记录一下我看过的利用CNN实现知识推理的论文。

最后修改时间:2023.05.08

目录

1.ConvE

1.1.解决的问题

1.2.优势

1.3.贡献与创新点

1.4.方法

1.4.1 为什么用二维卷积,而不是一维卷积?

1.4.2.ConvE具体实现


1.ConvE

论文:Convolutional 2D Knowledge Graph Embeddings

会议/期刊:

1.1.解决的问题

(1)以往的模型都太浅了,虽然可以快速用于大型数据集,但是学到的特征表达能力比较差;

(2)另一个比较严重的问题是数据集的泄露问题“test set leakage”,也就是训练集出现过的关系三元组,取了反后,在测试集中又出现了一遍。比如,(A,妈妈,B)在训练集中出现过,(B,女儿,A)又在测试集中出现。这个问题导致一些很简单的rule-based模型也可以达到很好的效果。

1.2.优势

(1)采用多层神经网络,特征表达能力强;

(2)参数量很少,相同的实验效果,参数量比DistMult少8倍,比R-GCN少17倍;

(3)可以高效建模大型数据集常出现的入度高的节点。

1.3.贡献与创新点

(1)设计2D卷积模型,进行链接预测;

(2)设计1-N scoring步骤,提升训练和评估的速度;

(3)参数量少;

(4)随着知识图谱复杂性的提升,ConvE与一些shallow算法的差距成比例增大;

(5)分析了各数据集泄露的问题,并提出了不泄露的版本;

(6)sota。

1.4.方法

1.4.1 为什么用二维卷积,而不是一维卷积?

       NLP任务中大多采用的是一维卷积,包括下面要提到的ConvKB算法,但是ConvE却创新的使用了二维卷积。因为二维卷积使得嵌入向量间的交互点变多了,模型的表达能力变强。举个栗子~

一维卷积:

两个一维嵌入分别为[a \quad a \quad a][b \quad b \quad b],两个嵌入concat后得到向量[a \quad a \quad a \quad b \quad b \quad b]

一维卷积核大小为3,那么卷积的过程中,两个向量只有连接点处的值(比如[a \quad b \quad b][a \quad a \quad b])发生了交互,并且交互程度会随着卷积核大小的增加而变深。

二维卷积:

两个二维嵌入分别为\begin{bmatrix} a& a & a\\ a& a& a \end{bmatrix}\begin{bmatrix} b & b & b\\ b & b & b \end{bmatrix},两个嵌入concat后得到嵌入\begin{bmatrix} a & a & a\\ a & a & a\\ b& b &b \\ b& b & b \end{bmatrix}

二维卷积核大小为3×3,卷积的过程中,卷积核可以建模concat边界线处的交互,特征交互更多。

换一个模式(将嵌入的几行调换一下位置),得到\begin{bmatrix} a & a & a\\ b & b & b\\ a& a &a \\ b& b & b \end{bmatrix},那么可以发现交互的点更多了。

1.4.2.ConvE具体实现

        链接预测算法一般由编码模块打分模块构成,编码模块负责得到实体和关系的嵌入向量,打分模块负责为三元组打分。

        ConvE由卷积层全连接层构成。

下面是ConvE的算法流程图

步骤:(可结合上图食用~)

(1)在所有的实体和关系的嵌入矩阵中,查找当前计算的实体和关系的嵌入向量e_{s}r_{r}

(2)对嵌入向量做2D的reshape,得到嵌入矩阵\bar{e_{s}}\bar{r_{r}},维度从k\times 1变为k_{w}\times k_{h}

(3)concat嵌入矩阵\bar{e_{s}}\bar{r_{r}},并将结果作为卷积的输入,输出cm\times n的特征图;

(4)将特征图reshape成c\times m\times n\times 1的向量,并利用全连接层将向量映射为k维;

(5)然后将该向量与实体嵌入向量做内积,进行匹配,得到分数。这里涉及到1-N scoring,后面会讲到。

(6)为了训练,对分数进行logistic sigmoid函数计算,得到最终分数p

打分函数:

        f是ReLU激活函数。

损失函数:

        如果三元组存在,t_{i}为1,否则,为0。最小化损失函数。

Dropout:

        作者还使用了很多种dropout手段,包括对嵌入矩阵卷积后的特征图全连接层后的输出进行不同概率的dropout。

1.4.3.1-N scoring

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊我在阿里第一年375晋升的心得

前言 思来想去,觉得这个事情除了领导赏识大佬抬爱之外,还是挺不容易的,主观认为有一定的参考价值,然后也是复盘一下,继续完善自己。 绩效 首先晋升的条件就是要有个好绩效,那么我们就先基于绩效这个维度…

基于`IRIS`列存储,我们能做什么

文章目录 基于IRIS列存储,我们能做什么简介使用场景如何使用列存储什么情况下使用列储存统计数据数量count计算字段平均值avg计算字段和sum 列存储与行存储区别总结 基于IRIS列存储,我们能做什么 简介 列存储是一种数据存储方式,与传统的行…

Win11-RTX4060安装Pytorch-GPU干货避坑指南

文章目录 1、版本要和pytorch官网对应,CUDA11.8及其对应版本的cudnn2、CUDA Toolkit安装出现自动重启3、Python版本4、配置永久国内镜像源5、要在激活的虚拟环境里安装pytorch6、进入python后检查是否gpu配置成功7、在虚拟环境中启动jupyter notebook8、conda中inst…

【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)

目录 零、学习内容一、镜像结构二、Dockerfile四、基于 java:8-alpine 构建自己的 Java 项目镜像 零、学习内容 镜像结构Dockerfile 语法构建 Java 项目 ① 之前使用的镜像都是 DockerHub 官方提供的 ② 开发者需要将自己的微服务制作为镜像 一、镜像结构 镜像是由应用程序及其…

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP(地址解析协议)英文全称“Address Resolution Protocol”,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确…

ConcurrentHashMap实现原理

1. 哈希表 1.1 介绍 哈希表是一种key-value存储数据的结构,根据key即可查到对应的value。 如果所有的键是整数,我们可用简单的无序数组来表示,键作为数组索引,值即为对应的值 1.2 链式哈希表 链式哈希表本质由一组链表构成。每…

用MacBook实操:docker本地部署mysql+php+nginx坏境

大家好,我拿出我的macbook,带着大家实操用docker部署mysqlphpnginx环境。 之前的小白实操搭建Nginx1.2.0PHP7.0MySQL5.7Thinkphp5项目,看这篇就够了,欢迎阅读。 之前的是服务器上配置环境,现在在mac本地搭建全栈开发环境。 目录…

LiveData详解(实战+源码+粘性事件解决方案)

1. 简介 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 activity、fragment 或 service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周…

mysql查询之子查询

0. 概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又叫子查询。 查询可以基于一个表或多个表。子查询可以添加到SELECT、UPDATE和DELETE中,而且可以进行多层嵌套。子查询常用操作符有 ANY(SOME),ALL、IN、EXISTS。也可以使用比较运…

Codeforces Round 872 (Div. 2) A-C

Start&#xff1a;May/08/2023 20:05UTC8 Length&#xff1a;02:00 这次总该上分了吧 A LuoTianyi and the Palindrome String 1 s, 256 MB x8531 都一样是-1&#xff0c;普通回文是size()-1 #include<bits/stdc.h> using namespace std; #define int long long #def…

架构-软件工程模块-1

概述 这一模块选择题的分值比较多&#xff0c;案例题和论文也有能用上的地方。主要知识点会特殊标注或说明。 软件开发生命周期 软件工程三要素&#xff1a;方法、工具、过程。不会直接考&#xff0c;但可帮助记忆理解。 传统软件生命周期方法学分为&#xff1a;&#xff08;选…

使用sharding-scaling和sharding-proxy做分库分表数据迁移

背景&#xff1a; 现在有一个有一张表被分成了两张表&#xff0c;t_score1 ,t_score2&#xff0c;但后期数据量激增&#xff0c;两张表不能满足业务需求&#xff0c;扩张为2个库每个库2张表&#xff0c;即数据库 ds_0下有t_score1 ,t_score2 &#xff0c;数据库ds1下有t_score1…

浏览器插件的使用

善于使用浏览器插件&#xff0c;能起到高效上网的作用。 Microsoft Edge 是全球广受欢迎的浏览器&#xff0c;浏览器本身具有快速、简单和轻量级的特点。一流的性能系统和访问速度极大提升您的浏览体验。 对于浏览器的用户来说&#xff0c;安装一些实用的插件&#xff0c;能让…

Navicat设置Oracle数据库主键自增1的方法步骤

一、 创建如下表 Oracle数据库不同于Mysql、Sql Server数据库&#xff0c;Oracle数据库主键自增不能在建表时直接设置&#xff0c;而是需要通过序列和触发器进行设置&#xff01; 二、创建序列 1 2 3 4 5 6create sequence SEQ_DEVICEDATAINFO start with 1 …

iOS可视化动态绘制连通图

上篇博客《iOS可视化动态绘制八种排序过程》可视化了一下一些排序的过程&#xff0c;本篇博客就来聊聊图的东西。在之前的博客中详细的讲过图的相关内容&#xff0c;比如《图的物理存储结构与深搜、广搜》。当然之前写的程序是比较抽象的。上篇博客我们以可视化的方式看了一下各…

数据库(Sql server语言)(一)

例题&#xff1a;&#xff08;不介绍创建和插入&#xff09; star表 ●查询每个组合的名称及其成员个数 select g.name,count(*) 成员个数 from star s,stargroup g where s.gid g.gid group by g.name 如果不写where s.gidg,gid会出现成员个数重复 ●查询身高最高的团…

UG NX二次开发(C#)-建模-反向片体(SheetBody)的法向矢量

文章目录 1、前言2、在UG NX中构建一个片体3、在UG NX中查看片体的法向矢量4、采用UFun函数来实现法向反向5、代码实现6、测试效果1、前言 在UG NX中,一张曲面获取其所属的片体(SheetBody)对象,其在构建时有默认的法向矢量,有时处于功能的需求,比如加工时工件的材料去除方…

探秘信息检索:原理、实现与应用

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

(一)如何使用Spring Boot和MyBatis框架实现即时通信系统中的用户注册功能

文章目录 一、引言二、Spring Boot和MyBatis框架介绍三、注册1. 前端界面实现2. 后端数据持久化操作3. 代码示例 四、实现效果四、个人经验分享五、结语 一、引言 本文将介绍基于Spring Boot和MyBatis框架开发的注册功能实现&#xff0c;该功能是基于Linux的即时通信系统的一个…

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…