不用编程,不用数学公式,纯粹用手动方式说明Self Attention机制是如何实现指代替换的。
看下面两段话:
1. 猫过不了街道因为它太宽了。
2. 猫过不了街道因为它太胖了。
作为人类,我们要理解这句话,必须知道“因为”后面说的是什么。而要理解因果关系,必须知道“它”这个词指的什么。当然作为人类,经过快速思考,我们知道第一句话里面的“它”代表街道,换掉后,第一句话成为:
猫过不了街道因为街道太宽了。
第二句话中的“它”代表猫,替换掉后成为:
猫过不了街道因为猫太胖了。
那么假设我们是一台人体计算机,要怎么做呢?
第一步,我们看4个词,其他词略去不看。第一句话和第二句话提纯为:
1a. 猫,街道,它,宽
2a. 猫,街道,它,胖
至于为什么可以这样处理,是因为我们有其他不同的“人”,去处理”过不了“,”因为”,“太”,“了”那些词。
第二步,我们查字典,发现“它”是代词,猫是名词,街道是名词。我们再思考一下代词是做什么用的。于是,我们就知道需要“理解”这段话,我们需要把代词替换成正确的名词。
第三步,我们建两张表:
猫 | 街道 | 宽 | |
猫 | 0 | 0 | 0 |
街道 | 0 | 0 | 0 |
宽 | 0 | 0 | 0 |