BERT 是不是多头的,有没有位置编码,注意力机制;还是仅仅就是向量映射
目录
- BERT 是不是多头的,有没有位置编码,注意力机制;还是仅仅就是向量映射
- 1. 注意力机制(特别是“自注意力”)
- 2. 多头注意力
- 3. BERT 有位置信息:位置编码(在BERT中是“位置嵌入”)
- 整体的BERT架构
- 与“传统向量映射”的对比
- 结论
- BM25和BGE的编码方式
- 1. BM25:关键词匹配的“数学标尺”
- 2. BGE:深度语义理解的“神经网络”
- 对比总结
- 现代检索的最佳实践:两者结合
- 传统的、主流的嵌入模型(如早期的Word2Vec句向量、Doc2Vec,以及基于BERT的[CLS]池化或平均池化方法)只为整段输入文本生成一个“单一的、固定维度的向量”,不能够理解语义
- 为什么传统方法会丢失层级信息?
- 后果是什么?
- 现代进展:如何捕捉层级语义?
- 1. **密集检索中的“词级”或“段级”表示**
- 2. **ColBERT 模型及其思想**
- 3. **多向量表示法**
- 4. **层次化编码器**
- 总结
BERT绝不仅仅是向量映射。它是一个极其复杂的、基于Transformer编码器架构的深度神经网络,而多头注意力机制和位置编码正是其心脏和骨骼。**
1. 注意力机制(特别是“自注意力”)
这是BERT的灵魂。它的目的不是简单地生成词向量,而是让模型在编码一个词时,能够动态地、有区分地关注到输入序列中所有其他的词,从而理解上下文。
- 工作原理:对于句子中的每个词(例如“银行”),自注意力机制会计算它与句子中所有词(包括它自己)的关联分数。这个分数决定了在编码当前“银行”时,应该从“河边的”、“存款”、“利率”这些词中分别吸收多少信息。
- 作用:这解决了传统词向量(如Word2Vec)的“一词多义”问题。通过动态的上下文交互,“银行”在“河边的银行”和“银行存款”中会得到截然不同的上下文表示。
2. 多头注意力
这是注意力机制的强大升级版。BERT不是只做一次注意力计算,而是并行地做很多次(例如12次或24次,即12个或24个“头”)。
- 工作原理:每个“头”都有一套独立的参数,可以学习关注句子中不同类型的依赖关系。例如:
- 一个头可能专门关注语法结