embedding模型有哪些
时间: 2025-01-23 13:11:21 浏览: 53
### 常用的Embedding模型
#### 1. 词袋(Bag of Words, BoW)模型
BoW是一种简单的文本表示方法,通过统计单词在文档中的频率来构建向量。这种方法忽略了词语顺序,但能有效捕捉词汇分布特征[^2]。
#### 2. Word2Vec
Word2Vec由Google提出,利用神经网络学习词向量。它有两种主要架构:CBOW(Continuous Bag of Words)和Skip-Gram。前者根据上下文预测目标词;后者则相反,给定单个词预测其周围可能出现的其他词。这种技术能够捕获语义关系,在低维空间内表达复杂的语言结构。
#### 3. GloVe (Global Vectors for Word Representation)
斯坦福大学开发的GloVe也是一种流行的词嵌入算法。不同于Word2Vec依赖局部窗口内的共现信息,GloVe采用全局矩阵分解的方式训练得到高质量的词向量。具体来说就是建立一个大型稀疏矩阵记录所有词汇间的联合概率分布情况,再对其进行因子化获得最终结果。
#### 4. FastText
Facebook AI Research推出的FastText不仅考虑整个单词本身还兼顾子字符级别的n-gram组合形式作为输入单元参与建模过程。这使得即使面对未登录的新颖或罕见字串也能较好地推断出合理的表征向量。
#### 5. BERT系列预训练语言模型
BERT(Bidirectional Encoder Representations from Transformers),及其后续改进版本如RoBERTa、ALBERT等,则代表了当前最先进的深度双向Transformer编码器框架下的大规模无监督自回归/掩码语言模型家族成员之一。这些模型能够在理解句子层面的意义上取得优异成绩,并且支持微调适应特定下游任务的需求。
除了上述经典方案外,还有专门为跨语言场景设计的多语言版BERT(M-BERT),以及针对中文优化过的ERNIE等多个变种可供选择。另外值得注意的是最新发布的BGE模型也加入了这一行列,提供专门面向中英双语环境的支持选项[^1]。
```python
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')
sentences = ['This framework generates embeddings for each input sentence',
'Sentences are passed as a list of string.']
embeddings = model.encode(sentences)
print(embeddings.shape) # 输出形状为(2, 384), 表明两个句子被转换成了长度为384的向量
```
阅读全文
相关推荐

















