当前位置: 首页 > news >正文

用js表述注意力机制

// 注意力计算函数
function attention(query, keys, values) {
  // 1. 计算相似度分数(点积)
  const scores = keys.map(key => 
    query.reduce((sum, q, i) => sum + q * key[i], 0)
  );

  // 2. 使用Softmax归一化
  const maxScore = Math.max(...scores);
  const expScores = scores.map(s => Math.exp(s - maxScore)); // 数值稳定性处理
  const sumExp = expScores.reduce((a, b) => a + b, 0);
  const attentionWeights = expScores.map(s => s / sumExp);

  // 3. 加权求和得到最终输出
  return values.reduce(
    (output, value, i) => 
      value.map((v, j) => v * attentionWeights[i] + (output[j] || 0)),
    []
  );
}

// 示例使用
const query = [1, 0.5, 0.2];     // 查询向量
const keys = [                    // 键向量集合
  [0.8, 0.2, 0.1],
  [0.5, 1.0, 0.3],
  [0.2, 0.6, 1.2]
];
const values = [                  // 值向量集合
  [1.0, 2.0],
  [1.5, 0.5],
  [0.5, 1.5]
];

const result = attention(query, keys, values);
console.log("Attention Output:", result); // 输出加权后的结果向量

在这里,我们不清楚keys和values是怎么产生的,因为这涉及到各种行业,比如说翻译方面那就涉及到语言到语言的数据特征,比如说中文的“我” -> 英文的“me”这个对应的向量抽象出来的一个数据化的向量,但是现实中中文的我可能对应对多个英文:[me, I]这个需要结合上下文的语境,比较复杂,但 基本的注意力机制就是上面的代码所描述的最终输出的是一组加权后的结果。这里也可以参考一下这个文章看具体的。
 

代码关键点解释:

  1. 相似度计算:通过点积计算查询向量与每个键向量的相似度

    • 这里使用最简单的点积计算,实际可能需要缩放(如Transformer的缩放点积注意力)

    • 其他相似度计算方式也可替换为余弦相似度等

  2. Softmax归一化

    • 减去最大值处理提升数值稳定性

    • 将分数转换为概率分布

  3. 加权求和

    • 使用注意力权重对值向量进行加权求和

    • 输出维度与值向量维度一致

推荐使用深度学习库(如TensorFlow.js),但核心原理可以通过上述基础代码理解。 

相关文章:

  • SpringBoot 热部署
  • FTP出现“打开 FTP 服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。”如何处理?
  • CCNP知识笔记
  • 在PyCharm中集成AI编程助手并嵌入本地部署的DeepSeek-R1模型:打造智能开发新体验
  • 介绍一下zoodefs
  • 搭建Appium工具环境
  • Kubernetes开发环境minikube | 开发部署MySQL单节点应用
  • 嵌入式硬件篇---阶跃函数冲激函数
  • PHP 安装指南
  • Java入门级小案例:网页版简易计算器
  • scimp包1.7版发布,用于绘制charls加权地图
  • 【R包】tidyplots----取代ggplot2的科研绘图利器
  • JS同步与异步概念及区别
  • Redis 通用命令
  • LangChain 由入门到精通
  • FastAPI系列:Ubuntu部署FastAPI项目实战
  • 用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解
  • springboot 如何实现发送短信
  • 什么是 Ribbon?
  • WordPress平台如何接入Deepseek,有效提升网站流量
  • 龙虎和网站开发/电商具体是做什么的
  • 酷家乐网站做墙裙教程/网络营销策划书1500字
  • 优秀网站建设设计/宁波seo网络推广主要作用
  • 经营网站赚钱/ciliba磁力猫
  • 内容营销案例分析/哪有培训seo
  • 京东网站建设费用/今日最新消息新闻