一、Attention是什么
Attention 就是让模型在处理信息时,能动态判断“哪些部分更重要”,并给予它们更高的权重。 类似于人类的注意力,即使在嘈杂的环境中也能够提取自己想要的信息,而 Attention 机制,就是把这种“自动聚焦重要信息”的能力教给计算机。
二、Attention的作用
在 Transformer 诞生之前,很多模型(比如简单的 RNN)处理一个句子时,只能按顺序看单词,并且最后只记住一个“固定长度的总结”。例如看句子: “我在公园里遇到了一只白色的猫,它很可爱。” 传统模型到最后一个词“可爱”时,可能已经忘了前面的“白色”和“猫”,更搞不清“它”指代什么,相当于你只能用手指指着一个字一个字读,读完最后一个字,最前面的字已经模糊了。
有了Attention之后模型处理的变化,Attention 允许模型在处理某个词(比如“它”)时,回头去看句子中所有其他词,并计算每个词对当前词的相关度分数(比如一个 0~1 的权重)。例如看句子: “我在公园里遇到了一只白色的猫,它很可爱当模型处理 “它” 时,Attention 可能会计算:与“猫”的相关度0.9、与“白色”的相关度0.4、与“公园”的相关度:0.0、与“可爱”的相关度0.2(刚读过)、最终模型知道“它”最可能指的是猫。这个相关的权重计算过程,就是注意力权重——分数越高,模型就把注意力越集中在那个词上。
三、Attention的计算公式
数学上,Attention 大致做三件事(忽略复杂变体):
查询(Query) :当前你要处理的词,比如“它”,产生一个查询向量 Q。
键(Key) :句子中其他每个词都有一个键向量 K_i,代表有什么信息。
V(值): 这个词能提供的具体内容
四、Q、K、V怎么得到
图片来源:【Attention】【MHA】9分钟从零基础到掌握注意力机制 原理&计算_哔哩哔哩_bilibili
PS:这部分涉及到了深度学习的内容需要恶补,还有一点之前一直觉得大模型整理的内容很nice,但是深入学习就不太行了,还是需要找一些专业的知识补充。
五、Attention怎么算
图片来源:【Attention】【MHA】9分钟从零基础到掌握注意力机制 原理&计算_哔哩哔哩_bilibili
六、Attention的特点
长距离依赖:再长的句子,也能让相隔很远的词直接“对话”。
可解释性:可以画出热力图,直观看到模型在关注哪些词(比如翻译任务中,英语“it”对齐到中文“猫”)。
并行计算:不像 RNN 必须按顺序,Attention 可以同时计算所有词之间的关系,训练飞快。
七、总结
attention机制,就是让录入的每个字都关注于它相关性最高的其他字,从而帮助模型理解输入的问本,更好回答用户的问题
PS:主播这块很迷惑,知道了attention机制的具体作用,但是实际应用不是特别清楚需要和Transformer这块结合以下,如果各位大佬有什么更好的学习资源,欢迎在评论区交流。