transformer详解
https://www.cnblogs.com/gogoSandy/p/14386998.html
新感悟:
-
transformer的mask主要有两种,一种使padding_mask, 一种使future_mask. padding_mask是将实际不存在的内容mask掉,future_mask是让时序推理的时候让在预测T+1的token时只会用到T及T以前的信息
-
positional embedding, 对输入的位置顺序有要求的时候需要用到,比如文本理解,如果对于位置顺序要求不高的任务,positional embedding可以不用。另外positonal embedding需要满足以下要求:
举个🌰
句1: Dog sit on chair
句2: Cat is sleeping on floor
要想全面的表达位置信息,transformer需要满足以下4个条件 -
相对距离: on和chair,on和floor, sit 和on, sleeping和on的相对距离都是1,它们之间的相对距离相同,且和绝对位置以及句子长度无关
-
绝对位置:dog和cat都是句子的第一个词,它们的绝对位置相同, encoding需要一致
-
句子长度:encoding需要能够generalize到训练样本中unseen的句子长度
为什么这么设计呢?
positional encoding是直接加在word embedding上作为输出,之后会在计算attention的过程中在两两向量内积时被使用,可能会表达类似相对距离越近attention权重越高之类的信息。因此这里表达位置和距离是依赖encoding做向量乘法,而使用sin/cos的好处在于位移和绝对位置无关
https://timodenk.com/blog/linear-relationships-in-the-transformers-positional-encoding/
原文地址:https://blog.csdn.net/ZHANG8023ZHEN/article/details/142577503
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!