知识图谱关键技术与应用案例

  作者简介桂洪冠达观数据联合创始人中国计算机学会 CCF 会员自然语言处理技术专家。在参与创办达观数据前曾在腾讯文学、阿里巴巴、新浪微博等知名企业担任数据挖掘高级技术管理工作。

  桂洪冠在数据技术领域拥有6项国家发明专利中国科学技术大学计算机硕士学位。在 AI 大数据架构与核心算法以及 NLP、知识图谱等领域有深厚的积累和丰富的实战经验。

  知识图谱行业方面的应用和场景介绍着重讲一下知识图谱构建的相关技术

  我们先直观的来看一下什么是知识图谱下面有一张图从这张图里可以看到这个图里圆圈是节点节点之间有一些带箭头的边来连成这个节点实际上相当于知识图谱里的实体或者概念边连线表示实体之间的关系。

  知识图谱本质上是一种大型的语义网络它旨在描述客观世界的概念实体事件以及及其之间的关系。以实体概念为节点以关系为边提供一种从关系的视角来看世界。

  语义网络已经不是什么新鲜事早在上个世纪就已经出现了但为什么重新又提到知识图谱

  知识图谱本质上是一种语义网络但是它最主要的特点是一个非常大规模的语义网络之前的语义网络受限于我们处理的方法更多是依赖于专家的经验规则去构建在规模方面受限于特定领域的数据。大规模网络谷歌在 2012 年首先提出知识图谱的概念在 freebase 的基础上扩展了大量来自互联网的实体数据和关系数据。据说目前实体的数据已经达到数十亿级有达到千亿级的实例关系规模是非常巨大的。

  我们再看一下知识图谱背后是怎么表示的我们看到的是一个巨大的语义网背后是怎么存储或者表示的呢

  具体表示方法为实体 1 跟实体 2 之间有某种关系或者是实体属性、属性词。

  举个例子“ 达观数据是一家人工智能公司 ”其实就可以表示成这样的三元组

  基于已有的三元组它可以推导出新的关系这个对构建知识图谱来说是非常重要的。我们知道知识图谱要有丰富的实体关系才能真正达到它实用的价值。完全靠人工去做的话是不太现实的所以内部一定有一个自动推理的机制可以不断的去推理出新的关系数据出来不断的丰富知识图谱。来看一些具体的例子。

  三元组是一个人和计算机都易于理解的结构人是可以解读的计算机也可以通过三元组去处理所以它是一个既容易被人类解读又容易被计算机来处理和加工的结构而且它也足够的简单如果说你扩充成四元组、五元组它整个结构就会变得比较复杂那是综合的一种复杂性和人的易理解性、和计算机的易出理性来综合的考虑决定用三元组的结构来去作为它的一个存储。

  人工智能分为三个阶段从机器智能到感知智能再到认知智能。机器智能更多强调这些机器的运算的能力大规模的集群的处理能力GPU 的处理的能力。

  在这个基础之上会有感知智能感知智能就是语音识别、图像识别从图片里面识别出一个猫识别人脸是感知智能。感知智能并非人类所特有动物也会有这样的一些感知智能。

  再往上一层的认知智能是人类所特有的是建立在思考的基础之上的认知的建立是需要思考的能力而思考是建立在知识的基础之上必须有知识的基础、有一些常识才能建立一些思考形成一个推理机制。

  AI 需要从感知智能迈向认知智能本质上知识是一个基础然后基于知识的推理刚好知识图谱其实是具备这样的一个属性。

  首先左边会把用户的语音经过语音转成文字以后进行一个预处理预处理主要是做了分词、纠错、词性标注、实体属性的识别对这个句子进行依存句法树的结构分析。

  预处理完了以后引擎会首先尝试根据问句的句法结构进行问句模板的匹配如果说能够匹配到合适的问句模板这个时候再根据在预处理阶段得到的问句的实体属性和关系对匹配到的问题模板进行实例化然后再根据实例化以后的问句模板来生成知识图谱的图数据库的查询语言然后在图数据库里面就可以把这个答案查出来了。

  另外一种情况是没有匹配到合适的问句模板这个时候会进入到基于检索的问答模块最后是把基于知识图谱和基于检索的两种的结果进行融合。

  HR 创建的 JD 能够自动的匹配到简历库里面最合适的候选人的简历也即把 JD 的内容和简历库里面简历的内容做语义的匹配。

  这里有一个问题JD 对技能的描述和不同的人的简历中对技能的描述存在很多表达方式造成的语义方面的差异。我们分别对 JD 和简历构建技能图谱通过技能图谱的子图匹配就可以比较好地来解决语义匹配的问题。

  第一界定好范围就是要有一个明确的场景和问题的定义不能说为了知识图谱而知识图谱。如果没有想清楚知识图谱有什么样的应用的场景或者能解决什么样的问题这样的知识图谱是比较难以落地的。一些明确的场景比如解决商品数据的搜索问题或者从产品说明书里面做相关问题的回答。

  第二做好 schema 的定义就是上面讲到的对于 schema 或者本体的定义。第一步确定好场景和问题以后就基于这样的场景或者问题再进行相关领域的 schema 的定义。定义这个领域里概念的层次结构、概念之间的关系的类型这样做是确保整个知识图谱是比较严谨的知识的准确性是比较可靠的。知识的模型的定义或者 schema 的定义大部分情况下是通过这个领域的知识专家的参与自上而下的方式去定义的。

  第三数据是知识图谱构建基础。数据的梳理就比较重要最需要什么样的数据依赖于我们要解决的问题是什么或者我们的应用场景是什么基于问题和场景梳理出领域相关的问题、相关的数据包括结构化的数据、半结构化数据、无结构化的数据结合百科跟这个领域相关的数据领域的词典或者领域专家的经验的规则。

  第四不要重复去造轮子很多百科的数据和开放知识图谱的数据是可以融合到我们的领域知识图谱中。

  第五要有验证和反馈机制需要有管理后台用户可以不断的和知识图谱系统进行交互不断的进行确认和验证确保知识图谱每一步推理和计算都是准确的。

  知识图谱其实是富含有实体、属性、概念、事件和关系等信息它能够基于一定的推理。且比较关键的是它能够基于一定的推理为 AI 的可解释性带来全新的一个视角。

  可解释性已被一些领域 AI 大规模使用比如医疗领域AI 进行癌症的诊断的结果如果没有给出一个合理的一个理由或者是给出一个解释的一个方法医生是不敢贸然的用 AI 给出的癌症诊断的结果去给病人直接做下一步的措施。包括金融领域也一样AI 如果给投资人推荐了一个投资的方案但是没有给出任何的一个解释跟说明的线c;也会存在巨大的一个风险。

  同样在司法领域也是一样用 AI 进行判案AI 给一个案件判定一个结果但是没有给出任何的一个解释也是不能作为结果来采用的因为司法强调的就是一种可解释性对法律的解释性、可推理性。

  C 罗为什么那么牛这个是一个问题要解释回答这个问题人通常是怎么样去回答这样的问题呢上图通过知识图谱的简单的推理就可以回答这样一个问题因为 C 罗获得过金球奖C 罗跟金球奖之间的关系是获得奖项的一个关系金球奖跟影响力最大的足球评选奖项之一有这样一个地位的关系它具有这样的一个非常高的地位C 罗又获得过这个奖项所以可以得出C 罗是很牛的。

  这是一种知识图谱来解释、来回答这样一个 “ 为什么 ” 的一个问题。同样还有一些问题比如“ 鳄鱼为什么那么可怕”

  人类是有一样这样的常识所有的大型的食肉动物都是很可怕这是个常识。鳄鱼是一种大型的食薄动物鳄鱼跟大型食肉动物概念之间是一种 instance 的关系。通过这样的一个常识和概念之间的关系可以推导出鳄鱼是很可怕的。同样的“ 鸟儿为什么会飞”因为它有翅膀鸟儿这个实体它的属性是有翅膀利用一个实体跟属性之间的关系可以做这样一个推理。

  之前微博上关晓彤跟鹿晗非常的火经常被刷屏这是为什么

  因为关晓彤跟鹿晗之间是男女朋友这样的关系明星之间的男女朋友的关系就最容易被大家追捧也最容易被刷屏。这个就是通过关系也好通过实体的属性也好通过实体的概念也好就可以去解释、去回答一些问题。这些是知识图谱在AI在可解释性方面的一些具体的例子。

  深度学习的可解释性非常差的深度学习里面内部的语义表达、向量的表达都是一些浮点数人类是非常难以理解的。深度学习出来的结果它的可解释性也是非常少的。

  尽管我们现在在研究可视化的技术把中间的它的结果呈现出来、可视化出来但是真正能达到对人有效的解释性进展还是比较缓慢的。知识图谱实际上是有望能够消除人类的自然语言跟深度学习黑盒之间的语义鸿沟。也就是深度学习的底层的特征空间和上层的人的自然语言空间这种巨大的语义鸿沟通过深度学习跟知识图谱结合起来有望能够消除。这也是为什么AI要结合知识图谱的一个原因。

  知识图谱可以进行信息的不一致性检查来确定是不是存在可能的借款人欺诈的风险比如第一个图里面的借款人甲和乙来自于不同的公司但是他却非常诡异地留下了相同的公司的电线c;这时审核人员就要格外留意了有可能会存在欺诈的风险。

  组团欺诈甲乙丙三个借款人同一天向银行发起借款他们是互不相关的人但是他们留了相同的地址这时有可能是组团的欺诈。

  静态的异常检测它表示的是在某个时间点突然发现图中的某几个节点的联系异常的紧密原来是互相联系都比较少、比较松散的突然间有几个点之间密集的联系有可能会出现欺诈组织。

  动态的异常检测第二行中间图是随着时间的变化它的几个节点之间图的结构发生明显的变化原来它是比较稳定的左边黑色的上三角、下三角然后中间连线c;但过了一段时间之后它整个图的结构变成了右边的这样结构此时很可能是异常的关系的变化会出现一个欺诈组织。

  客户关系管理。怎么样去做失联客户的管理图中的例子有一个借款的用户银行可能现在没有办法直接找到他甚至通过他的直接联系人也没办法找到他那这个时候是不是可以再进一步的通过他的二度联系人来间接的来找到他通过这样的图结构是可以快速找到他的二度联系人比如张小三或者是王二再去联系他们尝试把李四这个人给找到。

  知识图谱会融合多个数据源从多个维度来维护关联人员的信息来避免数据不全与数据孤岛把它整合到一个大的网络结构里面去借助知识图谱的搜索审核人员可以快速的获取到信贷申请人张三的相关的信息住址、配偶、就职公司、他的朋友等等。这比原来到各个异构且散落的数据源去进行搜集的效率要高得多且能够从整体上来看到关键实体相互之间的关联关系。

  知识图谱能够实时地串联起来这个公司相关的上下游公司供应商的关系、竞争者的关系、客户的关系、投融资那些关系等然后进行快速实时的定位。中信通讯这家公司前不久被美国政府进行合规性审查这个时候投研人员通过知识图谱搜索到中兴通讯公司实体进而可以非常快地得到跟中兴通讯相关的上下游公司实体包括关联的子公司、供应商、客户、竞争对手、合作伙伴有助于投研人员快速的做决策。

  知识图谱能够比较全面的记录客户的非常详细的信息包括名字住址经常和什么样的人进行互动还认识什么样的人网上的行为习惯、行为方式是什么样的这样就可以知识图谱挖掘出更多的用户的属性标签和兴趣标签以及社会的属性标签形成全面的用户洞察基于知识图谱就可以进行个性化的商品或者活动的推送或者基于用户的分群分组做定向营销从而实现精准营销。

  谷歌是在 2012 年率先提出来知识图谱的概念。提出这个概念的最主要的目的就是改善它的搜索引擎的体验。从这个图就可以看到用户搜索的是泰姬陵泰姬陵是印度的非常著名的也是世界八大奇迹之一的景点。

  不一样的地方在搜索引擎的右侧会以知识卡片的形式来呈现跟泰姬陵相关的结构化的信息包括泰姬陵的地图、图片、景点的描述、开放时间门票等等甚至在下面会列出跟泰姬陵相类似或者相关联的景点比如中国的万里长城同样是世界的几大奇迹还有金字塔等等。同时它还可以进行知识的扩展比如泰姬陵不光是印度的景点它还可以是一张音乐专辑它甚至是国外某城市的街区街道。

  这样通过知识图谱可以不断的去探索发现新的非常新奇的东西让用户在搜索引擎里面能够不断的去进行知识的关联和发现激发起用户的搜索的。原来我们搜索引擎讲究的是说快速的找到它的结果然后关掉就完了谷歌通过知识图谱实际上是把搜索引擎变成了知识的探索和发现引擎这是概念和理念上的非常大的变迁与升级。

  我们比较熟悉的是个性化推荐即所谓的千人千面比如根据游戏来推荐游戏的道具。对于小白用户和骨灰级的用户推荐的东西显然是不一样的这是个性化的推荐。个性化推荐之外还有场景化的推荐比如用户购买了沙滩鞋存在用户可能要去海边度假这样的场景基于这样的场景可以继续给他推荐游泳衣、防晒霜或者的海岛旅游度假的产品。

  任务型的推荐。比如用户买了牛肉卷或者羊肉卷假设他实际上是要为了做一顿火锅。这时候系统可以给他推荐火锅底料或者是电磁炉。

  冷启动问题。推荐系统的冷启动一直是比较难以处理的问题通常的做法是根据新用户的设备类型或者他当前的时间位置等等或者外面的关联数据来做推荐。可以基于知识图谱的语义关联标签进行推荐比如旅游和摄影实际上是语义相近的两个标签再比如相同的导演或者相同演员的电影在语义上也是比较相近的。

  跨领域的推荐问题。微博的信息流里会推荐淘宝的商品然而微博和淘宝是两个不同的领域它是怎么做到的呢新浪微博有些用户会经常去晒黄山、九寨沟、泰山等这些照片这个时候我们就知道他有可能是一位登山的爱好者这个时候淘宝就会可以给他推荐登山的装备登山杖、登山鞋等等这些装备利用这些背景知识能够打通不同的平台之间的语义鸿沟。

  知识型的推荐是基于知识的。比如清华大学、北京大学都是名校复旦大学也同样是这个时候是可以推荐复旦大学再比如百度、阿里和腾讯都属于 BAT 级互联网公司基于百度、阿里就可以推荐腾讯。

  有了知识图谱以后我们可以从基于行为的推荐发展到行为跟语义相融合的智能推荐。

  构建知识图谱是包括这样的生命周期或这样的部分包括定义、知识的抽取、知识的融合、存储、知识的推理、知识的应用这样的循环迭代的过程。

  我们先来理解一下本体的概念本体是用于描述事物的本质的维基百科里面对于计算机科学领域当中的本体给出的定义是这样的即对于特定领域真实存在的实体的类型、属性以及它们之间的相互关系的一种定义。

  我们再来看看知识图谱和本体的关系下面这张图我们看到有两个层就下面是本体层上面是事实层那本体层是基于特定领域的概念的定义包括概念的属性概念之间的关系一般概念之间的关系是一种父子关系也有叫做上下位的关系。

  事实层是具体的真实存在的实体包括实体的属性以及实体之间的关系每个实体都会映射到本体层相应的概念。面向对面大家都比较熟悉给大家举例说明一下本体层的概念就好比面向对象里面的类的概念然后事实层的实体就好比面向对象里面的对象对象是从类当中派生出来的同时继承了类的一些属性和关系。这就是本体的概念。

  为什么要讲本体的概念一个更直观的例子就是要对知识图谱来进行模式或者 Schema 的定义。这里的领域是科技在这科技领域下面是我们划分的若干个主题比如互联网主题、通讯主题、手机主题在每个主题下面又有若干的概念就是下面的概念层比如互联网里面有深度学习、人工智能等等这些概念然后通讯里面有智能手机这些概念。

  在概念下面就是具体的事实层面就是实体层比如特斯拉 modelS、苹果 iPhone7、华为 P10 等等这些都是具体的实体然后实体之间有关系它继承的概念之间的关系。最下面一层是事件层这就是整个本体层的例子。

  给大家介绍一款比较好的开源本体编辑工具叫 Protégé。这个工具是斯坦福大学开源的它的功能非常强大也是目前最流行的本体编辑工具有网页版和桌面版桌面版是免安装的大家直接下载下来就可以试用。

  它的好处是什么它屏蔽了具体的本体描述语言用户只需要在概念层次上面进行本体的模型构建同时也比较灵活能够支持各种插件来扩展特定的功能。比如推理的功能可以基于插件来扩展。不过这个工具对中文的支持不是很友好。

  下面一个非常重要的关键的步骤就是知识的抽取首先要抽取实体然后是实体之间的关系。我们看一下 NER 实体的抽取我们知道NER可以转化为序列标注的问题传统的机器学习的方法CRF 等都可以做而且 CFR 做的效果还是不错的。不过 CRF 通常只能学习到相邻词位置比较近的上下文的特征它无法获取整个句子甚至更长的上下文的特征。

  目前业界比较主流的包括学术界比较主流的一种做法是什么是深度循环神经网络加上结合 CRF这样的做法更多的是双向的循环神经网络它可以分别从前往后以及从后往前这两个方向来去学习上下文的特征然后进行序列信号的记忆和传递这是一种比较常见的做法。

  华为发布了新一代的麒麟处理通过从前往后就可以推理出最后面的文字然后从后往前也可以推理出最前面的文字第一个字 “ 朝 ” 实际上是从后往前去进行预测推理。顶层用 CRF 对循环神经网络的结果进行约束就可以对这个输出进行更好的控制。然后输入层通常是词向量或者字向量embedding 能可以把单个字或者词转化为低维的稠密的语义向量。

  下面讲一下关系抽取的技术。它有几种方法第一种是基于有监督的方法把关系抽取当做分类问题来看待根据训练数据设计有效的特征来学习各种分类模型这是传统的分类。这个方法不好的地方是需要大量的人工标注的训练语料语料的标注是非常的耗时耗力的。

  所以在有监督的基础上又提出了一种半监督的方式半监督的方式主要采用方式进行关系的抽取具体来说就是要对于要抽取的关系首先基于手工设定若干的种子的实例然后迭代性的从数据当中抽取关系对应的关系模板和更多的实例通过不断迭代的方式来抽取越来越多的这些实例。

  还有一种是无监督的方法。无监督的方法本质上是一种聚类的方法用拥有相同语义关系的实体它拥有相似上下文的信息是它的假设因此它可以利用每个实体的上下文的信息来代表实体的语义关系对实体进行语义关系的聚类。

  这三种方法当中有监督的方法能够抽取出有效的特征然后在准确率和召回率方面是更有优势的半监督和无监督的方法一般情况下效果都不是特别的好所以业界现在用的比较多的还是有监督的学习的方法。

  我们刚刚提到有监督学习方法比较困难的地方就是怎么样获取大量分类的训练样本完全通过人工去标注的方式显然不是比较好的方式。

  有什么样好的处理的方法用远程监督的一种方法典型的工具 Deepdive也是斯坦福大学 InfoLab 实验室开源的知识抽取的系统通过弱监督学习的方法从非结构化的文本当中可以抽取出结构化的关系的数据。

  开发者不需要理解它里面的具体的算法只要在概念层次进行思考基本的特征就可以了然后也可以使用已有的领域知识进行推理也能够对用户的反馈进行处理可以进行实时反馈的一种机制这样能够提高整个预测的质量。背后用的是也是一种远程监督的技术只要少量的运训练的数据就可以了。

  我们来具体来看一下它是怎么样来做这样一件事情的。首先下面看到 Mention 的句子就是 “ 奥巴马和米歇尔结婚 ”它是句子但 Mention 就是这些词的标记奥巴马米歇尔都是 Mention我们要推测它之间是不是配偶的关系。这个时候要对 Mention奥巴马和米歇尔去对应到知识图谱里面具体的实体看一下这两个实体在知识图谱里面是不是存在着配偶的关系如果是的线c;就把它拿过来作为正的训练样本如果不是它就是负的样本。

  前提假设就是知识图谱里面的它的实体之间的关系都是正确的以这个为依据去做样本的标注。

  目前进行实体关系抽取有两大类方法有一类是基于流水线c;输入一个句子首先抽取这实体再对实体进行两两组合然后再进行分类最后识别出实体之间的关系。

  第一它容易造成错误的传播比如在第一步的时候实体如果识别错误了后面的关系肯定也是错误的。

  第二会产生没有必要冗余的信息因为要对实体进行两两的配对然后再进行关系的分类很多配对之间实际上就没有这样的关系就是它会带来了这样非常多的冗余的信息错误率也会被放大、被提升。

  现在用的比较多的另一种方法是联合学习的方法输入一个句子通过实体识别和关系抽取的联合模型可以直接得到有效的三元组。通常我们是基于神经网络的联合标注的学习的方法里面涉及到两个关键的工作一个是模型的参数共享的问题还有一个就是标注策略怎么样进行有效的标注。模型共享是指的是在实体训练的时候能够进行实体识别和关系分类这两个任务都会通过反向传播来匹配来进行关系的分类然后同时来实现这两个参数之间的依赖两个子任务之间的依赖。

  参数共享的方法它本质上还是两个子任务只是说它们这两个任务之间通过参数共享有了交互而且在训练的时候还要预先进行实体识别识别实体之后再根据预测信息进行两两匹配来进行关系的分类所以仍然会产生无关系时候冗余的信息存在。

  现在我们新提出了一种端到端序列标注的策略把原来涉及到序列标注和分类的两个任务变成了完全的端到端的序列标注的问题通过端到端的神经网络模型可以直接得到关系的三元组即实体关系的三元组。

  新的标注策略是像下面这张图里面有三个部分来组成的第一部分是实体中的词的位置比如 b 是表示开始i 表示是在实体的内部e 表示是实体的结尾s 表示是单个的实体。第二部分就是关系类型的信息预定义的关系类型的编码比如里面的 CP、CFCP 是国家总统CF 是公司创立者这样两种的关系。还有实体的角色的信息它表示是实体 1 还是实体 2实体跟关系之外的的这些字符都用 O 来表示这样就进行了实体的标注。

  首先是实体对齐也叫实体归一化是把具有不同的标识的实体但是在现实世界当中可能是表达同样意思的把它做归一化。比如中华人民共和国、中国和 China这个三个指的是同一实体尽管它的表述方式不一样就把它归一化为具有全局唯一标识的实例对象然后添加到知识图谱当中去。

  现在实体对齐普遍采用的还是一种聚类的方法关键在于定义合适的相似度的阈值一般从三个维度来依次来考察的首先会从字符的相似度的维度基于的假设是具有相同描述的实体更有可能代表同实体。第二个维度是从属性的相似度的维度来看的就是具有相同属性的和以及属性词的这些实体有可能会代表是相同的对象。第三个维度是从结构相似度的维度来看基于的假设是具有相同邻居的实体更有可能指向同对象。

  进行融合的时候要考虑各个数据源的数据的可靠性以及在各个不同数据源当中出现的频度来综合决定选用哪个类别或者哪个属性词。还有一种方法就是是用来自 LDLinkedDataLD 是很多人工标记好的数据是非常准确的其中有种关联叫 owl:sameAs它表示前后两个是同实体的利用这个作为训练数据来发现更多相同的实体对是比较好的方法。最后要说的是无论用哪种方法都不能保证百分之百的准确率所以最后也要有人工审核和过滤。

  知识存储就是如何选择数据库从选择层面我们有图数据库有 NoSQL 的数据库也有关系型数据库数据库有很多选择。具体什么样的情况下选择什么样的数据库通常是如果说知识图谱的关系结构非常的复杂、关系非常的多这时候建议使用这个图数据库比如 Neo4J 这样的数据库。另外一种就是它的关系并不是很复杂关系可能也就是 1 度、2 度的关系更多的它是有非常多的属性的数据这个时候可以考虑关系式数据库或者是 ES 这样的存储。如果要考虑到知识图谱的性能、可扩展性、可分布式是可以结合 NoSQL 的数据库比如 TiTan。根据实际的情况一般是综合起来使用的根据我们的经验我们会结合 Neo4J 和 ES 来综合来使用同时还结合这关系型数据库 MySQL 等等根据不同的数据的特点来进行选型而不是说一味的追求图数据库。

  再看一下知识推理知识推理这边有几种方法首先是基于符号推理我们上面说的三元组的结构比如左边的 RDF有概念然后基于概念符号进行推理。

  还有一种是基于图PRA的推理的方法更直观的一种方法思想是比较简单的就是以连接两个实体的已有路径作为特征构建分类器来预测它们之间可能存在的潜在关系。

  比如左边这个图里面 Charlotte Bronte我们要预测他的职业是不是作家。在这个图里面已知存在关系是什么呢他写过一篇小说它写过一篇小说 Jane Eyre然后双城记也是一部小说狄更斯是写了双城记这部小说狄更斯是作家同时它下面还有他的父亲职业也是作家所以基于这样图之间的关系就可以较大概率的推理出 Charlotte Bronte 的职业很有可能就是作家这就是基于图之间的关系的特征构建分类器来进行预测的。

  PRA 提取特征的方法主要有随机游走、广度优先和深度优先遍历特征值计算方法有随机游走 probability路径出现/不出现的二值特征以及路径的出现频次等。PRA 方法的优点是直观、解释性好但缺点也很明显有三个主要缺点首先很难处理关系稀疏的数据其次很难处理低连通度的图最后是路径特征提取的效率低且耗时。

  还有是基于分布式的知识语义表示的方法比如像 Trans 系列的模型在这个模型基础上进行语义的推理。TransE 这个模型的思想也比较直观它是将每个词表示成向量然后向量之间保持一种类比的关系。比如上面这个图里面的北京中国然后类比巴黎法国就是北京加上首都的关系就等于中国然后巴黎加上 capital 的关系等于 France。所以它是无限的接近于伪实体的 embed]ding。这个模型的特点是比较简单的但是它只能处理实体之间一对一的关系它不能处理多对一与多对多的关系。

  后来提出了 TransR 的模型了TransR 实际上是解决了上面提到的一对多或者多对一、多对多的问题它分别将实体和关系投射到不同的空间里面。一个实体的空间和一个关系的空间然后在实体空间和关系空间来构建实体和关系的嵌入就对于每个元组h,r,t首先将实体空间中实体通过 Mr 向关系空间进行投影得到 hr 和 Tr然后 Hr 加上 r 是不是约等于或者近似的等于 Tr通过它们在关系空间里面的距离来判断在实体空间里面H 和 T 之间是不是具有这样的关系

  最后介绍一种基于深度学习的推理模型 这个模型利用了卷积神经网络对实体进行关系的分类的把句子的依存树作为输入就是将词在树中的不同的位置的嵌入式的表示拼接到这个词向量当中来学习同时对面相树结构设计了独特的卷积核。这种方法在实体分类的任务上相较于未使用位置关系的信息效果会有一定的提升。

  首先左边会把用户的语音经过语音转成文字以后进行一个预处理预处理主要是做了分词、纠错、词性标注、实体属性的识别对这个句子进行依存句法树的结构分析。

  预处理完了以后引擎会首先尝试根据问句的句法结构进行问句模板的匹配如果说能够匹配到合适的问句模板这个时候再根据在预处理阶段得到的问句的实体属性和关系对匹配到的问题模板进行实例化然后再根据实例化以后的问句模板来生成知识图谱的图数据库的查询语言然后在图数据库里面就可以把这个答案查出来了。

  另外一种情况是没有匹配到合适的问句模板这个时候会进入到基于检索的问答模块最后是把基于知识图谱和基于检索的两种的结果进行融合。

  HR 创建的 JD 能够自动的匹配到简历库里面最合适的候选人的简历也即把 JD 的内容和简历库里面简历的内容做语义的匹配。这里有一个问题JD 对技能的描述和不同的人的简历中对技能的描述存在很多表达方式造成的语义方面的差异。我们分别对 JD 和简历构建技能图谱通过技能图谱的子图匹配就可以比较好地来解决语义匹配的问题。

  第一界定好范围就是要有一个明确的场景和问题的定义不能说为了知识图谱而知识图谱。如果没有想清楚知识图谱有什么样的应用的场景或者能解决什么样的问题这样的知识图谱是比较难以落地的。一些明确的场景比如解决商品数据的搜索问题或者从产品说明书里面做相关问题的回答。

  第二做好 schema 的定义就是上面讲到的对于schema或者本体的定义。第一步确定好场景和问题以后就基于这样的场景或者问题再进行相关领域的 schema 的定义。定义这个领域里概念的层次结构、概念之间的关系的类型这样做是确保整个知识图谱是比较严谨的知识的准确性是比较可靠的。知识的模型的定义或者 schema 的定义大部分情况下是通过这个领域的知识专家的参与自上而下的方式去定义的。

  第三数据是知识图谱构建基础。数据的梳理就比较重要最需要什么样的数据依赖于我们要解决的问题是什么或者我们的应用场景是什么基于问题和场景梳理出领域相关的问题、相关的数据包括结构化的数据、半结构化数据、无结构化的数据结合百科跟这个领域相关的数据领域的词典或者领域专家的经验的规则。

  第四不要重复去造轮子很多百科的数据和开放知识图谱的数据是可以融合到我们的领域知识图谱中。

  第五要有验证和反馈机制需要有管理后台用户可以不断的和知识图谱系统进行交互不断的进行确认和验证确保知识图谱每一步推理和计算都是准确的。

  m0_61140712:Python从入门到精通全套视频,网盘容易失效,尽快下载到电脑 链接:提取码:7777

相关文章

02154796948
扫描二维码关注我们

扫描二维码 关注我们