无序中的秩序:Transformer模型的创新性结构解析

news2024/11/24 2:40:28

最近我在看论文时,发现很多都在用 Transformer 模型,我知道transformer很有名,但是我也只是听说过他的大名,不知道他具体是做什么怎么做的,因此我决定深入了解一下,并做个简单记录,方便以后参考。 Transformer 主要用于处理自然语言处理(NLP)任务。与之前的循环神经网络(RNN)和长短时记忆网络(LSTM)等模型不同,Transformer 最主要的模块是使用了注意力机制,而不需要顺序地处理数据,也就是说不依赖时间或序列顺序。transformer的核心功能是处理序列数据,就是处理输入的数据和输出的数据之间的关系,像我自己看的那篇论文,是推荐系统方向的,输入的数据是庞大的用户行为数据,经过整个模型处理,输出的数据就是精确的用户可能点击的数据,提高用户可能点击的概率。

Transformer 由以下几个部分组成:

  1. 自注意力机制: 这一机制让模型在处理每个词语时,能够参考序列中的其他所有词。比如在翻译时,句子中的某个词可能会依赖其他几个词,这种机制让模型可以全局地理解上下文,从而捕捉长距离依赖关系,比如在最近很火的gpt文本生成中,一句话中各个单词的远近可能对当前词有影响。
  2. 多头注意力: 这是对自注意力机制的并行化处理,让模型从不同角度(即多个“头”)来理解输入序列。每个“头”可以独立学习不同的信息关联,进一步提升模型的表达能力,使得它能够捕捉到句子中 不同的部分。
  3. 位置编码: 由于 Transformer 不是按顺序处理数据的,它通过位置编码引入词语的位置信息,确保模型能理解词与词之间的顺序关系。就像你阅读一句话时,不仅要知道每个词的含义,还要知道它们在句中的顺序,这样才能明白句子的意思。

Transformer的编码器与解码器

在 NLP 任务中,编码器负责将输入数据转化为一种计算机能够看懂的代码,而解码器则根据这个表示生成输出。Transformer 的编码器由 6 层相同的堆栈组成,每层包含两个子层:多头自注意力机制和一个前馈网络。主要是对输入的序列进行编码,提取出表示序列各个部分的向量。

解码器也有类似的结构,但它比编码器多了一个子层,这个额外的子层用来处理编码器的输出。另外,解码器中的自注意力机制经过调整,只允许每个位置关注之前已生成的内容,确保生成顺序合理,输出新的输出序列。
Attention ⁡ ( Q , K , V ) = softmax ⁡ ( Q K T d k ) V \operatorname{Attention}(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) V Attention(Q,K,V)=softmax(dk QKT)V

在深度学习领域,特别是注意力机制的应用中,点积计算、缩放、softmax变换以及加权求和是实现自注意力或注意力层的核心步骤。通过这些步骤,注意力机制能够有效地捕捉序列数据中的长距离依赖关系,大大增强了模型理解和生成复杂语言结构的能力,是现代自然语言处理模型如Transformer架构中的关键组件。

M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d h ) W O MultiHead(Q,K,V)=Concat(head_1,...,head_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO

w h e r e h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i … … V ) where head_i = Attention(QW_i^Q,KW_i^K,VW_i……V) whereheadi=Attention(QWiQ,KWiK,VWi……V)

论文接下来详细的介绍了transformer是如何工作的:

第一步:线性变换

对于输入的查询Q、键K和值V,我们使用不同的线性变换矩阵
W i Q 、 W i K 和 W i V W_i^Q、W_i^K和W_i^V WiQWiKWiV
,将它们分别隐射到h个不同的子空间。每一个注意力投都有自己专用的一组权重矩阵。
Q i = Q W i Q , K i = K W i K , V i = V W i V Q_i=QW_i^Q,K_i=KW_i^K,V_i=VW_i^V Qi=QWiQ,Ki=KWiK,Vi=VWiV

第二步:独立计算每个注意力投的输出

对于每一个注意力i,计算缩放点积注意力:
h e a d i = A t t e n t i o n ( Q i , K i , V i ) = s o f t m a x ( Q K T d k ) V i head_i=Attention(Q_i,K_i,V_i) = softmax(\frac{Q K^{T}}{\sqrt{d_{k}}})V_i headi=Attention(Qi,Ki,Vi)=softmax(dk QKT)Vi

第三部:连接所有注意力头的输出

将所有注意力头的输出 h e a d 1 , h e a d 2 , . . . , h e a d h head_1,head_2,...,head_h head1,head2,...,headh进行拼接(Concat),得到一个大矩阵:
C o n c a t ( h e a d 1 , h e a d 2 , . . . , h e a d h ) Concat(head_1,head_2,...,head_h) Concat(head1,head2,...,headh)

第四步:线性变换输出

对拼接后的结果进行一次线性变换,得到最终的多头注意力输出:
M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d h ) W O MultiHead(Q,K,V)=Concat(head_1,...,head_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO

除了注意力机制,Transformer 的每一层还包含一个前馈网络神经网络,通常由两次线性变换和中间的 ReLU 激活函数组成。
F F N ( x ) = m a x ( 0 , s W 1 + b 1 ) W 2 + b 2 FFN(x)=max(0,sW_1+b1)W_2+b_2 FFN(x)=max(0,sW1+b1)W2+b2

多头注意力的计算是将查询、键和值分别线性变换到多个子空间中,然后独立计算每个子空间的注意力分布,最后将所有头的输出拼接起来,进行线性变换,得到最终的结果。这让模型可以并行地关注输入序列中的不同部分,提升了处理能力。

transformer广泛的应用于序列到序列的任务中,具有高效的并行计算能力和捕捉长距离依赖关系的能力。

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

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

相关文章

TDC上YARN Web-UI 查看application日志方法

方法一 #通过浏览器访问tdc,访问的工作节点对于TDC都是外部节点。在提交给yarn任务后,YarnRM的Web UI 可以展示yarnnm上运行的application日志,但是由于跳转的svc地址,无法直接访问。 #在tdc界面上找到yarn实例,进入ya…

【Scala入门学习】集合常用方法和函数操作

1. foreach循环遍历 foreach 方法的原型: // f 返回的类型是Unit, foreach 返回的类型是Unit def foreach[U](f: Elem > U) 该方法接受一个函数 f 作为参数, 函数 f 的类型为Elem > U,即 f 接受一个参数,参数…

达梦数据库(DM)单机典型安装

达梦数据库(DM)单机典型安装 环境:centos7.6 1、创建用户 #增加用户和组,用于安装管理达梦数据库。 新建用户组:groupadd dinstall 新建用户:指定用户组,家目录,shell。useradd -g…

反转链表解题思路

题目描述 给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。 示例:当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。 解题思路:迭…

股市大涨下的会展业创新者

近期,股市涨势强劲有力,各大指数普遍上扬,市场活力空前。与此同时,伴随全球经济逐步复苏及会展行业不断发展,上市展览公司机遇与挑战并存。国内外市场需求持续增长拓展了广阔发展空间,但同时行业竞争愈发激…

中国宏观经济与产业发展:挑战与机遇并存

#长沙屿# 在复杂多变的国内外经济形势之下,中国经济已然步入一个至关重要的发展阶段。今日,让我们深入剖析当前经济形势,对中国宏观经济的运行现状及产业发展的趋势展开深度探讨。 2024年,中国经济运行总体平稳、稳中有进&#x…

职场启悟:没有靠山的你,45岁前必知的5大潜规则

我是农村孩子,父母都是农民,毕业一切都是靠着自己找工作,在陌生的大城市除了认识老师就是同学。记得那是我初入职场的第三个月,每天我都沉浸在无尽的工作中,加班到深夜,周末也时常无休。我觉的农村孩子只能…

Chainbase :链原生的 Web3 AI 基建设施

“随着 Chainbase 在生态系统和市场方面的进一步拓展,其作为链原生 Web3 AI 基建设施的价值将愈发显著。” 算法、算力和数据是 AI 技术的三大核心要素。实际上,几乎所有的 AI 大模型都在不断革新算法,以确保模型能够跟上行业的发展趋势&…

机器学习中的模型设计与训练流程详解

目录 前言1. 模型设计1.1 数据特性分析1.2 计算资源限制1.3 应用场景需求 2. 模型训练2.1 训练集与验证集的划分2.2 损失函数的选择2.3 模型参数更新 3. 优化方法3.1 梯度下降法3.2 正则化方法 4. 模型测试4.1 性能评估指标4.2 模型的泛化能力 5. 模型选择5.1 数据规模与模型复…

怎么提取人声去掉背景音乐?人声提取秘籍:去掉背景音乐的技巧

在数字化时代,音频处理变得越来越普遍,我们经常需要从一段音频或视频中提取出纯净的人声,而去除掉背景音乐或其他杂音。这种需求在视频编辑、音乐制作、甚至在学习和娱乐中都十分常见。本文将介绍几种简单易行的方法,帮助你轻松提…

【Spring】获取 Cookie和Session

回顾 Cookie HTTP 协议自身是属于“无状态”协议 无状态:默认情况下,HTTP 协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系 但是在实际开发中,我们很多时候是需要知道请求之间的关联关系的 例如登录网站成功后&#xff…

抖音小游戏画图位置移动

文章目录 画图移动图形位置 画图 const canvas tt.createCanvas(); const context canvas.getContext(2d);context.width 500; context.height 500;let isPressing false; // 是否按下 let startX 0; let startY 0;context.fillStyle "#f00"; context.fillR…

@zabbix监控网站黑链接监控及数据推送

zabbix监控网站黑链接及数据推送 文章目录 zabbix监控网站黑链接及数据推送1.检测脚本1》编写python脚本2》脚本执行 2.数据推送1》方案一2》方案二 3.zabbix web 1.检测脚本 1》编写python脚本 创建脚本check_black_links.py,使用python脚本实现网站黑链接检测&a…

93. 复原 IP 地址【回溯】

文章目录 93. 复原 IP 地址解题思路Go代码 93. 复原 IP 地址 93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" …

Datawhale组队学习|全球AI攻防挑战赛——赛道二:AI核身之金融场景凭证篡改检测

目录 前言Baseline代码解读 前言 Datawhale 2024.10 组队学习来了!这次选择的是动手实践专区——CV方向——“全球AI攻防挑战赛—赛道二:AI核身之金融场景凭证篡改检测”。 Baseline代码解读 1、读取数据集 !apt update > /dev/null; apt install…

美团测试面试真题学习

美团真题1–测试基础-业务场景说下你的测试用例设计 功能角度 方法论 边界值、等价类划分、错误推测法示例 输入已注册的用户名和正确的密码,验证是否登录成功;输入已注册的用户名和不正确的密码,验证是否登录失败输入未注册的用户名和任意密码&#xff…

Win10自带录屏神器?这4款工具让你秒变剪辑达人!

小伙伴们,随着电子设备使用率越来越高,日常工作中我们需要进行一些操作的演示,或者是游戏中精彩的瞬间都希望录下来,那就少不了好用的录屏工具了。这次我来跟大家聊聊Windows 10自带的那些让人惊艳的录屏工具。这不仅仅是我个人推…

Halcon 3D应用 - 胶路提取

1. 需求 本文基于某手环(拆机打磨处理)做的验证性工作,为了项目保密性,只截取部分数据进行测试。 这里使用的是海康3D线激光轮廓相机直线电机的方式进行的高度数据采集,我们拿到的是高度图亮度图数据。 提取手环上的胶…

IBM Flex System服务器硬件监控指标解读

随着企业IT架构的日益复杂,服务器的稳定运行对于保障业务连续性至关重要。IBM Flex System作为一款模块化、可扩展的服务器解决方案,广泛应用于各种企业级环境中。为了确保IBM Flex System服务器的稳定运行,监控易作为一款专业的IT基础设施监…

[Linux#65][TCP] 详解 延迟应答 | 捎带应答 | 流量控制 | 拥塞控制

目录 一、延迟应答 二、捎带应答 三. 流量控制 总结 四. 拥塞控制 1. 拥塞控制 2. 慢启动机制: 3.思考 4.拥塞避免算法 5. 快速恢复算法 一、延迟应答 1. 立即应答问题 接收数据的主机若立刻返回ACK应答,可能返回的窗口较小。例如&#xff1…