第 9 章 不良质量管理 糟糕的质量管理
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
如果你给经理一个数字目标,他就会去完成,即使在这个过程中他不得不毁掉公司。
W.爱德华兹-戴明
语义数据模型(以及任何产品)的质量 ,不仅会受到其规范和开发过程中所犯错误的影响,还会受到测量和管理质量时所遵循的不良做法的影响。我们所选择的测量维度、用于这些测量的度量标准以及解释这些度量标准值的方式,都会对成功与不太成功的模型产生重大影响。本章介绍了一些常见的与质量相关的问题做法,并提出了预防方法。
不将质量视为一系列权衡取舍的结果
我们都希望语义模型是 100% 准确、完整、及时和相关的,然而,这往往是不可能或不现实的。 除了语义建模是人类的活动、由人类进行、为人类服务这一事实之外,一个关键的原因是,我们在第 4 章中看到的质量维度(准确性、完整性、一致性等)之间存在几种权衡,因此很难同时在所有维度上最大限度地提高模型的质量。
这些权衡的问题并不在于它们的存在,而在于我们有时会忽视或忘记它们的存在,也没有花时间制定具体的策略来管理它们。让我们来看看最常见的质量权衡问题。
语义准确性与完整性
正如我们在第 4 章中所看到的,语义准确性是指 模型的语义断言被接受为真的程度,而完整性则是指模型中存在所有必要断言的程度。我们能以多快的速度让模型变得完整,取决于我们能以多快的速度向模型中添加新的(准确的)知识,尤其是当领域很大、发展速度很快的时候。
现在,根据它们的定义,完整性和准确性其实并不相互依赖,一个也不太在乎另一个的高低。例如,假设有一个模型包含类EuropeanUnionMemberState ,并将后者的实例定义为不仅有 27 个国家实际上是欧盟成员国,而且还有另外 100 个国家不是欧盟成员国。因此,这个模型的准确率确实很低(约 21%),但其完整性却是 100%。相反,假设同一个模型只定义了两个类的实例,而且全部正确。那么它的准确率将是 100%,但完整性只有 7%。
这两个维度之间缺乏正相关,这给我们模型开发人员提供了一个诱人但有风险的选择,即通过放松对准确性的控制,允许更多知识未经检查就进入模型,从而加快模型的完成率。准确性可能会受到影响,但完整性肯定会提高。
当我们所掌握的自动知识获取机制非常准确,而我们的模型领域相对较小且静态时,这种权衡就变得不那么重要了。在所有其他情况下,我们必须做出战略决策,决定完整性是否比准确性更重要,以及重要到什么程度。
简洁与完整
急于使语义模型完整也会对简洁性产生负面影响,原因是没有时间去发现、避免或删除冗余元素。
举例来说,假设我们有一个包含 10,000 个实体的模型,而我们想在其中再添加 10,000 个术语。最简洁的方法包括以下步骤:
-
选取每个术语,(通过同义词检测)识别其词法化的现有实体(如有),并将其添加到模型中,如
-
将剩下的术语归类为同义词,并在模型中将每组同义词添加为一个独立的实体
这两个步骤可能会耗费大量的时间和精力,这取决于我们在这项任务上所拥有的技术支持(例如高效的同义词检测器)。相反,如果我们选择跳过同义词检测和分组步骤,而只是将所有术语作为不同的实体添加进去,我们的模型仍然会很准确,肯定会更完整,但很可能会不那么简洁。
简洁性可能与完整性不一致的另一个原因是,后者可能是主观的,而且取决于上下文,因此很难决定某些元素是否多余。 例如,Textkernel 知识图谱的产品所有者不希望图谱中包含任何在劳动力市场数据中出现频率低于某个阈值的实体,因为他认为这些实体对模型来说是不必要的负担,不会增加任何价值。然而,外人可以正确地认为,如果没有这些实体,知识图谱就是不完整的。 ...