IBM的Watson是人工智能的一个里程碑,从国际象棋中战胜世界冠军,到Jeopardy!上夺冠,再到现在红红火火的医疗健康诊断,表现出了惊人的智能,创造耀眼的成绩。
根据网上的资料,了解一下Watson的工作原理。它的大的框架是利用自然语言处理的各种技术,然后在处理后的结构上利用搜索找到一批候选答案,之后再分析和收集证据,利用证据来计算每个答案的相关性分数和可信度。最后,输出可信度高的答案。
底层的分析使用了统计方法,100多种算法来分析问题和文本的内容,还有算法来排名候选答案。机器学习框架用来权重不同的算法和他们的结果,和在类别内的动态学习来验证类别的解释。
使用了很多的机器资源和内存来获得快速计算。代码使用了Java,C++,和Prolog,组件通过UIMA集成到一起。大概使用了6百万逻辑规则,2亿的文本,和大量的结构化和半结构化的知识库。
看一个例子,Watson是如何使用基于证据的推理来得到一个问题的答案的。下面这句话中“this explorer”指的是谁?
首先,将句子进行句法分析,再根据关键词检索库中是否有相关的句子。根据关键词找到相关的句子作为可能的答案的来源。匹配的关键词都是相关的证据,证据越多,匹配的概率和可信度就越高。例如,在库中找到的一个相关的句子,celebrated,in may,anniversary,等关键词匹配上了,同时,一些reference text,比如,portugal,india,arrival in,等,也匹配了,然后,系统推理出Gary也许是问题的答案。
光是关键词的匹配是比较弱的,需要引入更强的基于语义的匹配,这些语义的匹配,就需要用到人工或是统计或是学习来的语义关系,比如,知识图谱在此就能提供更深层次更强的证据,基于这些证据的推理,将会提供更精确的答案。下面这个相关句子的分析,就用到了时序推理,同义转换,空间推理,等等,而不是简单的关键词匹配。