知识推理——CNN模型总结

news/2024/12/5 5:29:28/

记录一下我看过的利用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.ppmy.cn/news/62387.html

相关文章

干货分享|一款让企业知识管理变得简单高效的工具软件

互联网发展到下半场,很多企业都开始进行数字化转型,在这个过程中,很多企业都忽视了极为重要的一点——企业的知识管理。如今信息化的时代,可以说企业的知识管理是引领企业数字化转型、进行创新的关键。 企业知识管理的实质就是对…

【shell脚本】函数

函数 一、shell函数1.1函数的定义1.3 函数返回值1.4函数传参1.5递归的使用 二、实验2.1实验一2.2实验二2.3实验三 一、shell函数 使用函数可以避免代码重复使用函数可以将大的过程风为若干个小的功能模块,代码的可读性更强 1.1函数的定义 【1】 function 函数名 …

JAVA中的异常处理机制是怎样的?

在 Java 中,异常处理机制是一种可以使程序在出现错误时进行自我修复的机制。Java 的异常处理机制可以通过抛出异常和捕获异常来实现。当一个异常被抛出时,程序会停止运行并输出异常信息,如果在代码中合适的位置进行捕获并处理异常&#xff0c…

[Tool] python项目中集成使用Firebase推送功能

背景介绍 目前,App推送功能已经非常普遍,几乎所有App都有推送功能。推送功能可以自己实现,也可以使用第三方提供的推送服务(免费的收费的都有)。本文主要介绍使用Firebase提供的推送服务Firebase Cloud Messaging&…

Python进阶——实现人脸识别

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 今天我们来实现一下人脸识别~ 先问大家一个问题 什么是百度Aip模块? 百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中 本文写的是使用百度AI的在线接口SDK模块(baidu-aip&#…

【2023年Mathorcup杯数学建模竞赛C题】电商物流网络包裹应急调运与结构优化--完整作品分享

1.问题背景 2.论文摘要 为了应对电商物流网络中物流场地和线路电商物流网络中物流场地和线路上货量波动的情况, 设计合理的物流网络调整方案以保障物流网络的正常运行。本文运用 0-1 整数规划模型,多目标动 态规划模型,给出了问题的结果。 针…

LLMs 记忆体全新升级:六大新功能全面出击,用户体验值拉满!

LLMs 时代之下,CVP Stack 必不可少。 其中,C 代表以 ChatGPT 为代表的大模型,它在 AI 程序中充当中央处理器的角色;V 代表 Vector Database,即以 Zilliz Cloud 和 Milvus 为代表的向量数据库,为大模型提供知…

.net7 通过 JsonTranscoding 实现 gRPC 与 Web API 一鱼两吃

目标 在一个网站内,用一套proto即提供gPRC 调用,又提供 Web API 调用。 实现方法 根据微软官方James Newton King(Newtonsoft.json 作者)的文章,.net7 里面提供了 JsonTranscoding 特性,只需要三步&#x…