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

343 天前
 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 近视眼,其他现实建模量基不同的全都寄

2035 次点击
所在节点    Python
29 条回复
lrigi
342 天前
Yuhyeong
342 天前
@lrigi 啊?我意思就是 vit 大部分 sota 啊,op 说 vit 在 nlp 之外不行,我在举反例啊。
Yuhyeong
342 天前
@lrigi 哥们,不说反问句就看不到了吗😂
lrigi
342 天前
@Yuhyeong 哦 抱歉我理解错了🙏讲道理楼主真的做了几年 nlp 吗这也太外行了
sujin190
342 天前
怎么记得 QK 好像是矩阵乘法,也就是点乘,哪里来的 Q 第一维度只和 K 的第一维度产生作用,就不符合点乘规则吧,和后面 V 才是普通乘法才有你说的这个问题吧,你从哪找的这个公式都看不出是点乘还是普通乘法了
flyv2x
342 天前
@LeeReamond transformer 不只是生成查询( Q )、键( K )和值( V )的一个全连接层,还有多头注意力机制,FFNN 都有用到。
简要流程:
1.每个词通过词嵌入模型被转换为一个固定长度的向量(词嵌入向量),这个过程是自然语言处理( NLP )中的常规步骤。(词嵌入向量每个维度代表不同的潜在语义属性)
2.在自注意力机制中将每个词的嵌入向量与三个不同的权重矩阵相乘,分别得到 Q (查询)、K (键)和 V (值)向量。这里用到的三个权重矩阵 WQ,WK,WV 是模型通过训练学习到的参数。
3.Softmax(Q·K/sqrt(x))->求出注意力分数,注意力分数会对值向量 V 进行加权求和,以生成每个位置的输出向量。这样,*每个输出向量就是输入序列中所有位置的信息的加权组合*,其中的权重反映了每个输入位置对当前输出位置的重要性。

实际 Transformer 模型中,会使用“多头注意力”机制(multi-head-attention),即并行地进行多次上述 2,3 注意力计算,每次使用不同的 Q 、K 、V 权重矩阵。这允许模型在不同的表示子空间中捕获信息。然后,所有头的输出会被拼接起来,并通过另一个线性层进行变换,以生成最终的多头注意力层的输出。
summerzhen
342 天前
时间预测领域的近几年的几个 sota:Informer ,FEDformer ,Autoformer ,PatchTST ,都是魔改 Transformer
LeeReamond
341 天前
@lrigi 工作不做这个,用 NLP 属于业余在做,不值一提。

@flyv2x 是我想错了,不过按照这个说法,先是 W(...)到 Q,K ,然后 Q·K 这步会消融原有的维度和空间关系,因为他们之间没有经过非线性激活,所以还是可以认为是经过了一个线性层,然后后面 FFN 外加 1.5 个线性层这样。我现在不是很确定,比如输入就是一楼里写的[1, 3, 2]这个形状,忽略编码部分以后,看数学公式似乎它的 3 维度和 2 维度两个方向上似乎在关系捕捉上没有什么区别?

@Yuhyeong 榜都看过,不傻的都知道行,只不过行不行是相对而言。以前在跟做 CV 方向的朋友聊天中谈过,相对 NLP 领域 Transformer 是完全成为新 baseline ,CV 这边 ViT 的很多方法只是看起来不错,具体需要 argue 的地方也很多,并没有成为行业新标准,同样不能秒杀 CNN 。效率问题只是一方面,另一方面是 patch+全局感受域带来的近视眼问题,ImageNet 这样脱离实际应用场景的低分场景下跑分性能不错。
Yuhyeong
341 天前
@LeeReamond 没完全替代 cnn 是因为 cv 领域本身更偏向边缘设备落地,比 nlp 有更高的实用需求,落地边缘设备的话谁会选择性能难以优化的 Transformer 呢,杀鸡也没必要上牛刀,不像 NLP ,有几个出名的 NLP 项目是不依赖于高性能工作站的? Transformer 可不是仅仅看起来不错而已。
> Q 的第一维只会和 K 的第一维发生关系
你主要还是没学习基本原理,做这么久 NLP 实在不应该,QKV 矩阵怎么算的你都不清楚。QKV 是完全依赖全局序列关系得到的,完全考虑了每个分段的语义信息和相关性,根本不存在你说的只会和当前状态有关系。他替代 RNN 类时序模型,最大的原因就是 transfomer 能捕捉更多更完整的上下文信息,而且 QKV 矩阵本身就已经从高纬度语义空间上获取了更多的信息。近视眼是因为 attention 本身就会专注于人类视角中认为更关键的的信息,从 attention 的名字你应该就能注意到了。你不能期望一个小小的 backbone 去解决所有问题,照你这个逻辑,你可以说 cnn 远视眼,所以不好用呢。

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

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

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

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

© 2021 V2EX