以下是不同的 embedding 模型:
此外,以 OpenAI 为例,第一代嵌入模型(不推荐)包括:
对于-001 文本嵌入(不是-002,也不是代码嵌入),建议将输入中的换行符(\n)替换为单个空格,因为当存在换行符时可能会有更糟糕的结果。
Embeddings有许多种类别和变体,每种类型的Embeddings都有其特定的设计目标和应用场景,共同点在于它们都致力于将复杂而抽象的对象结构化并压缩到便于计算和比较的数值形式,以下是几种常见的Embeddings类型:[heading3]词嵌入[content]Word2Vec:包括CBOW(Continuous Bag-of-Words)和Skip-Gram模型,由Google提出,用于学习单词之间的语义关系。GloVe(Global Vectors for Word Representation):由斯坦福大学开发,旨在结合全局统计信息和局部上下文窗口的优势来生成单词嵌入。FastText:由Facebook AI团队推出,不仅考虑单个单词,还考虑内部字符n-gram,对于罕见词汇有更好的表现。ELMo(Embeddings from Language Models):利用双向LSTM对整个句子进行建模,产生上下文敏感的单词嵌入。[heading3]情景化话的词嵌入[content]BERT(Bidirectional Encoder Representations from Transformers):由Google推出,利用Transformer架构的预训练模型,能够根据上下文提供动态的单词嵌入。GPT(Generative Pre-training Transformer)及其后续版本GPT-2/3/4:由OpenAI开发,也是基于Transformer的自回归模型,同样能产出上下文相关的嵌入。XLNet、RoBERTa等都是BERT之后改进或扩展的预训练模型。
Doc2Vec:扩展了Word2Vec,能够为整个文档生成统一的向量表示。Average Word Embeddings:将一段文本中所有单词的嵌入取平均作为整体的文本表示。Transformers Sentence Embeddings:如BERT的[CLS]标记对应的向量,或者专门针对句子级别的模型如Sentence-BERT。[heading3]实体/概念嵌入[content]Knowledge Graph Embeddings:如TransE、DistMult、ComplEx等,用于将知识图谱中的实体和关系嵌入到低维向量空间中。[heading3]其他类型[content]图像Embeddings:使用卷积神经网络(CNN)进行图像特征提取,得到的特征向量即为图像嵌入。音频Embeddings:在语音识别和声纹识别中,将声音信号转化为有意义的向量表示。用户/物品Embeddings:在推荐系统中,将用户行为或物品属性映射到低维空间以进行协同过滤或基于内容的推荐。还有一种图Embeddings:是用于学习图结构的表示学习方法,将图中的节点和边映射到低维向量空间中。通过学习图嵌入,可以将复杂的图结构转化为向量表示,以捕捉节点之间的结构和关联关系。这些方法可以通过DeepWalk、Node2Vec、GraphSAGE等算法来实现。图嵌入在图分析、社交网络分析、推荐系统等领域中广泛应用,用于发现社区结构、节点相似性、信息传播等图属性。下面以OpenAI为例继续展开介绍
所有第一代模型(以-001结尾的模型)都使用GPT-3分词器,最大输入为2046个分词。第一代嵌入由五个不同的模型系列生成,这些模型系列针对三个不同的任务进行了调整:文本搜索、文本相似性和代码搜索。搜索模型成对出现:一个用于短查询,一个用于长文档。每个系列最多包括四种质量和速度不同的型号:Davinci是最有能力的,但比其他型号更慢且更昂贵。Ada的能力最差,但速度更快,成本更低。相似性嵌入相似性模型最擅长捕捉文本片段之间的语义相似性。text-similarity-babbage-001 text-similarity-curie-001 text-similarity-davinci-001|文本搜索嵌入文本搜索模型有助于衡量哪些长文档与短搜索查询最相关。使用了两种模型:一种用于嵌入搜索查询,一种用于嵌入要排名的文档。最接近查询嵌入的文档嵌入应该是最相关的。text-search-ada-query-001 text-search-babbage-doc-001 text-search-babbage-query-001 text-search-curie-doc-001 text-search-curie-query-001 text-search-davinci-doc-001 text-search-davinci-query-001|代码搜索嵌入与搜索嵌入类似,有两种类型:一种用于嵌入自然语言搜索查询,一种用于嵌入要检索的代码片段。code-search-ada-text-001 code-search-babbage-code-001 code-search-babbage-text-001|对于-001文本嵌入(不是-002,也不是代码嵌入),我们建议将输入中的换行符(\n)替换为单个空格,因为当存在换行符时我们已经看到更糟糕的结果。