X:是指某单词的向量,transformer是分别计算word embedding和position embedding并将两者相加得到向量X。

Embedding Embeddings 是一种将现实世界的对象和关系表示为向量的密集数值表示形式,把字或词转为向量的动作或行为。在机器学习/深度学习中我们用向量表示物体的,这个物体可以是一个单词、一条语句、一个序列、一件商品、一个动作、一本书、一部电影等。拿到语料之后,首先需要做一些必要的清理工作,如清理特殊符号、格式转换、过滤停用词等,然后进行分词、索引化,再利用相关模型或算法把单词、词等标识符向量化。最后输出给下游任务,如下图:

现在主流的分词处理工具是BPE, 好处是不需要像jieba一样需要开发者保存二维数据 图片描述增加了主流分词工具标注。
词嵌入或预训练模型是关键,它们的质量好坏直接影响下游任务的效果。如word2vec、Transformer、BERT、ALBERT等方法。刷新了自然语言处理、语言识别、推荐任务、搜索排序等任务在性能方面的纪录(文字引自 啥是Embedding(嵌入技术), 大牛童鞋们也都是认为的)
Transformer中包含两种Embedding:
PS: 向量矩阵理解 假设有一个1000千万的数据按词(早期按字去切分)切分, 再根据词表大小建立了一个数据矩阵或lookup的一张表,该矩阵或表的特点如下:
将得到的单词表示向量矩阵(每一行是一个单词的向量x) 传入Encoder中,经过6个 Encoder block 后可以得到句子所有单词的编码信息矩阵 C,如下图:

Transformer的Encoder的6层中,每一层的结构相同,经过6层的结构处理,每一层的输出是下一层的输出。
单词向量矩阵用 Xn∗dX_{n*d}Xn∗d 表示, n是句子中单词个数,d 是表示向量的维度 (论文中 d=512)。每一个 Encoder block 输出的矩阵维度与输入完全一致。
将Encoder输出的编码信息矩阵C传递到Decoder中,Decoder依次会根据当前翻译过的第i个单词,翻译下一个单词(i+1),如下图所示。在使用的过程中,翻译到第i+1单词时候需要通过Mask操作遮盖住(i+1)之后的单词。
在Transformer中Decoder的6层结构,每一步都会结合 Encoder 输出的编码信息矩阵 C 执行,最后输出预测结果
下图展示了 Transformer 使用时候的大致流程: Decoder接收了Encoder的编码矩阵C,然后首先输入一个翻译f起始符 "",预测第一个单词 "I";然后输入翻译开始符 "" 和单词 "I",预测单词 "like",以此类推。

后记:笔者笔记+线下查阅资料整理而成,如还有错误指出定改。
Transformer模型详解 - 笔记提纲
【参考】
阅读量:2021
点赞量:0
收藏量:0