自然语言处理(NLP)是指机器理解并解释人类语言的能力,包括写作和口语。近年来,深度学习技术在这一领域取得了显著的成果。
最近,技术博客Sigmoidal发布了一篇文章,作者是机器学习工程师Rafal。这篇文章探讨了自然语言处理方法的发展历程,以及深度学习带来的变革。以下是文章的主要内容:
在2006年Hinton提出深度信念网络(DBN)之前,神经网络是一种非常复杂且难以训练的工具。因此,神经网络主要作为一种数学理论存在。在神经网络发展成为强大的机器学习工具之前,经典的数据挖掘算法在自然语言处理方面有着不少成功的应用。例如,我们可以使用简单的模型解决常见问题,如垃圾邮件过滤和词性标注。
然而,并非所有问题都可以通过这些经典模型来解决。简单模型无法准确捕捉语言中的细微之处,比如讽刺、成语或语境。基于总体摘要的算法(如词袋模型)在提取文本数据的序列性质时效果不佳,而N元模型(n-grams)在模拟广义情境时受到“维度灾难”问题的影响,隐马尔可夫(HMM)模型同样难以克服这些问题。
这些方法虽然在某些复杂的NLP问题中有应用,但效果并不理想。
神经网络提供了语义丰富的单词表征,给NLP领域带来了根本性的突破。在此之前,最常用的表征方法为one-hot编码,即每个单词会被转换成一个唯一的二元向量,且只有一个非零项。这种方法由于稀疏性问题,无法有效表示带有特定含义的词语。
Word2Vec方法通过预测周围单词来生成强大的向量表示。具体而言,skip-gram模型会根据中间单词预测周围的单词,而连续词袋模型(CBOW)则是根据周围的单词预测中间单词。这两种模型可以在保留单词语义结构的前提下,生成有效的向量表示。
尽管Word2Vec模型效果显著,但仍需一种能捕获文本长短期顺序依赖关系的方法。第一种解决方案是经典的循环神经网络(RNN),它可以利用数据的时间性质,使用存储在隐含状态中的先前单词信息,有序地将每个单词传输到训练网络中。
然而,RNN面临“梯度消失”问题,导致难以训练出理想效果。为了解决这个问题,Schmidhuber等人提出了一种新型网络拓扑结构,即长短期记忆模型(LSTM)。LSTM通过引入记忆单元来解决该问题,能够有效获取单元间的长期依赖关系,而不显著增加参数量。
目前,许多常用结构都是LSTM模型的变体,如mLSTM模型或GRU模型。这些模型通过引入基于自适应简化的记忆单元更新机制,显著减少了所需参数量。
在计算机视觉领域,卷积神经网络(CNN)已经取得了良好的应用,未来有望延伸至自然语言处理研究中。目前,一维卷积已成为常用网络单元,应用于多种序列模型问题的处理中,包括语义分割、快速机器翻译和某些序列转换网络。由于易于并行计算,一维卷积在训练速度上优于RNN。
有许多任务涉及计算机与人类语言之间的交互,这些任务可能对人类来说很简单,但对计算机却极具挑战性。这主要是由于语言中的细微差异,如讽刺、成语等。
按照复杂程度,以下列出了一些当前仍处于探索阶段的NLP领域:
情绪分析是最常见的领域之一,旨在确定说话者/作者对特定主题的态度或情感反应。这种方法可用于文本分类,通过深度学习技术实现高效的文本分类。
机器翻译是一个与前两个任务完全不同的领域。它需要预测模型输出一个单词序列,而不是一个标签。深度学习理论的加入极大地推动了这一领域的进步。
自动文本摘要需要在保留全部含义的前提下,提取文本中最重要的部分。这可以通过引入注意力机制模块来实现。
自动问答是一个与人工智能密切相关的研究方向,模型不仅需要了解所提出的问题,还需充分了解文本中的关注点,并准确找到答案。
图片问答是一个较为简单的任务,只需根据给出的图像回答相应问题。这项工作简单到听起来好像一个七岁小孩就能完成,但深层模型在无监督情况下无法输出任何合理的结果。
深度学习在自然语言处理中取得了显著成效,但计算和应用问题仍然存在。一旦掌握深度学习,这将永远改变游戏规则。
8月2日(周三),量子位将邀请保险服务领域的AI公司灵智优诺CTO许可,分享NLP在保险智能投顾中的应用和相关技术问题,欢迎报名参与。