因果分析的知识模型,使用 TypeDB 中的强类型数据库。更好地了解特定情况的后果和直接原因。
一个新术语在计算机科学人工智能圈子中流行起来——“因果科学”——似乎这种技术可以帮助我们更好地预测未来的行为。因果科学之父正是 Judea Pearl,即创造贝叶斯网络的 Judea Pearl。他在贝叶斯网络和因果关系方面的工作是如此深刻,以至于珀尔教授在 2011 年获得了计算机科学和人类认知领域的最高荣誉。他被授予艾伦图灵奖“通过开发概率和因果推理的微积分对人工智能做出基本贡献”。此外,同年,他获得了鲁梅尔哈特人类认知理论基础贡献奖。
当有人在同一年获得了人类认知理论基础贡献奖,相当于诺贝尔计算机科学奖时,这个人很可能是在做某事,我们应该注意。
更轻松地说,珍珠可能确实是科幻小说人物哈里·谢顿的现实版。Hari Seldon 是艾萨克·阿西莫夫小说《基金会》(即将登陆 Apple TV)中“Seldon 计划”的策划者。在这本书中,Hari Seldon 创建了一个新的数学分支,称为心理历史学,阿西莫夫将其定义为——“心理历史学依赖于这样一种观点,即虽然人们无法预见特定个人的行为,但应用于大量人群的统计定律可以预测未来事件的总体流程。“我最喜欢的定义之一因果科学是“因果关系是研究事物如何相互影响,原因如何导致结果。”换句话说,“需要发生什么事件才能导致预期的结果发生。”听起来像谢顿计划:)。
现实生活又要模仿科幻了吗?只有时间会证明一切,但许多大公司都在珀尔的因果科学人工智能方法上下了大赌注。Netflix、Lyft、微软和谷歌都在使用它,许多其他公司也看到了将因果科学嵌入到他们的算法中的好处。
因果解决方案的标志之一是可解释性。数据科学中的许多传统方法都在努力解释他们为什么提出某个建议。工业企业对无法解释的建议的实施持谨慎态度。我们甚至看到立法者通过了有关自动决策的解释权立法。
我的因果科学之旅开始于大约一年前,请注意,如果您深入研究实际的微积分数学,学习曲线可能会很陡峭,但矛盾的是,一般概念相对简单。幸运的是,复杂的数学已经包含在因果科学包中,比如微软的 DoWhypython 库、谷歌的因果推理 R 包和麦肯锡的CausalNex。您只需要了解如何调用这些包以及如何解释它们的结果。
如果你想学习实际的微积分数学,有很多好书和课程可供选择。我参加了哈佛在线课程,令人震惊的是还有 60,000 人报名参加。HarvardX:PH559x 因果图:在得出结论之前先做假设
在 Geminos,我们一直致力于开发一个建模平台,以便更轻松地为工业客户构建因果解决方案。工业客户通常没有庞大的数据科学家团队,需要能够通过自动化决策中的可解释性测试的人工智能解决方案。这些公司需要一些方法来提高他们每天做出数以千计的大小决策的能力。他们称之为数字化转型。
我们选择了 Vaticle 的 TypeDB 来在 TypeDB 图中存储底层的因果图结构和知识图结构。TypeDB 具有强大的图查询功能和一个推理引擎,该引擎实现了“规则”以实现对图的推理。以下是 Vaticle 如何解释他们在 TypeDB 中的推理能力:
TypeDB 能够通过模式中定义的规则对数据进行推理。它们可用于根据数据中是否存在模式自动推断新事实。规则可以让您显着缩短复杂的查询,执行可解释的知识发现,并在数据库级别实现业务逻辑。”梵蒂冈
遵循流程可以简化创建因果解决方案所需的工作。我们的工具支持这一过程并位于 TypeDB 之上,让我们无需成为 TypeDB 专家即可以图形方式开发因果模型和知识模型。您可以将因果模型视为“世界如何运作”的地图,将知识模型视为“世界上有什么”。例如,假设您经营一家第三方物流 (3PL) 公司,该公司代表其他公司向客户运送包裹。您知道公司(托运人)不时离开您(流失)另一个 3PL,您想了解为什么会发生这种情况,以及未来购买 20% 的折扣对保留有离开风险的客户有何影响。
知识模型
首先,您需要构建一个知识模型,以模拟我们对托运人、发货、退货、索赔、折扣历史和服务故障的了解。知识模型的一部分是由因果模型计算的——特别是托运人的感知分数、流失概率和发货分数,但稍后会详细介绍。
相同的知识模型可用于多个用例。例如,如果客户想要关于每次发货使用哪个承运人的建议,我们可以重新使用知识模型,大大加快开发相邻解决方案所需的时间。这些模型在 TypeDB 中实例化,因为我们遵循Vaticle 语法对知识图进行建模。例如,当用户单击右上角的按钮时,会生成以下 TypeQL 的所有规则、实体、关系和属性。
defineshippersubentity,ownsname,ownsaddress,ownscustomer_relationship_scoreownsprobofchurn,ownsperception,playsshipment:shipper,playsstaff_changes:shipper,playsintervention:shipper,playspayment:payee,playsnews:subject,playsdiscount_history:discount;carriersubentity,ownsname,ownsaddress,ownscustomer_relationship_score,playsshippment:carrier,playsnews:subject;sales_personsubentity,ownsname,ownsaddress,ownscustomer_relationship_score,ownsprob_of_leaving,playsshipment:sales_person,playsstaff_changes:sales_person,playsintervention:sales_person,playsdiscount_history:sales_person,discount_historysubrelation,ownsdate,ownsamount,relatesshipper;paymentsubrelation,ownspayment_due_date,ownsmissed,ownsamount,relatesshipper;newssubrelation,ownsheadline,ownsbody,ownssource,relatescarrier,relatesreceipt,relatesshipper,staff_changessubrelation,ownsname,ownsnew_position,relatessales_person,relatesshipper;service_issuesubshipment,ownsservice_issue_id,ownsissue,ownsdescription,relatesshipment,claimsubshipment,ownsclaim_id,ownsdescription,ownsclaim_amount,relatesshipment;shipmentsubrelation,ownsitems,relatesshipper,relatescarrier;
因果模型
回到我们试图解决的问题,公司(托运人)不时让您(流失)购买另一个 3PL,您想了解为什么会发生这种情况以及 20% 的折扣对未来购买的影响留住有离开风险的客户。
您将需要一个因果模型来模拟这些结果(托运人流失,以及折扣对流失概率的影响)。在构建因果模型时,与真正了解业务问题的人合作至关重要,因为因果模型代表了他们对业务中发生的原因的最佳理解。
在下图中,某些事件(如索赔和服务问题)导致发货评分下降,从而导致托运人的感知下降。反过来,这可能会导致托运人离开 3PL。分数下降多少取决于有历史数据支持的其他模型。一个相关的因果模型可能是“向有离开风险的托运人提供 20% 的折扣会产生什么影响?”第一个因果模型告诉您需要担心哪些托运人,第二个因果模型告诉您采取措施会产生什么影响。以下是关于客户流失的第一个因果模型的示例:
在流失因果模型中,需要有一种方法来实际调用 do-calculus 引擎,这是在后端因果推理器中使用 Microsoft DoWhile 引擎完成的。
眼睛敏锐的读者会注意到,我们分叉了 Node-RED 来构建我们的建模工具,因此我们实际上拥有 Node-RED 的所有功能以及已经可用的数千个节点,从 IoT 处理节点到机器学习算法,通过低/无代码可视化编程环境。
使用 Node-RED 将实例数据放入我们的知识图谱中非常简单,因为它已经拥有大量支持良好的ETL 工具集。我们已经为 Node-RED 实现了一个 TypeDB 客户端,但是,客户端可以自由使用他们想要执行 ETL 的任何东西。Node-RED 甚至附带一个仪表板工具集,允许开发简单的快速 UI,但当然可以使用任何开发工具集(例如 Microsoft Azure Power Apps)开发复杂的 UI。