首页 > 信息安全 > 正文

AI研究院 | 开发者如何让自己的新聊天机器人赢在起跑线?

2017-03-16 15:53:56  来源:网易科技

摘要:对于我们大多数人而言,创建聊天机器人是为了服务于真正的商业目的,而不仅仅是一个有趣的项目。
关键词: 起跑线 开发者 机器人
\

  对于我们大多数人而言,创建聊天机器人是为了服务于真正的商业目的,而不仅仅是一个有趣的项目。
 
  由于聊天机器人旨在以某种方式服务于客户或与客户进行交互,因此应该尽可能多地被提供信息和智能,以便与客户进行恰当的接触。数据越早被聊天机器人掌握越好。这样在聊天机器人上线之前,它的完成度可以达到最佳。
 
  以下是理由可以解释这是绝对合理的:
 
  “冷启动”会给用户体验带来负面影响,并由于聊天机器人的无效回答而导致使用大幅下降,但现在已拥有数据可以避免这种“冷启动”。
 
  开发者投入了大量的时间和精力创建一个聊天机器人,以期其在大事的计划中发挥战略作用。没人喜欢聊天机器人不停地说“对不起,我不知道你在问什么。你能重新措辞吗?”并突然访问你的客服档案
 
  一个面向客户的聊天机器人会很自然地利用客户客服端的信息。客服端是个宝库,可以帮助开发者了解客户已有的各种问题和问题,并且可以让开发者根据在聊天机器人中功能来决定问题,从而预测聊天机器人应该回答什么样的问题。由于这些都是实际的、具体的数据点,你不会冒风险,想象一些与客户无关的问题和解决方案。就我们的经验来说,这是最好的方法。
 
  经常被问到的问题是另一种很好的资源,可以为聊天机器人配置第一个回复。由于这些都是从重复的查询中提炼出来的(希望是真实的,而不是想象中的),它们可以是你的聊天机器人可以得出回复的基准线。然而,你应该意识到并非所有的常见问题都是定期更新或与客户相关的,所以你必须确保在随机决定将它们放入你的聊天机器人之前对这些问题进行审查。
 
  训练聊天机器人
 
  虽然用过去的信息来训练你的聊天机器人是很理想的,但如果你或你的聊天机器人供应商没有专业技能来分析和提取规模所需的重要信息,这么做就很有挑战性了。如果开发者有一个庞大的档案库,并且认为这会是一个重要的集合,就需要利用一些关于文本挖掘和自然语言处理的知识,充分地开始分类、对主题建模,并将这些数据汇总为聊天机器人开发过程中可用的金块。
 
  你当然可以花时间手动检查这些信息,自己或者让团队里的人来分类。无论如何,一定要在这些参数中选择一个具有代表性的样本:
 
  产品:代表你所携带的所有产品类型
 
  时间框架:考虑事件或季节波动
 
  帐号类型:捕获各种客户账号
 
  优先事项:了解紧急和正常问题之间的差异
 
  解决时间:对轻快解决不同问题的方式进行抽样(越简单或越快,你的聊天机器人就越会自动处理)
 
  标签或类别:利用人类分类数据进行训练
 
  根据业务和产品结构,开发者还可以对客户客服端信息的代表性进行抽样调查。
 
  现在,在没有机器学习和NLP专业知识的情况下,最难的部分是根据手边一大堆客服端信息分析之后,对分析结果进行分类,并计算出分析结果。只要对1500到2000条客服信息进行分类,对一般人来说是无法胜任的,而且可能需要3天到2周的时间,这取决于工作的复杂程度和可用时间。
 
  假设开发者具备一些专业知识,可以考虑采用半监督的培训,从分类标记实例开始,通过一个基于矢量的混合LDA来进行主题建模,并在开发者的数据集上做一些有趣的试验,尝试不同的模型和超参数,效果会很好。
 
  在培训阶段结束时,开发者应该有一个相对稳定的、可用于生产的模型,可以对聊天机器人从用户那里收到的传入查询进行分类。开发者在培训这个模型时付出了努力,为了尽其所用,可以把模型打包成一个API,让聊天机器人在需要对来自客户的新查询进行分类的时候调用这个API。
 
  测试培训的结果
 
  用真正的用户测试和重新测试开发者训练过的模型的结果是非常重要的。有时(实际上是通常)开发者的模型会过于适合开发者训练的数据,而这些数据在新数据面前是无用的。因此,除了在培训过程中评估模型时使用的分离测试/dev设置,开发者应该将这个模型的第一个版本交给用户。
 
  通常可以把这个应用放在试用阶段,或者当开发者在与一群客户或用户一起测试体验时,聊天机器人就能被测试。因为在这个阶段,可能不会有那么多的用户,所以花时间仔细检查每一个反应,找出是否有系统的样本或例子在模型中被忽略或错误分类。
 
  启动和优化
 
  在试验之后,是时候启动聊天机器人了,看看聊天机器人在此领域的反应能力会发生什么变化。如果一切顺利,开发者的聊天机器人可以在发布时正确地回答50%~80%的问题。在这个发布期,继续观察并注意人们问聊天机器人的问题,并将其作为优化下一个版本的因素。
 
  现实地说,为了让它达到期望水平,开发者肯定会有更多的工作要做。耐心点:每隔2-4周,如果开发者能负担得起的话,可以随时更新模型。收集的数据越多越好;这条规则几乎没有例外(除非数据质量低劣或处理不当)。
 
  想要更进一步?
 
  所以,如果已经听说了深度学习的先进技术的神奇之处,开发者应该觉得可以用它来打败香草机器学习模式。深度学习当然有帮助,尤其是如果开发者想让聊天机器人能够解释句子或转折的语境。在聊天机器人的语境中,深度学习可能对短期记忆的长架构最有用,并且可以随着时间的推移提升经验。
 
  但是,在开发者首先测试其他机器学习模型之前,别觉得有必要直接进入这个选项;了解基准性能是很重要的,而且很难找到知道如何调整模型的供应商或工程师,从而让模型在生产中发挥作用。许多技术(截至截稿前)要么仍在,要么刚从实验室里出来,而且可能还不够强大,不能用于大规模生产,难以面向客户。此外,开发者还需要一个大得多的数据集,也许是更大的数量级,因此开发者也许并不需要建立一个有意义的深度学习模型。
 
  总而言之,确保使用真实的数据来训练聊天机器人,这样它就能更好地吸引用户、对数据进行严格采样;并且如果开发者需要的话,还可以用来测试、优化和丢弃模型。
 
  Carylyne Chan是一家人工智能聊天机器人公司KeyReply的联合创始人。
责编:liuhan
分享到: