AddEmbeddings

添加两个嵌入向量,并将结果作为归一化向量返回。

格式 

AddEmbeddings ( v1 ; v2 )

参数 

v1v2 - 包含相同维度的嵌入向量的任何文本表达式、文本字段或容器字段。

返回的数据类型 

文本、容器

原始版本 

22.0

说明 

该函数对两个嵌入向量执行向量加法,并以归一化向量返回结果。归一化将生成的向量集中于其语义方向,而不是其大小,这是比较或操纵嵌入的标准做法。

使用此函数结合由向量表示的两个概念的语义含义。例如,添加“我喜欢狗”的向量和“我喜欢猫”的向量可能会导致一个更接近“我喜欢宠物”或“我喜欢狗和猫”的概念的向量。这在语义搜索中可以拓宽概念,或者在数据分析中寻找聚合含义时很有用。

如果 v1v2 是文本,则必须为 JSON 数组的形式。不过,通常使用嵌入向量作为二进制容器数据可以提高性能。

注释 

  • 嵌入向量必须从同一模型生成,以确保兼容性和性能;不支持混合来自不同模型的嵌入向量。

  • 该函数在以下情况下返回 "?":

    • 如果 v1v2 具有不同的维度

    • 或者结果是零向量(如果 v1 和 v2 相同但符号相反,就会发生这种情况),因为该函数不能归一化零向量

示例 1 

AddEmbeddings ( "[1, 2, 3]" ; "[4, 5, 6]" ) 返回 [0.40160966445124940405, 0.56225353023174917677, 0.722897396012249005]。加法是 [1+4, 2+5, 3+6] = [5, 7, 9]。然后,该函数将此向量归一化,并将其作为 JSON 数组返回,因为两个输入都是文本。

示例 2 

AddEmbeddings ( Products::Smartphone_Embedding ; Products::Premium_Embedding ) 返回表示“高级智能手机”组合概念的归一化向量的容器数据。

本示例假设 Products::Smartphone_Embedding 字段包含文本“智能手机”的嵌入向量,Products::Premium_Embedding 包含文本 “高级” 的嵌入向量。生成的向量可以与执行语义查找脚本步骤一起使用,以找到在语义上接近此组合概念的产品描述。