知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

学习的博客: 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现

知识图谱特征学习的模型分类汇总

知识图谱嵌入(KGE):方法和应用的综述
论文: Knowledge Graph Embedding: A Survey of Approaches and Applications
知识表示学习的研究与进展

基于距离的翻译模型

这类模型使用基于距离的评分函数评估三元组的概率,将尾节点视为头结点和关系翻译得到的结果。这类方法的代表有TransE、TransH、TransR等;
在这里插入图片描述
上面三个方法的基本思想都是一样的,我们以TransE为例来介绍一下这些方法的核心思想。在空间中,三元组的头节点h、关系r、尾节点t都有对应的向量,我们希望的是h + r = t,如果h + r的结果和t越接近,那么我们认为这些向量能够很好的表示知识图谱中的实体和关系。

https://blog.csdn.net/wp_csdn/article/details/79607727

https://zhuanlan.zhihu.com/p/50491255

基于语义的匹配模型

知识图谱嵌入(KGE):方法和应用的综述

基于CNN的句子特征提取

基于CNN的句子分类TensorFlow实现

下图中是第一个作者中的插图。 但是我没懂,因为一般过滤器是需要三个参数的,(size, step,num)。 这里给出了了size和个数,但是没有给出步长, size为2和3是没有办法访问整个句子的! 不懂?
在视觉处理上,我们的滤波器滑过图像的局部块,但在 NLP 中,我们通常使用滤波器滑过矩阵的一整行(一个单词)。因此,我们的滤波器的“宽度”通常与输入矩阵的宽度相同。高度或者说区域大小可能会有所不同,但通常每次将窗口滑过 2-5 个单词。

三大特征提取器比较: RNN、CNN与Transformer

在这里插入图片描述
通常而言,绝大部分NLP问题可以归入上图所示的四类任务中:一类是序列标注,这是最典型的NLP任务,比如中文分词,词性标注,命名实体识别,语义角色标注等都可以归入这一类问题,它的特点是句子中每个单词要求模型根据上下文都要给出一个分类类别。第二类是分类任务,比如我们常见的文本分类,情感计算等都可以归入这一类。它的特点是不管文章有多长,总体给出一个分类类别即可。第三类任务是句子关系判断,比如Entailment,QA,语义改写,自然语言推理等任务都是这个模式,它的特点是给定两个句子,模型判断出两个句子是否具备某种语义关系;第四类是生成式任务,比如机器翻译,文本摘要,写诗造句,看图说话等都属于这一类。它的特点是输入文本内容后,需要自主生成另外一段文字。

解决这些不同的任务,从模型角度来讲什么最重要?是特征抽取器的能力。尤其是深度学习流行开来后,这一点更凸显出来。因为深度学习最大的优点是“端到端(end to end)”,当然这里不是指的从客户端到云端,意思是以前研发人员得考虑设计抽取哪些特征,而端到端时代后,这些你完全不用管,把原始输入扔给好的特征抽取器,它自己会把有用的特征抽取出来。

模型框架

在这里插入图片描述

知识抽取

知识提取过程有三方面,一是得到标题中每个单词的embedding,二是得到标题中每个单词对应的实体的embedding。三是得到每个单词的上下文embedding。每个单词对应的embedding可以通过word2vec预训练的模型得到。这里我们主要讲后两部分。

实体embedding
实体特征即标题中每个单词对应的实体的特征表示,通过下面四个步骤得到:

  • 识别出标题中的实体并利用实体链接技术消除歧义
  • 根据已有知识图谱,得到与标题中涉及的实体链接在一个step之内的所有实体所形成的子图
  • 构建好知识子图以后,利用基于距离的翻译模型得到子图中每个实体embedding(利用的是与上面构成的子图中节点之间的关系)
  • 得到标题中每个单词对应的实体embedding。

上下文embedding
尽管目前现有的知识图谱特征学习方法得到的向量保存了绝大多数的结构信息,但还有一定的信息损失,为了更好地利用一个实体在原知识图谱的位置信息,文中还提到了利用一个实体的上下文来进一步的刻画每个实体,具体来说,即用每个实体相连的实体embedding的平均值来进一步刻画每个实体,计算公式如下:

新闻特征提取KCNN

在知识抽取部分,我们得到了三部分的embedding,一种最简单的使用方式就是直接将其拼接:
在这里插入图片描述
但这样做存在几方面的限制:

连接策略打破了单词和相关实体之间的联系,并且不知道它们的对齐方式。
单词的embedding和对应实体的embedding是通过不同的方法学习的,这意味着它们不适合在单个向量空间中将它们一起进行卷积操作。
连接策略需要单词的embedding和实体的embedding具有相同的维度,这在实际设置中可能不是最优的,因为词和实体embedding的最佳维度可能彼此不同。
因此本文使用的是multi-channel和word-entity-aligned KCNN。具体做法是先把实体的embedding和实体上下文embedding映射到一个空间里,映射的方式可以选择线性方式g(e) = Me,也可以选择非线性方式g(e) = tanh(Me + b),这样我们就可以拼接三部分作为KCNN的输入:
在这里插入图片描述

基于注意力机制的用户兴趣预测

获取到用户点击过的每篇新闻的向量表示以后,作者并没有简单地作加和来代表该用户,而是计算候选文档对于用户每篇点击文档的attention,再做加权求和,计算attention:
在这里插入图片描述

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

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

相关文章

thinkphp用来做什么项目_thinkphp第1课:使用thinkphp创建一个项目

一、thinkphp第一课:1、在网站根目录下,建立一个项目名称orange;2、在orange目录下,创建一个入口文件index.php:define(APP_DEBUG,true); //开启调试模式require(../TP/ThinkPHP.php);?>3、下载thinkphp核心包并解…

LeetCode 1005. K 次取反后最大化的数组和

1. 题目 给定一个整数数组 A,我们只能用以下方法修改该数组: 我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。) 以这种方式修改数组后,返回数…

Server操作Mxd文件详细讲解

Server操作Mxd文件详细讲解Server发布地图都是基于Mxd去发布的,这点与IMS使用axl文件差不多。一般来说,发布后mxd尽可能不要修改,或者在通过使用arcMap进行编辑后在重新发布。修改mxd会导致地图服务发生变化,因此,相对…

知识图谱入门知识(五)【转】秒懂词向量Word2Vec的本质

博文: 秒懂词向量Word2Vec的本质 什么是Word2Vec? 词性标注:是动词还是名词,样本(x,y)中,x是词语,y是它们的词性 f(x)->y 中的f(…

af_netlink_2、netlink简介

Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE)&am…

LeetCode 819. 最常见的单词

1. 题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。 返回出现次数最多,同时不在禁用列表中的单词。 题目保证至少有一个词不在禁用列表中,而且答案唯一。 禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分…

Java代码优化方案 J2ME内存优化

从几本书上,N个网站上整理的一些JAVA代码优化方案,最近的项目只有1M内存可用,必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) 如 : a不为空时 anew object()//这句代码执行时将有两个对象存在于内存中 较…

was 程序jvm_【保家护行航】WAS知识学习分享

文/王文平保家护行航:航是护航,是保障人真抓实干,持之以恒,切实做好运维保障本职工作,守护农行生产安全的务本崇实;航是领航,是保障人敬业敏学,精益求精,努力提高运维管理…

LeetCode 824. 山羊拉丁文

1. 题目 给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。 我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。 山羊拉丁文的规则如下: 如果单词以元音开头(a, e, i, o, u&am…

jQuery学习笔记:事件

一、页面载入1、ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。 简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法&#…

torch.nn.Module()

torch.nn.Module() 如果自己想研究,官方文档 它是所有的神经网络的根父类! 你的神经网络必然要继承! 模块也可以包含其他模块,允许将它们嵌套在树结构中。所以呢,你可以将子模块指定为常规属性。常规定义子模块的方法…

dlib 怎么安装vs2017_win10中的dlib库安装过程

之前试过很多方法结果都失败,最后终于发现一个成功的方法,先记一下以防忘记。参考:记一次Win10环境python3.7安装dlib模块趟过的坑由于我是通过Anaconda安装的Python,所以环境与这位博主的有所不同,所以具体情况需要根…

LeetCode 779. 第K个语法符号(找规律)

1. 题目 在第一行我们写上一个 0。 接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始) 例子: 输入: N 1, K 1 输出: 0输入: N 2, K 1 输出: 0输入: …

ADO.NET、ODP.NET、Linq to SQL、ADO.NET Entity 、NHibernate在Oracle下的性能比较

下面我对Oracle数据库在.NET平台下的主要几种数据访问方式进行测试。 下面是测试表: CREATE TABLE CUSTOMERS ( "CUSTOMER_ID" NUMBER NOT NULL , "FIRST_NAME" VARCHAR2(255 CHAR) NOT NULL , "LAST_NAME" VARCHAR2(255 CHAR) …

LeetCode 第 186 场周赛(1060/3107,前34.1%)

文章目录1. 比赛结果2. 题目1. LeetCode 5392. 分割字符串的最大得分 easy2. LeetCode 5393. 可获得的最大点数 medium3. LeetCode 5394. 对角线遍历 II medium4. LeetCode 5180. 带限制的子序列和 hard1. 比赛结果 做出来了 1、2 题,第3题模拟法,超时&…

torch.nn.embedding()

作者:top_小酱油 链接:https://www.jianshu.com/p/63e7acc5e890 来源:简书 内容:上述是以RNN为基础解析的 torch.nn.Embedding(num_embeddings, embedding_dim, padding_idxNone, max_normNone, norm_type2.0, scale_grad_by_fre…

oracle杀死进程时权限不足_在oracle中创建函数时权限不足

我对oracle有一点了解。我试图创建一个如下所示的函数。在oracle中创建函数时权限不足CREATE OR REPLACE FUNCTION "BOOK"."CONVERT_TO_WORD" (totpayable IN NUMBER) RETURN VARCHARAStotlength NUMBER;num VARCHAR2(14);word VARCHAR2(70);word1 VARCHAR…

哇塞,打开一个页面访问了这么多次数据库??

用SQL Server 事件探查器看了一下,哇塞,每打开一个页面都select了n多次数据库,而且很多都是类似的代码?为啥? (1)、二级嵌套绑定数据源 (2)、二级联动 (3)、……多着呢! 解决方法: 对于数据不大…

torch.nn

torch.nn 与 torch.nn.functional 说起torch.nn,不得不说torch.nn.functional! 这两个库很类似,都涵盖了神经网络的各层操作,只是用法有点不同,比如在损失函数Loss中实现交叉熵! 但是两个库都可以实现神经网络的各层运算。其他包…

ORACLE使用JOB定时备份数据库

Oracle的备份一般都是在操作系统上完成,因此定时备份Oracle的功能一般都是由操作系统功能完成,比如crontab。但是Oracle的PIPE接口使得在Oracle数据库中通过JOB来备份Oracle变得可能。 这篇文章给出一个简单的例子,说明如何在JOB中定期备份数…