投递人 itwriter 发布于 2012-09-07 09:06 原文链接 [收藏] « »

  在 Deep Blue 与 Kasparov 巅峰对决的年代,很多今天的程序员还没有走进这个圈子。当时的计算机集群规模一般来说比较小,Deep Blue 由 30 多台 IBM RS/6000 SP 服务器(每个节点 16 个芯片)以及数百个单芯片的特殊棋路处理引擎提供计算力。30多个 IBM Server 提供计算力,在棋路评估的逻辑中采用并行数据处理以及硬件加速的方式,以远优于人类的计算能力对可能的步骤进行分析和评估。

  当年人工智能界的难题,在今天显然不足以让大家热血沸腾,而 IBM 也不甘寂寞,启动了 DeepQA 工程,开始在自然语言处理和信息检索等领域进行探索,希望能够制造出高准确率的自动问答机器人。2011年,该工程的成果——超级计算机 Watson 参加 Jeopardy!知识问答节目以测试研究成果。

  最终,Watson 成功战胜 Brad Rutter 和 Ken Jennings。继 1997 年战胜国际象棋世界冠军 Garry Kimovich Kasparov 之后,Deep Blue 再一次吸引了大家的目光。两次人工智能界的壮举,让业界对于 IBM 的挑战精神刮目相看。  

  了解人工智能和机器学习领域的朋友可以很明显地体会到 Watson 要解决的问题的难度。首先 Watson 需要以很高的准确率解析采用人类语言描述的问题;接下来它要从百科全书般浩繁的智库中找到问题的候选项;最后,通过合理训练的判断逻辑,从候选项中找到正确的答案。这几个步骤中,哪个环节的准确率无法达标,最终的结果都会很尴尬。简单地说,Watson 需要一个不会闹笑话的 Siri 系统加一个拥有优质数据的 Google 搜索引擎,并且每次点击I’m Feeling Lucky 的时候,基本上都会得到自己想要的结果。 

  实际上,Watson 解决的并不是普遍意义上的自然语言处理以及逻辑推理问题,而是其中最具代表性,而且难度很高的一类:基于自然语言处理的百科全书式的知识问答(同样的,Deep Blue 也是解决了棋类游戏中的国际象棋问题,而不是创造了拥有各种游戏思维能够胜任普遍意义棋牌类游戏的机器)。 

  接下来的篇幅,我将结合 DeepQA 项目组的两篇论文《Finding needles in the haystack: Search and candidate generation》和《Relation extraction and scoring in DeepQA》简单介绍 Watson 处理问题解答的过程,并着重阐述信息检索的和候选结果的相关性评估的部分。 

  在分析 Watson 的“思路”之前,需要先举例介绍一下 Jeopardy!节目中的竞赛题目是如何解答的。这档节目所覆盖的知识面非常广,而且答题的方式比较有特点:题目以若干词条或短句组成,让竞赛者找出题目所描述的答案,而答案需要以提问的形式提供给主持人。

  例如题目 MOVIE-“ING”: Robert Redford and Paul Newman starred in this depression-era grifter flick. 意在让参赛者说出一部由 Rebert 和 Paul 共同出演的电影,答案为 The Sting。知道答案的参赛者需要回答“What’s the sting?”

  在形象地了解了所要解决的问题是什么之后,我将按照时序阐述 Watson 求解的过程。图 1 描述了 Watson 解决问题的逻辑,以及对应的模块。其求解的过程分为三个主要的部分:

  1.  分析问题的语义,找出查询所需的依赖关系以及查询的焦点;

  2.  根据查询线索,生成候选项,并给出相关性的评分;

  3.  归并重复的候选项,合理训练集答案判断算法选出最终的答案。

图 1 Watson 的求解过程

  问题的语义分析

  本文所关注的求解过程从分析文本形式的问题本身开始(真正起始点应该是语音识别,语音识别也是方案中一个重要的课题,但不在本文之列)。Watson 使用比较成熟的语法分析工具 ESG(English Slot Grammar)。语法分析的结果包含句法和语义的分析及问题的焦点。这些结果是下一步信息检索的输入。在语法树解析的过程中,结合了基于规则的语义分析过程,可以准确高效地分析出题目中大量存在的如 ActorIn 或 AuthorOf 这样的语法单元之间的语义关系。语义分析所产生的语法单元及其关系,可作为语义搜索的以及文本搜索的输入,而为了提高搜索的准确率,语法分析的环节还通过一个 LAT 模块,分析出其中最重要的语法单元。

  信息的搜索,候选集的产生及评分

  传统的信息检索或者语义搜索, 能够提供的候选集的覆盖率(是否包含了正确答案)很难达到令人满意的程度。传统的倒排索引的信息检索方法很难有效量化语法单元之间的高级语义关系,而语义数据则存在数据源有限的问题,而且难以完全提供元素之间的所有关系。在 Watson 的方案构建中,IBM 的科学家发现两类方法各有所长,分别适合解答不同方式的提问,在问题覆盖上都有自己明显的独立贡献。所以,如图 1 所示,Watson 有非结构化数据的搜索和结构化数据的语义搜索两条候选集生成的路线,每条路线都由准候选集(Hypothesis generation)、软件过滤器(Soft filtering)以及准候选项评分模块(Hypothesis and evidence scoring)组成。

  非结构化数据的搜索,面向两种类型的数据:一种是有准确明晰标题的数据,另一种是无有效标题的文档。百科全书式的标题文档,和 Jeopardy! Q&A对之间,有三种关系:1)答案在文档的标题中;2)文档标题和问题本身共同构成答案;3)问题的答案藏在文档正文。针对第 3 种情况 Watson 主要采用传统的文档信息检索的技术而不是语义搜索的方式。在实际情况中,往往三种情况有很大程度的相互覆盖,即答案既在标题中,也明显出现在文本正文,但实验数据表明,三种方法对正确率都有自己独立于彼此的贡献。而标题不清晰或不存在的非结构数据(如来自网络的文章等)可作为第三种情况的候选项来源,亦可以在之后的评分过程中提供有效的证据。

  在 Watson 的信息检索功能中,IBM 的工程师扩展开发了 Apache Lucene 的信息抓取模块(针对 Lucene 的优化是加入了文章长度,以及句子在文章中的位置等参数以更有效的衡量句子与 Jeopardy!问题的相关性,而不是单纯的依靠词频统计),并通过开源搜索引擎 Indri 进行数据的搜索。根据文档的长短不同,Watson 会建立两份独立的索引,分别存储长文(如 Wikipedia 的文章)以及短文(字典式的知识词条)以便搜索和应用。这样区分可以避免长篇的文本在使用关键字做相关性比较中所占有的不正当优势。 

  非结构化数据的的搜索需要接上一个候选项生成的步骤,《Finding needles in the haystack: Search and candidate generation》介绍了三种类型数据(标题数据、Wikipedia 数据和文本数据)的的候选项生成。而这些候选项方式中,最主要的候选项是文本的标题。候选项来自于标题或文本中与问题最匹配的句子。

  结构化数据的语义搜索,Watson 采用了 Anwser Lookup 和 PRISMATIC Search 两种方法。语义搜索的准确率比较依赖于语义关系的定义在 Jeopardy!问题中的覆盖率,以及结构化数据的质量和数量。经过统计,Jeopardy!经常使用的语义关系比如 actorIn(出演某部影片),authorOf(写作了某本书),这些问题,在结构数据支持的前提下,使用 Anwser Loopup 方法获得正确答案的概率很高。PRISMATIC Search 方法,通过关联大量数据中采用相同语法的元素之间的关系,为基于语义的推理,提供有效的约束和可能的候选值,如 Tom Cruise 在大量的数据中都是伴随这 star 这个动作,在以后的推理过程中,虽然 Tom Cruise 和 movie 本身没有直接的语义关系,但他们之间的关联关系(非直接的语义关系)为之后的推理提供了约束,而 Tom Cruise 则可能成为语义关系中某一方的候选值。   

  通过两个类型,多种方法并用的候选项生成过程,Watson 可以产生多类,大量的侯选项。它们中间,有很多项与问题之间的相关性很微弱。为了 Watson 能在正常的反应时间内获得答案,候选集还需要精简过滤, 去掉弱相关项,过滤器采用机器学习的方法,通过训练数据,确定合理的相关性阀值,只保留达到阀值的候选项集合。  

  对于经过过滤的后选项,要参加最终的答案的角逐,还需要贴上最后的标签,即基于证据的评分。这里所说的证据,是不同来源的相关资料中,对于某个候选项确实与问题描述相关的佐证。这里列举一个有效的证据评分方式,在初步的搜索结果中,包含待评判的候选项内容的的比重,出现的证据越多,则候选项和问题想关心就越强。评分算法会评判出证据支持每个侯选项的程度,即为证据评分。

  从候选集到答案

  经过 Soft Filter 过滤,并依据证据评分后,浓缩候选集作为最后一步的输入。在这个环节中,Watson 使用配有正确答案以及评分的 Jeopardy!题目做训练集,为不同类别的问题生成不同的训练模型,并依据候选集的评分做为判断的重要标准,选出最后的答案。答案被包装成符合 Jeopardy!要求的形式,提供给人机交互的模块。至此,Watson 完成一个完整的答题过程。

  总结

  Watson 的思路比较复杂,简略描述一番亦需要不小的篇幅,而其中的每个子问题的解决都包含着不同方法的尝试和大量的实验。在分析 Watson 解决方案时,我深刻地感受到理论知识和实际经验结合的功效。Watson 解答问题的流程中,有多处难题通过单一的方法无法有效完成的,例如单一采用语义数据,或单一采用非结构数据都不能很好的提供候选答案的集合。另外, 相关性分析中,将长文章与短文章分开建立索引的方法,也是因为没有通用有效的相关性分析的方法能够满足 Waston 的要求。针对特定的任务,通过多种方法的合作和衔接,通过大量的试验将参数调优至最佳,是打通人工智能理论与实际应用的桥梁。

24小时阅读排行

    最新新闻

      相关新闻

        回到页首