知识推理——CNN模型总结(一)

news2024/12/24 22:01:14

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

最后修改时间:2023.05.12

目录

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.总结与感想

2.ConvKB

2.1.解决的问题

2.2.优势

2.3.贡献与创新点

2.4.方法

2.4.1方法介绍

 2.4.2.ConvKB与TransE的转换推导

2.5.实验

2.5.1.数据集

 2.5.2.实验细节

2.6.实验结果

2.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的输入只考虑了实体和关系两个嵌入向量间的局部关系,没有考虑整个三元组(头实体,关系,尾实体)(全局 global),并且忽略了transition-based模型中最重要的transitional特性。

2.3.贡献与创新点

(1)设计了ConvKB模型,用神经网络表示transition-based模型中的transitional特性;

(2)在WN18RR和FB15k-237数据集上验证算法,SOTA。

2.4.方法

2.4.1方法介绍

流程:

(1)求实体h,t和关系rk维嵌入向量,v_{h}v_{r}v_{t}

(2)每个三元组的嵌入可表示为k\times 3的矩阵,\left ( v_{h},v_{r},v_{t} \right )

(3)将矩阵输入卷积层,生成特征图:卷积层一共有\tau1\times 3的filters,每一个filter循环处理矩阵的每一维,得到k\times 1的特征图。最终得到\tauk\times 1的特征图;

(4)将所有的特征图concat成单一的特征向量,也就是\tau k\times 1维;

(5)特征向量与权重向量做点积,得到当前三元组的分数,用来判断三元组是否valid。

 i个特征图的计算公式:

ConvKB的打分函数f为:

        注意:这里的打分函数给出的是每个三元组的implausibility score,也就是三元组越假,分数就越高,三元组越真,分数就越低。这里与ConvE的是反的,ConvE应该是三元组越真,分数越高。

损失函数为:

 问题:这里我按照正样本负样本的得分都是正的来推导,推不出minimize loss这个做法,难道负样本的得分其实是负的?取绝对值后大吗?下面贴一个原文对打分函数的解释:

 2.4.2.ConvKB与TransE的转换推导

         先附上一个各模型的打分函数表:

         下面一段文字是ConvKB转换为TransE的参数设置:

        推导一下~

concat(g([v_{h},v_{r},v_{t}]\ast filters))\cdot w =g([v_{h},v_{r},v_{t}]\ast [1,1,-1])\cdot 1 =g(v_{h}+v_{r}-v{t}) =\left |v_{h}+v_{r}-v{t} \right | or =(v_{h}+v_{r}-v{t})^{2}

         所以,ConvKB可以看作是TransE的延申,可以建模全局关系。

2.5.实验

2.5.1.数据集

        WN18RR和FB15k-237。

 2.5.2.实验细节

        按照伯努利分布采样corrupted样本中的头实体或尾实体。

        利用TransE来初始化实体和关系的嵌入。

2.6.实验结果

2.7.总结与感想

        感觉与ConvE比,这篇的思想还是更常规一点,二者虽然都是从CNN的角度来解决知识表示问题,但是思路还是完全不一样的。

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

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

相关文章

TiDB x CAPCOM | 为在线游戏提供灵活、可靠、可扩展的数据库服务

通过 TiDB 连接全球极限场景和创新场景,是 PingCAP 长期坚持的国际化战略。目前,在全球已有超过 3000 家企业选择 TiDB。无论在游戏、金融、物流、互联网还是智能制造等行业,基于规模化 OLTP 扩容、实时 HTAP 分析等应用场景,Ping…

在idea工具下,使用protobuf自动生成java代码,超详细教程

新项目需要使用google protobuf 生成java代码 开始第一步,网上很多教程都说下载protobuf support插件,但是我下载了很多idea版本,就是找不到这个protobuf support 插件 在idea 中选择file ->settings ->plugin , 搜索protobuf,一般都…

[SWPUCTF] 2021新生赛之Crypto篇刷题记录(11)

[SWPUCTF] 2021新生赛之Crypto篇刷题记录① [SWPUCTF 2021 新生赛]crypto6[SWPUCTF 2021 新生赛]ez_caesar[SWPUCTF 2021 新生赛]crypto10[SWPUCTF 2021 新生赛]pigpig[SWPUCTF 2021 新生赛]traditional NSSCTF平台:https://www.nssctf.cn/ PS:记得所有…

渤海银行有点火,李伏安有点烦

文丨新熔财经 作者丨向雪徊 5月8日,大连银保监局连开七份罚单,处罚对象为渤海银行股份有限公司大连分行及相关责任人。 大银保监罚决字〔2023〕27号显示,渤海银行大连分行存在五项主要违法事实:一是未执行统一授信;…

【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整

文章目录 套索工具自由套索多边形套索磁性套索工具 魔棒工具快速选择工具选区的编辑和调整 套索工具 自由套索 套索工具的用法,点击鼠标左键拖动鼠标建立选区。当选区没闭合时,松开鼠标会自动闭合选区。套索工具灵活快速但不够准确。套索工具的选项栏是…

拥有Type-C接口的显示器上 绝大多数人都不知这么大作用

大多数的数码爱好者认识Type-C接口,估计都是从2015年的安卓手机开始的。 但估计不少用户不知道的是,电脑端的显示器上也有Type-C接口。 如果你是一个刚入门想买显示器的朋友,下面可以分别看看显示器最常见的几种接口的介绍,结合你…

Sentinel 入门使用

目录 一. Sentinel简介1.1Sentinel简介1.2 Sentinel与Hystrix的区别1.3 名词解释 二. sentinel控制台2.1 下载启动控制台2.3 客户端接入控制台2.4 Rest整合Sentinel2.5 Feign 整合Sentinel 想了解Sentinel具体的使用规则就点这里呀!!! 一. Se…

FISCO BCOS v3.3.0发布,新增块内分片技术,单链性能突破10万TPS

FISCO BCOS开源社区一贯秉承开源、开放、联合共建的原则,致力于链接社区力量将FISCO BCOS打造成更加完美的区块链底层平台。 作为FISCO BCOS开源社区重要的发起者和推动者,微众区块链持续参与开源生态共建。在社区通力协作下,FISCO BCOS v3.…

【Linux】RK3399平台开发系列——设备树的学习笔记

学习内容 RK3399平台开发系列讲解(设备树篇)设备树的详解 - 视频介绍 简介 设备树(Device Tree)是用于描述硬件设备和系统关系的树形数据结构,主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中&#xff0c…

ARM和X86、X86和X64、Intel和AMD、CPU和GPU介绍

一、ARM和X86 X86 和 ARM 都是CPU设计的一个架构。X86 用的是复杂指令集。ARM用的是精简指令集。 指令集其实就是机器码,机器码上是汇编,汇编之上是程序语言例如java、c、c#。 复杂指令集是在硬件层面上设计了很多指令,所以编程会简单些。 精…

ChatGLM是什么?ChatGLM和ChatGPT有什么区别?

ChatGLM是什么? ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练,它具备多领域知识、代码能力、常识推理及运用能力;支持与用户通过自然语言对话进行交互,处理多种自…

IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途

​ IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途 什么是直流发电机 通过使用直流发电机,我们可以发电,发电机 4个作用是将机械能转化为电能。直流发电机主要用于特殊应用或本地发电,直流发电机的运行特性非常重要,…

企业快递管理软件使用教程

想要分析企业快递管理软件的作用,首先要明白,企业快递管理的大致情况,以及面临的难题是什么? 随着经济的发展,以及快递行业的不断前行。因公寄件早已成了企业运作必不可少的环节之一,试问哪家企业没有寄递…

vue项目中echarts自适应问题高级解决方案

一、问题描述 1.1 页面布局 项目首页中有多个echarts图表,如下图所示: 页面布局如下: index页面(绿框)是父页面,父页面中包含A页面(红框)和B页面(橙框)&…

黑客是怎么练成的(自学黑客四大知识点)

前言 网学黑客技术的人越来越多了,不少人都不知道该怎么学,今天就来详细的说一说黑客是如何炼成的。 首先,什么是黑客? 黑客 :泛指擅长IT技术的电脑高手 黑客一词,源自英文Hacker,早期其实就…

选择排序详解(Selection sort)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想 二、核心思想三、图形展示四、代码实现1、优化之前2、优化之后 五、算法描述1、问题描述2、算法过程 六、算法分析1、时间复杂度2、空间复杂度3、算法稳定性 一、简单释义 1、算法概念 选择…

Web3中文|生成式 AI 参与的未来,行业该做好哪些准备?

依照 AI 技术目前的发展态势, AI 可能会颠覆诸多行业的未来。 当前 AI 技术的突破让大众关注到了特定类型的 AI ——生成式 AI。生成式 AI 围绕分析、自动化和内容生成展开,生成内容兼具质和量。 了解生成式 AI 如何融入实用应用程序的是非常有必要的。根…

并查集算法

文章目录 1. 原理介绍2. 并查集的应用3. find()函数的定义与实现4. 并查集的join函数5. 路径压缩优化算法-优化find6. 路径压缩优化算法按秩合并算法 1. 原理介绍 并查集是一种用于维护集合关系的数据结构,它支持合并集合和查询元素所在的集合。它的基本思想是将元…

【人力资源管理】第1集 免费开源ERP: Odoo 16 Employees员工管理 构建一体化企业人力资源管理

文章目录 前言一、概览二、主要功能1.成功管理您的员工 集中您的所有 HR 信息2.跟踪时间,考勤3.休假管理4.经简化的费用管理5.轻松完成员工评估全面评估6.简化招聘流程7.简化招聘流程 总结 前言 人力资源 适用于当代企业 一体化:招聘、考评、报销、 休假…

android room数据库简单使用

Room来源 Android采用Sqlite作为数据库存储。由于Sqlite代码写起来繁琐且容易出错,因此,开源社区逐渐出现了各种ORM(Object Relational Mapping)库。常见的有ORMLite, GreenDAO等。Google也意识到推出自家ORM库的必要性&#xff0…