神经网络模型底层原理与实现6—自注意力机制

解决的问题:之前的网络针对的输入都是一个向量,现在是一串向量(比如句子、语音)

预处理:把文字表达成向量:用独热编码或者词向量

输出是什么:给每个向量打标(词性)/整个向量组打标(情感分析)/输出的类型数不定(比如写一段话概括一篇文章)

为什么不能用全连接层:句子的长度不定,如果要用则网络要按最长的句子大小来开a1f72d89ccb344629667b33760ef8697.png

原理:如图所示,b1由a1-a4中与a1相关的向量共同产生,如何求出相关系数a呢:

把a1和a2分别乘矩阵Wq和Wk,得q和k,然后计算点乘

a386bd1a54b34071b2819bf6e905c2e5.png

根据这个原理,按图中箭头操作得四个相关性向量,再经过softmax层得输出

a7ec8df6be544b2cb72baf95963b056d.png 

接下来根据相关性抽取重要资讯:再对每个向量分别求v1-vn,对应相乘累加得bi,哪个的相关性分数大,就将决定bi

550a3322325c4d5689a25a445cf1d7fc.png 

多头注意力机制:如果需要考虑多种相关性,则可讲每个q分别去乘多个矩阵得到qi,1...qi,n再去分别算

改进:有些问题中位置信息也重要,则把ai+位置向量ei后再计算

原理讲到这儿,下面和CNN做个对比:CNN其实是一个简化版的自注意力机制,它只考虑一个范围内的格子

应用:可以把自注意力机制用在图上面,此时只要计算有连接的两点间的相关性(即为GNN)

b660956a2d86448ebb3fbf7fcdbf0634.png

 

 

 

 

 

 

 

 

 

  • 18
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值