因为工作中参与了一个智能问答相关的项目,所以需要了解“知识图谱”的相关知识。作为一个非技术类的B端产品经理,刚涉足AI领域,有些陌生和不习惯。
于是我看了很多文献和技术科普,也咨询了身边都是AI的技术生,从中大致了解了“知识图谱”的一些原理,整理了以下文章。
希望我的文章能帮助非技术产品经理,或者其他岗位的同学,更简单快捷的理解什么是“知识图谱”。
在介绍知识地图之前,先说一下知识地图在日常生活中的使用。
再比如,在线医疗行业,患者想挂号却不知道挂哪个科室的时候,可以通过预诊助手获取科室信息。预诊助手基于专业医疗知识图谱,采用多种算法模型和多轮智能沟通了解患者病情,根据患者病情精准匹配就诊科室。
以支付宝为例。在支付场景下,利用知识图谱将票据诈骗、信用卡套现等行为扼杀在摇篮里。通过知识图谱的图谱数据库,针对不同的个体和群体进行关联分析,从人物在指定时间内的行为来判断用户,比如去过的地方的IP地址,使用过的MAC地址(包括手机、PC、WIFI等。),社交网络的关联度分析,银行账户之间是否有历史交易信息。
在描述定义之前,我们先来看看知识图谱3354 [E-R图]的表现形式:
从上图可以发现,无论E-R图变换成什么形状,外观如何不同,都是由多个点和线连接而成的关系网络。
我们称之为点[实体]和线[关系],每个实体可能与一个或多个实体有关系。基于此,要形成最简单的关系网络,只需要三个要素:两个实体和一个关系。这种结构,我们称之为“三元组”,多个三元组形成一个知识图谱。
(三倍)
比如:“小方和小明是同事,两人都是因为工作需要买笔记本。小明觉得用苹果笔记本会更有说服力,于是下手了,而小方觉得联想笔记本更便宜,所以选择了联想。后来小方发现,同事安利过的软件sketch,只有苹果电脑才有。它比Axure更智能、更容易使用。”从这句话中,我们可以拆解出多个三元组:
知识地图三元组不仅可以表达实体间的关系以外,还能表示实体的某种属性。比如“小明”是实体,他的“性别、出生日期、籍贯”等可划为属性。
事物被定义为实体的“属性”,有两个基本原则:
同时值得注意的是,根据实际情况,实体有时可以是属性,属性也可以是实体。
下图是一个例子:“员工”是一个实体,“员工编号、姓名、年龄”是员工的属性。如果“职称”没有与“工资、岗位津贴、福利”挂钩,换句话说,它没有可以进一步描述的特征,那么根据准则1,它可以作为员工实体的一个属性。
但是,如果不同的职称有不同的工资、岗位津贴和不同的附加福利,那么把职称作为一个实体来对待就更合适了。
说了这么多,你应该能更好的理解【知识地图】的定义了:知识地图是一个结构化的语义知识库,用来以符号的形式描述物理世界中的概念及其关系。它的基本构成单位是“实体-关系-实体”三元组,以及实体及其相关的属性-值对。实体通过关系相互连接,形成网络知识结构。
了解知识地图的构建可以帮助我们更好地理解知识地图的使用原理。
知识地图的构建过程可以概括为三种方式:
为了介绍每一步及其意义,我编制了下表:
非商业转载请注明出处。
下图是知识地图的技术框架,可以帮助你更好的理解知识地图构建的过程。虚线框中的部分是知识地图构建的过程,也是知识地图更新的过程。
1)要构建知识图谱,需要怎样的数据呢?
答案是:结构化数据。
一般来说,知识地图的原始数据有三种类型:结构化数据、非结构化数据
所谓结构化数据,是指高度组织化、格式整齐的数据,是一种可以放入电子表格的数据类型。典型的结构化数据包括:信用卡号、日期、财务金额、电话号码、地址、产品名称等。
相比之下,非结构化数据是指不容易组织或格式化的数据。它没有预定义的数据模型,不方便使用数据库的二维逻辑表来表示数据。它可以是文本的或非文本的,人工的或机器生成的。
简单来说,非结构化数据就是具有可变字段的数据,主要是一些文档、文档等。比如一些合同文件、文章、PDF文档等。
而半结构化数据是非关系型的,具有基本的固定结构模式,如日志文件、XML文档、JSON文档等。
对于非结构化数据和半结构化数据,我们需要确认可以从中提取哪些可用信息,并制定信息录入规则。借助NLP等技术,可以将有效信息生成结构化数据,进而纳入知识地图。
2)图数据库及关系型数据库的差别
知识地图是基于图数据库存储数据的。所谓图数据库,不是指存储图片、图像的数据库,而是指存储图这种数据结构的数据库。之前我们说的E-R图,就是图数据的可视化展示。的
与传统的关系数据库使用二维表存储数据不同,图数据库传统上被归类为NoSQ。
L(Not Only SQL)数据库的一种,也就是说图数据库属于非关系型数据库。为了避免内容太过技术性,这里不会对图数据进行深入的介绍,只简单说下图数据库及关系型数据库的差别。
关系型数据库不擅长处理数据之间的关系,而图数据库在处理数据之间关系方面灵活且高性能。
传统的关系型数据库在处理复杂关系的数据上表现很差,这是因为关系型数据库是通过外键的约束来实现多表之间的关系引用的。查询实体之间的关系需要JOIN操作,而JOIN操作通常非常耗时。
而图数据库的原始设计动机,就是更好地描述实体之间的关系。图数据库与关系型数据库最大的不同就是免索引邻接,图数据模型中的每个节点都会维护与它相邻的节点关系,这就意味着查询时间与图的整体规模无关,只与每个节点的邻点数量有关,这使得图数据库在处理大量复杂关系时也能保持良好的性能。
另外,图的结构决定了其易于扩展的特性。我们不必在模型设计之初就把所有的细节都考虑到,因为在后续增加新的节点、新的关系、新的属性甚至新的标签都很容易,也不会破坏已有的查询和使用功能。
而关系型数据库,如果一开始就设计好数据字段并跑了一段时间数据,想再增加字段就会非常麻烦,需要开发人员或产品经理在开发初期就设想好未来可能会新增的字段,并提前加入到数据表中。
neo4j-图数据库
通俗易懂解释知识图谱(Knowledge Graph)
图数据库是什么?
题图来自 Unsplash,基于CC0协议。
PC端是和移动终端相对应的名词,就是指网络世界里可以连接到电脑主机的那个端口,是基于电脑的界面体系,它有别于移动端的手机界面体系。 其实PC的英文全称是:Personal Computer 翻译成中文的意思是:个人计算机或者个人电脑。PC是一个具有广泛含义的词语,也是电脑的统称。就目前而言个人电脑种类有很多,比如传统的台式电脑、DIY电脑、笔记本电脑、以及近年来开始流行的平板电脑、一体机电脑、超级本、掌上电脑、嵌入式计算机均属于PC的范畴。也就是说PC是一个广泛词,属于电脑的总称。