知识图谱构建流程详解

知识图谱构建

1. 主要流程

在这里插入图片描述

2. 层次划分

知识图谱建设是一项系统工程,从模块划分角度,可划分为如下层次:

在这里插入图片描述

  • 数据获取:通过爬虫,内部CP等数据源获取数据,涉及到主要技术有网页抓取技术,包括结构化数据和非结构化数据抽取以及一些列爬虫相关工具链,产出的结果为原始数据
  • 知识获取:旨在把原始数据变为领域知识的过程,本层涉及到的技术有schema建设,信息抽取技术如yago的三元组抽取技术。本层产出的结果为结构化的知识(实体以及其属性值,实体可能的关联等),本层工具链建设包含:schema管理工具(schema完备性一致性检查工具),知识抽取算法,知识对齐等
  • 知识融合:第二层更多从领域的角度获取知识,本层更多从全局的角度出发,把相关的领域知识融合在一起,做到实体消歧,实体对齐,本层会在知识层面上输出一个图谱,工具链建设有实体消歧融合算法,schema融合算法等
  • 知识服务:提供知识图谱可视化服务,存储查询,包括如何把知识图谱对外提供服务以及一些线上交互工具
  • 应用技术:基于知识图谱的应用,包括知识推理、知识问答、实体链接等。每一块都是NLP领域的难点

五大模块从逻辑上比较独立,每层的评价标准不同工作量不同

可以加微信讨论:crazy042438

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MKR知识图谱电影推荐代码详解 MKR(Multi-task Knowledge-aware Recommender)是一种在知识图谱上基于多任务学习的推荐模型。它可以同时处理多个任务,如推荐、评分预测、属性预测等。本文将介绍如何使用MKR模型实现电影推荐,并详细解释代码实现。 1. 数据集 我们使用的数据集是MovieLens 20M,包含6,040部电影、27,000个用户和20,000,263个评分。其中,每个用户至少对20部电影进行了评分。我们将数据集分为训练集、验证集和测试集。 2. 知识图谱 我们使用的知识图谱是Freebase,它包含了大量实体和关系,如电影、演员、导演、类型、国家等。我们将知识图谱表示为三元组 (head, relation, tail),其中head和tail是实体,relation是它们之间的关系。 3. 模型架构 MKR模型主要由两个部分组成:知识图谱嵌入和推荐模型。知识图谱嵌入用于将实体和关系映射到低维向量空间中,推荐模型用于根据用户历史行为和知识图谱信息预测用户对电影的评分。 3.1 知识图谱嵌入 我们使用TransE算法将知识图谱中的实体和关系嵌入到低维向量空间中。具体地,对于一个三元组 (h, r, t),它的嵌入向量e(h), e(r), e(t)应该满足以下条件: e(h) + e(r) ≈ e(t) 其中,+表示向量相加,≈表示近似等于。我们使用L1范数作为距离函数,即: d(e(h) + e(r), e(t)) = ||e(h) + e(r) - e(t)||1 通过最小化距离函数的损失函数,我们可以学习到每个实体和关系的嵌入向量。 3.2 推荐模型 我们使用NeuMF模型作为推荐模型。它由两个部分组成:基于用户的协同过滤和基于知识图谱的推荐。具体地,对于一个用户u和电影i,我们定义它们的隐向量为u和i,它们的预测评分为: $\hat{y}_{ui} = \sigma(\alpha_1 \cdot g_u^T \cdot g_i + \alpha_2 \cdot h_u^T \cdot e_i + b)$ 其中,g_u和g_i是基于用户的协同过滤的隐向量,h_u是基于知识图谱的隐向量,e_i是电影i的知识图谱嵌入向量,α1和α2是超参数,σ(x) = 1 / (1 + exp(-x))是sigmoid函数,b是偏置项。 整个模型的损失函数由均方误差和正则化项组成: $L = \sum_{(u,i,r) \in R} (r - \hat{y}_{ui})^2 + \lambda (\sum_{u} ||g_u||^2 + \sum_{i} ||g_i||^2 + \sum_{u} ||h_u||^2 + \sum_{i} ||e_i||^2)$ 其中,R是训练集,λ是正则化系数。 4. 代码实现 我们使用PyTorch实现MKR模型。代码主要分为以下部分: 4.1 数据预处理 我们首先将数据集分为训练集、验证集和测试集,并将它们保存为Pickle文件。然后,我们将知识图谱中的实体和关系表示为数字,并将它们保存到Pickle文件中。最后,我们使用PyTorch的Dataset和DataLoader类加载数据。 4.2 模型定义 我们使用PyTorch的Module类定义MKR模型。它由TransE和NeuMF两个子模型组成。我们可以使用预训练的TransE模型或从头开始训练。对于NeuMF模型,我们使用PyTorch的Sequential类定义它。 4.3 训练和测试 我们使用PyTorch的Adam优化器训练模型,并使用均方误差作为损失函数。我们还使用PyTorch的EarlyStopping类实现早期停止,以防止过拟合。在测试阶段,我们使用模型预测用户对电影的评分,并计算均方根误差和平均绝对误差。 完整的代码可以在GitHub上找到:https://github.com/hwwang55/MKR。 5. 总结 MKR是一种在知识图谱上基于多任务学习的推荐模型,它可以同时处理多个任务,如推荐、评分预测、属性预测等。本文介绍了如何使用MKR模型实现电影推荐,并详细解释了代码实现。如果您对MKR模型感兴趣,可以参考相关论文和代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值