早期词嵌入模型

- Word2Vec:Google提出的词向量模型,将词语转换为低维向量表示,通过捕捉相邻词语的上下文规律学习语义信息
- 两种架构:
- 连续词袋模型(CBOW):根据上下文预测当前词
- 跳字模型(Skip-Gram):根据当前词预测上下文
- 两种架构:
- GloVe(Global Vectors for Word Representation):斯坦福大学提出,通过构建词语共现概率矩阵训练,擅长捕捉稀疏数据和全局语义信息
- FastText则是由Facebook AI Research团队提出的一种词嵌入模型。它的独特之处在于考虑了词语的子词信息,即将词语分解为字符n-gram,考虑子词信息
上下文相关的词嵌入模型

- 上下文无关模型局限:Word2Vec/GloVe等训练完成后固定,无法根据新语料自适应调整
- Transformer革命:引入自注意力机制,使模型能根据输入上下文动态调整词嵌入
- 代表模型:BERT、XLNet、ALBERT等基于Transformer架构的模型
- 发展历程:从RNN-based模型到Transformer架构的演进,实现从静态到动态嵌入的转变
句子嵌入模型和SentenceTransformers框架

- 产生背景:词嵌入无法满足长上下文和语义细节需求
- 核心思想:通过Transformer架构对整句/整段文本进行整体理解
- 框架优势:成为现代嵌入模型的基础架构,支持语义搜索、文本相似度等任务
- 实现原理:基于自注意力机制构建句子级向量表示
常见的开源Sentence Bert Embedding 模型
SentenceTransformers的官方网站:https://sbert.net/
框架功能:提供10,000+预训练模型,支持语义搜索、文本相似度等应用
训练能力:支持自定义模型训练和微调
维护团队:由UKPLab创建,现由Hugging Face维护
使用示例:
1
2
3
4from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = model.encode(sentences)
| 模型名称 | 参数量 | 维度 | 特点 | 使用场景 |
|---|---|---|---|---|
| paraphrase-MiniLM-L6-v2 | 33M | 384 | 为文本相似度和语义检索特别优化,专注于高效低资源环境 | 比较句子或段落相似度;适用于常规NLP任务 |
| all-MiniLM-L6-v2 | 33M | 384 | 更广泛训练的版本,覆盖多种用例;速度快、效果较好 | 搜索引擎优化;多语言支持较弱 |
| all-mpnet-base-v2 | 110M | 768 | 基于MPNet的更大型模型,适合需要更高精度的场景 | 高精度语义检索;需要更多计算资源 |
在Hugging Face上
- 模型集成:几乎所有嵌入模型都提供Sentence Transformers实现
- BGE-M3示例:
- 支持多语言、多功能性
- 同时支持稀疏和密集检索
- 使用方式与标准Sentence Transformer模型一致
多语言嵌入模型
- 代表模型:MUSE、XLM-R、Universal Sentence Encoder
- 现代发展:OpenAI嵌入和BGE-M3等都已支持多语言
- 核心能力:将不同语言映射到同一向量空间实现跨语言语义理解
多模态嵌入模型

- CLIP模型:OpenAI提出的文本-图像对齐模型
- 核心思想:将不同模态(文本、图像、音频等)映射到同一向量空间
- 应用场景:实现跨模态搜索(如用文字搜索图片)
- 技术实现:通过对比学习对齐不同模态的嵌入表示
- 发展前景:为多模态大模型系统奠定基础,实现更丰富的信息交互