论文笔记:Attention Is All You Need

谷歌提出Transformer模型,采用注意力机制解决NLP中机器翻译问题,摒弃RNN结构,实现并行计算,提升效率。该模型引入自我注意力(self-attention)和编码器-解码器注意力(encoder-decoder attention),对句子词进行位置嵌入,彻底改变Seq2Seq任务处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

谷歌发表的文章,针对nlp里的机器翻译问题,提出了一种基于注意力机制的的网络结构–Transformer。

https://blog.youkuaiyun.com/songbinxu/article/details/80332992
以往nlp里大量使用RNN结构和encoder-decoder结构,RNN及其衍生网络的缺点就是慢,问题在于前后隐藏状态的依赖性,无法实现并行,而文章提出的”Transformer”完全摒弃了递归结构,依赖注意力机制,挖掘输入和输出之间的关系,这样做最大的好处是能够并行计算了。

https://www.jianshu.com/p/b1030350aadb
计算Attention首先要有query,key和value。我们前面提到了,Encoder的attention是self-attention,Decoder里面的attention首先是self-attention,然后是encoder-decoder attention。这里的两种attention是针对query和key-value来说的,对于self-attention来说,计算得到query和key-value的过程都是使用的同样的输入,因为要算自己跟自己的attention嘛;而对encoder-decoder attention来说,query的计算使用的是decoder的输入,而key-value的计算使用的是encoder的输出,因为我们要计算decoder的输入跟encoder里面每一个的相似度。

https://yq.aliyun.com/articles/342508
抛弃了 RNN 、lstm结构来做 Seq2Seq
对句子中的词进行position embedding
self-attention对自己的query k v进行

https://blog.youkuaiyun.com/appleml/article/details/83415489 这篇笔记写的不错
解释了Q,K, V 到底是什么

https://www.cnblogs.com/huangyc/p/9813907.html

https://www.jianshu.com/p/3f2d4bc126e6

https://cloud.tencent.com/developer/article/1377062

### 关于 'Attention is All You Need' 论文中自注意力机制的概念解释 #### 自注意力机制定义 自注意力,即内部注意力,是一种特殊的注意力机制,它能够将单个序列中的不同位置相互关联来计算该序列的表示形式[^1]。这种机制允许模型在处理某个词时考虑整个输入序列的信息。 #### 应用领域 此技术已被广泛应用于多个自然语言处理任务之中,比如但不限于阅读理解、抽象摘要创建以及文本蕴含分析等场景中,在这些应用里展示了强大的性能提升效果[^2]。 #### 工作原理概述 具体来说,Attention的工作流程可以通过三个核心组件——Query(查询)、Key(键)和Value(值)来进行描述。输出是由所有的Values经过加权求和得到的结果;而权重则是基于Queries与Keys之间的匹配程度通过Softmax函数进行标准化后的得分决定的[^3]。 #### 实验设置详情 为了验证提出的架构的有效性,研究人员利用了一台配备有八个NVIDIA P100 GPU的强大硬件平台来进行实验性的训练工作。基础版本模型每一步骤耗时约为0.4秒完成一次迭代更新操作,并且总共经历了十万次这样的循环过程或者说持续约十二个小时的时间长度才能达到收敛状态。而对于更大规模配置下的变体,则需要更长时间——大约三十五万六千分钟也就是接近三天半才可结束全部的学习周期[^4]。 ```python import torch.nn.functional as F def scaled_dot_product_attention(q, k, v, mask=None): d_k = q.size()[-1] scores = torch.matmul(q, k.transpose(-2, -1)) / (d_k ** 0.5) if mask is not None: scores = scores.masked_fill(mask == 0, -1e9) attention_weights = F.softmax(scores, dim=-1) output = torch.matmul(attention_weights, v) return output, attention_weights ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值