人工智能课程笔记:自然语言处理与循环神经网络

1.语言处理技术

1.1.自然语言处理概述

  • 地位:计算机科学领域与人工智能领域的一个重要方向。同时也是机器学习三大研究热点方向之一。
  • 研究内容:人与计算机之间使用自然语言进行有效通信的各种理论和方法。
  • 多学科交叉:自然语言处理是一门融合了语言学、计算机科学和数学于一体的科学。
  • 发展过程:自然语言处理技术经历了基于规则的方法、基于统计学习的方法和基于深度学习的方法三个阶段。
  • 四个层次:自然语言处理技术由浅入深的四个层次分别是形式、语义、推理和语用。目前正处于由语义向推理的发展阶段。

1.2.自然语言处理的研究内容

自然语言处理的研究内容可以分为词法学、句法学、语义学、语用学等。

词法学:研究词的词素(构成单词的最小单位)构成和词性等。

  • 形态分析:形态分析是指对单词的内部结构进行分析,包括单词的词干、词缀、屈折变化等。例如,对于单词“running”,形态分析会将其分解为“run”和“-ing”,并且可以识别出其时态和语态等形态信息。形态分析又可以分为词干提取和词性还原等方面。
    • 词干提取:词干提取是指将单词转换为其基本形式,即去掉单词的词缀和屈折变化,得到单词的词干。
    • 词性还原:词形还原是指将单词转换为其原始词形,即还原单词的词性和词干。
  • 中文分词:中文分词是指将中文文本切分成一个一个的词语。由于中文中没有像空格这样的明显分隔符号,因此中文分词是中文自然语言处理的重要基础。中文分词涉及到词汇的规则、词汇的频率、上下文语境等多个因素。中文分词受到分词规范和歧义切分等方面的制约。
  • 未登录词识别:未登录词是指未出现在词典中但在文本中出现的单词。未登录词识别是指识别这些未知单词,并将其转化为已知的单词或词根。
  • 词性标注:词性标注是指为文本中的每个单词确定其词性。词性包括名词、动词、形容词、副词等。词性标注的研究内容包括词性标注算法、词性标注的精度和效率等。

句法学:研究句子结构成分之间的相互关系和组成句子序列的规则。

语义学:研究如何从句子中词的意义,以及这些词在该语句的句法结构中的作用来推导出该语句的意义。语义分析又可以分为词汇级的语义分析和句子级的语义分析。

  • 词汇级的语义分析:指的是如何理解某一个词的含义,包含词义消歧和单词表示两个方面。
    • 词义消歧:如何自动获取某个单词存在的多种含义;以及如何确定一个具有多种含义的单词在具体语境中的意思。常用的方法包括基于词典(词义标注语料库)的方法和基于机器学习的方法。
    • 词表示:如何表示并学习一个词的含义,以便计算机能够有效计算两个单词的相似度。主流的词表示方法是通过词嵌入(词向量)。基本思路是:通过训练将某种语言中的每一个词映射成一个固定维数的向量,将所有这些向量放在一起形成一个词向量空间,而每一向量则可视为该空间中的一个点,引入“距离”概念,则可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性。
  • 句子级的语义分析: 试图根据句子的句法结构和句中词的词义等信息,推导出能够反映这个句子意义的某种形式化表示。具体内容包括语义角色标注和句子嵌入表达等。
    • 语义角色标注(SLR):一种浅层语义分析方法,任务是找出句子中谓词的相应语义角色成分,包括核心语义角色(如施事者、 受事者等)和附属语义角色(如地点、时间、方式、原因等)。
    • 句子嵌入表达:主要研究如何有效地从词嵌入通过不同方式的组合得到句子的向量表示,常用方法有词袋模型、卷积神经网络、循环神经网络、BERT等。

语用学:研究在不同上下文中的语句的应用,以及上下文对语句理解所产生的影响。也就是说,不同的上下文中,同一个句子的含义也不相同,需要使语用学分析。

1.3.自然语言处理的应用

文本分类与聚类

  • 文本分类:根据给定文档的内容或主题,自动分配预先定义的类别标签。
  • 文本聚类:根据文档之间的内容或主题相似度,将文档集合划分成若干个子集,每个子集内部的文档相似度较高,而子集之间的相似度较低。

情感分析

  • 根据文本所表达的含义和情感信息将文本划分成褒义、贬义或多种类型,是对文本作者倾向性和观点、态度的划分,有时也称倾向性分析。
  • 按粒度可分为词汇级、句子级和篇章级的情感分析,核心任务主要包含观点性及倾向性识别、观点要素抽取等任务。

信息抽取:信息抽取是指从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。其主要研究内容包括实体识别、实体消歧、关系抽取、事件抽取等。

  • 实体识别:识别文本中具有特定意义的实体,如人名、机构名、地名等专有名词和有意义的时间等,是信息检索、问答系统等技术的基础任务。
  • 实体消歧:在非结构化文档中,由于书写风格和上下文的需要,同一个命名实体实体可能包含多种形式的表达(多对一),同时文档中的一个名词可能从字面意思上对应多种命名实体(一对多),因此需要消除歧义。
  • 关系抽取:关系抽取指检测和识别文本中实体之间的语义关系。关系抽取的输出通常是一个三元组(实体1,关系类别,实体2),表示实体1 和实体2之间存在特定类别的语义关系。
  • 事件抽取:事件抽取指的是从非结构化文本中抽取事件信息,主要包括时间、地点、事件元素角色等,并将其以结构化形式呈现出来的任务。主要任务包括触发词和事件元素的提取等。

自动文摘

  • 定义:利用计算机按照某类应用自动地将文本(或文本集合)转换生成简短摘要的一种信息压缩技术。
  • 对摘要的要求:信息量足、覆盖面广、冗余度低和可读性高。
  • 分类:可以分为抽取式摘要和生成式摘要两种。
    • 抽取式摘要:从原文中抽取句子并进行排序组合成摘要;
    • 生成式摘要:改写或重新组织原文内容形成最终文摘。

信息推荐:根据用户的习惯、偏好或兴趣,从不断到来的大规模信息中识别满足用户兴趣的信息的过程。

自动问答:讨论如何从大规模真实文本中对指定的提问找出正确回答的技术,是集知识表示、信息检索、自然语言处理和智能推理等技术于一身的搜索引擎、Web形式的问答网站、聊天机器人等。

机器翻译(MT):使用计算机将一种语言翻译成另一种语言的计算机技术。

2.词向量学习

2.1.与词向量有关的基本概念

词向量的产生

  • 传统的词表示方法:深度学习应用于自然语言处理之前,传统的词表达通常采用one-hot方式表达。
  • 词向量表示方法:词向量可以将one-hot编码转化为低维度的连续值,也就是稠密向量。同时,在词向量中,语义相近的词距离接近,语法相近的词也距离接近。

词嵌入

  • 词嵌入将单词映射到一个低维向量空间中从而获得词向量,使得语义相近的单词在空间中更加接近,从而方便计算机进行处理和分析。
  • 这里的接近可以通过欧氏距离或者余弦相似度进行衡量。

语言模型:语言模型可以用来计算句子的概率,并且可以用来评估句子是否通顺、自然,从而在自然语言处理中有广泛的应用。

  • n-gram语言模型:n-gram语言模型是自然语言处理中最简单和最常用的一种语言模型。它假设一个单词的出现只与前面n-1个单词有关,即一个句子可以表示为一个长度为n的单词序列。
  • skip-gram语言模型:skip-gram是一种基于神经网络的语言模型,用于学习高质量的词向量表示。与传统的n-gram语言模型不同,skip-gram语言模型关注的是单词的上下文信息,即给定中心词,预测它周围的词。
  • CBOW语言模型:以一个词的上下文作为输入,来预测这个词本身。

2.2.CNN文本分类模型

CNN适用于文本分类的原理:利用word2vec可以实现词向量的表示,则句子表示为矩阵,两个句子的二维矩阵可以作为CNN的输入,类似于用CNN做图像识别一样,用卷积层和池化层来进行特征提取和分类,从而得到文本分类的结果。

CNN文本分类模型与图像分类模型的区别:在机器视觉中,卷积核在图像的局部区域上滑动,但在NLP中,通常使用的过滤器会滑过整个矩阵(单词)。因此,过滤器的“宽度”通常与输入矩阵的宽度相同。

3.循环神经网络

3.1.基础的循环神经网络RNN

传统前馈神经网络的不足

  • 结构上:层与层之间有连接,但是每一层的节点之间是没有连接的。
  • 输入输出维度上:输入输出维度都是固定的,无法处理变长的序列数据。
  • 节点排列上:无法体现出语言中的单词顺序。

循环神经网络和递归神经网络的区别

  • 循环神经网络:是时间上的展开,处理的是序列结构信息。
  • 递归神经网络:是空间上的展开,处理的是树状结构的信息。

循环神经网络(RNN)概述

  • 通过使用自反馈的神经元(隐藏层),可以处理任意长度的序列。
  • 循环神经网络中任意一个时刻的隐藏层状态(以及输出)不仅与当前时刻的输入有关,还与上一个时刻的隐藏层状态有关。

循环神经网络存在的问题:循环神经网络存在短期记忆的问题,这是由于梯度消失引起的,在其他类型的神经网络架构中也很常见(梯度消失是反向传播的性质导致的)。具体体现上,RNN在处理多个步骤后难以保留之前步骤中的信息。

备注:RNN中的梯度消失与CNN中的梯度消失不同,这里的梯度消失指的是在时间轴上,梯度被近距离的梯度主导。

3.2.长短时记忆网络LSTM

长短时记忆神经网络LSTM概述

  • LSTM是循环神经网络RNN的一个变体,能够有效地解决长期依赖问题。
  • LSTM的关键是引入了记忆单元,允许网络可以学习何时遗忘历史信息,以及何时用新的信息更新记忆单元。在任意时刻,记忆单元记录了到当前为止所有的历史信息。
  • LSTM的记忆单元受到三个门的控制,分别是输入门、输出门和遗忘门,三个门元素的取值都在[0,1]之间。

LSTM记忆细胞的三个门

  • 遗忘门:遗忘门决定要从细胞状态中丢弃什么信息。它查看当前隐藏层状态和当前输入,然后为上一个状态中的每一个数字输出一个0-1之间的值:0表示彻底删除,1表示完全保留。
  • 输入门:输入门决定在细胞状态中存储什么信息。首先,输入门的Sigmoid层决定了将更新哪些值,之后tanh层创建一个候选向量,最后把这个向量按照Sigmoid层的结果加入到当前状态中。
  • 输出门:输出门决定要基于当前的细胞状态输出什么信息。首先,输出门通过一个Sigmoid层决定输出细胞状态的哪些部分,之后将细胞状态通过tanh层由此进行输出。

3.3.门限循环单元GRU

门限循环单元GRU概述

  • GRU的结构比LSTM更加简单,只有两个门:更新门、重置门。在LSTM中,更新门和输入门是互补的,因此存在冗余;GRU中将输入门和遗忘门合并成一个新的门,同时合并了记忆单元和隐藏神经元。
  • GRU中没有单独的细胞状态,由更新门直接决定保留或放弃,同时直接输出隐藏层状态。
  • 优势:相较于LSTM而言,GRU的张量操作更少,所以速度也更快。

3.4.堆叠循环神经网络和双向循环神经网络

堆叠循环神经网络:堆叠循环神经网络是一种深度循环神经网络,它由多个循环神经网络层组成,每个层都接收来自上一层的输出作为输入。与传统的循环神经网络相比,堆叠循环神经网络具有更强的建模能力和更高的灵活性,能够处理更加复杂的序列数据。

双向循环神经网络

  • 双向循环神经网络是一种循环神经网络的变种,它能够同时利用前向和后向的上下文信息来进行序列建模和预测。
  • 双向循环神经网络由两个循环神经网络组成,一个是前向循环神经网络,另一个是后向循环神经网络。前向循环神经网络从序列的第一个元素开始,,按照时间顺序依次处理输入序列,得到一个隐藏状态序列。后向循环神经网络从序列的最后一个元素开始,按照时间的逆序依次处理输入序列,也得到一个隐藏状态序列。最后,将前向和后向的隐藏状态连接起来,就得到了双向循环神经网络的输出序列,该序列可以更好地表达输入序列的上下文信息。

4.循环神经网络的应用

序列到类别:输入为序列,输出为类别。例如文本分类中,输入数据为单词的序列,输出为这一段文本的类别。

同步序列到系列:每个时刻的输入都需要对应一个输出,输入序列和输出序列的长度完全相同。

异步序列到序列:输入和输出并不需要严格的对应关系。比如进行机器翻译时,输入和输出序列并不需要保持相同的长度。此外,自动摘要问题也不需要输入和输出长度的对应。

Seq2Seq问题

  • 基本概念:Seq2Seq问题即对应一个编码器-解码器框架,也就是根据一个输入序列x,生成一个输出序列y。包括编码和解码两个部分。
    • 编码:将输入序列转化为一个固定长度的向量;
    • 解码:将之前生成的固定长度的向量重新转化为输出序列。
  • 存在的问题
    • 定长的中间向量限制了模型的性能;
    • 输入序列的不同部分对输出序列的重要性不同。

猜你喜欢

转载自blog.csdn.net/hanmo22357/article/details/131040659