我们从头梳理Transformer注意力整套完整流程:

  1. 原始业务文本,比如多条售后工单信息,计算机无法直接读懂文字。我们先把每一条工单转化成一组数字,这组数字就叫做向量,作用是把业务含义数字化。序列里单独任意一条工单,我们称之为Thing。

  2. 针对每一条工单的基础向量,通过三套独立的转换规则,生成三组全新向量: Q查询向量:代表本条信息的检索诉求,我想要找到和我相关的信息; K标签向量:代表每条信息对外展示的匹配标签; V内容向量:代表这条信息承载的真实业务内容。

  3. 接下来计算关联程度,核心运算叫做点积。拿当前这条工单的Q向量,依次和序列内所有工单的K向量做点点积运算。 点积简单理解:输入两组数字串,最终输出一个数字。数字越大,代表两条业务信息整体趋势、业务含义越接近,关联性越强。我们拿到的这一组结果,就是原始关联分数。

  4. 原始点积数值波动范围很大,不利于模型稳定计算,因此进行缩放处理,把数值控制在合理区间,也就是常说的缩放点积。

生活化例子

假设公司组织内部互评,打分规则原本允许大家随便打:-100 ~ +100 场景: 员工A拿到一堆原始互评分数:[85, 92, -78, 6] 问题:分数差距极其夸张。高分特别突出、低分极低。 后续系统做排名计算时,会极端放大第一名的优势,直接忽略其他所有人的意见,系统判断容易偏激、不稳定。

缩放方法:缩放 ÷√dimₖ:调节分值差距,解决训练不稳定问题

👉 缩放操作 = 统一规范打分区间 把上面这组数字整体缩小,变成 [8.5,9.2,-7.8,0.6] 差距被平缓下来,不会出现某一个数值一家独大,模型学习过程更加平稳。

对应技术业务翻译

原始QK点积得到的关联分值波动巨大。缩放用来压缩数值区间,避免某一条关联分数过于极端,防止模型“钻牛角尖”、训练不稳定。

  1. 缩放后的分数送入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。 也就是:完全无关的信息,直接近乎失去话语权,不会反向干扰结论。

  1. 最后一步:使用权重,对全部V内容向量做加权汇总融合。 权重高的信息,对最终结果影响更大;权重低的信息几乎不起作用。最终生成一条融合了全局上下文理解的全新向量。

  2. 业务效果体现: 以工单【客户投诉】举例,模型自动识别它和【配件缺货】【物流延误】关联性更高,融合这两条信息的内容;和【紧急补货】关联弱,参考价值很低。 最终模型理解:本次客户投诉,根源来自缺货与物流延迟,实现自动挖掘远距离业务关联。

配套精简PPT总结文案

业务文本转为向量后,生成Q/K/V三组特征;通过Q与全体K的点积计算信息关联分数;经过缩放、Softmax归一化为权重;依托权重对V向量加权融合,输出融合全局上下文的特征结果,这就是自注意力完整工作链路。

关键知识点快速备忘(防止汇报讲混淆)

  1. 点积:判断向量方向相似度,产出原始分数
  2. 余弦相似度:对点积标准化,消除向量长短影响
  3. 欧氏距离:衡量向量终点远近,同时看重方向与数值规模
  4. 自注意力:QKV来自同一套数据;交叉注意力:Q和K/V分属两套独立数据