我们从头梳理Transformer注意力整套完整流程:
原始业务文本,比如多条售后工单信息,计算机无法直接读懂文字。我们先把每一条工单转化成一组数字,这组数字就叫做向量,作用是把业务含义数字化。序列里单独任意一条工单,我们称之为Thing。
针对每一条工单的基础向量,通过三套独立的转换规则,生成三组全新向量: Q查询向量:代表本条信息的检索诉求,我想要找到和我相关的信息; K标签向量:代表每条信息对外展示的匹配标签; V内容向量:代表这条信息承载的真实业务内容。
接下来计算关联程度,核心运算叫做点积。拿当前这条工单的Q向量,依次和序列内所有工单的K向量做点点积运算。 点积简单理解:输入两组数字串,最终输出一个数字。数字越大,代表两条业务信息整体趋势、业务含义越接近,关联性越强。我们拿到的这一组结果,就是原始关联分数。
原始点积数值波动范围很大,不利于模型稳定计算,因此进行缩放处理,把数值控制在合理区间,也就是常说的缩放点积。
生活化例子
假设公司组织内部互评,打分规则原本允许大家随便打:-100 ~ +100
场景:
员工A拿到一堆原始互评分数:[85, 92, -78, 6]
问题:分数差距极其夸张。高分特别突出、低分极低。
后续系统做排名计算时,会极端放大第一名的优势,直接忽略其他所有人的意见,系统判断容易偏激、不稳定。
缩放方法:缩放 ÷√dimₖ:调节分值差距,解决训练不稳定问题
👉 缩放操作 = 统一规范打分区间
把上面这组数字整体缩小,变成 [8.5,9.2,-7.8,0.6]
差距被平缓下来,不会出现某一个数值一家独大,模型学习过程更加平稳。
对应技术业务翻译
原始QK点积得到的关联分值波动巨大。缩放用来压缩数值区间,避免某一条关联分数过于极端,防止模型“钻牛角尖”、训练不稳定。
- 缩放后的分数送入Softmax处理。Softmax会把所有分数转换成权重,所有权重相加等于1。关联性越高,分配到的权重数值越大。 可以理解为:系统给所有相关信息打分排名,换算成占比权重。
通俗案例
承接上面缩放完成后的分数:[8.5,9.2,-7.8,0.6]
现在有4条业务信息和【客户投诉】的关联得分。
但是这些数字不能直接当作参考比重:有正数、负数,总和不等于固定值,没法直观体现“谁占多少重要程度”。
Softmax作用: 把一堆任意数字,统一转换成 ≥0 的权重,所有权重加起来刚好等于1,等同于百分比占比。
模拟转换结果(仅示意): 8.5 → 28% 9.2 → 67% -7.8 → 0.1% 0.6 → 4.9% 合计:28%+67%+0.1%+4.9% = 100%(数值1)
人话解读:
系统最终结论: 在理解「客户投诉」这件事上,物流延误贡献67%的参考价值,配件缺货贡献28%,剩余两条几乎可以忽略。
绝佳类比:评委打分分配话语权
几位专家对同一个问题发表观点,每个人原始打分高低参差不齐。 Softmax相当于: 重新分配所有人的话语权占比,所有人话语权总和是100%。观点相关性越高,分到的话语权越大;关联很低的人,几乎没有话语权。
负数经过Softmax之后不会变成负权重,最低只会无限趋近于0。 也就是:完全无关的信息,直接近乎失去话语权,不会反向干扰结论。
最后一步:使用权重,对全部V内容向量做加权汇总融合。 权重高的信息,对最终结果影响更大;权重低的信息几乎不起作用。最终生成一条融合了全局上下文理解的全新向量。
业务效果体现: 以工单【客户投诉】举例,模型自动识别它和【配件缺货】【物流延误】关联性更高,融合这两条信息的内容;和【紧急补货】关联弱,参考价值很低。 最终模型理解:本次客户投诉,根源来自缺货与物流延迟,实现自动挖掘远距离业务关联。
配套精简PPT总结文案
业务文本转为向量后,生成Q/K/V三组特征;通过Q与全体K的点积计算信息关联分数;经过缩放、Softmax归一化为权重;依托权重对V向量加权融合,输出融合全局上下文的特征结果,这就是自注意力完整工作链路。
关键知识点快速备忘(防止汇报讲混淆)
- 点积:判断向量方向相似度,产出原始分数
- 余弦相似度:对点积标准化,消除向量长短影响
- 欧氏距离:衡量向量终点远近,同时看重方向与数值规模
- 自注意力:QKV来自同一套数据;交叉注意力:Q和K/V分属两套独立数据
黑公网安备23000002000105号