Transformer 是不是缺乏跨维度关系捕捉能力?

103 天前
 LeeReamond

如题,用别人开源的模型做 NLP 任务有几年了,第一次认真看了下 Transformer 的公式,感觉这东西是不是除了 NLP 其他领域迁移能力差,因为本身夸维度捕捉能力就差。

假设有三个中文输入:“你好”,每个字被编码为一个三维的向量,那么也许可以写成这样一个 3x2 矩阵:

input = [
  [a1, b1],
  [a2, b2],
  [a3, b3],
]

我仔细看了一下 attention 的公式,所以注意力结果应该是

z = Softmax(Q·K/sqrt(x))·V

其中 QKV 是三个矩阵乘出来的

那么整个运算过程中从单个变量的三个维度出发的话,在上文的 2 字例子中,Q 的第一维只会和 K 的第一维发生关系,似乎并不会参与其他维度运算,这是否导致跨维度捕捉能力的缺失?

所以只有 NLP 做得好,因为 NLP 的多维度量基是人为构建的,而且尽量使其分布平均。一到涉及现实世界的任务就拉了胯了,VIT 近视眼,其他现实建模量基不同的全都寄

1639 次点击
所在节点    Python
29 条回复
flyv2x
103 天前
词嵌入向量:向量旨在捕捉词汇的语义特征,每个维度代表不同的潜在语义属性。
词嵌入向量->转换到 Q 、K 、V 过程是通过权重矩阵相乘来实现。在 Transformer 中,Q (查询)、K (键)和 V (值)向量的每个维度都是原始词嵌入向量所有维度的加权结果。
zhusimaji
103 天前
从实践来看,Attention 在推荐里用的也不少啊,MHA 用的挺广泛的
Yuhyeong
103 天前
transformer 都杀疯了,基本所有领域都霸榜了。要不是硬件成本太高,大家 backbone 恨不得全换成 transformer 。
Yuhyeong
103 天前
@zhusimaji transformer 就是用的 attention
Yuhyeong
103 天前
@Yuhyeong paperwithcode 搜搜 Vit ,看看在几个 benchmark 上是 top3
zhusimaji
103 天前
还好吧,现在都有专门的优化了,比如 Attention 有 flash attention 最近看 openai 新一代注意力机制 Lightning Attention-2:无限序列长度、恒定算力开销、更高建模精度。
think9999
103 天前
我认为:Transformer 不缺乏跨维度关系捕捉能力。甚至,它比 CNN 可以捕捉等多的维度关系。
之前有个图像识别的例子用 Transformer 来做,从结果可以验证。
其实,Transformer 里面用了很多 attention ,不是只有 1 个,是很多个,越大的基于 Transformer 的模型,里面的 attention 数量越大(非线性增长)。 而每 1 个 attention 就是去找一个关系, 那么多 attention 它其实就是在遍历找关系。
我认为它就类似于 Faster R-CNN 检测一个目标,几乎就是在用算力去框一个对象,只要算力足够,那么目标就一定能被检测出来。
icetea12138
103 天前
我还以为你说变形金刚呢
Morriaty
103 天前
目前主流的大模型都是高维度 embedding ,维度之间本身就是默认正交的,简单理解,假设有个低维 128 维度的 embedding ,我可以手动组合 d1d2 组合维度作为 d129 维,再手动组合 d1d3 组合作为 d130 维,这是交叉特征 FM 的思想。只不过在深度神经网络时代( bert )之后,手动组合特征变成了直接设置为高维度 embedding ,让网络自己去学习这种“特征组合”。


@zhusimaji 另外请问下,MHA 全称是啥,挺感兴趣的,但我没查到
neopenx
103 天前
你可能不熟悉矩阵乘法把。Q·K 的注意力矩阵乘法是[2,3]@[3, 2], 也就是做了 2x2 四次向量点积,每个点积都用到了全部三维。这是单头注意力情况。维度更高需要用多头减少每组点积向量的维度,避免参与的维度过多导致注意力不 diverse
pipapa
103 天前
@Morriaty multi-head-attention
Morriaty
103 天前
@pipapa 哦哦我还以为是专门用于推荐设计的算法,类似于 DIN 之类的,难怪我查不到🤣
LeeReamond
103 天前
@flyv2x 所以 transformer 的维度关系捕捉能力可以认为是 W(QKV)的这一个(三个)全连接层的关系?

@neopenx 你要不要重新看看你都写的啥
zhusimaji
103 天前
@Morriaty 有人回答了
neopenx
103 天前
@LeeReamond 并没有啥问题啊。你的维度困惑在于把 Q·K 理解成逐元素向量乘法了..上面一堆回答都歪了..
zhangyichent
103 天前
@neopenx 我也觉得你说的对头
lrigi
103 天前
楼主后面不是还有个*V 吗,attention 本身关注的就是不同词之间的关系
liangzhh25
103 天前
@neopenx 我理解 op 的问题也是你说的那样 hhh
liangzhh25
103 天前
发现说的有点不对,transformer 的注意力确实是两个词的 q 和 k 在各自的维度相乘,求和计算得到的,这个注意力本身就有点类似 cv 的空间注意力。也能理解,要是维度之间还要计算相关的话,attention 计算量就要爆炸了。以上是个人理解。
liangzhh25
103 天前
再补充一点,一般注意力结构后面都会再接个 mlp 或者 ffn ,这里会有通道维度上的全连接,通过多个 attn-mlp 结构,应该是能实现 op 说的跨维度信息捕捉的能力。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX