
朋友们,我们提请您注意有关聊天机器人创建问题的
有趣演讲的简短翻译:此任务的功能是什么,开发人员遇到的困难以及如何解决。 我们还请Jet信息系统机器学习中心的专家对此材料发表评论。 您将在文章结尾找到他的意见。
不是社交网络,不是移动应用程序,而是消息传递是一种新的且非常重要的趋势。 如今,消息传递的强度呈指数级增长,就数据量而言,这种通信方式已在2015年初取代了其他地方的社交网络。 例如,Facebook专注于消息,并将把与此页面相关联的所有其他内容(新闻提要和内容)推送到后台的某个地方。
如今,得益于智能手机,触摸界面已经征服了世界。 看起来下一步将是聊天用户界面,您将在其中拥有语音或文本聊天机器人。
让我们谈谈成熟的聊天机器人的开发人员必须克服的困难,以及将来必须克服的困难。
分析师告诉我们什么?
Gartner声称,到2022年,所有客户互动的70%将通过某种AI发生。 假设即使公司中的语音呼叫数量也将减少10%。 至少,如果用户在60%的情况下致电公司,则不需要人工参与。 在其他情况下,人们只会在流程的某个阶段参与,可能会直接与用户沟通。
根据其他研究,聊天机器人市场将成倍增长。 这不仅涉及客户服务,还涉及销售和市场营销。 研究人员认为,聊天机器人将能够取代全球6%的劳动力。 这意味着将近2亿人将不得不寻找新的,更有趣的工作。

最后,分析人士认为,使用聊天机器人每年可以节省7万亿美元。
意图和表达
两年前,我讨厌聊天机器人,但今天我喜欢它们,因为我开发了它们。 但是今天许多人仍然不喜欢他们。 聊天机器人为何如此糟糕?
在我看来,它们不完善的原因可以分为两类:一类涉及AI领域,另一类涉及人。 但是,由于我是一名工程师,并且在心理学和与用户本身相关的其他主题上不太强壮,因此他们只会谈论AI。
首先,我们需要问自己:聊天机器人如何识别用户在告诉他们什么? 识别有两个关键概念。 用户的
意图是什么,他的目标是什么? 例如,一个人收到了巨额的服务费,想知道为什么这么多。 他求助于客户支持,他的目的是要回答他的问题。 这样的用户可以使用多个
表达式 ; 他可能会问:“为什么我的帐户这么大?”; “发生了什么事?”; “我的帐户怎么了?”; “我为什么要付这么多钱?” 这些概念已广泛用于创建聊天机器人的领域。
如何识别意图和表达?
聊天机器人用于隔离关键字。 说,如果文本“用户”是来自用户的文本,则该上诉可能涉及计费服务。 但是用户可以说:“
我在帐单中看到我可能订阅了错误的内容 。” 此人对该帐户不感兴趣,他想要另一个订阅。 而且,您必须发明各种拐杖规则。
但是用户可以将句子翻过来并说:“
我认为我的订阅有误,因为我注意到我的帐户有问题 。” 而且您的拐杖不再起作用! 然后,通过堆积新的拐杖层来扩展这些规则。
这些规则并不完美,并且开发人员在定稿上花费了太多时间。 仅通过机器学习获得了进一步的进步。 在理解自然语言(自然语言理解,NLU)的领域中,有一个单独的方向可以完成此任务。
同时,NLU是自然语言处理(NLP)的组成部分-该术语描述了与理解和生成语音有关的所有内容。 了解某人告诉您的内容本质上是根据特定意图对表达式进行的分类。
确定意图的困难
主要问题之一是“不良”表达的存在。 要训练算法,您需要生成自己的意图表达。 例如,您有以下示例:
为什么我的帐户这么大?
为什么我的账单这么贵?
为什么 我的帐户中 的金额
如此之大?
它们可以用作培训NLU和NLP系统的输入。 这些句子非常相似,以“ Why ...”开头。 另外,所有句子都包含单词“我的帐户”,因此您可以使用更改顺序的简单规则,例如,关于短语“我的帐户”的存在。 此外,每次提到“ so”一词时,我们都可以假定它专门指的是帐户的讨论。 如果您没有向算法说明确定这种意图的确切含义,那么您的NLP系统将无法正常运行。
在“
我为什么要比平常多付多少钱? »上面没有突出显示的词。 除非您有单一意图,否则NLP系统将无法理解该提案属于该组。 但是,如果有多个意图,那么情况将变得非常复杂。
各种表达方式
因此,我们需要一组非常多样化的表达式。 生成它们并非易事。 为此,我制定了多元化战略。
→
NLP系统的一部分管理各种同义词,而另一部分则处理各种单词顺序。 大多数NLP系统包含两个主要模块:
- Word2Vec将可识别的单词转换为矢量表示。
- 卷积神经网络(SNA)或处理单词顺序的递归神经网络(RNS)。
Word2Vec的功能使其可以识别单词的某些属性,因此,含义相似的单词将彼此接近。 放在轴上的“大小”车辆:
而且,如果您做对了所有事情,则可以沿另一个轴分布这些实体-此类传输所针对的环境。
要训练系统,您需要知道哪个品种与您的任务相关,哪个品种与您的任务无关。 假设您需要运输非常大的东西,并且运输方法无关紧要。 然后,大概可以接受这样的变化:
在另一种情况下,如果仅通过陆运交付,则尺寸可能并不重要。
Word2Vec将单词转换为矢量表示。 然后,该表示被传输到研究单词顺序的神经网络。
我的策略很简单。 首先,我们创建了很多报价。 对于帐户,我们对同义词不感兴趣,而对单词顺序感兴趣。
为什么我的帐户这么大?
我的帐户很大!
在我的帐户中,这是一个惊人的数字!
“分数”一词在句子的不同位置。 我们正在尝试以不同的词序生成尽可能多的示例,而不必担心如何用不同的词来表达一种思想。
然后,您需要添加同义词以实现多样性。 假设在第一句话中,您可以说“
为什么 ”,而不是“
为什么 ”,“
向我解释为什么... ”或“
告诉我那是怎么发生的... ”,然后您可以用任何另一个选择。 例如,“
向我解释为什么您的支票这么大 。”

我们创建在这种情况下允许使用的同义词列表,编写脚本以生成表达式,并获得良好的训练数据集。 然后,您需要明确告诉系统在此上下文中允许使用哪些同义词。
改善
在我看来,许多公司都忘记了需要改进最终的聊天机器人。
请说一句:“
我怎么需要比平常多付钱? »这些词未包含在我的同义词中,并且词序与之前使用的词序不同。 无需将此句子添加为另一个表达式。 首先查看是否存在这样的单词顺序,如果没有,只需将句子添加为新单词顺序,然后添加同义词。 这样,您可以获得非常多样化的表达式集。
品种表达评估
您怎么知道一切正常? 您可以尝试将单词的向量表示形式组合成简化表达式的簇,并评估它们的多样性。

指标非常简单:我们计算聚类的数量,然后将其除以表达式的数量。 平均而言,各种各样的表达水平约为50%。
显然,如果品种低于20%,则说明您的工作状况不是很好。 另一方面,如果多样性大于80%,则表达式可能彼此不相关,并且算法很难找到良好的组合。
识别精度
训练分数表示系统在训练数据集上的工作精度。 这不是很有趣,因为您只会得到训练数据集的评估。 下一步该怎么做还不清楚。
在这种情况下,您应该对哪些表达式分类错误感兴趣。 哪里出错了?
即使在上面显示的示例中,“
我在账单中看到我可能订阅有误 ”这一句子
也很可能被错误分类。
而且,如果您发现提案的分类错误,则需要找出解决方案。
Word2Vec和循环神经网络通常被认为是黑匣子;它们很难解释。 但是仍然有一种不太困难的方法。 对于每个单词,我们分别添加噪音。 开始更改单词后,您将看到该特定单词的定义变得多么敏感。
因此,我们对句子中的每个单词进行处理:将噪声添加到向量中,并通过算法进行处理。 如果结果相同,则算法对此词不感兴趣。 如果添加噪声后结果变得完全不同,那么这个词可能很相关。
通过以这种方式分析敏感性,您将能够理解,例如,由于“计数”一词,意图被错误地确定。 或者,如果句子中仅包含“为什么...”一词,则可能是它们导致了意图的定义。 如果整个内容都在“分数”一词中,那么您可以有几种选择:
- 删除此表达式,您分类错误的表达式将消失。
- 或在与订阅关联的表达式组中,只需添加带有“ count”一词的更多表达式,以便系统开始“理解”这两个词可以同时出现。 并且,根据上下文,无论是帐户还是订阅,都应该找出发生了什么情况。
- 或者相反,您可以添加更多与“计数”相关的表达式,但不包含这些表达式,从而使系统对“计数”的敏感性降低。
对话流程
接下来的事情,很少有人会注意,是对话流程。 人们如何使用您的漫游器? 他们如何与他合作? 对话中发生了什么? 大多数用户做什么?

此图显示了对话的发展。 可以看出,该线程使用最频繁,许多人喜欢机器人的这一部分。 但是,更重要的是要查看谈话中出现的哪些时刻会导致人们停止使用该漫游器:他们先问一些问题,然后突然离开。
情绪分析
务必了解人们与您的聊天机器人聊天时的感受。 为此,我们使用情感分析。 如果您了解与聊天机器人聊天后60%或更多的用户感到不满意,则需要采取一些措施。 我认为任何对话平台都不会考虑这些信息。
负面情绪经常会导致看起来并不负面的提议-它们是由基于表情符号的聊天机器人所学习的。 如果数据集中有一个讽刺的句子,那么它可能意味着任何意思。 机器人不应认为它与不良情绪有关,因为这种表情可能是中性的。
使用范例
什么时候使用聊天机器人? 当您的客户需要快速解答,或者他们不想挂断电话时,操作员便可以帮助他们。
如果人员不足,为什么不使用聊天机器人快速回答基本或常见问题?
找出大部分费用由您的业务部门负责也是非常重要的,因为如果您将这一领域转移给聊天机器人,则可以节省很多钱。
就情感而言,机器人并不是最佳的对话者。 如果您拨打急救电话,则需要直接答复。 但是,如果您在汽车方面遇到问题或小事故,可以致电汽车服务部门,而又不想在线路上等待很长时间,那么您可以说:“我的轮胎爆裂了”。 当然,我并不是说小事故或多人受伤的事故,在这种情况下不能使用聊天机器人。
我想谈谈另一个方面:评估聊天机器人是否适合特定任务。 许多客户来找我们说:“
我们的网站上有这样一种表格,为什么不将其转移到聊天机器人上呢? “但是我们使用表格已经很多年了,我们相信表格非常有效。
表单非常简单,人们知道如何使用它们。 为什么要将表单变成聊天机器人? 某些用户交互适用于聊天机器人,但有时最好只填写表格,因为它很容易。
但是还有其他情况。
例如,如果图形界面对于搜索信息不是很方便,那么会话用户界面可能会成为输出。 当然,如果您有“错误”的表达,那么聊天机器人将无法工作。 通常,此类表达是由人生成的。
最重要的是对话的设计。 整个VoiceCon会议都专门讨论此主题。 对话的设计应非常严格。 而且,如果您做出了出色的设计,那么您就可以摆脱质量不是很高的AI。 这很可悲,因为它会导致聊天机器人失败。
有用的提示
可能很多人都在网站上看到了弹出窗口:“您好。 我可以帮你什么吗?” 或“我看到您正在尝试发送一封信。 让我来帮助您!”
不要在首页上放置聊天机器人。 不要做。
如果此类漫游器未占据整个页面,则只能以较温和的形式使用。 然后人们开始使用该机器人,因为它可以帮助您找到答案。 另外,由于您限制了漫游器的范围,因此它变得更易于开发。 但是,您不会用他们目前不需要的机器人来打扰他们。
人们倾向于个性化聊天机器人。 他们不喜欢故意使用的机器人。
个性化您的聊天机器人! 即使您每次都告诉客户它是机器人,还是要给它一些独特的功能。
如果您是酒店经理,那么您可能需要一个非常正式的聊天机器人,该机器人的说话就像个管家:“是的,先生”,“谢谢您,先生。” 而且,如果您是一家电信公司,并且正在制定针对年轻人的资费计划,那么最好使用诸如“嗨,伙计,你好吗?”之类的东西。
永远记住你的听众是谁。
如果您保持整洁和一致,那么聊天机器人将更吸引您的客户。 在整个对话流程中保持一致性,因为通常一开始一切都会顺利进行,一段时间后对话变得非常机器人化。
您的聊天机器人以协作方式进行交流非常重要。 最重要的是它在一开始的显示方式。
有人出于某种原因打开了您的聊天机器人。 立即向用户说明您可以创建聊天机器人。 另外,管理用户的期望:说您是一个机器人,因为有些错误对他来说是可以原谅的。
不要使用过于笼统的短语。 不要问:“我能为您提供什么帮助?”
我通常会问这样的机器人:“
帮我赢彩票 ”或类似的东西。 因此,让机器人进行清晰,简单的沟通即可。
在对话中处理主动权转移确实非常重要,也很困难。
当我们彼此交流时,我们使用视觉信号让我们理解:“
现在轮到我讲话了 。” 但是聊天很难实现。 有必要向用户表明,机器人现在正在等待人们将要写的内容。 例如,他订购了一个汉堡,然后机器人可以问:“
您想要更多的薯条吗? ”
在机器人中使用人类语言非常重要。
闲聊很烦人。 使用漫游器的身份使对话更加可信。
在与客户的整个对话过程中开始确认或验证确认是非常诱人的。
但是,如果机器人不断问:“一切还好吗?”,这很烦人。 或“对吗?” 或“您点了汉堡,对吗?” 不要在您的聊天机器人中执行此操作!
仅在确实相关时才允许这样做。 例如,在对话结束时添加:“
好。 现在,您必须付钱给汉堡配薯条和饮料。 可以吗 »做到这一点的一种优雅方法是内置确认。 如果您订购汉堡,则可能会问:“
好。 您要炸薯条吃汉堡吗?”在某个时候,机器人可能会误解某些内容。 另外,人们容易犯错误。 有时您点了些
菜,然后想:“
嗯,我可能改吃三培根,这样更好 。” 因此,开发人员必须确保聊天机器人能够解决此问题。 您必须创建一个对话流,以了解对话中的这一点,我们要更改顺序。
设计线程可以防止用户错误,因为人们经常犯错误!
关键是要提醒一个人,但是与经常道歉的人的交流非常烦人。 因此,不要让您的聊天机器人过分道歉。 避免道歉,建议解决办法。 说:“
我听不懂。 你可以改写吗? “如果犯了一些错误,您可以告诉用户:”
您要的是我不理解的内容。 您可以从我这里订购汉堡,薯条和饮料 。”
未来
使客户轻松创建具有良好对话设计的聊天机器人。 如果输入有误,请尝试解决。 老实说,聊天机器人仍然很烂。 但是,您可以创建真正起作用的聊天机器人,并为我们做一些工作。 只需要正确地解决这个问题。
专家意见
现在,我们想与您分享我们公司的专家对此处描述的想法和技巧的意见。
Jet Infosystems的领先机器学习专家Nikolay Knyazev :
作者的演讲专门针对开发人员需要的知识,以使其成为成功的聊天机器人。 这个话题很有趣,表面上没有很多要点。 但是,值得理解的是,从算法的角度来看,方法的概述是相当笼统的,并且没有迹象表明它们的实现。
例如,给出了使用Word2vec的示例,但未提及其他单词矢量化方法,例如Glove,Fasttext。 有多种方法可以对文本进行分类(从单词袋到RNN和CNN),但没有实现它们的比较或库(例如,对于Python,这些是Keras,Scikit-learn等)。 一般性审查漏掉了两个要点。 首先,地区特点:不同的语言将采用不同的方法。 而且英语的实现绝对不适合俄语。 虽然在我们国家,例如有bigARTM或Taiga大楼的发展,但可以在此基础上训练上述Word2vec。
另一个方面是使用机器人的概念:一次性机器人(选择公寓,解决问题)或持续使用(工作过程的一部分)。 实际上,在第一种情况下,人们会记住交流中的情感以及作者所说的一切。 第二,人们恰好在等待“卡拉什尼科夫突击步枪”,以便它执行其功能而没有其他问题,慢慢学习使用它的最短方法。 在这里,浮现出来的不是情感色彩,而是用户体验,因为到目前为止,我们大脑中的神经网络要比实际情况更快地适应现实。