知识图谱和本体语义建模,到底有什么不一样?
在谈论人工智能如何理解知识的时候有两个词经常被一起提起知识图谱和本体语义建模。很多人以为它们是一回事或者前者是后者的升级版。其实它们俩的分工完全不同甚至可以说一个是记事的本子另一个是写本子之前先定好的规矩。1. 本体语义建模先画一张万能分类地图想象一下你要整理一个巨大的仓库。仓库里有各种各样的东西但你不想乱堆你想分门别类。本体语义建模干的就是提前设计仓库分区图的活。它不关心仓库里具体放了哪一箱货物它只关心仓库里最大分成几大类每一类下面还能不能细分不同大类之间能不能发生某种关系哪些类别天生就是互斥的绝对不能混在一起用一句话说本体就是一套规则说明书和关系定义书。它是在告诉你这个世界或者说你要处理的领域里有哪些类型的对象以及这些类型之间在逻辑上必须遵守什么规矩。它的核心产出不是数据而是一套逻辑框架。这个框架是静态的、抽象的就像一张还没填东西的表格模板。它的目的是保证以后所有填进去的内容都不会违反常识和逻辑。2. 知识图谱后往地图上贴具体便签当那张万能分类地图本体设计好之后我们才开始往里面放真实存在的具体东西。知识图谱干的就是往地图格子里填写具体实物的活。它关心的全是现实中的个别存在这个具体的货物叫什么名字它被放在哪个具体的格子旁边它和另一个具体货物之间有什么实际记录知识图谱是由一条条具体事实组成的网络。它不负责定规矩它只负责记录事实。它就是那张已经被填满了各种便签和实物卡片的地图我们可以顺着卡片找东西、看关联。3. 最核心的区别一个是规则一个是事实如果非要用大白话总结本体语义建模在问猫和狗是两种不同的类别它们不能互为父子这个逻辑对不对——它管的是逻辑正确性和类别关系。知识图谱在问我家那只叫咪咪的猫和邻居家那只叫旺财的狗之间有没有一起玩过这条记录——它管的是具体实例和存在关系。更通俗一点本体是字典的部首检字表知识图谱是按检字表写满的具体词条。没有检字表词条会乱放没有词条检字表就是一本空册子。4. 它们是先后顺序的关系而非谁替代谁很多人误以为知识图谱更高级因为看起来数据更多、更丰富。但实际上在正规的知识工程流程里本体语义建模是前置步骤知识图谱是后置结果。只有先把本体规则框架定清楚你才知道该收集哪些事实、如何命名关系、哪些数据冲突需要剔除。如果跳过了本体直接堆砌事实那得到的只是一团乱麻算不上一张图谱只能叫关系大杂烩。反过来如果只抱着本体规则不放而不去填入任何具体事实那它就毫无实用性只是一套逻辑空壳。5. 那在真正的实践落地中它们怎么结合在实际的系统构建过程中越来越多的思路倾向于把定规则这个本体环节提前而不是上来就抓取数据建图谱。因为只有先明确领域内的基本分类和边界后续的知识组织才不会跑偏。国内的一些AI基础框架在探索这条路时也遵循了这个先后逻辑。例如山东向量空间的JBoltAI框架在面向复杂信息处理时便将本体语义建模作为数据接入前的语义标准化步骤。这种设计本质上就是把先画地图和后贴标签拆成了两个独立但衔接的工程阶段从而让后续的知识组织更有章法。这也是当前行业内区分二者并物尽其用的一个缩影。别把本体和知识图谱当成竞争关系。本体定逻辑图谱填事实。