「NLP」专家系统
Two Main Branches of Learning
学习系统的两个方向:
-
专家系统:符号主义,基于规则来实现,目前仍然有在使用。适合数据量很少甚至没有的时候。
-
基于概率统计的系统:连接主义,基于学习的方式来实现,比如机器学习,深度学习。适合拥有大量数据的情况。
虽然目前最火的是基于概率统计的系统,但是专家系统也依然发挥着作用。
Expert Systems
利用知识和推理来解决决策问题(Decision Making Problem)。
专家系统 = 推理引擎 + 知识
AI系统 vs BI系统
-
BI系统:对大量的数据进行处理,进行可视化展示,辅助用户进行决策;
-
AI系统:帮助用户进行决策。
Expert System's Working Flow
接下来结合一个实际案例,了解一下搭建一个专家系统整个流程。
任务:搭建金融知识图谱
目的:风控
Properties of Expert Systems
专家系统的特性:
- 处理不确定性,只要是AI系统都可以处理不确定性
- 知识的表示,比如知识图谱,可以理解为把非结构化的数据用结构化的形式表示
- 可解释性,因为专家系统是基于规则的,所以有可解释性这个非常大的优点
- 可以做知识推理
Logical Inference
推理引擎的作用是能够扩充我们搭建好的知识库。
接下来通过一个例子讲解逻辑推理的两个简单算法:
例子中有4条已知的事实,以及一个问题。
专家系统里的推理引擎用到了大量离散数学的相关知识。
Forward Chaining Algorithm
Forward Chaining Algorithm通过不断的循环,一步一步地添加事实,直到推理出结果,则循环结束。
Backward Chaining Algorithm
Backward Chaining Algorithm采用倒推法,从结果求出对应的条件,然后再把求出的条件作为新的结果,以此类推,直到所有结果都是已知的,即推理完毕。
Drawbacks of Expert Systems
专家系统的缺点:
- 设计大量的规则(Design Lots of Rules)
- 需要领域专家来主导(Heavily Reply on Domain Expert)
- 可移植性差(Limited Transferability to other Domain)
- 学习能力差(Inability to Learn)
- 人能考虑的范围是有限的(Human Capacity is Limited)
Case Study: Risk Control
问题:根据用户的信息,决定要不要放贷。
基于专家系统的思路,要搭建一个风控系统就需要搭建一个规则引擎(rule engine):
1. if age < 18: -1
2. if wage < 3000: -2
3. if expense < 100: -4
......
通过提前写好的一条条规则,然后根据用户的个人信息,计算其信用分,比如\(8 \lt 10(threshold)\),那么就可以拒绝其贷款。
Some Interesting Problems to Consider
在搭建一个专家系统的时候可能会遇到的一些问题:
-
逻辑推理(Logical Inference)
-
解决规则冲突(Conflict Resolution)
解决规则冲突可以采用推理的方法,把不冲突的规则作为事实(facts),把冲突的规则作为需要证明的(to prove),然后通过推理的方法看最后是得出了相同的结论或者是相反的结论,以此来解决冲突。
-
选择最小规则的子集(Minimum Size of Rules)
如何找到冗余的规则并进行删除?
比如贪心算法:分别把一条一条规则删掉,然后看对整个系统的影响大不大,影响不大的则可以删除。
解一个难题的思路
在AI领域中,很多问题可能都是第一次遇到的,所以掌握解决难题的思路,远比掌握解决问题的方法更重要。
-
找到一个类似的“经典的”问题
i.e. minimun size of rule set ~ "Set Cover Problem"
-
read papers (about set cover problem)
通过学习其他人研究类似问题的思路,获得解决自己遇到的问题的思路。