对一一个语言模型,假设预训练时最多见过长度为 4 的语句,且包含“三楼你好”和“你好四楼”,那么
使用绝对位置编码时,对于词语“你好”:
楼主你好:这词我认识,“你好”在 3 、4 位置,1 、2 位置是一个对象,意思是在和楼主问好
你好楼主:这词我认识,“你好”在 1 、2 位置,3 、4 位置是一个对象,意思是在和楼主问好
二楼你好:这词我认识,“你好”在 3 、4 位置,1 、2 位置是一个对象,意思是在和二楼问好
xx 楼主你好: 啥玩意?这词我认识,但是“你好”在 5 、6 位置代表什么意思啊?
使用相对位置编码训练后:
二楼你好:这词我认识,“你好”在某个两 token 对象的后面,意思是在和二楼问好
楼主你好: 这词我认识,“你好”在某个两 token 对象的后面,意思是在和楼主问好
今天楼主出门和小红约会,两人在地铁口见面后,小红说:“你好楼主。”:这词我认识,“你好”在某个两 token 对象的前面,意思是在和楼主问好。
如上所述,相对位置指的是 token 与 token 之间的相对位置,模型通过学习相对位置,能更好的捕捉局部的语义。而不会出现,“没见过,这词在这个位置是啥意思?”的情况。同时增强了模型的外推性。只用四长度语句训练后,能外推到更长的情景下。
PS ,这论坛注册完还要等好久才能回复,不然昨天就回复你了。。。