引言
承接上一篇的文章,为了能够让大家对自然语言处理做更深入的了解,本篇文章将着重介绍机器学习(ML)和深度学习(DL)在自然处理中的应用,以及在应用中如何从传统机器学习到深度学习的过度。
本文概要
1
自然语言处理为什么会比较难?
2
自然语言处理形态表征(ML vs DL)
3
自然语言处理语义理解(ML vs DL)
4
自然语言处理情感分析(ML vs DL)
5
自然语言处理机器翻译(ML vs DL)
6
下期预告
7
参考文献
正文开始
1
自然语言处理为什么会比较难?
对于刚刚接触到自然语言的人来说可能会认为自然语言处理并没有特别复杂,它不就是单纯的处理文字吗?通过简单的分析就可以大概知道一句话的意思,就和人类一样,如果在某种场景下,有人给你说一句“把那个东西拿过来”,你就肯定会理解他需要的东西。在我们看来这是特别容易的,但是对于机器来说,当他接收到“把那个东西拿过来”这些文本的时候,它就单单的把它们当成0、1来处理,他不会结合场景去“思考”更不会知道“那个东西”是什么。所以说如何能让机器学会依赖现实场景以及上下文之间的知识来进行准确的判断这是相当有难度的。举个例子如下:
你是什么意思?
没什么意思。
没什么意思是什么意思?
一点小意思意思意思。
对于自然语言处理来说,还有一个比较难以处理的问题就是,模棱两可的回答和答案。例如:
“天气冷了,该怎么办?”
“能穿多少穿多少”
“天气热了,该怎么办?”
“能穿多少穿多少”
上面的例子,对于一个中国人来说可以正常的理解意思,但是对于一个外国人来说,虽然字他们都认识,但是拼凑到一块他们就会很困惑。对于人何况是这样,对于一个机器来说就更加复杂了。
最后一个比较关键的困难点就是,如何将人类的自然语言变成机器能够理解的符号,具体又该如何表征如此大量的词汇呢?当前主要分为离散表示和连续分布表示。其中离散表示主要有one-hot编码、词袋模型、N-Gram模型等;连续分布表示主要有NNLM方法[1]、Skip-Gram、CBOX、Glove、Fasttext等。
2
自然语言处理形态学表征(ML vs DL)
对于自然语言形态学主要是使用单词要素对单词的构成进行研究,其中单词要素是具有意义的最小语言单位。单词要素主要有两种类型:词根和词缀(前缀、后缀、中缀和环缀)。词根可以独立存在,词缀不能以自由的形式存在。
传统机器学习(ML)对于这个问题的分析主要是将一个比较长的单词分开,如下:
uninterested -> un interest ed
unfortunately -> un fortunate ly
然后根据认为设计单词要素特征进行分析匹配。
深度学习(DL)的方法则是将每个单词要素当做一个向量进行处理,一个神经元可以将两个向量组成一个更大的单词要素。
其中上图中的Wm和bm表示各个单词要素向量的权重,它们在深度学习中会被作为参数进行训练。
3
自然语言处理语义理解(ML vs DL)
人类自然语言语义的表示主要有三种:分布语义、框架语义、模型语义。智能对话平台中采用的主要是模型语义,它主要从领域(domain)、意图(intent)、词槽(slot)三个方面来表示语义。对于音乐领域,语义结构可以表示如下:
针对此类问题,传统机器学习(ML)需要仔细的设计函数,构建这三层之间的关系,并且没有语言相似及模糊查询的概念。而深度学习(DL)由于每个单词和每个短语都是采用向量的方式进行表征,不需要人为的构建这个三层之间的关系,而是通过学习的方式自动学习更具有代表性的特征表示。
4
自然语言处理情感分析(ML vs DL)
情感分析(SA)又称为倾向性分析和意见挖掘,它是对带有感情色彩的主观性文本进行分析、处理、归纳和推理的过程,其中情感分析还可以细分为情感极性分析、情感程度分析、主客观分析等。
基于机器学习(ML)大多将这类问题转化为一个分类问题来看待,比如对于情感极性的判断,将目标情感分成两类:积极和消极。然后对训练文本进行人工的标注,然后进行有监督的机器学习过程。
基于深度学习(DL)解决此类问题主要是通过循环神经网络(Recurrent NN)[2]来解决,因为对于一个句子来说,不能单单从词来判断一个句子是积极的和消极的,而是要联系到上下文之间的关系。例如:
小明不是一个聪明、机智、勇敢的孩子。
从上面这个句子可以看到词语都是积极的,但是前面有“不是”两个字,所以他是一个消极的句子。
5
自然语言处理机器翻译(ML vs DL)
机器翻译系统(MTS:Machine Translation Systems)就是可以将一种语言翻译成另外一种语言的系统。机器翻译的主要流程就是首先对源语言进行分析得到其结构,再讲分析的结构转换成目标语言结构,而后根据目标语言结构生成目标语言从而达成翻译的目的。
传统的机器学习方法(ML)来实现机器翻译(MT)系统是一个比较复杂的系统。其主要是利用逐句对应好的双语语料以及简单的的统计模型,学会词汇对齐,转换规则及翻译几率从而由生成的可能翻译句中,挑选出最可能的翻译结果。
基于深度学习的方法(DL)主要是采用一种端到端的结构,不需要人为的准备语料和特征抽取,而且该方法网络结构设计简单,不需要进行词语切分、词语对齐等复杂的设计工作。
6
下期预告
下期将继续介绍:
1、什么是词意,以及词意的表示方法。
2、具体介绍词转向量(word2vec)
3、word2vec(Skip-Gram)目标函数的梯度
4、word2vec相关模型的优化
7
参考文献
[1]Kandola E J , Hofmann T , Poggio T , et al. A Neural Probabilistic Language Model[J]. Studies in Fuzziness and Soft Computing, 2006, 194:137-186.
[2]Lipton Z C . A Critical Review of Recurrent Neural Networks for Sequence Learning[J]. Computer Science, 2015.