A ResNet is an LSTM rotated 90 degrees
把网络的计算过程想象成一个表格
- 横轴是time step,
这是 RNN / LSTM 的天然维度
- 纵轴是depth / layer index
传统 LSTM:沿着横向(时间)走很深,每一步都依赖上一时间步的隐藏状态(有遗忘门、输入门等机制)
- 传统 ResNet:沿着纵向(层)走很深,每一层都把上一层的输出加回来(残差连接)
如果把这个表格整体顺时针/逆时针旋转 90°,横竖轴互换:
- LSTM 就变成了“很多层、每层只走一个时间步”的样子 → 很像 ResNet
- ResNet 就变成了“只有一个‘深度’,但沿着时间走很长”的样子 → 很像 RNN
所以才有了那句“ResNet 是 LSTM 旋转 90 度”的说法,本质是时间维度和深度维度的对偶性。
kimi 这篇文章大家都说是attention 旋转 90 度。
其实就是把上面这个思想再往前推一步:
ResNet 的残差连接是“上一层 → 加到下一层”
那么能不能attention也干类似的事情呢?
让当前 token 去 attend 到前面所有层的同位置隐藏状态,而不是只 attend 同层别的 token。
相当于把 attention 的计算轴也“旋转”了一下:
- 传统 multi-head attention:同一层内,token 之间 attend(横向)
- “90° rotated attention”:同一 token 在不同层之间 attend(纵向),或者混合使用
具体操作,搞了一个Block AttnRes的东西。
这样就得到了一种新的残差形式Residual Attention 。
而且这个东西,其他公司很小改动就能放进去用drop in。
这个改进,效果杠杠的。
点击图片查看原图