知识推理——CNN模型总结(持续更新)

news2024/12/28 17:56:23

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

最后修改时间:2023.05.10

目录

1.ConvE

1.1.解决的问题

1.2.优势

1.3.贡献与创新点

1.4.方法

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

1.4.2.ConvE具体实现

1.4.3.1-N scoring

1.5.实验

1.5.1.数据集

1.5.2.实验设置

1.5.3.Inverse Model

1.6.实验结果

1.6.1.去不去除inverse relations

1.6.2.模型效率

 1.6.3.消融实验

1.6.4.Indegree和PageRank分析

 1.7.总结与感想


1.ConvE

论文:Convolutional 2D Knowledge Graph Embeddings

会议/期刊:2018 AAAI

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

1-N scoring主要是为了算法加速,评估速度可以提升300倍。

1-1 scoring:对三元组(s,r,o)打分

1-N scoring:给定(s,r),然后尾实体取全部实体,同时进行打分。

        并且作者说1-N scoring达到了batch normalization的效果。如果将N变为0.1N,那么计算速度变快,收敛速度变慢,这与降低batch的大小是一样的效果。

1.5.实验

1.5.1.数据集

        WN18(WN18RR:去除WN18中的inverse三元组)、FB15k(FB15k-237:去除FB15k中的inverse三元组)、YAGO-3、Countries。

1.5.2.实验设置

        参数采用网格搜索的方法获得。

        作者还研究了对2D卷积做修改对结果的影响:(1)用全连接层代替2D卷积;(2)用1D卷积代替2D卷积。(3)不同filter大小。

1.5.3.Inverse Model

        主要是为了证明inverse relation的危害。作者构建了一个之前讲过的简单的rule-based模型,只学习inverse relations,没有学习知识图谱具体的语义,称作inverse model。

        怎么确定是不是inverse relations呢?(inverse model怎么做的呢?)

        假定inverse relations量与总数据量的比例正比于训练集量与总数据量的比例。判断(s,r1,o)和(o,r2,s)同时出现的概率是否大于等于0.99-\begin{pmatrix} f_{v}+f_{t} \end{pmatrix},其中f_{v}f_{t}分别表示验证集和测试集占总数据量的比例,如果满足,则表明r1和r2互为inverse关系。

        在测试inverse model的时候,验证测试样本在测试集外有没有inverse matches:如果找到了k个inverse matches,那么对这k个matches进行排名;如果没有找到match,那么随机为测试三元组生成排名。

(这里之前理解错了,感谢这位博主:论文浅尝 | Convolutional 2D knowledge graph embedding_开放知识图谱的博客-CSDN博客)

1.6.实验结果

        采用filtered设置,即评估时只排序没在train、test、validate中出现过的三元组。

1.6.1.去不去除inverse relations

        可以看到,如果不去除数据集中的inverse relations(WN18和FB15k),那么简单的inverse model可以得到很好的结果。inverse model在FB15k-237和YAGO3-10上的效果很差,因为没有inverse relations。但是为什么在WN18RR上的效果还行呢?因为生成WN18RR的时候,没有去掉对称关系,如“similar to”,这个被inverse model学到了。(这段应该是这个意思,如有错误,麻烦指出哈~)

1.6.2.模型效率

        可以看出,ConvE仅凭0.23M的参数量就打败了DistMult。

 1.6.3.消融实验

         验证各个环节对ConvE模型的影响,其中隐藏层dropout(全连接层输出的dropout)的影响是最大的。

1.6.4.Indegree和PageRank分析

Indegree

        ConvE在YAGO3-10、FB15k-237数据集上效果好,因为这些数据集具有相同的特点,就是节点有非常高的relation-specific indegree。比如,节点“美国”对于关系“出生于”的indegree超过10000。而这10000多个节点差异非常大,包括演员、作家、商人等,正是ConvE这种复杂模型才能建模这种差异。

        WN18RR和WN18就是indegree低的数据集,对于这种数据集,shallow模型就足以表达了。

实验设定:

        在四个数据集上做实验:low-WN18、high-FB15k、high-WN18(去掉indegree低的节点)、low-FB15k(去掉indegree高的节点)。

实验结论:

        deeper模型,如ConvE,适合建模复杂的知识图谱(FB15k);shallow模型,如DistMult,适合建模简单一点的知识图谱(WN18)。

PageRank

        PageRank度量有向图中节点的重要程度,通过迭代计算节点的indegree得到。一个节点的indegree值正比于该节点的indegree、邻居的indegree、邻居的邻居的indegree,以及所有其他节点的indegree。这里应该能感受到迭代计算的需要了吧。

        经统计,WN18中PageRank值最高的节点的PageRank比YAGO3-10和Countries中的最高PageRank值小一个数量级,比FB15k中的最高PageRank小4倍。

        作者发现,DistMult和ConvE在Hits@10指标上的性能差异正比于测试集的平均PageRank值,可以看一下Table 6。

 1.7.总结与感想

        ConvE模型是首个用卷积神经网络解决知识推理问题的模型,看完这篇论文觉得受益匪浅。作为一个从视觉转NLP的人,一直也在思考二者结合和技术通用的问题。作者利用了视觉中常用的2D卷积,提升特征的表达能力。还使用了多种dropout方法、1-N scoring等。然后,我觉得作者特别好的一个点就是分析了数据集的问题,并且对问题做了修正。最后,我觉得作者的实验做的也非常的充分,实验环节设计的也非常合理。

2.ConvKB

论文:A Novel Embedding Model for Knowledge Base Completion Based on Convolutional Neural Network

会议/期刊:Proceedings of NAACL-HLT 2018

2.1.解决的问题

2.2.优势

        首先,作者先分析了一下ConvE的缺点:ConvE的输入只考虑了实体和关系两个嵌入向量间的局部关系,没有考虑整个三元组(头实体,关系,尾实体),也就是忽略了transition-based模型中最重要的transitional特性。

2.3.贡献与创新点

2.4.方法

2.5.实验

2.6.实验结果

2.7.总结与感想

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

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

相关文章

RK3568平台开发系列讲解(驱动基础篇)GPIO控制方式

🚀返回专栏总目录 文章目录 一、使用GPIO sysfs接口控制IO二、使用libgpiod控制IO沉淀、分享、成长,让自己和他人都能有所收获!😄 📢GPIO是 General Purpose I/O 的缩写,即通用输入输出端口,简单来说就是MCU/CPU可控制的引脚, 这些引脚通常有多种功能,最基本的是高…

3D点云在线查看利器【LasViewer】

LasViewer是一个免费的3D点云在线查看工具,支持LAS/LAZ格式的3D点云文件在浏览器中的直接渲染。访问地址:LasViewer。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 1、LasViewer快速上手 和BimAnt的其他在线工具一样,LasViewer的…

Windows11使用Cpython 编译文件 报错 error: Unable to find vcvarsall.bat 完美解决方法

开发环境说明: python 3.6.2Vs studio 2017 (已经安装C桌面开发) 我的 vcvarsall.bat 路径为: "D:\vsstudio\VC\Auxiliary\Build\vcvarsall.bat" 一般在Vs studio 的此安装路径下 修改python源代码 修改文件为 python3.6.2\Li…

shell脚本练习题

名为lianxi.txt的文件内容如下: Steve Blenheim:238-923-7366:95 Latham Lane, Easton, PA 83755:11/12/56:20300 Betty Boop:245-836-8357:635 Cutesy Lane, Hollywood, CA 91464:6/23/23:14500 Igor Chevsky:385-375-8395:3567 Populus Place, Caldwell, NJ 2387…

[230516] TPO71 | 2022年托福阅读真题第4/36篇 | Electrical Energy from the Ocean | 11:50

目录 7101 Electrical Energy from the Ocean Paragraph 1 问题1 Paragraph 2 问题2 Paragraph 3 问题3 Paragraph 4 问题4 做错 Paragraph 5 问题5 做错 Paragraph 6 问题6 Paragraph 7 问题7 Paragaph 8 问题8 做错 Paragraph 2 问题9 问题10 7101…

GateWay源码解析

前言 一、GateWay的自动配置 springboot 在引入一个新的组件时&#xff0c;一般都会有对应的XxxAutoConfiguration类来对该组件进行配置&#xff0c;GateWay也不例外&#xff0c;在引入了以下配置后&#xff0c;就会生成对应的GatewayAutoConfiguration自动配置类 <!-- gat…

15.Python Package目录及打包并发布到PyPI

欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 文章目录 0.基本介绍1.__init__.py文件1.1 Regular Package1.2 namespace package 2.Python Package工程2.1 安装及打包并发布到pypi2.2 将Python文件编译成.so 3.包的搜索路径参考资料 0.基…

go test coverage 单测覆盖率

单元测试的最终统计标准就是单测覆盖率&#xff0c;统计单测总体覆盖了多少行代码。一般来说&#xff0c;我们只需要关注增量代码的覆盖率&#xff0c;而非全量代码。增量代码就是本次迭代改动的代码&#xff0c;比如本次迭代改动了100行代码&#xff0c;我们保证单测能覆盖到这…

【Vue工程】007-Scss

【Vue工程】007-Scss 文章目录 【Vue工程】007-Scss一、概述1、CSS 问题三大缺点CSS 预处理器 2、简介3、中文网4、Slogan 二、基本使用1、安装2、配置全局 scss 样式文件3、在 vite.config.ts 配置4、组件中使用5、访问 http://localhost:5173/home 一、概述 1、CSS 问题 参考…

【OJ比赛日历】快周末了,不来一场比赛吗? #05.13-05.19 #14场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-05-…

AC AP简单组网

AC AP简单组网 1、LSW1交换机配置2、AC1控制器配置3、初步效果查看3.1、查看PC1获取地址情况3.2、查看AP获取地址情况 4、AC1控制器配置组网5、组网成功验收5.1、查看AP的物理地址&#xff08;dis arp)5.2、ensp模拟的拓扑结果5.3、STA链接到AP网络5.3、查看STA地址及连通性 vl…

ChatGPT:讯飞星火认知大模型-科大讯飞

讯飞星火认知大模型 科大讯飞推出的新一代认知智能大模型&#xff0c;拥有跨领域的知识和语言理解能力&#xff0c;能够基于自然对话方式理解与执行任务。从海量数据和大规模知识中持续进化&#xff0c;实现从提出、规划到解决问题的全流程闭环。 进入科大讯飞官网点击注册 …

【枚举+数学】CF1781D Many Perfect Squares

Many Perfect Squares - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意&#xff1a; 思路&#xff1a; n&#xff0c;1~50&#xff1a;对n暴力 x&#xff0c;0~1e18&#xff1a;O(1)计算 完全平方数&#xff1a;p^2 Code&#xff1a; #include <bits/stdc.h>#de…

liunx将普通用户提升为管理员

场景 用户要求将账号设置为管理员 操作如下 先登录服务器用管理员账号 打开配置文件/etc/sudoers 此时你会发现文件是空的&#xff0c;为什么呢&#xff1f;原因如下 因为当时使用的是管理员账号 需要切换成root才可以修改此文件 命令sudo su - 操作见图片 操作完之后 用户…

深入浅出解析 JVM 中的 Safepoint

1. 初识 Safepoint-GC 中的 Safepoint 最早接触 JVM 中的安全点概念是在读《深入理解 Java 虚拟机》那本书垃圾回收器章节的内容时。相信大部分人也一样&#xff0c;都是通过这样的方式第一次对安全点有了初步认识。不妨&#xff0c;先复习一下《深入理解 Java 虚拟机》书中安…

初识Linux篇:第二篇

初识Linux&#xff1a;第二篇 初识Linux&#xff1a;第二篇1.操作系统2.命令行3.Linux的基本指令3.1.ls指令3.2pwd指令3.3cd指令3.4touch指令3.5mkdir指令3.6.rmdir指令 && rm 指令 4.yum中有趣的程序4.1小火车4.2牛4.3Linux_logo(企鹅)4.4在Linux上打开网页 总结 初识…

【Spring全家桶与Mybatis】Spring环境下整合Mybatis(纯注解方式)

⭐️前面的话⭐️ 本文已经收录到《Spring框架全家桶系列》专栏&#xff0c;本文将介绍在Spring环境下整合mybatis。 &#x1f4d2;博客主页&#xff1a;未见花闻的博客主页 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4cc;本文…

520快给你喜欢的女生发个表白软件吧!【手把手教学】

文章目录 项目介绍一、创建项目二、设计窗体三、添加事件总结 项目介绍 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 开发工具&#xff1a;Visual Studio 2022 本项目是用C# Winform开发的一个小软件。 实现非常简单&#xff0c;下面看一下这个软件运行…

Vector - CAPL - CANoe硬件CANCANFD参数

如何更改与 CAPL 的 CAN 总线通信的波特率&#xff1f; 解决办法 通常我们常见的配置方法主要有两种方法可以使用 CAPL 更改波特率&#xff0c;使用函数 setBtr或使用 canSetConfiguration、canFdSetConfiguration。 1. setBtr(long channel, byte btr0, byte btr1) setBtr仅…

flink watermark介绍及watermark的窗口触发机制

Flink的三种时间 在谈watermark之前&#xff0c;首先需要了解flink的三种时间概念。在flink中&#xff0c;有三种时间戳概念&#xff1a;Event Time 、Processing Time 和 Ingestion Time。其中watermark只对Event Time类型的时间戳有用。这三种时间概念分别表示&#xff1a; …