组合文本嵌入

问题描述 投票:0回答:1

将文本嵌入组合成一个然后在向量数据库中搜索的最佳方法是什么?

我正在尝试创建一个推荐系统,因此当用户单击另一个类别时,我会获得文本嵌入并将其添加到“组合嵌入”中。
例如,如果用户点击食物食谱,则用户的提要应该有更多有关食物食谱的结果,而较少有关运动或工作的结果。

我使用以下公式:向量1 +向量2 +向量3 + ... = [(a1+b1+c1),(a2+b2+c2) ...]。但结果不是很好。

openai-api text-processing word-embedding
1个回答
0
投票

将文本嵌入组合成单个向量,然后在向量数据库中进行搜索是语义搜索、文档检索和推荐系统等各种自然语言处理 (NLP) 应用中的常见任务。这是一般方法:

向量表示:首先,您需要将每个文本文档或输入表示为向量。这通常是使用预先训练的词嵌入(如 Word2Vec、GloVe 或 FastText)或更复杂的方法(如 BERT 嵌入)来完成。

聚合:一旦获得文本中每个单词的单词嵌入,您需要将它们聚合成整个文档的单个向量表示。您可以使用多种技术进行聚合:

平均:简单地平均文档中所有词嵌入。 求和:求和所有词嵌入。 加权平均:根据 TF-IDF 分数或其他相关性分数对词嵌入进行加权。 池化:跨词嵌入应用最大池化或均值池化。 Doc2Vec/段落向量:训练模型以直接生成文档级嵌入。 矢量数据库:获得所有文档的聚合嵌入后,您可以在矢量数据库中对它们进行索引。受欢迎的选择包括:

FAISS:同时支持CPU和GPU的高性能相似性搜索库。 Annoy:另一个用于近似最近邻搜索的高效库。 带矢量插件的 Elasticsearch:如果您使用 Elasticsearch,则可以使用矢量插件等插件对矢量嵌入执行相似性搜索。 搜索:当您想要搜索相似文档时,您可以使用与文档相同的过程来计算查询文本的嵌入,然后在向量数据库中执行相似性搜索。这将根据向量表示返回最相似的文档。

© www.soinside.com 2019 - 2024. All rights reserved.