https://blog.tensorflowcn.cn/2019/05/tensorflow-helps-naver-communicate-with-customers.html
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilS0bPB0jTvMyPvYERiWgg9VxUfo8koXlSJMEe9eJUAzpCp6oNtcBs_r-C3h0HMkH-9SfKRzUt3vLQqoF1THAn9t5ht03vApSHQngO5p35I1ZauskdTzwIGcfIFNmKlrfVscOYICTWmjU/s1600/clov1.png
发布者:Seongjin Shin,NAVER Clova AI 业务
与我们的客户聊天
在 NAVER,我们需要为我们的客户提供数字服务来改善他们的体验。客户经常会有一些标准问题,并希望与代表交谈,以快速准确地找到解决方案。处理我们收到的各种规模的查询的最佳方法是通过聊天机器人,但是,我们需要确保它们能够正确地响应每个客户的特定需求。由于基于规则的模型可能无法准确地反映客户的需求或问题,也不能随着查询的变化而演变,因此我们依赖于机器学习来提供最佳服务。因此,我们转向 TensorFlow 来创建一个对话模型,该模型能够最好地理解客户需求背后的意图,并使我们能够正确地处理他们的请求,我们使用 NAVER 云平台 (NCP) 推出了聊天机器人服务。我们的聊天机器人服务提供快速准确的对话模型,并与各种消息传递渠道链接。
TensorFlow 和对话流程
我们选择 TensorFlow 是因为它能够支持各种生态系统,并且易于构建模型,这使我们能够为我们的客户提供广泛的服务。通常,构建研究模型、对其进行测试并反映实际服务的延迟需要相当长的时间。但是,我们的团队使用 Python TensorFlow 构建了一个基线聊天机器人模型 (seq2seq),并利用 Java/Scala TensorFlow 的训练结果构建了一个能够处理来自用户的多个请求的模型。为了利用我们的服务产品,我们的模型,该库应该支持多种语言和环境。没有多少机器学习库支持这一点。除此之外,TensorFlow 已被研究人员和开发人员广泛使用,我们的团队可以轻松地开发和定制最先进的模型。
|
聊天机器人框架结构 |
这些构建基于特定的任务,例如 NER、意图分类器、对话模型 (多轮) 和自动机器学习。我们还从 Seq2Seq、Transformer 和 BERT 等预训练模型中提取了模型结构思路,并优化了模型以处理大量用户的请求,从而提升用户体验。通过大量的研究和内部基准测试,我们的团队成功地推出了聊天机器人服务,该服务在其他聊天机器人构建器中具有竞争力的对话模型。
|
聊天机器人模型概述 |
构建过程摘要
为了构建对话模型,我们首先使用对话(数据文本)通过我们的聊天机器人构建器工具训练我们的模型。这是一个 Web 控制台,它使您能够创建和测试聊天机器人对话数据,并提供开发聊天机器人所需的各种功能。您也可以上传 Json 和 Excel 文件。
|
添加聊天机器人构建器的对话页面 |
输入数据集后,点击聊天机器人构建器顶部的“模型学习”按钮,模型将开始学习,以更好地理解用户的意图和上下文。
|
学习模型按钮 |
自然语言处理 (NLP) 分析添加到问题和答案中的句子的词素。
- 自然语言理解 (NLU) 确定句子的含义以及哪个答案与其最相关。此外,模型学习通过使用 NAVER 的数据词典进行一般实体映射来进行。如果只在特定领域对要学习的实体进行标记,则聊天机器人引擎会学习那些标记的实体。
- 学习可能需要几分钟甚至几小时,具体取决于数据的大小。NAVER 云平台 (NCP) 使用 GPU 来实现快速学习。
|
训练过程简要总结 |
- 完成所有学习过程后,由 TensorFlow 提供支持的自定义估算器功能将它们转换为冻结的图 PB(协议缓冲区)文件,并部署到服务器以与客户交互。用户可以连接各种渠道,例如 LINE、Facebook,甚至自定义 API 网关。
聊天机器人快速入门指南位于此处:
http://dev-docs.ncloud.com/en/chatbot/chatbot-1-1.html
|
聊天机器人用例 |
下一步是什么?
TensorFlow 使我们能够改变与客户互动的方式。通过其易用性,我们能够构建模型来满足客户的需求。该框架使我们的团队能够轻松地构建模型,支持多种语言,并运行稳定的社区。所有这些都改善了我们与客户的互动,这对我们来说非常重要。凭借我们在 TensorFlow 上取得的成功,我们将继续使用该平台,通过研究添加更多功能和增强对话模型来继续改进我们的服务。我们还计划开源我们的模型,以便其他人从中受益。