自然言语处理与人机对话系统

图灵汇官网

前言

一两年前,出于工作需要,我对自然语言处理和人机对话系统进行了深入研究。本文将总结这些知识点以及我的思考。

自然语言处理与人机对话

在大多数企业中,人机对话的主要应用是任务型人机对话系统。无论是自然语言处理(NLP)还是聊天机器人(Chatbot),学术界和工程界都有不同的实现手段。学术界的最新研究成果和趋势在实际工程中的应用较少,而工程界则采用自己的方法来实现人机对话。在人机对话的实现过程中,会大量应用NLP技术,因此可以说NLP是Chatbot的基础。

自然语言处理的关键点

自然语言处理的研究内容主要涵盖以下几个方面:

  • :包括语法、语义和语用。
  • 短语(句子):包括语法、语义和语用。
  • 篇章:包括语法、语义和语用。

词和短语的研究已经相对成熟,主要集中在2000年后。篇章的研究尚不成熟,主要集中在2010年以后。

常用的语法树类型包括:

  • DG(依存语法)
  • CFG(上下文无关文法)
  • PCFG(概率上下文无关文法)
  • LCFGLP(线性约束上下文自由文法)

常用的算法包括:

  • 搜索(Search)
  • 动态规划(Dynamic Programming)
  • 分类算法(Classification Algorithms)
  • 序列标注(Sequence Labeling)
  • 优化算法(Optimization Algorithms)

人机对话的主要框架

人机对话系统通常由三个主要模块组成:

  • NLU(自然语言理解):理解用户输入,将其转化为结构化的表示形式。
  • DM(对话管理):系统决策,决定下一步的动作。
  • NLG(自然语言生成):将结构化的表示形式转化为自然语言输出。

自然语言理解

自然语言理解主要包括以下三个方面:

  • 领域识别:判断用户输入的类型,如会议室预订、火车票购买、订餐等。
  • 意图识别:识别用户的意图,如确认、拒绝等。
  • 槽位填充:抽取与任务相关的必要信息,例如会议预订时,可以定义槽位为会议地点和时间。

用户输入“我明天在公司开会”,经过自然语言理解处理后,结果为:

  • 领域:会议室预订
  • 意图:提供信息
  • 槽位:{时间:明天;地点:公司}

自然语言理解的研究现状:

  • 基于规则的方法:使用正则表达式,虽然灵活但耗时且难以移植。
  • 基于统计的方法:单独建模和联合建模。单独建模将领域识别、意图识别和槽位填充分开研究,分别使用支持向量机、卷积神经网络、决策树、条件随机场和循环神经网络,存在误差累积问题。

研发步骤:

  • 根据任务需求定义标签。
  • 准备数据,如果是基于规则的方法,则需要观察数据规律并提取模板;如果是基于统计的方法,则需要标注数据,分为训练集、验证集和测试集,一般需要几十万条数据。
  • 编写正则表达式或建立模型进行训练。
  • 完成自然语言理解的研发并进行迭代优化。

对话管理

对话管理模块的主要框架如下:

用户输入“五道口附近的餐馆”,经过NLU处理后得到意图=询问,槽位={位置:五道口}。对话状态跟踪模块接收槽位={位置:五道口}。候选动作包括餐馆检索和需求澄清。策略模块将候选动作排序。根据排序结果执行动作,更新交互状态,并通过自然语言生成模块生成回复:“还有其他需求吗?”用户继续输入。

自然语言生成

自然语言生成模块(NLG)通常包含以下三部分:

  • 内容选择:从输入中选择合适的内容并决定文本的结构。
  • 句子规划:决定每个句子的词汇内容。
  • 内容表达:将选定的内容渲染成最终的文本。

传统方法涉及:

  • 概率上下文无关文法
  • n元语法
  • 属性检测
  • 阈值过滤
  • 文本筛选

基于深度学习的方法包括:

  • RNN(循环神经网络)
  • LSTM(长短期记忆网络)
  • seq2seq(序列到序列模型)
  • encoder-decoder(编码器-解码器架构)

训练样本通常需要几十万条数据。

面临的问题与思考

  • 目前的人机对话系统只能在特定的小范围内取得较好的效果,很难实现一个大规模的通用聊天机器人。
  • 当前主流对话系统的框架大同小异,主要目标仍然是实现较好的效果。为了达到这个目标,需要将业务范围限定得非常小。
  • 涉及到机器学习或深度学习的对话系统都需要大量的训练样本,无法绕过人工标注这一环节。
  • 在工程应用中,NLU、DM和NLG三个模块主要以库的形式调用,如果以服务的形式调用会比较复杂,尤其是在涉及到多个项目组时。
  • 数据是最重要的资源,没有数据几乎寸步难行。数据需要不断更新,并与在线系统形成闭环。
  • 目前在工程上表现较好的系统大多仍然采用传统的基于规则的方法,在某些环节引入机器学习或深度学习。人工智能或深度学习的应用需要回归到问题的本质,而不是一味地追求高大上的技术。
  • 在样本标注方面,需要开发便捷的标注系统,方便业务人员或标注人员使用。

如果您想了解更多关于人工智能的基本原理,请关注作者的《人工智能科普》专栏。

本文来源: 图灵汇 文章作者: 佑亿精密