Natural Language Processing自然语言处理(NLP)

这篇具有很好参考价值的文章主要介绍了Natural Language Processing自然语言处理(NLP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

机器学*/深度学*的相关笔记

前言:

  欢迎来到此处,这里是我边学*边整理的有关机械学*/深度学*的相关笔记。先前我对这方面的知识不是很了解,笔记整理必然有不妥之处,请见谅并斧正。

Natural Language Processing自然语言处理(NLP)

目录:

深度自然语言处理

1.Word Vectors(词向量)
2.Neural Classifiers(神经分类器)
3.神经网络和反向传播
4.Dependency Parsing
5.语言模型(LM)和循环神经网络(RNNs)
6.LSTM
7.机器翻译、Seq2Seq和注意力机制(attention)
8.NLP中的问答系统
9.NLP中的卷积神经网络
10.NLP子词模型
11.基于上下文的表征与NLP预训练模型

NLP与深度学*的未来


深度自然语言处理(NLP)

   人类的语言有什么特别之处?人类语言是一个专门用来表达意义的系统,语言文字是上层抽象表征,NLP与计算机视觉或任何其他机器学*任务都有很大的不同
  语言是混乱的,自然处理的目的是更好地理解语言中的意思及其影响。

    *年来在深度学*中比较有效的方式是基于上下文的词汇表征。它的核心想法是:一个单词的意思是由经常出现在它附*的单词给出的。

\(●当一个单词 \omega 出现在文本中时,它的上下文是出现在其附*的一组单词(在一个固定大小的窗口中)\)

\(●基于海量数据,使用 \omega 的许多上下文来构建 \omega 的表示\)

NLP模型算法就是研究如何让计算机读懂人类语言,即将人的自然语言转换为计算机可以阅读的指令。


1.Word Vectors(词向量)

Word Vectors是利用向量来表示单词, 并可以从中筛选相似度高的不同单词以及其他衍生的比较和选择方法。

使用词向量编码单词, N 维空间足够我们编码语言的所有语义,每一维度都会编码一些我们使用语言传递的信息。

处理词向量之前,必要的公式应该得到演示,如下:
$$P( O | C )=\frac{exp(u_o^\tau v_c)}{\sum_{w\in Vocab}exp(u_w^\tau v_c)}$$

注:上述为在word2vec中,条件概率分布公式,是通过取向量点积并应用来给出的softmax最大功能。
    Word2Vec是一个迭代模型,该模型能够根据文本进行迭代学*,并最终能够对给定上下文的单词的概率对词向量进行编码呈现,而不是计算和存储一些大型数据集(可能是数十亿个句子)的全局信息.

2.Neural Classifiers(神经分类器)

对于分类问题,我们有训练数据集:它由一些样本组成
$${x_i,y_i}^N_{i=1}$$
\(x_i\)输入,例如单词(索引或是向量),句子,文档等等(维度为 \(d\))
\(y_i\)是我们尝试预测的标签(\(C\) 个类别中的一个),例如:
  ⊙类别:感情,命名实体,购买/售出的决定。
  ⊙其他单词。
  ⊙多词序列。

训练数据 \(\{x_i,y_i\}^N_{i=1}\)

 ●softmax分类器:

 在softmax分类器中最常用到交叉熵损失,也是负对数概率形态。
 对于每个训练样本(x,y),我们的目标是最大化正确类\(y\)的概率,或者我们可以最小化该类的负对数概率
$$ -logp(y|x)=-log(\frac{exp(f_y)}{\sum^C_{c=1}exp(f_c)}) $$
使用对数概率将我们的目标函数转换为求和形态,这更容易在推导和应用中使用。

注:交叉熵的损失理解

●交叉熵的概念来源于信息论,衡量两个分布之间的差异
●令真实概率分布为\(p\),我们计算的模型概率分布为\(q\)
●交叉熵为
$$ H(p,q)=-\sum_{c=1}^Cp(c)logq(c) $$
●假设标准答案的概率分布是,在正确类上为1,在其他类别上为0:
$$ p=[0,\cdots,0,1,0,\cdots,0] $$
●因为 \(p\) 是独热向量,所以唯一剩下的项是真实的负对数概率

 ●神经网络分类器

  单独使用线性分类器\(softmax(≈logisti回归)\)并不强大

  如上图所示,$softmax$得到的是线性决策边界    ⊙对于复杂问题来说,它的表达能力是有限的    ⊙有一些分错的点,需要更强的非线性表达能力来区分 **我们需要非线性决策边界来支持更高级的分类需要**

3.神经网络和反向传播

 ●实体命名识别(NER)
  跟踪文档中提到的特定实体
  对于问题回答,答案通常是命名实体
  许多需要的信息实际上是命名实体之间的关联
  同样的技术可以扩展到其他 slot-filling 槽填充分类

  通常后面是命名实体链接/规范化到知识库

 ●句子中的命名实体识别
  我们通过在上下文中对单词进行分类,然后将实体提取为单词子序列来预测实体。

 ●NER难点

很难计算出实体的边界
很难知道某物是否是一个实体
很难知道未知/新奇实体的类别
实体类是模糊的,依赖于上下文
权重矩阵的梯度导数:

$$ s=u^Th $$ $$ h=f(z) $$ $$ z=Wx+b $$

计算$\frac{\delta s}{\delta W} $

使用链式法则

$$ \frac{\delta s}{\delta W}=\frac{\delta s}{\delta h} \frac{\delta h}{\delta z} \frac{\delta z}{\delta W} $$

反向传播的梯度求导:

Question:应该使用可用的“预训练”词向量吗?

answer:

几乎总是「应该用」
他们接受了大量的数据训练,所以他们会知道训练数据中没有的单词,也会知道更多关于训练数据中的单词
拥有上亿的数据语料吗?那可以随机初始化开始训练
计算图与反向传播:

我们把神经网络方程表示成一个图


4.Dependency Parsing

成分与依赖:

  句子是使用逐步嵌套的单元构建的
  短语结构将单词组织成嵌套的成分

  起步单元: 单词被赋予一个类别
  单词组合成不同类型的词语
  短语可以递归地组合成更大地短语

  单词的排列可以组成许多意义的句子
  但是同时,单个句子所表达的含义也会有所不同
  面对复杂结构的句子,我们需要考虑指数级的可能结构,这个序列被称为卡特兰数
$$ C_n=\frac{(2n)!}{(n+1)!n!} $$

依赖语法与树库:

Dependency Structure有两种表现形式
⊙直接在句子上标出依存关系箭头及语法关系
⊙将其做成树状机构(Dependency Tree Graph)

箭头通常标记(type)为语法关系的名称(主题、介词对象、apposition等)
箭头连接头部(head)(调速器,上级,regent)和一个依赖(修饰词,下级,下属)
    A->的事情
通常,依赖关系形成一棵树(单头,无环,连接图)

5.语言模型(LM)和循环神经网络(RNNs)

语言模型:

语言建模的任务是预测下一个单词是什么
更正式的说法是:给定一个单词序列$ x{(1)},x,\dots,x^{(t)} \(,计算下一个单词\) x^{(t+1)} \(的概率分布: **\)$ P(x{(t+1)}|x,\dots,x^{(1)}) $$**
  其中,\(x^{(t+1)}\) 可以是词表中的任意单词 $ V={w_1,\dots,w_{|V|} } $
  这样做的系统被称为 Language Model 语言模型

RNNs:

核心想法: 重复使用相同的权重矩阵 \(W\)

RNN优点:
  可以处理任意长度的输入
  模型大小不会随着输入的增加而增加
  在每个时间步上应用相同的权重,因此在处理输入时具有对称性
RNN缺点:
  循环串行计算速度慢
  在实践中,很难从许多步骤前返回信息

训练模型:

获取一个较大的文本语料库,该语料库是一个单词序列
输入RNN-LN;计算 每个步骤\(t\) 的输出分布

即预测到目前为止给定的每个单词的概率分布

步骤\(t\)上的损失函数为预测概率分布 $ \hat{y}^{(t)} \(** 与真实下一个单词 **\) y{(t)}(x的独热向量) \(** 之间的**交叉熵** **\)$ J{(t)}(\theta)=CE(y,\hat{y}^{(t)})=-\sum_{w\in V}y^{(t)}w log \hat{y}^{(t)}w = -log \hat{y}^{(t)}{x{t+1}} $$
将其平均,得到整个训练集的总体损失
$$ J(\theta)=\frac{1}{T} \sum_{t=1}^{T} J^{(t)}(\theta) = \frac{1}{T} \sum_{t=1}^{T} -log \hat{y}^{(t)}{x{t+1}} $$


6.LSTM

长短时记忆(LSTM):

Hochreiter和Schmidhuber在1997年提出了一种RNN,用于解决梯度消失问题。
在第 \(t\) 步,有一个隐藏状态 \(h^{(t)}\) 和一个单元状态 \(c^{(t)}\)
  都是长度为n的向量
  单元储存长期信息
  LSTM可以从单元中擦除、写入读取信息
信息被 擦除/写入/读取 的选择由三个对应的门控制
  门也是长度为 \(n\) 的向量
  在每个时间步长上,门的每个元素可以打开(1)、关闭(0)或介于两者之间
  门是动态的: 它们的值是基于当前上下文计算的


7.机器翻译、Seq2Seq和注意力机制(attention)

这里我们重点关注神经网路机器翻译

神经机器翻译(NMT)是利用单个神经网络进行机器翻译的一种方法
神经网络架构称为 sequence-to-sequence (又名seq2seq),它包含两个RNNs

sequence-to-sequence 模型是条件语言模型的一个例子

注意力机制:

Sequence-to-sequence:瓶颈问题

注意力为瓶颈问题提供了一个解决方案

核心理念: 在解码器的每一步,使用与编码器的直接连接来专注于源序列的特点部分

首先我们将通过图表展示,然后我们将用方程

注意力最后的性能:
  注意力显著提高了NMT性能

    这是非常有用的,让解码器专注于某些部分的源语句

  注意力解决瓶颈问题

    注意力允许解码器直接查看源语句;绕过瓶颈

  注意力帮助消失梯度问题

    提供了通往遥远状态的捷径

  注意力提供了一些可解释性

    通过检查注意力的分布,我们可以看到解码器在关注什么
    我们可以免费得到(软)对齐
    网络只是自主学*了对齐

注意力是一种普遍的深度学*技巧


8.NLP中的问答系统

我们今天要讨论的不是基于结构化储存的问答。

而是在一段或一份文件中找到答案

这个问题通常被称为阅读理解
这就是我们今天要关注的

复杂的系统,但他们在事实问题上做得相当好

非常复杂的多模块多组件的系统:

首先对问题进行解析,使用手写的语义规范化规则,将其转化为更好的语义形式
在通过问题类型分类器,找出问题在寻找的语义类型
信息检索系统找到可能包含答案的段落,排序后进行选择
NER识别候选实体再进行判断

这样的QA系统在特定领域很有效:Factoid Question Answering 针对实体的问答

BiDAF:

多年来,BiDAF architecture有许多变体和改进,但其核心思想是 the Attention Flow layer
思路: attention 应该双向流动——从上下文到问题,从问题到上下文


9.NLP中的卷积神经网络

从RNN到CNN:

循环神经网络不能捕获没有前缀上下文的短语
经常在最终向量中捕获的信息太多来自于最后的一些词汇内容
例如: \(softmax\) 通常只在最后一步计算

那么,什么是卷积?
 ●一维离散卷积一般为: $ (f*g)[n]= \sum\limits_{m=-M}^{M} f[n-m]g[m] $
 ●卷积通常地用于从图像中提取特征

    模型位置不变的识别

●二维示例:

    黄色和红色数字显示过滤器 (=内核) 权重
    绿色显示输入
    粉色显示输出

对比RNN与CNN:


10.NLP子词模型


11.基于上下文的表征与NLP预训练模型

预训练的词向量:

POS和NER两种表征体系
11个词窗,100个隐层神经元,在12w词上训练7周

简单且常见的解决方案:

训练时: 词汇表$ { word occurring,say, ≥5\ times } \ \cup { } \(   将所有罕见的词 (数据集中出现次数小于5) 都映射为\)\(,为其训练一个词向量  **运行时:** 使用\)$代替词汇表之外的词OOV

问题:
 没有办法区分不同 UNK words,无论是身份还是意义

transformer:

BERT

BERT 使用 mask 的方式进行整个上下文的预测,使用了双向的上下文信息


尚未完结--------

NLP与深度学*的未来

为何*年来深度学*的如此成功?

  扩展能力(模型和数据大小) 是深度学**些年来成功的很大一部分原因

同时,过去受到计算资源和数据资源的规模限制,深度学*一直处于尚未成熟发展的地位

无标签和无监督学*的不断发展和进步

注:神经网络在NLP深度学*中的广泛发展已经成为了这以领域不可或缺的一部分

计算机视觉可视化的推动与多任务处理方式的改进

低资源支撑的场景:

不需要很多计算能力的模型(这对移动设备尤为重要)
低资源语言
低数据环境(ML中的元学*越来受欢迎)

NLP正逐渐对社会产生巨大影响力

Used by Han


2023文章来源地址https://www.toymoban.com/news/detail-710007.html

到了这里,关于Natural Language Processing自然语言处理(NLP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能】NLP自然语言处理领域发展史 | The History of Development in Natural Language Processing (NLP) Field

    自然语言处理(Natural Language Processing,NLP)是人工智能(AI)领域的重要分支,旨在让计算机能够理解、处理和生成自然语言,如英语、汉语等。本文将介绍NLP领域的发展历史和里程碑事件。

    2024年02月07日
    浏览(30)
  • 自然语言处理技术(Natural Language Processing)知识点

    对自然语言处理相关的知识点进行总结。 自然语言处理(NLP)是一种人工智能技术,用于处理和理解自然语言文本。NLP 的目标是使计算机能够像人类一样理解、处理或生成自然语言,以便能够完成各种任务,例如文本分类、情感分析、机器翻译、问答系统等。 NLP 的实现通常

    2024年04月25日
    浏览(29)
  • Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models笔记 Week02

    Course Certificate 本文是学习这门课 Natural Language Processing with Attention Models的学习笔记,如有侵权,请联系删除。 Compare RNNs and other sequential models to the more modern Transformer architecture, then create a tool that generates text summaries. Learning Objectives Describe the three basic types of attention Name the two ty

    2024年04月08日
    浏览(28)
  • Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models笔记 Week01

    Course Certificate 本文是学习这门课 Natural Language Processing with Attention Models的学习笔记,如有侵权,请联系删除。 Discover some of the shortcomings of a traditional seq2seq model and how to solve for them by adding an attention mechanism, then build a Neural Machine Translation model with Attention that translates English sente

    2024年04月16日
    浏览(40)
  • Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models笔记 Week03(完结)

    Introduction https://www.coursera.org/specializations/natural-language-processing Certificate Course Certificate 本文是学习这门课 Natural Language Processing with Attention Models的学习笔记,如有侵权,请联系删除。 Explore transfer learning with state-of-the-art models like T5 and BERT, then build a model that can answer questions. Le

    2024年04月13日
    浏览(29)
  • 自然语言处理NLP:文本预处理Text Pre-Processing

    大家好,自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向,其研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。本文将介绍文本预处理的本质、原理、应用等内容,助力自然语言处理和模型的生成使用。 文本预处理是将原始文本数

    2024年04月26日
    浏览(20)
  • 论文阅读【自然语言处理-预训练模型2】BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation

    BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension BART: 用于自然语言生成、翻译和理解的去噪序列对序列预训练 【机构】:Facebook AI 【作者】:Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, Luke Zettlemoye

    2024年02月03日
    浏览(27)
  • NLP/Natural Language Processing

    自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向,也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言,即将人的自然语言转换为计算机可以阅读的指令。 它研究能实现人与计算机之间用自然语言进行有效通

    2024年02月03日
    浏览(23)
  • Essential Steps in Natural Language Processing (NLP)

    💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互

    2024年02月08日
    浏览(31)
  • 【自然语言处理】自然语言处理 --- NLP入门指南

    NLP的全称是 Natuarl Language Processing ,中文意思是自然语言处理,是人工智能领域的一个重要方向 自然语言处理(NLP)的一个最伟大的方面是跨越多个领域的计算研究,从人工智能到计算语言学的多个计算研究领域都在研究计算机与人类语言之间的相互作用。它主要关注计算机

    2024年02月03日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包