知识图谱虽然功能强大,但在实际场景中实现它们并非一帆风顺。我们必须意识到其中的挑战、局限性和潜在风险,包括技术问题,比如可扩展性、数据质量、模式复杂性、与非结构化或动态数据的集成障碍,以及偏见和隐私等道德问题。
可扩展性和性能:一个挑战是将知识图谱扩展到极大规模(数十亿个节点/边),同时保持复杂查询和更新的性能。图数据,尤其是 RDF,可以高度互联——单个查询可能会触及图谱的很大一部分,例如,查询社交网络中某人的所有朋友的朋友的朋友的朋友。与分片的关系数据不同,由于任意连接的存在,图的遍历更难分区。因此,许多三元组存储系统在超过一定数据量后会变得难以处理,甚至需要进行大量调整。即使是那些可扩展的分布式图数据库,当查询需要跨分区连接数据时,也会面临性能瓶颈。Ontotext 的讨论中提出了一个很有说服力的观点:你可以以某些方式扩展 GraphDB,但查询的某些部分不可避免地会按顺序运行(例如,复杂的推理),因此垂直扩展存在限制。换句话说,由于图工作负载的性质,投入更多机器来解决这个问题并不总是能带来线性的改进。
这是一个陷阱:如果在设计知识图谱解决方案时不考虑性能,那么当数据增长时,查询响应可能会很慢。缓存和精细建模(例如,添加冗余关系以避免查询时出现长链)可以缓解这个问题,但代价是复杂性增加。另一个方面是更新可扩展性——在大型知识图谱中添加或更改数据,尤其是在启用推理的情况下,如果触发重新计算推理或重新索引,则成本可能很高。像 Neo4j 或 JanusGraph 这样的针对快速写入进行了优化的系统,可能比重新计算蕴涵关系的大型 RDF 存储更好地处理流数据。为了解决这个问题,一些架构将每晚更新的“分析知识图谱”与实时图谱分开,以实现快速交互。但这管理起来很复杂。
数据质量与一致性:知识图谱的实用性取决于其数据的质量。然而,确保质量可能非常困难,因为知识图谱通常聚合来自多个来源,且可靠性参差不齐。不一致和错误可能会悄然出现——例如,知识图谱中可能包含来自不同来源的同一人的两个出生日期,或者包含相互矛盾的陈述。与具有严格约束的结构化数据库不同,知识图谱倾向于允许存在相互矛盾的数据,除非明确加以约束,即使明确约束,检测和解决冲突也极具挑战性。构建知识图谱的过程通常涉及自动提取(通过自然语言处理从文本中提取,或从网络数据中提取),这可能会引入噪声。因此,一个隐患是,你的知识图谱可能会变成一个包含虚假或过时信息的庞大事实集合,而粗心地使用它可能误导人工智能系统。有些文献中提到的一个关键障碍是“如何获得准确、完整且一致的知识图谱”——这仍然是一个重大挑战。许多高质量的知识图谱 (KG) 都是结合自动化、人工管理和验证机制构建的,因为完全自动化的方法经常会出错。例如,由于解析错误或上下文问题,自然语言处理 (NLP) 可能会提取出一个实际上并不成立的关系;如果将其添加到知识图谱中,它就变成了一个虚假事实,并可能传播到 AI 结果中。一些知识图谱(例如 Wikidata)有社区驱动的验证机制来缓解这种情况,但企业级知识图谱可能没有这种优势。
不完整性:与质量相关的是不完整性问题。知识图谱,尤其是那些旨在模拟现实世界片段的知识图谱,不可避免地存在不完整性。并非所有事实都能被捕获。例如,知识图谱可能列出了某人的部分奖项,但遗漏了其他奖项。或者,它可能存在这样一种关系:一种药物只有在处理某些来源时才能治疗某种疾病,而其他来源则被遗漏。这很重要,因为正如评估中提到的,如果某些内容不在知识图谱中,它可能被视为错误的(封闭世界假设),而实际上它只是未知的(开放世界现实)。完全依赖知识图谱的人工智能系统可能会回答“不,X 从未获得过 Y 奖项”,仅仅因为它没有记录在知识图谱中,而实际上数据只是不完整。这可能导致假阴性或错误的缺失推断。在逻辑推理中,证据的缺失并不等于证据的缺失——但除非谨慎处理,否则知识图谱并不总是能够区分这种细微差别。如果不承认这一点,这将是一个陷阱:人们必须设计查询和逻辑来考虑不确定性或具有完整性元数据(例如,声明 KG 对于某些关系是完整的,而对于其他关系则不完整的属性)。
模式复杂性与本体管理:为知识图谱设计一个好的模式(本体)可能非常复杂。本体工程通常有着陡峭的学习曲线——决定如何对领域进行建模,使用哪些类和属性,并在过于具体(这会使数据输入繁琐且查询繁重)和过少具体(这会降低推理的效用)之间取得平衡。如果模式过于僵化,集成新的数据源可能会很困难,因为它们的数据与现有类并不完全匹配。如果模式过于松散,例如所有内容都只是带有通用“relatedTo”链接的“实体”,则会失去语义精确的优势。此外,随着时间的推移,模式的演变并非易事:添加新类可能需要重新分类现有实例或更新规则。有时,初始本体会变得“陈旧”或不再代表业务需求,从而需要重构,由于数据和查询依赖于原始模式,因此重构的成本很高。例如,如果一个零售知识图谱最初只建模实体产品,但后来数字产品也开始出现,那么整合这些实体产品可能需要重新思考本体的某些部分(例如,数字产品没有权重)。
另一个陷阱是:过度设计本体——花费过多精力预先定义每个细微差别,导致项目陷入停滞或变得缺乏灵活性。这是一个众所周知的问题,团队很容易陷入“完美本体”的陷阱,而这种本体要么永远无法完成,要么过于复杂,开发人员无法使用。另一方面,规范不足也会导致不一致(因为规则不够严格,无法防止数据输入错误)。找到合适的平衡点既是一门艺术,也是一门科学,绝对是一项挑战。
与非结构化数据的集成:许多数据源是非结构化文本(文档、新闻、报告)或半结构化文本(表格、JSON)。构建和维护知识图谱意味着需要不断从这些来源提取信息。然而,信息提取(IE) 远非完美——实体识别、链接和关系提取中的错误可能会引入噪音。此外,语言本身就具有歧义性;使用新的文本源更新知识图谱可能会为同一个现实世界实体生成重复条目(如果名称匹配失败)或生成虚假关系。保持非结构化数据与知识图谱之间的一致性是一项挑战。像 spaCy 或 IBM Watson NLU 这样的系统可以帮助提取三元组,但集成通常仍然需要人工监督或复杂的流程。动态场景更加困难:想象一下新闻源源不断地涌入;自动化流程可能会向知识图谱中添加新的事实。如果没有监督,如何避免添加虚假谣言或冗余信息?稳健地实现完全自动化的知识图谱填充是一个开放的挑战——如上所述,最先进的技术仍然需要人工参与质量控制。因此,一个陷阱是期望从原始数据中自动构建一个完美的知识图谱。实际上,它需要仔细的管道设计、置信度评分、可能存储不确定的事实,以及专家对关键信息的验证。
实时动态数据:许多知识图谱难以应对高度动态的数据。如果您的知识领域快速变化,例如,实时传感器数据或流式社交数据,那么保持知识图谱的更新和一致性将非常困难。传统的三元组存储并未针对流式更新进行优化,尽管存在一些较新的图流处理器。目前已有关于动态知识图谱的研究,这些研究会使用新数据进行更新,甚至会忽略过时的信息,但在生产环境中实现这一点非常复杂。例如,表示网络在每个时间点的状态或在事实过期时快速重新计算推理可能会非常繁重。有些人会采用版本控制知识图谱(例如每天更新一个新快照),但这无法捕获连续的变化。如果用例需要实时响应(例如流式交易中的欺诈检测),那么每晚更新的静态知识图谱可能不够用。通常需要对知识图谱中的内容与其他方式(例如流的动态分析)处理的内容进行划分,这会增加复杂性。
知识图谱中的偏见:遗憾的是,知识图谱可能会反映甚至放大其来源或构建中存在的偏见。例如,历史数据可能无法充分代表某些群体或观点,而基于此构建的知识图谱就会带有这种偏见。如果人工智能使用该知识图谱,可能会做出不公平的决策。例如,就业历史知识图谱可能存在性别偏见(过去的数据可能显示从事 STEM 职位的女性较少,但如果人工智能使用该知识图谱来推荐导师或招聘,它可能会忽略符合条件的女性)。本体论中也存在偏见:概念的定义方式(例如,以欧洲为中心的类别与其他类别相比)。最近的一项研究考察了知识图谱及其嵌入中的社会偏见,发现偏见通过多种途径蔓延开来。例如,WordNet 中存在与性别相关的词汇,这可能会导致相关任务中出现偏见。如果使用源自知识图谱的嵌入,除非采取缓解措施,否则它们可能会带有偏见。亚马逊的研究人员致力于对知识图谱嵌入进行去偏处理,以在保持性能的同时减少此类偏差。其中的陷阱在于,仅仅因为知识图谱是数据就假设它是中性的——我们必须分析并纠正偏差,可能需要添加反事实数据或重新加权。
隐私和伦理问题:知识图谱可以轻松整合个人数据,并创建非常全面的个人或组织档案,从而引发隐私问题。将个人社交媒体、购买历史和位置数据关联起来的知识图谱极其敏感;处理不当可能会违反《通用数据保护条例》(GDPR)等隐私法。更糟糕的是,关联数据可能会泄露一些孤立情况下难以察觉的新信息。人们经常提到:关联无害的数据点可能会推断出一些隐私信息(典型示例:关联购物数据以在信息公开之前预测怀孕情况)。因此,构建涉及个人数据的知识图谱必须从设计上考虑隐私——匿名化、访问控制,以及确保仅关联或公开适当的属性。数据组合的伦理问题值得探讨:从隐私的角度来看,关联数据集并不意味着你应该这样做。例如,一项关于使用知识图谱进行用户画像的伦理分析指出,在近 28% 的已审查研究中存在隐私问题,25% 的研究存在偏见,这表明这些都是亟待解决的主要挑战。如果知识图谱跨越具有不同同意上下文的数据源,则链接这些数据源可能会违反同意原则。此外,还存在重新识别的风险:匿名数据节点可以通过与公开信息链接而被重新识别。隐私保护方法(例如差异隐私,或将 PII 排除在知识图谱之外,转而使用假名 ID)是必要的,但它们会增加复杂性并降低实用性。
工具和专业知识差距:许多组织面临技能挑战:知识图谱技术(RDF、SPARQL、OWL)在开发人员中并非主流,学习曲线可能很陡峭。缺乏在本体设计和语义技术方面经验丰富的“知识工程师”。Softensity 的一次采访指出,缺乏认知和专业知识阻碍了其应用;许多人并不清楚知识图谱究竟是什么,也不知道它能给他们带来什么好处。技术栈有些碎片化(RDF 与 LPG,各种工具),而且不像关系数据库那样标准化,这意味着寻找工程师或培训团队可能是一个挑战。如果不加以解决,项目可能会停滞(或退回到更简单但功能较弱的解决方案)。这更像是一个应用陷阱——一些组织尝试知识图谱项目,却发现很难招聘或提升维护人员的技能,从而导致项目失败或难以扩展。值得庆幸的是,随着在线资源的增多和人们的关注度不断提高,这种情况正在得到改善。
维护与演进:知识图谱需要持续的维护。新知识不断涌现,过时的知识必须被精简。如果没有维护,知识图谱可能会变得陈旧或充斥着过时的信息。然而,维护需要耗费大量的资源——决定更新哪些内容、合并重复内容、使本体与不断变化的领域理解保持同步(例如,医学知识的变化需要本体更新)。如果知识图谱构建完成后就置之不理,其价值会随着时间的推移而逐渐降低。这对于长期使用来说是一个陷阱——知识治理规划(谁拥有知识图谱的哪一部分?如何验证更新?是否存在纠正错误的反馈回路?)至关重要,但其作用却常常被低估。
与遗留系统集成:虽然知识图谱 (KG) 承诺集成,但实际上将知识图谱与现有 IT 系统连接起来可能非常困难。您可能需要将知识图谱与关系数据库 (RDBMS) 连接,或将其集成到 ETL 管道中。有时,性能不匹配或数据模型不匹配需要构建额外的中间件或复制数据(从而导致同步问题)。此外,许多业务分析师习惯使用 SQL,可能对 SPARQL 或 Cypher 不熟悉,从而产生抵触情绪。如果没有良好的集成工具或培训,知识图谱可能会得不到充分利用,脱离主要工作流程。
总而言之,知识图谱面临着需要谨慎管理的挑战:如何在不降低速度的情况下实现大规模扩展、保持数据清洁和最新、巧妙地设计和演进模式、桥接非结构化数据以及以合乎道德的方式处理敏感信息。解决这些问题通常需要技术(优化的数据库、数据提取流程、隐私机制)和流程(人工管理、定义明确的治理、迭代开发以调整本体)的结合。意识到这些陷阱可以帮助团队规划缓解措施,例如在扩展之前,先在有限的范围内证明其价值并改进方法。随着该领域的成熟,工具也在不断改进以缓解一些问题(例如,更好的分布式图系统、偏差检测方法等),但任何着手开展知识图谱项目的组织都应该为这些挑战预留时间。克服这些挑战后,回报将是一个强大而丰富的知识层,但这并非易事。
文章来自于“数据驱动智能”,作者“晓晓”。