3 种自然语言处理(NLP)技术:RNN、Transformers、BERT

news2024/9/20 11:54:24

自然语言处理 (NLP) 是人工智能的一个领域,旨在使机器能够理解文本数据。NLP 研究由来已久,但直到最近,随着大数据和更高计算处理能力的引入,它才变得更加突出。

随着 NLP 领域的规模越来越大,许多研究人员都试图提高机器理解文本数据的能力。经过大量的进步,许多技术在 NLP 领域被提出并应用。

本文将比较 NLP 领域中处理文本数据的各种技术。本文将重点讨论 RNN、Transformers 和 BERT,因为它们是研究中经常使用的技术。让我们开始吧。

图片

< NLP - RNN、Tranformers、BERT>

循环神经网络

循环神经网络(RNN) 于 1980 年开发,但最近才在 NLP 领域引起关注。RNN 是神经网络家族中的一种特殊类型,用于处理顺序数据或不能相互独立的数据。顺序数据示例包括时间序列、音频或文本句子数据,基本上是任何具有有意义顺序的数据。

RNN 与常规前馈神经网络不同,因为它们处理信息的方式不同。在常规前馈神经网络中,信息是在层之后处理的。然而,RNN 使用循环周期来处理信息输入。为了理解差异,让我们看下面的图片。

图片

如您所见,RNN 模型在信息处理过程中实现了循环。RNN 在处理此信息时会考虑当前和以前的数据输入。这就是为什么该模型适用于任何类型的顺序数据。

如果我们以文本数据为例,假设我们有句子“我早上 7 点起床”,并且我们将单词作为输入。在前馈神经网络中,当我们到达单词“起床”时,模型已经忘记了单词“我”、“起床”和“起床”。但是,RNN 会使用每个单词的每个输出并将它们循环回来,这样模型就不会忘记。

在 NLP 领域,RNN 经常用于许多文本应用,例如文本分类和生成。它经常用于词级应用,例如词性标注、下一个词生成等。

深入研究文本数据上的 RNN,RNN 有很多种类型。例如,下图是多对多类型。

图片

看上图,我们可以看到每个步骤(RNN 中的时间步)的输出都是一步一步处理的,并且每次迭代总是考虑先前的信息。

另一种在许多 NLP 应用中使用的 RNN 类型是编码器-解码器类型(Sequence-to-Sequence)。其结构如下图所示。

图片

此结构引入了模型中使用的两个部分。第一部分称为编码器,它接收数据序列并基于该序列创建新的表示。该表示将用于模型的第二部分,即解码器。使用此结构,输入和输出长度不一定相等。示例用例是语言翻译,其输入和输出之间的长度通常不相同。

使用 RNN 处理自然语言数据有各种好处,包括:

  1. RNN 可用于处理不受长度限制的文本输入。
  2. 该模型在所有时间步骤中共享相同的权重,这使得神经网络在每个步骤中使用相同的参数。
  3. 由于具有过去输入的记忆,RNN 适用于任何序列数据。

但是,它也存在一些缺点:

  1. RNN 容易受到梯度消失和梯度爆炸的影响。梯度消失是指梯度结果接近于零(消失),导致网络权重仅更新很小的量,或者梯度结果非常显著(爆炸),以至于赋予网络不切实际的巨大重要性。
  2. 由于模型的序列特性,训练时间较长。
  3. 短期记忆意味着模型训练的时间越长,就会开始忘记。RNN 有一个扩展,称为LSTM,可以缓解这个问题。

Transformers

Transformers 是一种 NLP 模型架构,旨在解决 RNN 中以前遇到的序列到序列任务。如上所述,RNN 在短期记忆方面存在问题。输入越长,模型在遗忘信息方面就越突出。这就是注意力机制可以帮助解决问题的地方。

Bahdanau等人(2014)在论文中引入了注意力机制,用于解决长输入问题,尤其是编码器-解码器类型的 RNN。我不会详细解释注意力机制。基本上,它是一个层,允许模型在进行输出预测的同时专注于模型输入的关键部分。例如,如果任务是翻译,那么输入单词“Clock”将与印尼语中的“Jam”高度相关。

transformers 模型由Vaswani等人(2017)提出。该架构受到编码器-解码器 RNN 的启发,并考虑到注意力机制而构建,并且不按顺序处理数据。整个 transformers 模型的结构如下图所示。

在这里插入图片描述

Transformers 架构(Vaswani等人,2017 年)

在上述结构中,Transformers 使用位置编码将数据向量序列编码为词向量,同时使用解码将数据转换为原始形式。在注意力机制的帮助下,编码可以根据输入赋予重要性。

与其他模型相比,Transformer 具有一些优势,包括:

  • 并行化过程增加了训练和推理速度。
  • 能够处理更长的输入,从而更好地理解上下文

Transformers 模型仍然存在一些缺点:

  • 高计算处理和需求。
  • 注意力机制可能需要对文本进行拆分,因为它可以处理的长度有限制。
  • 如果分割错误,上下文可能会丢失。

BERT

BERT,即 Transformers 的双向编码器表示,是由Devlin等人(2019)开发的模型,涉及两个步骤(预训练和微调)来创建模型。如果我们比较一下,BERT 是 Transformers 编码器的堆栈(BERT Base 有 12 层,而 BERT Large 有 24 层)。

BERT的整体模型发展如下图所示。

图片

BERT 总体流程(Devlin等人(2019)

预训练任务同时启动模型的训练,完成后,模型可以针对各种下游任务(问答、分类等)进行微调。

BERT 的特别之处在于它是第一个在文本数据上进行预训练的无监督双向语言模型。BERT 之前已在整个维基百科和书籍语料库上进行过预训练,包含超过 30 亿个单词。

BERT 被认为是双向的,因为它不是按顺序读取数据输入(从左到右或反之亦然),但 Transformer 编码器同时读取整个序列。

与按顺序(从左到右或从右到左)读取文本输入的定向模型不同,Transformer 编码器会同时读取整个单词序列。这就是为什么该模型被认为是双向的,并允许模型理解输入数据的整体上下文。

为了实现双向,BERT 使用了两种技术:

  • 掩码语言模型 (MLM) — 单词掩码技术。该技术将掩码 15% 的输入词,并尝试根据未掩码的单词预测这个被掩码的单词。
  • 下一句预测 (NSP) — BERT 尝试学习句子之间的关系。该模型以句子对作为数据输入,并尝试预测后续句子是否存在于原始文档中。

在 NLP 领域使用 BERT 有几个优点,包括:

  1. BERT易于用于预先训练的各种NLP下游任务。
  2. 双向使得 BERT 更好地理解文本上下文。
  3. 这是一个很受欢迎的模式,得到了社区的大力支持

尽管如此,它仍然存在一些缺点,包括:

  1. 一些下游任务微调需要很高的计算能力和很长的训练时间。
  2. BERT 模型可能会导致模型很大,需要更大的存储空间。
  3. 它更适合用于复杂任务,因为简单任务的性能与使用更简单的模型没有太大差别。

结论

NLP 近来变得越来越突出,许多研究都集中在改进应用程序上。在本文中,我们讨论了三种经常使用的 NLP 技术:

  1. 循环神经网络 (RNN)
  2. Transformers
  3. BERT

每种技术都有其优点和缺点,但总的来说,我们可以看到模型正在以更好的方式发展。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型算法二次开发,基本思路详细拆解

前言 随着众多大模型相继问世&#xff0c;大模型二次开发、大模型微调成为一项热门技术。本文为大家总结了大模型二次开发的基本方法与思路&#xff0c;希望对大家有所帮助。 转载自丨吃果冻不吐果冻皮 开发方法分类 1、领域知识注入&#xff1a;Continue PreTraining(增量…

LeetCode_sql_day28(1767.寻找没有被执行的任务对)

描述&#xff1a;1767.寻找没有被执行的任务对 表&#xff1a;Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…

简单题88. 合并两个有序数组 (Python)20240920

问题描述&#xff1a; python&#xff1a; class Solution(object):def merge(self, nums1, m, nums2, n):""":type nums1: List[int]:type m: int:type nums2: List[int]:type n: int:rtype: None Do not return anything, modify nums1 in-place instead.&qu…

GSAP动画库:让网页动起来的艺术

GSAP动画库&#xff1a;让网页动起来的艺术 前言 在现代网页设计中&#xff0c;动画效果不仅能够提升用户体验&#xff0c;还能增强视觉吸引力。 GSAP&#xff08;GreenSock Animation Platform&#xff09;是业界领先的动画库&#xff0c;它提供了强大的工具和功能&#xff…

Vue3快熟

Vue3快速上手 1. Vue3简介1.1. 【性能的提升】1.2.【 源码的升级】1.3. 【拥抱TypeScript】1.4. 【新的特性】 2. 创建Vue3工程2.1. 【基于 vue-cli 创建】2.2. 【基于 vite 创建】(推荐)2.3. 【一个简单的效果】 3. Vue3核心语法3.1. 【OptionsAPI 与 CompositionAPI】Options…

医学数据分析实训 项目十 基于深度残差神经网络的皮肤癌检测

文章目录 综合实践三 基于深度残差神经网络的皮肤癌检测实现步骤1&#xff1a;图像数据预处理实现步骤2&#xff1a;模型构建实现步骤3&#xff1a;性能度量提交要求 1 基于深度残差神经网络的皮肤癌检测代码2 结果分析 综合实践三 基于深度残差神经网络的皮肤癌检测 皮肤镜图…

Games101学习 - 着色

本文主要讲述Games101中的着色部分。 文中将使用UE的UTexture2D接口&#xff0c;若不了解可以看这篇&#xff1a; https://blog.csdn.net/grayrail/article/details/142165442 1.面积比计算三角形坐标 通过三角形面积比可以得到三角形的坐标alpha、beta、gamma从而进行插值&a…

MATLAB画图,曲线图如何绘制美观,曲线图10种美化方法

曲线图是比较常用的图形&#xff0c;本文以二维曲线图为例&#xff0c;展示曲线的图的不同美化方法&#xff0c;如图1所示&#xff0c;是一个标准的曲线图&#xff0c;横坐标为x&#xff0c;纵坐标为y, 图1 标准曲线图 调整方法1 首先可以通过改变线的颜色&#xff0c;不同…

react + antDesign封装图片预览组件(支持多张图片)

需求场景&#xff1a;最近在开发后台系统时经常遇到图片预览问题&#xff0c;如果一个一个的引用antDesign的图片预览组件就有点繁琐了&#xff0c;于是在antDesign图片预览组件的基础上二次封装了一下&#xff0c;避免重复无用代码的出现 效果 公共预览组件代码 import React…

Python安装不再难!全平台保姆级教程带你轻松搞定!

Python介绍 Python是一种功能强大且灵活的编程语言&#xff0c;被广泛应用于各个领域。以下是Python在不同应用领域的一些常见用途&#xff1a; 网络开发 Python提供了丰富的库和框架&#xff0c;使其成为网络开发的理想选择。诸如Django、Flask和Pyramid等框架可以帮助开发人员…

从 HDFS 迁移到 MinIO 企业对象存储

云原生、面向 Kubernetes 、基于微服务的架构推动了对 MinIO 等网络存储的需求。在云原生环境中&#xff0c;对象存储的优势很多 - 它允许独立于存储硬件对计算硬件进行弹性扩展。它使应用程序无状态&#xff0c;因为状态是通过网络存储的&#xff0c;并且通过降低操作复杂性&a…

Vue使用组件需要加前缀而React使用组件库的区别

Vue 写在模版中的内容最终会被render&#xff0c;render时会区分标签与组件。 通过-短横线命名法 或 大驼峰命名法使用组件 <a-button><a-button/> <MyComponent></MyComponent>但是-短横线命名法容易引起歧义&#xff0c;比如组件名是一个单词(无法…

learn C++ NO.17——继承

什么是继承&#xff1f; 用冒号 : 后跟基类名称来声明一个类是从某个基类继承而来的。继承方式可以是 public、protected 或 private&#xff0c;这决定了基类成员在子类中的访问权限。 下面通过代码简单进行一下演示. 派生类Student即子类&#xff0c;而基类Person是它的父…

浏览器恢复历史记录应该怎么操作?简单几步轻松搞定

浏览器的历史记录是用户上网过程中产生的所有浏览活动的记录。这些历史记录对于查找之前访问过的网站、恢复误关闭的页面&#xff0c;以及跟踪浏览活动有很大的帮助。当然有时候我们可能会不小心将浏览器历史记录给删除了&#xff0c;那浏览器清除的历史记录可以恢复吗&#xf…

Linux 信号的产生

1. 概念 在Linux系统中&#xff0c;信号是一种进程间通信的机制&#xff0c;它允许操作系统或其他进程向特定进程发送异步通知。我们可以通过命令 kill -l来查看信号的种类&#xff1a; Linux系统中的信号可以分为两大类&#xff1a;传统信号和实时信号。从上图可以看出它们分…

代码随想录算法训练营第40天 动态规划part07| 题目: 198.打家劫舍 、 213.打家劫舍II 、 337.打家劫舍III

代码随想录算法训练营第40天 动态规划part07| 题目&#xff1a; 198.打家劫舍 、 213.打家劫舍II 、37.打家劫舍III 文章来源&#xff1a;代码随想录 题目名称&#xff1a;198.打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff…

【随手笔记】485

1. 基础知识 2线&#xff0c;半双工&#xff0c;多点通信 电压差传递信号 逻辑 1&#xff1a; 两线间电压差为 2V ~ 6V 逻辑0 &#xff1a; 两线间电压差为-2V ~ -6V 10米最高速率达 35Mbps 1200米 速率达100Kbps 抗共模干扰能力强 一般支持32个节点 推荐使用点对点线型 总线…

IDEA开发HelloWorld程序

IDEA管理Java程序的结构 project&#xff08;项目、工程&#xff09;---project中可以创建多个modulemodule&#xff08;模块&#xff09;---module中可以创建多个packagepackage&#xff08;包&#xff09;---package中可以创建多个classclass&#xff08;类&#xff09;---c…

木牛科技PMO总监关沨受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京木牛领航科技有限公司PMO总监关沨女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“如何培养能打胜仗的项目经理”。大会将于10月26-27日在北京举办&#xff0c;主题为&a…

图神经网络在推荐系统中的应用综述

1 研究计划 了解推荐系统的研究背景和发展历程了解为什么推荐系统需要GNN了解基于GNN的推荐的关键挑战了解基于GNN的推荐的现有方法 2 完成情况 2.1推荐系统的研究背景和发展历程 随着各种服务和平台(如电子商务、短视频等)上信息的快速爆炸&#xff0c;推荐系统在缓解信息…