设为首页 收藏本站
查看: 1307|回复: 0

[经验分享] [新技术]IBM Watson机器人算法介绍(转载)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-5-26 11:15:02 | 显示全部楼层 |阅读模式
  转自:http://blog.sina.com.cn/s/blog_66755b230100oubz.html
  (具体版权参考reference,我仅仅是把英文版的总结了一下,写了出来。http://blog.sina.com.cn/s/blog_66755b230100oubz.html)
  Watson机器人产生于IBM的Watson研发中心,机器人短期的主要目标是回答Jeopardy!竞赛的问题。并期望以此作为起点,研发出一个稳定的,有扩展性的机器人基础架构,来为后续的商业应用做准备。
  
  Watson机器人分为三大部分
  1,硬件部分
  2,语音识别部分(语音转文字,文字转语音)
  3,问答系统部分
  硬件部分这里不重点讨论。
  语音识别部分:IBM在90年代开始做ViaVoice,产品推出也很多年了,不过在Watson机器人中以及Watson研发中心的一些关于医疗,保险等商业软件中,语音识别部分主要是由Nuance公司提供。
  Watson机器人研发力量主要集中在自动问答系统里面。这部分由该研发中心的DeepQA项目组负责。
  DeepQA项目组有大概40多个研发人员,主要分为下面几个小组:
  l算法小组(负责各NLP模块和其他模块的算法)
  l策略小组(处理流程和处理策略)
  l系统小组(硬件使用和接入,系统效率提升)
  l语音小组(语音接入)
  l注释小组(标注语料库,扩展机器人理解范围)
  l中国研究实验室(本体,元数据,语义网络和知识表示方面的研究)
  l东京的研究实验室(文本挖掘,文本抓取,半结构化信息使用)
  l海法的研究实验室(各种信息检索算法)
  下面详细介绍DeepQA项目。

  目前我们获取知识的途径主要依赖搜索引擎,搜索引擎通过关键词能找到大量的文档,但缺少对找到的文档内容进行进一步分析的能力,可以说获取的知识并不够准确,给用户提供知识的效率也需要提高。
  DeepQA项目先要做好基础架构,所以先做成了开放领域的自动问答,以便未来能够更好的适应各个专业领域的知识。目前机器人已经可以像人类专家那样快速的,准确的回答竞赛中的问题了,而且问题的范围可以很广。不过由于竞答类问题的局限,在扩展到各个专业领域时还是需要进行细节上的改动。不过整体架构应该变化不大。
  
  DeepQA机器人未来可能对下面这些行业有所发展:
  l法律咨询
  l金融保险咨询
  l商业咨询
  l商业智能
  l知识挖掘
  l企业知识管理
  l客户支持
  l信息安全
  l……
  
  需要用到的具体技术有:
  l词法分析
  l句法分析
  l问题分类
  l问题分解
  l资源的获取和评价(知识获取和知识置信度评价)
  l句子中逻辑形式的标注(施动,受动;主语,宾语)
  l知识表示
  l本体
  l本体关系检测
  l推理
  l……

  DeepQA主要有两部分:
  l知识获取
  获取结构化的,半结构化的信息,选取其中置信度高的做为知识。这部分第三章介绍
  l自动问答
  用户输入问题,机器人给出答案。
  自动问答部分的各个模块和处理流程如图1,主要做了下面这些工作:
  1.对用户的问题进行词法分析,句法分析,问题分类,实体识别,各种语法语义标注,角色标注,答案类型分析等
  2.判断问题的多个子问题之间的关系,是否分解成多个问题并行处理或应用其他处理策略
  3.在对答案库进行搜索后,抽取出可能的答案,替换到问句中组成陈述句类型的假设集(把答案填充到问题的疑问部分,改为陈述句)
  4.过滤掉一部分可能性不高的假设
  5.以样例库为标准,综合检验各个假设的置信度有多高,并给出置信度值
  6.综合各种渠道的信息,总的给各个答案一个排序。
  
  由于期望建立一个扩展性比较好的基础架构,在问答部分的处理流程中,几乎包括现有的所有NLP技术,各种技术有的作为基础,有的从不同的角度给出答案的置信度,最后综合各个角度得来的判断,给出结论。下面对这几部分分别介绍。
   DSC0000.jpg



  问题分析部分做了很多NLP相关的基础工作,比如:
  l词法分析,词性标注,实体标注,本体识别
  l浅层深层句法分析(主语,谓语,宾语;修饰;搭配;各子句之间的关系)
  l指代标注(句子中的代词各自指向的内容)
  l逻辑结构,语义角色标注(施动,受动)
  l关联关系标记(能够明确关系的本体部分标记出来)
  l...
  这些部分的算法在这里不详细介绍了。

  问题的类型有:
  l问逻辑
  l问定义
  l数学问题
  l……
  如果一个问题由多个子句组成,还需要对各个子句进行分类,有的类型的子句需要特殊处理,比如:现任美国总统à奥巴马。在加州的东北面à**州
  这类子句问题可能需要从本体关系知识库中查询。
  
  问题的分类使用的是常见的基于统计的自动分类算法,通过各种问题的不同特征的表现,来判断具体问题属于什么类别。
  能用到的特征有:
  1,有多种意思的关键词
  2,语义明确的词组,短语
  3,修辞,指代等手法表达的内容
  4,从句法结构中总结出来的特征
  5,语义标注和其他逻辑关系中总结出的特征
  6,……
  
标注和疑问焦点提取
  LAT: Lexical Answer Type,通过问题中的词或者短语来确定答案的类型,比如:(红色部分标注为LAT)
  Clue: Invented in the 1500s to speed up the game,this maneuverinvolves two pieces of the same color.
  Clue: Thoughitsounds “harsh,”it’s just embroidery, often in a floral pattern, done with yarn on cotton cloth.
  
  LAT有:
  lit(问物)
  lHe(问人)
  lcountry(问国家名)
  lcity(问城市名)
  l……
  大约不到50%的问题中可以找到LAT,具体LAT的出现概率见图2:
  
DSC0001.jpg

  在LAT标记出来后,问题的焦点也就比较容易找到了。


  问题的焦点:如果把答案替换了焦点部分,新句子是个独立完整的陈述句。焦点很多时候包含对答案有用的信息,经常作为线索中的主语或者宾语出现,并且当用一个答案来替换的话,可以组织成一个事实陈述句。
  举例:(红色部分为疑问焦点)
  lThis title characterwas the crusty and tough city editor of the Los Angeles Tribune.
  lWhen hit by electrons, a phosphor gives off electromagnetic energy inthis form.
  lSecretary Chase just submittedthisto me for the third time; guess what, pal. This time I’m accepting it.

  问题中包含的关系:
  1,句法关系(主语,谓语动词,宾语)
  由句法分析得出。
  2,语义关系(本体间关系)(语义网络)
  watson有一个三元组库(本体关系库)用以处理语义方面的替换,推理,查询等。方法参考SPARQL语言的介绍。SPARQL是目前国际上通用的语义网络查询和推理语言,主要应用在OWL形式的本体库和RDF形式的本体库。在开放域的QA中,语义关系比较分散,对问答的贡献比较低。
  watson的本体库主要来源于Dbpedia等开源本体组织。
  
  语义网络
  语义网络通过概念和其他概念之间的关系来定义概念的语义。概念间的关系可以组织成图,图中的节点表示概念,连接表示关系,连接上的标注表明了关系类型如图3。IBM构建了一个语义网络的应用。参考:(http://www.ibm.aqui.com)
   DSC0002.jpg

  


  当用户的问题是复句,包含多个子句的情况下,机器人需要将问题进行分解。目前主要支持两种情况的复句,
  1,多个子句是并列关系
  这类问题包含多条线索,如果试图从一句话中匹配到这多条线索很困难。每条线索分别匹配,寻找公共的答案,很大程度上就是问题最终的答案
  2,递进关系
  有的问题的两条线索有递进关系,第一条线索的答案替换这个问题和下一条线索组合成新问题,答案比较容易找到。比如:和美国没有建交的国家有4个,其中的一个在远东。新问题:不丹,古巴,伊朗,朝鲜这四个国家哪个在远东。

  先从答案库中检索出可能出现答案的文档,再对候选答案进行总结。问题线索分析可以从下面这几种角度考虑:
  1.Topic
  2.难度
  3.句法结构
  4.答案类型
  5.……
  具体的流程如下:
  l搜索系统资源+答案抽取-->候选答案集
  l候选答案填充到问题中-->假设句子集(问题变为陈述句)
  l证明这些Hypothesis是不是对的(confidence)(这部分2.4中介绍)

  模块采用了多种搜索相结合
  1,文档搜索(lucene...)
  2,知识库三元组搜索(SPARQL)
  3,多个query,通过填充来形成单个问题(递进关系的复句)
  4,其他搜索策略

  候选答案的选取需要:
  1,命名实体检测
  2,逻辑成分,语义关系标注
  3,三元组中的关系
  问题的答案一般是陈述句,一句中包含一个或多个本体,需要判断陈述句中的哪个部分可能是答案(大部分答案是本体,在句子中作主要成分)
  
  通过前期的这些标注,结合问题的类型,答案的类型,在候选的答案文档中抽取出具体的答案来。
  
  在候选答案集得到后,将这些候选答案填充到原始问题中,得到假设句子集。

  通过搜索实例库(Evidence Sources),看这些假设是不是有evidence支持。搜索策略结合了各种方法,比如:
  1,对比相同关键词个数
  2,计算字符串最大交集
  3,对比逻辑格式是否一致
  4,是否和三元组知识库中的信息一致或矛盾
  5,时间上,时间先后顺序这类逻辑上有没有矛盾
  6,空间关系上是否匹配
  7,……
  通过这一系列策略,给出每个假设的置信度。这部分结合了信息检索和自动分类的算法。由信息检索计算字符串方面的值;由自动分类算法,综合这些来源的信息(作为特征),给出置信度的可能区域。
  
  所以这部分算是有一定的自学习能力。
  
  在系统结合了多个子句的答案后,综合考虑得出最终答案以及最终置信度。

结构化内容获取
  现在互联网中也已经整理好了很多结构化的信息,比如:
  l开放的Ontology库
  lWikipedia中的infobox信息
  lDbpedia提供的各类结构化信息
  l……
  这些知识一般可以总结为:【主本体】<关系>【辅助本体】这样的三元组。DeepQA爬取和整理很多这类的三元组用来直接获取候选答案,替换子句的问题,确定答案类别等方面。
半结构化内容获取
  机器人选择一些比较可信的文档作为种子,通过互联网,检验种子文档中的信息,对种子文档进行扩充。
  
  Nugget定义:
  1,通常Nugget是一个事件,或者实体(本体)
  2,每个Nugget包含两部分:锚(Anchor围绕的核心)和内容
  
  锚的定义:
  1,要么是实体的中心名词
  2,要么是实体的中心动词(当句子中有多个实体时,选择主语做锚)
  
  举例:
  The girl working in the bookstore in Hollywood talked to the diplomat living in Britain.
  可以分解成多个Nuggets,如下:
  l[girl] working at the bookstore in Hollywood.
  l[girl] working at the bookstore.
  l[bookstore] in Hollywood.
  lGirl [talked] to the diplomat living in Britain.
  lGirl [talked] to the diplomat.
  l[diplomat] living in Britain
  方括号中的部分为锚
  
  通过上面的介绍,就可以了解。每次机器读取一句话,就把它分解成多个Nuggets,然后在Evidence库中去计算这些Nugget的置信度,如果可信,就增加到现有的知识库中来。
  1,找一个种子文档,从web检索相关文档
  2,抽取各个nuggets
  3,计算哪些nuggets对种子文档有用
  4,整合最有用的nuggets到语料库中
  通过这种方法,可以让机器人的知识库达到一种全自动扩张的效果,当然,种子文档的选择很重要,这些文档是知识扩展的初始化信息,对后续扩展的方向有直接的作用。
  

  1,“Building Watson: An Overview of the DeepQA Project”
  2,“Text Comparison Using Machine-Generated Nuggets”

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-381313-1-1.html 上篇帖子: 学习IBM总经理信奉的“野鸭精神” 下篇帖子: 曲线实现对IBM Portal portlet的DEBUG
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表