搜索、广告、推荐算法岗 - Transformer、BERT基础知识汇总
本文旨在整理并汇总搜索、广告、推荐算法岗位中涉及的Transformer、BERT基础知识。以下内容将围绕Transformer、BERT的核心概念、机制及应用进行深入解析。
基础问题
1. 在自注意力(self-attention)机制中,若不乘以QKV参数矩阵,词向量将失去上下文感知能力,无法捕捉到词之间的相互依赖关系。
2. BERT选择mask掉15%的词以平衡模型复杂度和学习效率,其他比例虽可行,但可能影响模型训练和泛化能力。
3. BERT预训练模型输入限制为512个词,主要是由于内存和计算资源的限制,同时考虑两个句子合成是为了兼容并处理双句场景。
4. BERT在第一句前添加[CLS]标志,旨在标识句子的开始,并用于后续任务如分类、问答等。
5. 自注意力(self-attention)的时间复杂度为O(n^2),其中n为词的数量。
6. Transformer通过共享权重矩阵来实现并行化计算,提高了效率,同时权重共享使得模型能够学习到更通用的特征表示。
7. BERT的非线性来源于多层感知器(MLP)的引入,增加了模型的复杂度和表示能力。
8. BERT的三个嵌入(token、位置、段落)直接相加可以对语义产生影响,通过融合不同信息,模型能够更好地理解句子结构。
9. Transformer的点积模型做缩放是为了平衡不同维度的权重,防止权重过大导致梯度消失或爆炸问题。
10. 在处理长文本问题时,BERT采用分段预训练和微调策略,或者使用长序列处理技术,如分词、滑动窗口等方法。
11. 对于输入词向量后的矩阵乘以embedding size的开方操作,目的是调整embedding矩阵的方差,有利于模型训练的稳定性和收敛性。
12. BERT中采用层归一化(LayerNorm)而非批量归一化(BatchNorm),是因为NLP任务输入长度不固定,且内部参数分布可能随时间变化(Internal Covariate Shift),LayerNorm更适应这类情况。
13. BERT需要额外的段落嵌入(segment embedding)以区分句子A和B,这是基于BERT任务设计的需要,确保模型能够理解两个句子间的关系。
14. WordPiece算法通过将单词分解为子词,显著降低了未知词汇率(OOV),并能学习到词汇的结构信息。
15. BERT采用warm-up策略,是为了在训练初期使模型参数学习更为平缓,避免过拟合,逐步提高学习效率。
16. BERT的训练过程中损失函数通常包括语言模型损失(如mask LM)和下一句预测损失(Next Sentence Prediction),用于学习上下文信息和句子关系。
Transformer与BERT
Transformer利用多头自注意力机制和位置编码,作为文本编码器,用于大规模预训练。BERT基于Transformer架构,采用两个损失函数进行预训练,包括mask语言模型和下一句预测任务,以捕捉上下文信息和句子间的依赖。
1. Transformer层由多头注意力、前馈网络和层归一化组成,用于在输入序列中捕获全局依赖。
2. Transformer的位置编码有多种实现方式,包括计数编码、计数+归一化、三角函数编码等,旨在捕捉词序信息。
3. NLP中的MASK问题,涉及不同模型的处理策略,包括RNN、LSTM、Transformer、Decoder、BERT和XLNet等。
经典算法包括LSA、word2vec、glove、fastext和ELMO,它们分别在不同层面上为自然语言处理提供了语义表示和特征提取能力。