先这样答
RNN 的两个致命缺陷是顺序计算无法并行,以及长距离信息会逐步衰减。第一个缺陷来自计算顺序:第 N 步必须等待第 N-1 步完成,所以训练过程不能把所有位置同时算出来,训练规模也很难上去。
第二个缺陷来自信息传递距离。第 1 个词的信息要经过连续的隐藏状态,才能传到后面的位置。传到第 800 个词时,这个信息基本已经耗尽。序列越长,前面内容对后面内容的影响越弱。
Self-Attention 让每个 token 直接访问序列中的任意位置。长距离依赖不再需要沿着序列逐步传递,而是可以直接访问目标信息。同时,Self-Attention 可以对所有位置并行计算。它同时解决了 RNN 的顺序计算问题和长距离信息衰减问题。
面试官会怎么追问
-
「你说的无法并行,具体卡在哪里?」 RNN 在第 N 步计算时,需要先拿到第 N-1 步的结果。这个依赖关系决定了计算必须按顺序进行。后续位置不能提前独立计算。
-
「长距离信息为什么会衰减?」 第 1 个词的信息需要经过连续的隐藏状态,才能传到更后面的位置。每经过一步,信息都会继续传递和衰减。到了第 800 个词,前面的信息基本已经耗尽。
-
「Attention 解决了这两个问题吗?」 解决了。Self-Attention 让每个 token 直接访问任意位置,所以长距离依赖不需要逐步传递。它还可以对所有位置并行计算,因此不再受 RNN 顺序计算的限制。
回答的坑
- 不要只说 RNN 不能并行,还要说明第 N 步必须等待第 N-1 步完成。
- 不要把长距离信息衰减说成信息完全消失,底稿中的表述是传到第 800 个词时基本耗尽。
同系列的题
—— 本题完 ——