嵌入是一种特殊的数据表示格式,机器学习模型和算法可以轻松使用。 嵌入是一段文本的语义含义的信息密集表示。 每个嵌入是浮点数的一个向量,向量空间中两个嵌入之间的距离与原始格式的两个输入之间的语义相似性相关。 例如,如果两个文本相似,则它们的向量表示形式也应该相似。 嵌入支持检索系统(例如 Azure AI 搜索(推荐))和 Azure 数据库(例如 Azure Cosmos DB for MongoDB vCore、Azure SQL 数据库和 Azure Database for PostgreSQL 灵活服务器)中的矢量相似性搜索。
嵌入捕获向量空间中的语义相似性,从而能更轻松地对表示字词的大型输入进行机器学习。 因此,您可以使用嵌入来确定两个文本区块在语义上是否相关或相似,并提供一个分数来评估相似性。
Azure OpenAI 嵌入通常依赖于余弦相似性来计算文档和查询之间的相似性。
从数学角度来看,余弦相似性测量投射至多维空间中的两个向量之间的角度的余弦值。 这一度量是有帮助的,因为如果两个文档因为大小而在欧氏距离上相距甚远,它们之间也还能存在一个较小的角度,让我们能得出它们具有较高的余弦相似性。 有关余弦相似性等式的详细信息,请参阅余弦相似性。
要识别相似的文档,另一种方法是计算文档之间相同的单词数。 这种方法是无法处理大规模文档的,因为在较大规模的文档中通常会检测到大量相同的单词,甚至对于话题不同的文档也是如此。 因此,余弦相似性可以提供更有效的替代方案。
- 通过我们的嵌入教程,详细了解如何使用 Azure OpenAI 和嵌入执行文档搜索。
- 使用 Azure Cosmos DB for MongoDB vCore、Azure Cosmos DB for NoSQL、Azure SQL 数据库或 Azure Database for PostgreSQL - 灵活服务器存储嵌入内容并执行矢量(相似性)搜索。
- 使用 Microsoft Fabric 的实时智能中的 Eventhouse 作为矢量数据库
- 使用 series_cosine_similarity 函数进行相似度搜索。