Transformer中的相对位置编码

2020 年 11 月 28 日 AINLP


最近要开始使用Transformer去做一些事情了,特地把与此相关的知识点记录下来,构建相关的、完整的知识结构体系。

以下是要写的文章,本文是这个系列的第二十二篇,需要前面文章的同学点击链接进入文章列表

Overall

今天看一篇稍微简单的知识,那就是相对位置编码,虽然知识内容比较简单,但是确是Transformer中不可或缺的一个知识点。

最初是的Transformer使用的是三角函数进行位置编码,生成的都是固定的编码。这些固定编码被当做位置编码传送给模型。

这些固定的编码有两个缺点:

  1. 固定,所以capacity可能不如学习到的embedding大。
  2. 无法发现相对关系,假设A和B有相关关系,A和B的相对位置不变,但绝对位置发生了变化,那么用固定编码则无法发现这个关系。

回顾Transformer

在Transformer中,经过attention层的值计算方式如下:

其中αij是权重,计算方式:

上面三个公式和原始的Transformer中的公式是等价的。

相对位置编码

相对位置编码为每个不同的位置对都定义了两个向量,分别是αijV和αijK。在计算的时候,将上面的公式进行修改。

为每个位置对定义两个向量还是无法完成提取相对位置信息的,而且,空间复杂度也是N^2,所以,为了泛化和节省时间复杂度,将每个位置对用位置的差来代替。

对应的公式如下:

k对应着窗口大小,超过窗口就按照窗口最远的那个值进行计算。

实验效果

在翻译任务上,尤其是EN-DE上效果有明显的提升。

Bert系列计划写50篇相关文章,欢迎感兴趣的同学关注公众号【雨石记】

参考文献

  • [1]. Shaw, Peter, Jakob Uszkoreit, and Ashish Vaswani. "Self-attention with relative position representations." arXiv preprint arXiv:1803.02155 (2018).

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入AINLP技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注NLP技术交流

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
5

相关内容

【AAAI2021】双级协作变换器Transformer图像描述生成
专知会员服务
26+阅读 · 2021年1月26日
【NeurIPS2020-华为】DynaBERT:具有自适应宽度和深度的动态BERT
【NeurIPS 2020】融入BERT到并行序列模型
专知会员服务
25+阅读 · 2020年10月15日
【Mila】通用表示Transformer少样本图像分类
专知会员服务
32+阅读 · 2020年9月7日
【Google】多模态Transformer视频检索,Multi-modal Transformer
专知会员服务
101+阅读 · 2020年7月22日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
65+阅读 · 2020年1月2日
ExBert — 可视化分析Transformer学到的表示
专知会员服务
30+阅读 · 2019年10月16日
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
听说你还没读过 Bert 源码?
AINLP
7+阅读 · 2019年8月7日
BERT源码分析PART I
AINLP
38+阅读 · 2019年7月12日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
面试题:文本摘要中的NLP技术
七月在线实验室
15+阅读 · 2019年5月13日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
BERT大火却不懂Transformer?读这一篇就够了
大数据文摘
11+阅读 · 2019年1月8日
利用 Universal Transformer,翻译将无往不利!
谷歌开发者
5+阅读 · 2018年9月4日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
15+阅读 · 2020年2月5日
Arxiv
4+阅读 · 2019年12月2日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2019年2月18日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
VIP会员
相关VIP内容
【AAAI2021】双级协作变换器Transformer图像描述生成
专知会员服务
26+阅读 · 2021年1月26日
【NeurIPS2020-华为】DynaBERT:具有自适应宽度和深度的动态BERT
【NeurIPS 2020】融入BERT到并行序列模型
专知会员服务
25+阅读 · 2020年10月15日
【Mila】通用表示Transformer少样本图像分类
专知会员服务
32+阅读 · 2020年9月7日
【Google】多模态Transformer视频检索,Multi-modal Transformer
专知会员服务
101+阅读 · 2020年7月22日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
BERT进展2019四篇必读论文
专知会员服务
65+阅读 · 2020年1月2日
ExBert — 可视化分析Transformer学到的表示
专知会员服务
30+阅读 · 2019年10月16日
相关资讯
绝对干货!NLP预训练模型:从transformer到albert
新智元
13+阅读 · 2019年11月10日
听说你还没读过 Bert 源码?
AINLP
7+阅读 · 2019年8月7日
BERT源码分析PART I
AINLP
38+阅读 · 2019年7月12日
一文详解Google最新NLP模型XLNet
PaperWeekly
17+阅读 · 2019年7月1日
面试题:文本摘要中的NLP技术
七月在线实验室
15+阅读 · 2019年5月13日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
详解谷歌最强NLP模型BERT(理论+实战)
AI100
11+阅读 · 2019年1月18日
BERT大火却不懂Transformer?读这一篇就够了
大数据文摘
11+阅读 · 2019年1月8日
利用 Universal Transformer,翻译将无往不利!
谷歌开发者
5+阅读 · 2018年9月4日
相关论文
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
15+阅读 · 2020年2月5日
Arxiv
4+阅读 · 2019年12月2日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2019年2月18日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Top
微信扫码咨询专知VIP会员