自然语言理解-从规则到深度学习

图灵汇官网

改写后的内容

1. 引言

自然语言理解(NLU)是人工智能领域的一个重要课题,也是当前智能语音交互和人机对话的关键难题之一。NLU的目标是使机器能够理解人类的语言,这被认为是AI的核心挑战之一。简而言之,当机器能够很好地理解自然语言时,强人工智能(Strong AI)也就实现了。

之前的文章《自然语言理解》详细介绍了NLU的系统实现方案,其中包含了一些重要的概念和技术细节。然而,随着时间的发展,技术进步迅速,算法也经历了多次迭代更新。本文将着重探讨自然语言理解的难点,并详细介绍两个核心问题——意图分类和属性抽取。这两个问题在NLU中占据重要地位,是构建高效对话系统的基础。

2. 自然语言理解的难点

为什么自然语言理解如此困难?原因在于语言本身的高度复杂性。以下是五个主要难点:

  1. 语言的多样性

    • 自然语言既有一定的规律性,但也存在许多例外情况。
    • 语言可以通过不同层级的组合来表达复杂的含义,这增加了语言的多样性。例如:
    • “我要听大王叫我来巡山”
    • “给我播大王叫我来巡山”
    • “我想听大王叫我来巡山”
    • “放首大王叫我来巡山”
    • “给唱一首大王叫我来巡山”
    • “放音乐大王叫我来巡山”
    • “放首歌大王叫我来巡山”
    • “给大爷来首大王叫我来巡山”
  2. 语言的歧义性

    • 缺乏上下文时,语言可能产生多种解释。例如:
    • “我要去拉萨”可能指的是“火车票”、“飞机票”、“音乐”或者“景点”。
  3. 语言的鲁棒性

    • 输入过程中,尤其是通过语音识别转换过来的文本,可能会出现错字、多字、少字、别称或噪音等问题。例如:
    • 错字:“大王叫我来新山”
    • 多字:“大王叫让我来巡山”
    • 少字:“大王叫我巡山”
    • 别称:“熊大熊二”(指《熊出没》)
    • 不连贯:“我要看那个恩花千骨”
    • 噪音:“全家只有大王叫我去巡山咯”
  4. 语言的知识依赖

    • 语言与现实世界紧密相连,很多词汇都有多重含义。例如:
    • “大鸭梨”不仅指水果,还可以指餐厅名。
    • “七天”除了表示时间,还可以指酒店名。
    • “总参”除了指总参谋部,还可以指餐厅名。
    • “天气预报”不仅是一档节目,还是一首歌名。
    • “晚安”不仅是一种问候语,还是一首歌名。
  5. 语言的上下文

    • 上下文包括对话上下文、设备上下文、应用上下文和用户画像等。例如:
    • “买张火车票”——“请问你要去哪里?”——“宁夏”(指地理上的宁夏自治区)
    • “来首歌听”——“请问你想听什么歌?”——“宁夏”(指歌曲《宁夏》)

3. 意图分类的实现方法

意图分类是一种文本分类任务,主要方法包括基于规则的方法、传统机器学习方法和深度学习方法。

3.1 基于规则的方法

基于规则的方法包括上下文无关语法(CFG)和联合语法(JSGF)。例如,以下是一个基于CFG的示例: - 对于“从北京去杭州的飞机票”,可以展开成如下树形结构。

3.2 基于传统统计的方法

早期系统采用了支持向量机(SVM)等传统机器学习方法。但随着深度学习的发展,效果显著提升。在此不赘述,直接介绍深度学习方法。

3.3 基于深度学习的方法

深度学习方法主要包括卷积神经网络(CNN)和循环神经网络(RNN),具体包括: - CNN(卷积神经网络) - RNN/LSTM(循环神经网络/长短时记忆网络) - RCNN(递归卷积神经网络) - C-LSTM(卷积-长短时记忆网络)

实验表明,简单的CNN结构表现最佳。然而,单纯依靠CNN可能难以处理高度依赖世界知识的领域,例如音乐、视频等。因此,尝试将分布式表示(distributed representation)与符号主义表示(symbolic representation)结合起来,以提高效果。

4. 属性抽取的实现方法

属性抽取可以抽象为序列标注问题,主要方法包括基于规则的方法、传统统计方法和深度学习方法。

4.1 基于规则的方法

基于规则的方法包括基于字典的方法和上下文无关语法(CFG)等。例如,以下是一个基于JSGF的示例: - JSGF 是一种独立于平台和厂商的文法规则表示,可以将语言规则转化为图形结构。例如,“帮我打开空调”可以展开成特定的匹配路径。

4.2 基于传统统计的方法

传统的统计方法包括隐马尔可夫模型(HMM)和条件随机场(CRF)等。在此不赘述。

4.3 基于深度学习的方法

深度学习方法主要用于序列标注,主要包括: - RNN(循环神经网络) - LSTM(长短时记忆网络) - Bi-LSTM(双向循环神经网络) - Bi-LSTM-Viterbi - Bi-LSTM-CRF

在实际系统中,我们采用了Bi-LSTM-CRF模型。同样地,在输入层将分布式表示和符号主义表示进行了融合,以提高模型效果。

5. 小结

在实际系统中,基于规则的方法和基于深度学习的方法并存。基于规则的方法主要用于快速解决一些简单问题,而基于深度学习的方法则是系统的核心。通过不断优化和迭代,我们可以构建更加智能、高效的对话系统。

参考文献

  1. https://en.wikipedia.org/wiki/Naturallanguageunderstanding
  2. Ward & Issar, CMU Phoenix System, 1996
  3. Yoon Kim, Neural Networks for Sentence Classification, EMNLP, 2014
  4. Suman Ravuri and Andreas Stolcke, Recurrent Neural Network and LSTM Models for Lexical Utterance Classification, InterSpeech, 2015
  5. Siwei Lai, Liheng Xu, Kang Liu, Jun Zhao, Recurrent Convolutional Neural Networks for Text Classification, AAAI, 2015
  6. Chunting Zhou, Chonglin Sun, Zhiyuan Liu, Francis C.M. Lau, A C-LSTM Neural Network for Text Classification, arXiv, 2015
  7. Grégoire Mesnil, et. al, Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding, TASLP, 2015
  8. Xiaodong Zhang, Houfeng Wang, A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding, IJCAI, 2016
  9. Bing Liu, Ian Lane, Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks, arXiv, 2016
本文来源: 图灵汇 文章作者: 李雪涵