作者:禅与计算机程序设计艺术
1.简介
文本编码是一个很重要的NLP任务,其目的是把文本信息转化成计算机可以理解和处理的形式。传统的词袋模型、TF-IDF、Word Embedding等方法在学习时面临两个主要的问题——维度灾难和空间效率低下。其中,维度灾难指的是高维稀疏向量导致数据稀疏性和泛化能力差,空间效率低下指的是文本向量占用大量内存空间,同时也会造成计算资源消耗过多。因此,提出一种能够捕捉上下文关系的编码器层来解决这一问题成为自然语言处理(NLP)领域的研究热点。
Transformer是Google在2017年提出的基于Attention机制的最新文本编码框架。相比于传统的RNN结构,Transformer由于无需保存记忆状态而实现了更加简洁、内存利用率更高的特性。同时,由于采用了残差网络来增加通道数,使得模型参数规模不断减小,并取得了不错的性能。
那么,什么是Encoder Layer呢?其实,Encoder Layer就是Transformer中的子模块。它由以下几个关键组成:
1.Embedding层:将输入序列进行embedding,得到对应的词向量表示。
2.Positional Encoding层:通过对位置编码(position encoding)的方式给输入序列添加位置信息,使得生成的词向量能够含有位置特征。
3.S