基于深度学习算法的Chatbot聊天机器人

2020-07-02 15:10:04 浏览数 (1)

《AI气象蜂产品介绍》的收费阅读中,我介绍了这款产品主要应用了Chatbot聊天机器人来自动管理社群并与群内用户进行互动。什么是Chatbot技术,我整理了一点技术资料共享出来供大家参考!先介绍一下Chatbot应用于气象社群服务的三个关键技术:

基于深度学习的文本匹配:向量空间模型采用高纬稀疏向量进行TF-IDF计算;并进行潜在词义分析对词文档贡献矩阵的分解;主题模型采用pLSA、LDA概率图模型;深度学习采用Word2Vec的网络结构DSSM模型框架、CLSM兼顾效果和性能两方面。

表现层:聊天对话与天气信息分别用语义和业务特征表示,其中天气语义特征是核心,通过DNN/CNN/RNN/LSTM/GRU方法得到短文本的整体向量表示.另外会引入业务相关特征。

学习层:通过多层全连接和非线性变化后,预测匹配得分,根据得分和标签来调整网络,以学习对话信息与天气信息的匹配关系

基于Chatbot的智能社群机器人实时采集群内用户发出的文本信息,通过深度学习的文本匹配技术,再利用 Chatbot 的 Intent(用户对话的意图)、Entity(对话中重点要提取的信息)和Action(根据 Intent 和会话的上下文给采取的动作)。

首先是区分用户输入语句的 intent,我们可以把 Intent 理解成对话的分类,对于不同的分类有不同的处理流程,所以要首先把对话对应到一个分类上;其次就是在不同分类中提取对话中的关键信息,比如用户想查询天气,这就是一个 Intent,我们在后台已经设置了查询天气的接口,但进一步查询时需要知道时间和地点,就是两个 Entity,等获取了这些信息之后就是 Action,比如在这里 Action是调用后台,那就会向后台发一个请求查询天气并返回给用户。

开发主要集中在 Intent 识别,Entity 提取和 Action 预测上。在 Dialogflow 和 RASA NLU 模型定义 Intent 时都要输入一些训练数据,就是用户说什么话可以归为这个 Intent,然后会用机器学习的算法去训练一个模型。在把单词向量化时一般使用事先训练好的Word Embedding 向量。比如在训练集只出现了 "北京天气",当用户输入 "北京天气"也会进入相同 Intent。

完成Intent 识别和 Entity 提取后,这些信息就交给 Chatbot 核心,核心则需要由用户事先定义的模板(Diaglog 里叫 Flow, RASA 中则叫Story )做出反应动作,即 Action。通常核心还会记忆一些之前聊天的关键信息,这些信息就给到人工智能算法来预测下一步做什么。建立专业“气象知识库”专业领域的 Entity ,给出 Action (Memoization Policy in RASA) 或者可以由让模型做预测 KerasPolicy and Embedding Policy,这样如果聊天流程并不在事先定义的模板中时,Chatbot 根据已经的流程和用户的输入预测出下一步最大可能要做什么,或者说转到那个Intent上。

Chatbot 实际上是引导用户完成了关键信息输入的工作,进一步的处理则是做后台的 webhook 来做,比如天气查询,Chatbot 的作用就是能让用户在各种情况输入查询天气所需要的时间和地点信息,然后向后台的 webhook 发出请求。

0 人点赞