有谁能用大白话简单解释一下相对位置编码是什么意思吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
FlyingBackscratc

有谁能用大白话简单解释一下相对位置编码是什么意思吗?

  •  
  •   FlyingBackscratc Jan 16, 2024 2054 views
    This topic created in 831 days ago, the information mentioned may be changed or developed.

    在看深度学习的绝对位置编码和相对位置编码部分,知乎上解析文章倒是不少,但是看的云里雾里。

    我理解绝对位置编码提出来是为了解决 transformer 不擅长读取顺序的问题,如果不加位置编码的话,那一个元素出现在任意位置,对计算结果的权重都是一样的,所以就加了个位置编码。

    绝对位置编码实际操作上就是加个绝对数,比如规定矩阵输入长度为 10 的 1 维数据:

    [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] 

    然后用三角函数给各个位置单独算个数,比如:

    [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

    然后直接一加得到

    [0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9] 

    后面的注意力就能捕捉到输入的位置信息了。

    如果上面说的没错的话相对位置编码到底是干啥的,看不懂。。。

    7 replies    2024-03-21 16:18:29 +08:00
    Vanderick
        1
    Vanderick  
       Jan 17, 2024
    """在 transformer 中,位置信息是去服务于“attention”去区分序列中不同位置 token:即不同 token ij 之间的前后次序以及间距"""
    绝对位置编码是能缓解位置信息不足的问题,但是问题也不少啊,以你举的这个绝对位置编码之三角式为例(算是理论较优雅的了,比如一定的外推能力,一定的相对次序表达能力):
    1. 这个三角 embedding 过完 attention 后,变成 cos 的形式,无法区分 token 前后次序
    2. 而且这个 cos 形式的距离表达,在过 w 、q 的 project 后也会变形冲散,无法很好的区分 token 的间距
    3. 这个三角式是预定义的,非可训练参数,不够灵活
    FlyingBackscratc
        2
    FlyingBackscratc  
    OP
       Jan 17, 2024
    @Vanderick 外推性在有时在限制输入长度以后好像也不是那么重要。PE 理论有什么总结性的文章吗,现在业界普遍使用的是基于相对位置编码的技术?还是基于可训练位置编码的技术??
    liangzhh25
        3
    liangzhh25  
       Jan 17, 2024
    苏神博客里面 Transformer 升级之路系列里面有好些关于位置编码的文章,推荐看看,我也是刚学的小白。
    按我的理解,绝对位置编码是给序列位置相关项,而相对位置编码是在绝对位置编码的推导下使 位置相关项 转化为 相对位置相关项。具体可以看 https://www.kexue.fm/archives/8130 的(3)式和(4)式
    FlyingBackscratc
        4
    FlyingBackscratc  
    OP
       Jan 17, 2024
    @liangzhh25 说实话看不懂,需要一些工程角度的直观解释
    baka009
        5
    baka009  
       Jan 18, 2024   2
    对一一个语言模型,假设预训练时最多见过长度为 4 的语句,且包含“三楼你好”和“你好四楼”,那么

    使用绝对位置编码时,对于词语“你好”:
    楼主你好:这词我认识,“你好”在 3 、4 位置,1 、2 位置是一个对象,意思是在和楼主问好
    你好楼主:这词我认识,“你好”在 1 、2 位置,3 、4 位置是一个对象,意思是在和楼主问好
    二楼你好:这词我认识,“你好”在 3 、4 位置,1 、2 位置是一个对象,意思是在和二楼问好
    xx 楼主你好: 啥玩意?这词我认识,但是“你好”在 5 、6 位置代表什么意思啊?

    使用相对位置编码训练后:
    二楼你好:这词我认识,“你好”在某个两 token 对象的后面,意思是在和二楼问好
    楼主你好: 这词我认识,“你好”在某个两 token 对象的后面,意思是在和楼主问好
    今天楼主出门和小红约会,两人在地铁口见面后,小红说:“你好楼主。”:这词我认识,“你好”在某个两 token 对象的前面,意思是在和楼主问好。

    如上所述,相对位置指的是 token 与 token 之间的相对位置,模型通过学习相对位置,能更好的捕捉局部的语义。而不会出现,“没见过,这词在这个位置是啥意思?”的情况。同时增强了模型的外推性。只用四长度语句训练后,能外推到更长的情景下。

    PS ,这论坛注册完还要等好久才能回复,不然昨天就回复你了。。。
    FlyingBackscratc
        6
    FlyingBackscratc  
    OP
       Jan 19, 2024
    @baka009 感谢,效果很直观,确实有外推性,而且应对输入的鲁棒性更强了。不过具体工程上对数值的操作是怎样的,比如有 1234 ,四个 token 的序列输入,难道是对于所有 attention ,分别生成不同的权重?然后最后还是通过加法的方法加起来?
    baka009
        7
    baka009  
       Mar 21, 2024
    @FlyingBackscratc 吃到两个月的回复
    可以看看这个文章
    https://www.kexue.fm/archives/8130
    相对编码 RoPE 的作者。
    About     Help     Advertise     Blog     API     FAQ     Solana     3808 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 05:04 PVG 13:04 LAX 22:04 JFK 01:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86