从产品经理角度解说知识图谱
liuian 2024-12-08 16:20 22 浏览
编辑导语:知识图谱是什么呢?又是怎么构建的?本文作者从知识图谱的应用、构建过程、数据要求等方面进行了分析,希望能给同是非技术出生的产品经理带来帮助。
因为工作中参与了一项智能问答相关的项目,所以我需要了解“知识图谱”的相关知识。作为非技术出身的B端产品经理,初涉AI领域多少有点陌生和不适应。
于是翻阅了很多文献资料及技术科普,也请教了身边做AI的技术同学,从中大致了解了“知识图谱”的一些原理,并整理了以下文章。
希望我的文章能让同是非技术出生的产品经理,或者其他岗位的同学,能更简单、快速地了解什么是“知识图谱”。
一、 知识图谱的应用
在介绍知识图谱前,先说下知识图谱在日常中的应用。
1. 智能搜索
举个例子,你在使用百度搜索“杨幂”时,搜索结果除了包杨幂的个人信息及相关新闻以外,还给你展示了她的关系圈及合作过的艺人,这些人际关系信息都与“杨幂”这个关键字没有重合,但因为和“杨幂”这个实体有实际关系,所以都在“杨幂”的搜索结果中。
2. 智能问答
在智能问答方面,会通过知识图谱为你推理出答案。例如,你搜索“杨幂的前夫”,会直接给你返回“刘恺威”的信息。
再举个例子,在线上医疗行业,当患者想挂号却不清楚该挂哪个科室时,可以通过诊前助手获取科室信息。诊前助手是基于专业医疗知识图谱,采用多种算法模型与多轮智能交去互理解病人的病情,根据病人的病情精准匹配就诊科室。
3. 个性化推荐
在个性化推荐方面,以搜索张国荣的“胭脂扣”为例,会基于《胭脂扣》的电影信息,如演员、导演、上映年份、作品类型等,推荐出更多关联作品。例如会推荐张国荣的其他电影、推荐同一时期(80-90年代)的香港电影、与张国荣合作过的其他演员的电影等等。
4. 风险防范
以支付宝为例,在支付场景中,用知识图谱将刷单诈骗及信用卡套现等行为扼杀在摇篮中:通过知识图谱的图数据库,对不同的个体、团体做关联分析,从人物在指定时间内的行为,例如去过地方的IP地址、曾经使用过的MAC地址(包括手机端、PC端、WIFI等)、社交网络的关联度分析,银行账号之间是否有历史交易信息等,判断用户是否存在风险行为。
二、知识图谱定义
在描述定义之前,我们先看看知识图谱的表现形式——【E-R图】:
(图片源自百度搜索)
从上图我们可以发现,无论E-R图变换成什么形状,外观如何不同,他都是由多个点和多条线互相连接形成的关系型网络。
点我们称为【实体】,线我们称为【关系】,每个实体可能和一个或多个实体存在关系。基于此,要组成最简单的关系型网络,只需三个要素:两个实体和一个关系。这样的结构,我们称之为“三元组”,多个三元组构成知识图谱。
(三元组)
举个例子:“小芳和小明是同事,因为工作需要,两人都在选购笔记本。小明觉得用苹果笔记本会更有逼格,所以入手了,而小芳觉得Lenovo的笔记本比较便宜,所以选择了Lenovo。后来小芳发现,一直被同事安利的sketch这个软件只在苹果电脑有,它比Axure更智能好用。”从这句话中,我们可以拆解多个三元组:
- 实体:小明、小芳、苹果笔记本、Lenovo笔记本、Sketch。实体一般是名词,表示的是人、事、物的抽象化对象。
- 关系:购买、拥有、同事。关系是指两个实体之间的联系,这种联系多种多样,可以是类属关系、并列关系等。
知识图谱的三元组除了可以表达实体间的关系以外,还能表示实体的某种属性。比如“小明”是实体,他的“性别、出生日期、籍贯”等可划为属性。
事物被定义为实体的“属性”,有两条基本准则:
- 作为属性,不能再具有需要描述的性质。属性必须是不可分的数据项,不能包含其他属性
- 属性不能与其他实体具有联系
同时值得注意的是,根据实际情况,实体有时可以是属性,属性也可以是实体。
以下图为例:“职工”是一个实体,“职工号、姓名、年龄”是职工的属性,“职称”如果没有与“工资、文位津贴、福利”挂钩,换句话说,没有需要进一步描述的特性,则根据准则 1 可以作为职工实体的属性。
但如果不同的职称有不同的工资、岗位津贴和不同的附加福利,则职称作为一个实体看待就更恰当。
(图片源自网络,如侵权请联系删除)
说到这里,大家应该能更好理解【知识图谱】的定义:知识图谱是结构化语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是『实体-关系-实体』三元组,以及实体及其相关属性-值对,实体之间通过关系相互联结,构成网状的知识结构。
知识图谱能能够打破不同场景下的数据隔离,为搜索、推荐、问答、解释与决策等应用提供基础支撑。
三、知识图谱的构建过程
了解知识图谱的构建,能帮助我们更好理解知识图谱的应用原理。
知识图谱的构建流程,总结有三:
对每个步骤的介绍及其意义,我整理了如下表格:
非商业转载请注明出处
下图是知识图谱的技术架构,可以帮助大家更好理解知识图谱的构建流程。其中虚线框内的部分为知识图谱的构建过程,同时也是知识图谱更新的过程。
(图片源自网络,已作中文化处理,如侵权请联系删除)
四、数据要求及数据库类型
1)要构建知识图谱,需要怎样的数据呢?
答案是:结构化的数据。
知识图谱的原始数据类型一般来说有三类:结构化数据、非结构化数据、半结构化数据。而最终的知识图谱需要结构化数据作为支撑。
所谓结构化数据,是指高度组织和整齐格式化的数据,它是可以放入电子表格中的数据类型。典型的结构化数据包括:信用卡号码、日期、财务金额、电话号码、地址、产品名称等。
与之相对的非结构化数据是指不容易组织或格式化的数据,它没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。它可能是文本的或非文本的,也可能是人为的或机器生成的。
简单来说,非结构化数据就是字段可变的的数据,主要是一些文档、文件等,比如一些合同文件、文章、PDF文档等。
而半结构化数据,是非关系模型的,有基本固定结构模式的数据,例如日志文件、XML 文档、JSON 文档等。
对于非结构化数据及半结构化数据,需要我们确认从中提取哪些可用信息,并制定信息录入规则,借助NLP等技术,将有效信息生成为结构化数据,再计入知识图谱中。
2)图数据库及关系型数据库的差别
知识图谱是用图数据库存储数据的。所谓图数据库,不是指存储图片、图像的数据库,而是指存储图这种数据结构的数据库。之前我们说的E-R图,就是图数据的可视化展示。
不同于传统的使用二维表格存储数据的关系型数据库,图数据库在传统意义上被归类为NoSQL(Not Only SQL)数据库的一种,也就是说图数据库属于非关系型数据库。为了避免内容太过技术性,这里不会对图数据进行深入的介绍,只简单说下图数据库及关系型数据库的差别。
关系型数据库不擅长处理数据之间的关系,而图数据库在处理数据之间关系方面灵活且高性能。
传统的关系型数据库在处理复杂关系的数据上表现很差,这是因为关系型数据库是通过外键的约束来实现多表之间的关系引用的。查询实体之间的关系需要JOIN操作,而JOIN操作通常非常耗时。
而图数据库的原始设计动机,就是更好地描述实体之间的关系。图数据库与关系型数据库最大的不同就是免索引邻接,图数据模型中的每个节点都会维护与它相邻的节点关系,这就意味着查询时间与图的整体规模无关,只与每个节点的邻点数量有关,这使得图数据库在处理大量复杂关系时也能保持良好的性能。
另外,图的结构决定了其易于扩展的特性。我们不必在模型设计之初就把所有的细节都考虑到,因为在后续增加新的节点、新的关系、新的属性甚至新的标签都很容易,也不会破坏已有的查询和应用功能。
而关系型数据库,如果一开始就设计好数据字段并跑了一段时间数据,想再增加字段就会非常麻烦,需要开发人员或产品经理在开发初期就设想好未来可能会新增的字段,并提前加入到数据表中。
参考资料:
neo4j-图数据库
E-R图:实体与属性的划分原则
通俗易懂解释知识图谱(Knowledge Graph)
图数据库是什么?
作者:杨桃,游戏行业B端产品经理,爱用文字记录观察及想法。
本文由 @杨桃 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自 Unsplash,基于CC0协议。
相关推荐
- 2023年最新微信小程序抓包教程(微信小程序 抓包)
-
声明:本公众号大部分文章来自作者日常学习笔记,部分文章经作者授权及其他公众号白名单转载。未经授权严禁转载。如需转载,请联系开百。请不要利用文章中的相关技术从事非法测试。由此产生的任何不良后果与文...
- 测试人员必看的软件测试面试文档(软件测试面试怎么说)
-
前言又到了毕业季,我们将会迎来许多需要面试的小伙伴,在这里呢笔者给从事软件测试的小伙伴准备了一份顶级的面试文档。1、什么是bug?bug由哪些字段(要素)组成?1)将在电脑系统或程序中,隐藏着的...
- 复活,视频号一键下载,有手就会,长期更新(2023-12-21)
-
视频号下载的话题,也算是流量密码了。但也是比较麻烦的问题,频频失效不说,使用方法也难以入手。今天,奶酪就来讲讲视频号下载的新方案,更关键的是,它们有手就会有用,最后一个方法万能。实测2023-12-...
- 新款HTTP代理抓包工具Proxyman(界面美观、功能强大)
-
不论是普通的前后端开发人员,还是做爬虫、逆向的爬虫工程师和安全逆向工程,必不可少会使用的一种工具就是HTTP抓包工具。说到抓包工具,脱口而出的肯定是浏览器F12开发者调试界面、Charles(青花瓷)...
- 使用Charles工具对手机进行HTTPS抓包
-
本次用到的工具:Charles、雷电模拟器。比较常用的抓包工具有fiddler和Charles,今天讲Charles如何对手机端的HTTS包进行抓包。fiddler抓包工具不做讲解,网上有很多fidd...
- 苹果手机下载 TikTok 旧版本安装包教程
-
目前苹果手机能在国内免拔卡使用的TikTok版本只有21.1.0版本,而AppStore是高于21.1.0版本,本次教程就是解决如何下载TikTok旧版本安装包。前期准备准备美区...
- 【0基础学爬虫】爬虫基础之抓包工具的使用
-
大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬...
- 防止应用调试分析IP被扫描加固实战教程
-
防止应用调试分析IP被扫描加固实战教程一、概述在当今数字化时代,应用程序的安全性已成为开发者关注的焦点。特别是在应用调试过程中,保护应用的网络安全显得尤为重要。为了防止应用调试过程中IP被扫描和潜在的...
- 一文了解 Telerik Test Studio 测试神器
-
1.简介TelerikTestStudio(以下称TestStudio)是一个易于使用的自动化测试工具,可用于Web、WPF应用的界面功能测试,也可以用于API测试,以及负载和性能测试。Te...
- HLS实战之Wireshark抓包分析(wireshark抓包总结)
-
0.引言Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...
- 信息安全之HTTPS协议详解(加密方式、证书原理、中间人攻击 )
-
HTTPS协议详解(加密方式、证书原理、中间人攻击)HTTPS协议的加密方式有哪些?HTTPS证书的原理是什么?如何防止中间人攻击?一:HTTPS基本介绍:1.HTTPS是什么:HTTPS也是一个...
- Fiddler 怎么抓取手机APP:抖音、小程序、小红书数据接口
-
使用Fiddler抓取移动应用程序(APP)的数据接口需要进行以下步骤:首先,确保手机与计算机连接在同一网络下。在计算机上安装Fiddler工具,并打开它。将手机的代理设置为Fiddler代理。具体方...
- python爬虫教程:教你通过 Fiddler 进行手机抓包
-
今天要说说怎么在我们的手机抓包有时候我们想对请求的数据或者响应的数据进行篡改怎么做呢?我们经常在用的手机手机里面的数据怎么对它抓包呢?那么...接下来就是学习python的正确姿势我们要用到一款强...
- Fiddler入门教程全家桶,建议收藏
-
学习Fiddler工具之前,我们先了解一下Fiddler工具的特点,Fiddler能做什么?如何使用Fidder捕获数据包、修改请求、模拟客户端向服务端发送请求、实施越权的安全性测试等相关知识。本章节...
- fiddler如何抓取https请求实现手机抓包(100%成功解决)
-
一、HTTP协议和HTTPS协议。(1)HTTPS协议=HTTP协议+SSL协议,默认端口:443(2)HTTP协议(HyperTextTransferProtocol):超文本传输协议。默认...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
python使用fitz模块提取pdf中的图片
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)