李宏毅机器学习笔记-自注意力机制(self-attention)

引言

以往我们遇到的深度学习问题中,对于神经网络的输入一般都是一个向量,输出可能是一个类别。如果增加输入的复杂度,例如输入的是多个向量,或改变输入的向量长度(eg句子处理、声音序列处理、graph等)

那么输出会是什么情况呢?

每个输入向量都对应一个标签,输入和输出长度一样。例如输入一句话,让机器判断这句话中的每一个单词的词性。
第①种情况举例

只输出一个标签。例如文本情感分析,输入一句话让机器判断这句话是正面的还是消极的等等。
第②种情况举例

由模型判断输出数量

本文专注于讨论第①种输出情况,这种情况又称Sequence Labeling

Sequence Labeling

想要实现输入多个向量,输出同样数目的标签label,有一种解决方案就是FC(Fully-connected),对于每一个向量执行一次FC,然后输出对应的标签。

但是这样做有很大的弊端。例如在判断词性的例子中,我们将一句话作为一个输入,而一句话由多个单词组成,每个单词都有其对应的向量(向量的生成方式有两种,one-hot encoding 和 word embedding)。我们让每个单词都经过一次FC,得到其对应的词性。但是在上图的例子中,一句话中的两个saw是不同词性的,但是通过相同的网络得到输出没有理由是不一样的,因为输入的向量完全一样。

那么可以考虑这句话的上下文信息,把一个单词的相邻单词也考虑进去。一次输入一个window里面的向量。

但是这样的方法还是有弊端,如果我们有一个任务不是要考虑一个window就可以解决的,而是要考虑整句话才能解决。那么把window设置成一句话的长度可以吗?显然不行,因为我们一开始就说过,每一个输入样本的长度是不定的。那么把window设置成所有样本输入中最长的那个样本的长度可以吗?看似可以,但是这样做会需要学习太多的参数,可能会造成过拟合。那么有什么解决方法呢?这就需要用到本文要介绍的self-attention机制。

Self-attention

Self-attention 是怎么应用的呢?

首先要把一整个句子中的所有向量都经过 Self-attention,输入几个向量,就输出几个向量。得到的输出向量都考虑了整个句子的所有上下文信息。然后再将考虑了整句话信息的向量作为输入,进行FC得到对应的输出标签。

Self-attention 是怎么运作的呢?

首先 Self-attention 的输入是多个向量,这些向量可能是一整个神经网络的输入,也可能是某个隐藏层的输出,所以在这里用 a 来表示输入。输出的向量用 b 来表示,每一个 b 都是考虑了所有的 a 而生成的。下面我们介绍 b 是如何产生的,以 为例。

首先我们要根据 找到整句话中和 相关的其它向量。每一个相关的向量和 的关联程度用一个数值 α 来表示。

那么我们怎么找到其它向量和 之间的关联性呢?我们使用 Dot-product 的计算方式得到 α 。将两个向量作为输入,分别乘一个矩阵后得到两个新的矩阵 q 和 k ,然后 q 和 k 做内积,得到一个数值就是α 。

矩阵乘法的角度来看self-attention 是怎样运作

① 从 a 得到 q k v:a分别乘一个矩阵

② 得到attention score:通过q 与 点乘

③ 经过 softmax(或其他)处理

④ 得到 b :

**总结:**I 是self -attention 的input,一串vector;self-attention 的运作机制其实就是一连串的矩阵乘法。在这一系列矩阵中,只有矩阵W q , W k , W v 是未知的,是需要通过训练学习的参数。

Muti-head Self-attention(多头注意力机制)

相关推荐
学游戏开发的40 分钟前
UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备
c++·笔记·游戏引擎·unreal engine
云缘若仙41 分钟前
directx12 3d+vs2022游戏开发第三章 笔记五 变换
笔记·3d
Luzem03191 小时前
使用朴素贝叶斯对自定义数据集进行分类
人工智能·机器学习
老艾的AI世界1 小时前
AI定制祝福视频,广州塔、动态彩灯、LED表白,直播互动新玩法(附下载链接)
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·ai·ai视频·ai视频生成·ai视频制作
灰灰老师2 小时前
数据分析系列--[11] RapidMiner,K-Means聚类分析(含数据集)
人工智能·算法·机器学习·数据挖掘·数据分析·kmeans·rapidminer
kyle~2 小时前
机器学习--概览
人工智能·机器学习
追求源于热爱!3 小时前
记4(可训练对象+自动求导机制+波士顿房价回归预测
图像处理·人工智能·算法·机器学习·回归
前端达人3 小时前
「AI学习笔记」深度学习进化史:从神经网络到“黑箱技术”(三)
人工智能·笔记·深度学习·神经网络·学习
Icomi_3 小时前
【PyTorch】7.自动微分模块:开启神经网络 “进化之门” 的魔法钥匙
c语言·c++·人工智能·pytorch·python·机器学习·计算机视觉