1.6 知识图谱的相关技术

优质
小牛编辑
119浏览
2023-12-01

知识图谱是交叉领域,涉及的相关领域包括人工智能、数据库、自然语言处理、机器学习、分布式系统等。下面分别从数据库系统、智能问答、机器推理、推荐系统、区块链与去中心化等角度介绍知识图谱有关的相关技术进展。

1.6.1 知识图谱与数据库系统

随着知识图谱规模的日益增长,知识图谱数据管理问题愈加突出。近年来,知识图谱和数据库领域均认识到大规模知识图谱数据管理任务的紧迫性。由于传统关系数据库无法有效适应知识图谱的图数据模型,知识图谱领域形成了 RDF 数据的三元组库(Triple Store),数据库领域开发了管理属性图的图数据库(Graph Database)。

知识图谱的主要数据模型有RDF图(RDF graph)和属性图(Property Graph)两种;知识图谱查询语言可分为声明式(Declarative)和导航式(Navigational)两类。

RDF 三元组库主要是由 Semantic Web 领域推动开发的数据库管理系统,其数据模型RDF图和查询语言SPARQL均遵守W3C标准。查询语言SPARQL从语法上借鉴了SQL语言,属于声明式查询语言。最新的 SPARQL 1.1版本[91] 为有效查询 RDF 三元组集合设计了三元组模式(Triple Pattern)、基本图模式(Basic Graph Pattern)、属性路径(Property Path)等多种查询机制。

图数据库是数据库领域为更好地存储和管理图模型数据而开发的数据库管理系统,其数据模型采用属性图,其上的声明式查询语言有:Cypher[92] 、PGQL[93] 和 G-Core[94] 。Cypher 是开源图数据库 Neo4j 中实现的图查询语言。PGQL 是 Oracle 公司开发的图查询语言。G-Core是由LDBC(Linked Data Benchmarks Council)组织设计的图查询语言。考虑到关系数据库采用统一的查询语言SQL,目前学术和工业界关于开发统一图数据库语言的呼声越来越高。

目前,基于三元组库和图数据库能够提供的知识图谱数据存储方案可分为三类:

(1)基于关系的存储方案。包括三元组表、水平表、属性表、垂直划分、六重索引和DB2RDF等。

三元组表是将知识图谱中的每条三元组存储为一行具有三列的记录(主语,谓语,宾语)。三元组表存储方案虽然简单明了,但三元组表的行数与知识图谱的边数一样,其问题是将知识图谱查询翻译为SQL后会产生大量三元组表的自连接操作,影响效率。

水平表存储方案的每行记录存储知识图谱中一个主语的所有谓语和宾语,相当于知识图谱的邻接表。但其缺点在于所需列数目过多,表中产生大量空值,无法存储多值宾语等。

属性表存储方案将同一类主语分配到一个表中,是对水平表存储方案的细化。属性表解决了三元组表的自连接问题和水平表的列数目过多问题。但对于真实大规模知识图谱,属性表的问题包括:所需属性表过多,复杂查询的多表连接效率,空值问题和多值宾语问题。

垂直划分存储方案为知识图谱中的每种谓语建立一张两列的表(主语,宾语),表中存放由该谓语连接的主语和宾语,支持“主语-主语”作为连接条件的查询操作的快速执行。垂直划分有效解决了空值问题和多值宾语问题;但其仍有缺点,包括:大规模知识图谱的谓语表数目过多、复杂查询表连接过多、更新维护代价大等。

六重索引存储方案是将三元组全部6种排列对应地建立为6张表。六重索引通过“空间交换时间”策略有效缓解了三元组表的自连接问题,但需要更多的存储空间开销和索引更新维护代价。

DB2RDF 存储方案[95] 是一种较新的基于关系的知识图谱存储方案,是以往存储方案的一种权衡优化。三元组表的灵活性体现在“行维度”上,无论多少行三元组数据,表模式只有3列固定不变;DB2RDF 方案将这种灵活性推广到了“列维度”,列名称不再和谓语绑定,将同一主语的所有谓语和宾语动态分配到某列。

(2)面向 RDF 的三元组库。主要的 RDF 三元组库包括:商业系统 Virtuoso、AllegroGraph、GraphDB和BlazeGraph,开源系统Jena、RDF-3X和gStore[96]

RDF4J目前是Eclipse基金会旗下的开源孵化项目,其功能包括RDF数据的解析、存储、推理和查询等。RDF4J 本身提供内存和磁盘两种 RDF 存储机制,支持全部的SPARQL 1.1查询和更新语言,可以使用与访问本地 RDF 库相同的 API 访问远程 RDF库,支持所有主流的 RDF 数据格式,包括 RDF/XML、Turtle、N-Triples、N-Quads、JSON-LD、TriG和TriX。RDF4J框架的主要特点是其模块化的软件架构设计。

RDF-3X 是德国马克斯·普朗克计算机科学研究所开发的三元组数据库,其特点是为RDF优化设计的物理存储方案和查询处理方法,是实现六重索引的典型系统。

gStore 是由北京大学、加拿大滑铁卢大学和香港科技大学联合研究项目开发的基于图的 RDF三元组数据库。gStore 的底层存储使用 RDF图对应的标签图(Signature Graph)并建立“VS树”索引结构以加速查找。gStore系统提出建立“VS树”索引,其基本思想实际上是为标签图G*建立不同详细程度的摘要图(Summary Graph);利用“VS树”索引提供的摘要图,gStore系统提出可以大幅削减SPARQL查询的搜索空间,以加快查询速度。

Virtuoso 是由 OpenLink 公司开发的商业混合数据库产品,支持关系数据、对象-关系数据、RDF 数据、XML 数据和文本数据的统一管理。因为 Virtuoso 可以较为完善地支持W3C的Linked Data系列协议,包括DBpedia在内的很多开放RDF知识图谱选择其作为后台存储系统。

AllegroGraph 是美国 Franz 公司开发的 RDF 三元组数据库。AllegroGraph 遵循对W3C 语义 Web 相关标准的严格支持,包括 RDF、RDFS、OWL 和 SPARQL 等。AllegroGraph 对语义推理功能具有较为完善的支持。AllegroGraph 除了三元组数据库的基本功能,还支持动态物化的 RDFS++推理机、OWL2 RL 推理机、Prolog 规则推理系统、时空推理机制、社会网络分析库、可视化RDF图浏览器等。

GraphDB是由保加利亚的Ontotext软件公司开发的RDF三元组数据库。GraphDB实现了 RDF4J 框架的 SAIL 层,与 RDF4J API 无缝对接,也就是说,可以使用 RDF4J 的RDF模型、解析器和查询引擎直接访问GraphDB。GraphDB的特色是良好支持RDF推理功能,其使用内置的基于规则的“前向链”(Forward-Chaining)推理机,由显式知识经过推理得到导出知识,对这些导出知识进行优化存储;导出知识会在知识库更新后相应地同步更新。

Blazegraph 是一个基于 RDF 三元组库的图数据库管理系统,在用户接口层同时支持RDF三元组和属性图模型,既实现了SPARQL语言,也实现了Blueprints标准及Gremlin语言。通过分布式动态分片 B+树和服务总线技术,Blazegraph 支持真正意义上的集群分布式存储和查询处理。正是缘于此,Blazegraph 在与 Neo4j 和 Titan 的竞争中脱颖而出,被Wikidata选为查询服务的后台图数据库系统。

Stardog是由美国Stardog Union公司开发的RDF三元组数据库,支持RDF图数据模型、SPARQL 查询语言、属性图模型、Gremlin 图遍历语言、OWL2标准、用户自定义的推理与数据分析规则、虚拟图、地理空间查询以及多用编程语言与网络接口支持。Stardog虽然发布较晚,但其对 OWL2推理机制具有良好的支持,同时具备全文搜索、GraphQL查询、路径查询、融合机器学习任务等功能,能够支持多种不同编程语言和 Web 访问接口,使得Stardog成了一个知识图谱数据存储和查询平台。

(3)原生图数据库。Neo4j是用Java实现的开源图数据库。可以说Neo4j是目前流行程度最高的图数据库产品。Neo4j 的不足之处在于其社区版是单机系统,虽然 Neo4j 企业版支持高可用性(High availability)集群,但其与分布式图存储系统的最大区别在于每个节点上存储图数据库的完整副本(类似于关系数据库镜像的副本集群),而不是将图数据划分为子图进行分布式存储,而并非真正意义上的分布式数据库系统。如果图数据超过一定规模,系统性能就会因为磁盘、内存等限制而大幅降低。

JanusGraph 是在原有 Titan 系统基础上继续开发的开源分布式图数据库,目前是Linux 基金会旗下的一个开源项目。JanusGraph 的存储后端与查询引擎是分离的,由于其可使用分布式Bigtable存储库Cassandra或HBase作为存储后端,因此JanusGraph自然就成了分布式图数据库。JanusGraph 的主要缺点是分布式查询功能仅限于基于 Cassandra 或HBase 提供的分布式读写实现的简单导航查询,对于很多稍复杂的查询类型,目前还不支持真正意义上的分布式查询处理,例如子图匹配查询、正则路径查询等。

OrientDB最初是由OrientDB公司开发的多模型数据库管理系统。OrientDB虽然支持图、文档、键值、对象、关系等多种数据模型,但其底层实现主要面向图和文档数据存储管理的需求设计。其存储层中数据记录之间的关联并不像关系数据库那样通过主外键的引用,而是通过记录之前直接的物理指针。

Cayley 是由谷歌公司工程师开发的一款轻量级开源图数据库,于2014年6月在GitHub 上发布。Cayley 的开发受到了 Freebase 知识图谱和谷歌知识图谱背后的图数据存储的影响,目标是成为开发者管理 Linked Data 和图模型数据(语义 Web、社会网络等)的有效工具之一。

总体来讲,基于关系的存储系统继承了关系数据库的优势,成熟度较高,在硬件性能和存储容量满足的前提下,通常能够适应千万到十亿三元组规模的管理。官方测评显示,关系数据库Oracle 12c配上空间和图数据扩展组件(Spatial and Graph)可以管理的三元组数量高达1.08万亿条[97] 。对于一般在百万到上亿三元组的管理,使用稍高配置的单机系统和主流RDF三元组数据库(如Jena、RDF4J、Virtuoso等)完全可以胜任。如果需要管理几亿到十几亿以上大规模的 RDF 三元组,则可尝试部署具备分布式存储与查询能力的数据库系统(如商业版的 GraphDB 和 BlazeGraph、开源的 JanusGraph 等)。近年来,以Neo4j为代表的图数据库系统发展迅猛,使用图数据库管理RDF三元组也是一种很好的选择;但目前大部分图数据库还不能直接支持 RDF 三元组存储,对于这种情况,可采用数据转换方式,先将RDF预处理为图数据库支持的数据格式(如属性图模型),再进行后续管理操作。

目前,还没有一种数据库系统被公认为是具有主导地位的知识图谱数据库。但可以预见,随着三元组库和图数据库的相互融合发展,知识图谱的存储和数据管理手段将愈加丰富和强大。

1.6.2 知识图谱与智能问答

基于知识图谱的问答(Knowledge-based Question Answering,KBQA,下称“知识问答”)是智能问答系统的核心功能,是一种人机交互的自然方式。知识问答依托一个大型知识库(知识图谱、结构化数据库等),将用户的自然语言问题转化成结构化查询语句(如SPARQL、SQL等),直接从知识库中导出用户所需的答案。

近几年,知识问答聚焦于解决事实型问答,问题的答案是一个实义词或实义短语。如“中国的首都是哪个城市?北京”或“菠菜是什么颜色的?绿色”。事实型问题按问题类型可分为单知识点问题(Single-hop Questions)和多知识点问题(Multi-hop Questions);按问题的领域可分为垂直领域问题和通用领域问题。相对于通用领域或开放领域,垂直领域下的知识图谱规模更小、精度更高,知识问答的质量更容易提升。

知识问答技术的成熟与落地不仅能提高人们检索信息的精度和效率,还能提升用户的产品体验。无论依托的知识库的规模如何,用户总能像“跟人打交道一样”使用自然语言向机器提问并得到反馈,便利性与实用性共存。

攻克知识问答的关键在于理解并解析用户提出的自然语言问句。这涉及自然语言处理、信息检索和推理(Reasoning)等多个领域的不同技术。相关研究工作在近五年来受到越来越多国内外学者的关注,研究方法主要可分为三大类:基于语义解析(Semantic Parsing)的方法、基于信息检索(Information Retrieval)的方法和基于概率模型(Probabilistic Models)的方法。

大部分先进的知识问答方法是基于语义解析的,目的是将自然语言问句解析成结构化查询语句,进而在知识库上执行查询得到答案。通常,自然语言问句经过语义解析后,所得的语义结构能解释答案的产生。在实际工程应用中,这一点优势不仅能帮助用户理解答案的产生,还能在产生错误答案时帮助开发者定位错误的可能来源。

微软在利用语义解析技术解决单知识点问答(Single-hop Question Answering)中有突出贡献。2014年,叶等人[98] 指出,解决单知识点问答的关键在于将原任务分解为两个子任务——话题词识别和关系检测。如回答“姚明的妻子是谁?”,可先通过计算语义相似性将问句解析成形如“(姚明,妻子,?)”的查询。其中,话题词是“姚明”,问题中包含的关系为“妻子”(或“配偶”),再在知识库中执行查询,得到答案。2015年,叶等人[99] 强调,直接从大型知识库中寻找与问句含义匹配的关系是比较困难的。论文中首先采用实体链接(Entity Linking)定位话题词,再从与话题词相关的关系子集中寻找与问句含义匹配的关系,从而将问句解析成一个结构化的查询。2016年,叶等人[100] 继承了斯坦福自然语言处理组开源的 WebQuestions 数据集,并在此基础上标注了问题的语义解析结果(SPARQL查询),贡献了WebQuestionsSP数据集。

在基于语义解析的方法训练过程中,问答模型隐式地学习了标注数据中蕴涵的语法解析规律。这使得模型能具有更好的可解释性。但是,数据标注需要花费大量的人力和财力,是不切实际的。而基于信息检索的方法回避了这个问题。基于信息检索的知识问答大致可分为两步:①通过粗粒度信息检索,在知识库中直接筛选出候选答案;②根据问句中抽取出的特征,对候选答案进行排序。这就要求模型对问句的语义有充分的理解。而在自然语言中,词语同义替换等语言现象提升了理解问题的难度。[102]

为了实现有效的信息检索式知识问答,学者们聚焦于如何让机器理解用户的问题,以及掌握问题与知识库间的匹配规律。可行的方法包括:

●集成额外的文本信息[101] ,如Wikipedia或搜索引擎结果;

●提出更多、更复杂的网络结构,如多列卷积神经网络[102] (Multi-Column Convolutional Neural Networks,MCCNN)、深度残差双向长短时记忆网络[6] (Deep Residual Bidirectional Long Short-term Memory Network)和注意力最大池化层[103] (Attentive Max Pooling Layer);

●联合训练[104] 实体链接和关系检测两个模块。

除上述两大流派外,有部分学者将知识问答问题看作是一个条件概率问题[105,106] ,即是要求给定问句 Q 时,答案为 α 的概率 P(A=α|Q),进而引入概率分解[9] 或变分推理[107] 的技巧,将目标概率分而治之。

大部分已有的知识问答解决方案都停留在回答单知识点事实型问题上。在这类问题中,基于语义解析的方法和基于信息检索的方法并不呈完全割裂、对立的关系[1] 。二者几乎都把知识问答看作是话题词识别和关系检测两个子任务串行。在一些论文中,学者们声称单知识点问答已接近人类水平[108]

未来,学者们必然将更多的精力投入解决复杂的多知识点事实型问答上。这类问题涉及的自然语言现象更丰富,如关系词的词汇组合性[109] (Sub-Lexical Compositionality)、多关系词间语序等。另外一种思路是:研究如何将多知识点问题转化为单知识点问题。因此,先进的单知识点问答模型直接被复用。

除此之外,在理解问题、回答问题的过程中,模型应具备更强的推理能力和更好的可解释性。更强的推理能力能满足用户的复杂提问需求。更好的可解释性使用户在“知其然”的同时“知其所以然”。

1.6.3 知识图谱与机器推理

推理是指基于已知的事实或知识推断得出未知的事实或知识的过程。典型的推理包括演绎推理(Deductive Reasoning)、归纳推理(Inductive Reasoning)、溯因推理(Abductive Reasoning)、类比推理(Analogical Reasoning)等。在知识图谱中,推理主要用于对知识图谱进行补全(Knowledge Base Completion,KBC)和知识图谱质量的校验。

知识图谱中的知识可分为概念层和实体层。知识图谱推理的任务是根据知识图谱中已有的知识推理出新的知识或识别出错误的知识。其中,概念层的推理主要包括概念之间的包含关系推理,实体层的推理主要包括链接预测与冲突检测,实体层与概念层之间的推理主要包括实例检测。推理的方法主要包含基于规则的推理、基于分布式表示学习的推理、基于神经网络的推理以及混合推理。

1.基于规则的推理

基于规则的推理通过定义或学习知识中存在的规则进行推理。根据规则的真值类型,可分为硬逻辑规则和软逻辑规则。硬逻辑规则中的每条规则的真值都为1,即绝对正确,人工编写的规则多为硬逻辑规则。软逻辑规则即每条规则的真值为区间在0到1之间的概率,规则挖掘系统的结果多为软逻辑规则,其学习过程一般是基于规则中结论与条件的共现特征,典型方法有 AMIE[110] 等。软逻辑规则可通过真值重写转化为硬逻辑规则。硬逻辑规则可写成知识图谱本体中的SWRL规则,然后通过如Pellet、Hermit等本体推理机进行推理。规则推理在大型知识图谱上的效率受限于它的离散性,Cohen 提出了一个可微的规则推理机TensorLog[111]

基于规则的推理方法最主要的优点是在通常情况下规则比较接近人思考问题时的推理过程,其推理结论可解释,所以对人比较友好。在知识图谱中已经沉淀的规则具有较好的演绎能力。

2.基于分布式表示学习的推理

分布式表示学习的核心是将知识图谱映射到连续的向量空间中,并为知识图谱中的元素学习分布式表示为低维稠密的向量或矩阵。分布式表示学习通过各元素的分布式表示之间的计算完成隐式的推理。多数表示学习方法以单步关系即单个三元组为输入和学习目标,不同的分布式表示学习方法对三元组的建模基于不同的空间假设。例如,以TransE[112] 为代表的Trans系列模型基于的是关系向量表示在空间中的平移不变性,故将关系向量看作是头实体向量到尾实体向量的翻译并采用向量加法模拟;以 DistMult[113] 为代表的线性转换模型将关系表示为矩阵,头实体的向量可经过关系矩阵的线性变换转换为尾实体;以 RESCAL[114] 为代表的模型将知识图谱表示为高维稀疏的三维张量,通过张量分解得到实体和关系的表示。考虑到知识图谱中的多步推理的表示学习方法有PTransE[115] 和CVSM[116]

3.基于神经网络的推理

基于神经网络的推理通过神经网络的设计模拟知识图谱推理,其中 NTN[117] 用一个双线性张量层判断头实体和尾实体的关系,ConvE[118] 等在实体和关系的表示向量排布出的二维矩阵上采用卷机神经网络进行链接预测,R-GCN[119] 通过图卷积网络捕捉实体的相邻实体信息,IRN[120] 采用记忆矩阵以及以递归神经网络为结构的控制单元模拟多步推理的过程。基于神经网络的知识图谱推理表达能力强,在链接预测等任务上取得了不错的效果。网络结构的设计多样,能够满足不同的推理需求。

4.混合推理

混合推理一般结合了规则、表示学习和神经网络。例如,NeuralLP[121] 是一种可微的知识图谱推理方法,融合了关系的表示学习、规则学习以及循环神经网络,由 LSTM 生成多步推理中的隐变量,并通过隐变量生成在多步推理过程中对每种关系的注意力。DeepPath[122] 和 MINERVA[123] 用强化学习方法学习知识图谱多步推理过程中的路径选择策略。RUGE[124] 将已有的推理规则输入知识图谱表示学习过程中,约束和影响表示学习结果并取得更好的推理效果。文献[125] 使用了对抗生成网络(GAN)提升知识图谱表示学习过程中的负样本生成效率。混合推理能够结合规则推理、表示学习推理以及神经网络推理的能力并实现优势互补,能够同时提升推理结果的精确性和可解释性。

基于规则的知识图谱推理研究主要分为两部分:一是自动规则挖掘系统,二是基于规则的推理系统。目前,二者的主要发展趋势是提升规则挖掘的效率和准确度,用神经网络结构的设计代替在知识图谱上的离散搜索和随机游走是比较值得关注的方向。

基于表示学习的知识图谱推理研究的主要研究趋势是,一方面提高表示学习结果对知识图谱中含有的语义信息的捕捉能力,目前的研究多集中在链接预测任务上,其他推理任务有待跟进研究;另一方面是利用分布式表示作为桥梁,将知识图谱与文本、图像等异质信息结合,实现信息互补以及更多样化的综合推理。

基于神经网络的知识表示推理的主要发展趋势是设计更加有效和有意义的神经网络结构,来实现更加高效且精确的推理,通过对神经网络中间结果的解析实现对推理结果的部分解释是比较值得关注的方向。

1.6.4 知识图谱与推荐系统

随着互联网技术的飞速发展,各种信息在互联网上汇集,信息呈指数级增长,人们面临着信息过载的问题,推荐系统的提出是解决这一问题的有力途径。但是,推荐系统在启动阶段往往效果不佳,存在冷启动问题,而且用户历史记录数据往往较为稀疏,使得推荐算法的性能很难让用户满意。知识图谱作为先验知识,可以为推荐算法提供语义特征,引入它们可以有效地缓解数据稀疏问题,提高模型的性能。

基于知识图谱的推荐模型大部分是以现有的推荐模型为基础的,如基于协同过滤和基于内容的推荐模型,将知识图谱中关于商品、用户等实体的结构化知识加入推荐模型中,通过引入额外的知识改善早期推荐模型中数据稀疏的问题。文献[126] 提出了利用 DBpedia知识图谱中的层次类别信息应用于推荐任务中,他们通过传播激活算法在知识图谱中寻找推荐实体。文献[127] 通过计算知识图谱中蕴涵的语义距离建立音乐推荐模型。下面分别介绍三类利用知识图谱的推荐模型,分别为:基于知识图谱中元路径的推荐模型、基于概率逻辑程序的推荐模型、基于知识图谱表示学习技术的推荐模型。

考虑到知识图谱是一个表示不同实体之间关系的图,研究人员利用图上路径的连通信息计算物品之间的相似度[128] 。研究人员通过元路径的概念利用图的信息[129,130] ,元路径是图中不同类型实体和关系构成的路径。文献[131] 利用元路径在图上传播用户偏好,并结合传统的协同过滤模型,最终实现了个性化的推荐模型。其具体方法如下:首先,沿着不同元路径利用路径相似度计算用户对不同物品的偏好,最终学得在元路径P下的偏好矩阵。针对每条元路径学得偏好矩阵,通过潜在因子模型对每个偏好矩阵进行分解,最终可获得每条路径下用户和物品的潜在因子矩阵,最终通过对每条路径下推荐结果的求和获得最终的全局推荐模型。其工作有效地利用了知识图谱中不同类型实体间路径的语义信息传递用户的偏好,但是路径需要人工选择。

文献[132]提出了基于概率逻辑程序的推荐模型,文献作者[133] 将推荐问题形式化为逻辑程序,该逻辑程序对目标用户按查询得分高低输出推荐物品的结果,最终寻找到目标用户的推荐物品。文献作者提出了三种不同的推荐方法,分别为 EntitySim、TypeSim 和GraphLF,性能超过了以前的最佳方法[134] 。这三种方法都是基于通用目的的概率逻辑系统ProPPR。其中,EntitySim 方法只使用图上的连接信息;TypeSim 方法使用了实体的 type信息,GraphLF 提出了一个结合概率逻辑程序和用户物品潜在因子模型的方法。他们的基本思路类似于文献[134]的工作,通过规则在知识图谱中传递用户的偏好,解决了路径人工选择的问题。但是,他们将推荐的流程分为寻找用户偏好实体和通过偏好实体寻找物品两个步骤,导致无法有效地利用物品与物品之间的关系和用户与用户之间的关系。例如,在电影推荐的例子中,电影《谍影重重4》是《谍影重重3》的续集,但是《谍影重重4》更换了主演,而如果通过他们方法中的规则,用户无法通过《谍影重重3》的主演马特·达蒙寻找到《谍影重重4》。

通过知识图谱表示学习技术,可以获得知识图谱中实体和关系的低维稠密向量,其可以在低维的向量空间中计算实体间的关联性,与传统的基于符号逻辑在图上查询和推理的方法相比,大大降低了计算的复杂度。文献[134]提出使用知识图谱表示学习技术提取知识图谱中的特征,以该特征向量使用 K 近邻的方法寻找用户最相近的物品,但是该模型与推荐模型结合较为松散,仅使用知识图谱表示学习作为特征提取的一种方法。

文献[135]在王灏等人[136] 工作的基础上进行扩展,通过表示学习的方法将知识图谱中的信息加入推荐模型中,提出了协同知识图谱表示学习的推荐模型(Collaborative Knowledge Base Embedding Recommender System),他们方法的具体思路如下:首先,通过知识表示学习获得知识图谱中和推荐物品相关的结构化信息,通过去噪编码器网络从物品相关的文本中学习编码层的文本表示向量,并通过和文本建模相似的去噪编码器网络从图像中学习视觉表示向量,并将这些表示向量引入物品的潜在因子向量中,结合矩阵分解算法完成推荐。该工作通过贝叶斯理论的角度解释并联合了不同算法的优化目标。但是,在推荐领域的知识图谱中,实体之间的关系非常稠密,且关系类型较少。以 TransE 为代表的模型不适合处理一对多、多对多的关系,尽管 TransR 针对该问题进行了一定的改进,但当应对相同类型关系的一对多、多对一和多对多关系时,算法实际退化为TransE。因此,本书在协同过滤算法上引入一类新的知识图谱表示学习的技术[137,138] 提取知识图谱中的结构化信息,最终提出了一个基于知识图谱表示学习的协同过滤推荐系统。

1.6.5 区块链与去中心化的知识图谱

语义网的早期理念实际上包含三个方面:知识的互联、去中心化的架构和知识的可信。知识图谱在一定程度上实现了“知识互联”的理念,然而在去中心化的架构和知识可信两个方面都仍然没有出现较好的解决方案。

对于去中心化,相比起现有的多为集中存储的知识图谱,语义网强调知识以分散的方式互联和相互链接,知识的发布者拥有完整的控制权。近年来,国内外已经有研究机构和企业开始探索通过区块链技术实现去中心化的知识互联。这包括去中心化的实体 ID 管理、基于分布式账本的术语及实体命名管理、基于分布式账本的知识溯源、知识签名和权限管理等。

知识的可信与鉴真也是当前很多知识图谱项目面临的挑战和问题。由于很多知识图谱数据来源广泛,且知识的可信度量需要作用到实体和事实级别,怎样有效地对知识图谱中的海量事实进行管理、追踪和鉴真,也成为区块链技术在知识图谱领域的一个重要应用方向。

此外,将知识图谱引入智能合约(Smart Contract)中,可以帮助解决目前智能合约内生知识不足的问题。例如,PCHAIN[139] 引入知识图谱 Oracle 机制,解决传统智能合约数据不闭环的问题。