Chatbot思考录

  • 人工分词产生不一致性的原因主要在于人们对词的颗粒度的认知问题。在汉语里,词是表达意最基本的意思,再小意思就变了。在机器翻译中会有一种颗粒度比另外一种颗粒度更好的情况,颗粒度大的翻译效果好。
    为了解决词语的多义性的问题,维护一个词语对等列表是有必要的。例如“中国银联”=“银联”,这时候主键应该保存为“中国银联”,同样很多中英文系统的互译也应该将其保存在对等列表中
    [补充]维护的应该是词语相关性表(应该设定关联性>p),一些词和其他词的关联性,从而拓展两种可能:1.词义相同的两个词可以以较高的关联性进行识别,从而提高答案的准确性;2.词义较为相近的两个词关联,从而提高相近答案的输出(建议的形式输出,例如我们没有发现XXX的答案,建议查看YYY的答案),提高用户对于会话智能的认可
     

  • At Infermedica we've developed a diagnostic engine that collects symptoms, asks diagnostic questions and presents likely health issues underlying this evidence. The engine uses a complex probabilistic model built on top of a knowledge base curated by medical professionals and enriched by machine learning. It is available via API and has provided helpful information to over 1M patients through a number of symptom checker apps, intelligent patient intake forms and other applications. Symptomate Bot is our attempt at building a conversational interface to the engine that will work as a symptom checker chatbot.
    客服机器人最主要的还是问答引擎,收集用户的问题,并进一步收集全面和明确用户的信息(例如机器人主动提问),引擎需要采用匹配模型来讲问题和知识库进行搭配(目前考虑使用标签),回答用户的知识,并收集反馈进行下一轮会话使用
     

  • Challenge 1: Scalable architecture for handling messages
    客服机器人设计的会话峰值应该考虑?是否需要排队机制?
    会话机制的建立(新会话/老会话未结束),随时保存,状态转移的。
    会话处理的流程:收集消息,获取与会话关联的客服模型状态,处理消息,回复用户,并将更新状态推回客服模型。
    会话的保存应该适用灵活的结构和快速的读写访问,应该是NoSQL数据库,考虑MongoDB和redis。

     

  • Challenge 2: A conversational agent must converse
    应该使用一些问答模板来代替“回复1”、“输入1”这样的问答,这样显得你的系统很傻。 
    这些简答模板包括:再次确认/纠正歧义/获取更多信息/…

  • Challenge 3:Users will get frustrated
    大部分用户会被误解,我们只为真正的顾客提供服务(基于场景的开发),就是说不正常的用户输入在我们的系统中将不会得到有效的答复。
    失望的原因包括:
    1.很多用户是因为存在问题或者发生故障来寻找客服服务的,本身带有消极的情绪,例如愤怒、着急、失望等。

  1. 会话机器人理解问题的规模取决于知识库的大小,如果是询问银联总裁是不会存在任何误解的可能,但是客户机器人使用的知识库往往是落后于实际的业务开展情况的,而且客户很有可能问不存在与知识库的知识。
    另外,我们提供三个方法来解决“失望的用户”问题:
    1.感知用户的情绪并给予安慰;
    2.自动开出跟踪服务单引入人工客服的机制来解决问题;
    3.定期数据统计,跟踪出现用户失望的会话,并从设计和数据方面进行改善。

  • 消息队列的使用
    Infermedica Chatbot – Workflow

  • 即使能够写出涵盖所有自然语言现象的语法规则集合,也很难用计算机来解析。描述自然语言的文法和计算机高级程序语言的文法不同。自然语言在延边过程中,产生了词义和上下文相关的特性。
    ——《自然之美》p22
    我们的会话机器人要基于当前会话上下文相关进行。在同一个会话中,用户提交的信息能在后续的会话中进行思考。应该有好的算法和模型来处理上下文会话理解的难题。Context Dependent Grammar.解决多义性。
     

  • 只能回答“是什么”,但是没有计算机能够回答“为什么”和“怎么做”这一类的难题。
    目前我们的Chatbot只需要考虑是什么就行了。  
     

  • 模型训练中一个重要的问题就是训练书怒,语料库的选取。 p38
    如何寻找会话机器人的语料库?训练数据库越多越好,模型参数估计的越准确。
       

  • Bots简单理解,就是智能对话机器人,是基于自然语言理解的智能对话系统,它应用了智能识别技术(如语言、文字、图像),还有机器学习、知识表示、云计算、大数据等。在美剧【西部世界】中,机器人居民与人类的沟通,就是用自然语言完成。一个Bot能部署到微信、QQ、网站、微博等渠道,用户通过任何数字入口都可以唤醒,并使用它提供服务,同时,Bot与Bot之间可以通过自然语言相互进行调用,实现跨平台操作。未来,Bots可对接万物,让从虚拟到实体的应用都能与人类自然对话。所以,Bots被界定为后App时代的全新人机交互方式。苹果Siri,微软找冰,小i机器人都属于这个领域的代表。
     

  • 通用的会话场景是无穷尽的
    但是客服的会话场景是可以进行穷尽的,是否可以基于场景进行会话机器人设计?
     

  • 问答系统六个层次:基础搜索、词联想、本体知识库,短程关系、长程关系、基于上下文的自由问答。从知识提取,知识存储,知识表达,知识检索,到人机交互、知识库,不知道多少个小零件要逐一打造。
     

  • 机器善于做短程关系的查找(lookup),一层,罕见的情况下可以做两层。长程关系的发现(discovery)是机器做不好的,只能由人来写,最后变成规则机器执行。那些Siri里有趣的回答,都是人写的,和机器智能无关。
     
    客服机器人做多少层比较好?三层?两层?

  • 客服机器人的本质是通过问答的方式提供客服服务,所以关键的动作还是问和答。
    如何准确的捕捉问的操作呢?关键词(为什么?是什么?怎么?)
     

  • 人工智能理论体系的系统梳理,会话机器人理论体系的系统梳理;目前会话机器人的学术研究最新进展,偏向国外,偏向博士论文,偏向技术方面(最新技术/主流技术)

    1. 人工智能理论体系介绍
    2. 会话机器人理论体系
    3. 最新学术研究进展:
       
  • 知识库的构建 用AIML可以做吗?
     

  • 自然语言处理很困难:(1)语言是不完全有规律的,规律是错综复杂的。有一定的规律,也有很多例外。因为语言是经过上万年的时间发明的,这一过程类似于建立维基百科。因此,一定会出现功能冗余、逻辑不一致等现象。但是语言依旧有一定的规律,若不遵循一定的规范,交流会比较困难;(2)语言是可以组合的。语言的重要特点是能够将词语组合起来形成句子,能够组成复杂的语言表达;(3)语言是一个开放的集合。我们可以任意地发明创造一些新的表达。比如,微信中“潜水”的表达就是一种比喻。一旦形成之后,大家都会使用,形成固定说法。语言本质的发明创造就是通过比喻扩展出来的;(4)语言需要联系到实践知识;(5)语言的使用要基于环境。在人与人之间的互动中被使用。如果在外语的语言环境里去学习外语,人们就会学习得非常快,理解得非常深。
    基于这个设定,我们的会话机器人目前是否只针对无歧义的语句进行准确展出,有歧义的由客户进行选择呢?即在用户的帮助下解决语言的歧义问题
     

  • 所有的自然语言处理的问题都可以分类成为五大统计自然语言处理的方法或者模型,即分类、匹配、翻译、结构预测,马尔可夫决策过程。各种各样的自然语言处理的应用,都可以模型化为这五大基本问题,基本能够涵盖自然语言处理相当一部分或者大部分的技术。主要采用统计机器学习的方法来解决。第一是分类,就是你给我一个字符串,我给你一个标签,这个字符串可以是一个文本,一句话或者其他的自然语言单元;其次是匹配,两个字符串,两句话或者两段文章去做一个匹配,判断这两个字符串的相关度是多少;第三就是翻译,即更广义的翻译或者转换,把一个字符串转换成另外一个字符串;第四是结构预测,即找到字符串里面的一定结构;第五是马可夫决策过程,在处理一些事情的时候有很多状态,基于现在的状态,来决定采取什么样的行动,然后去判断下一个状态。
    分类:For 客服机器人,分类是指从答案中抽取一个或多个标签,并有效评估答案和标签的关联紧密程度
    匹配:For 客服机器人,如何把用户输入的问题与知识库中的标签进行关联,并匹配标签对应的知识点 and 解决未匹配的情况
    翻译:即如何将一个文本认为是标签的另外一个翻译
    结构预测:寻找字符串里面的结构
    马尔科夫决策:基于当前的状态太采取什么样的活动
    分类主要有文本分类和情感分类,匹配主要有搜索、问题回答、对话(主要是单轮对话);翻译主要有机器翻译,语音识别,手写识别,单轮对话;结构预测主要有专门识别,词性标注,句法分析,文本的语义分析;马可夫决策过程可以用于多轮对话。
     

  • 自然语言处理,在一定程度上需要考虑技术上界和性能下界的关系。现在的自然语言处理,最本质是用数据驱动的方法去模拟人,通过人工智能闭环去逼近人的语言使用能力。
    在设计之前我们必须对于客服机器人有一个使用上的认识,我们的产品是原型产品,但是也可以满足用户的正常使用,后期随着技术资源的投入在准确性和响应及时性上会有更多的提升,但是基本的准确性和响应及时性也应该有一个保证,所以我们必须对准确性、响应及时性等指标有个下界的评估
     


参考这个图,似乎我们可以用SVD来解决匹配问题啊
 

posted @ 2017-04-20 16:59  柯君  阅读(1516)  评论(0编辑  收藏  举报