AddEmbeddings
添加两个嵌入向量,并将结果作为归一化向量返回。
格式
AddEmbeddings ( v1 ; v2 )
参数
v1
和 v2
- 包含相同维度的嵌入向量的任何文本表达式、文本字段或容器字段。
返回的数据类型
文本、容器
原始版本
22.0
说明
该函数对两个嵌入向量执行向量加法,并以归一化向量返回结果。归一化将生成的向量集中于其语义方向,而不是其大小,这是比较或操纵嵌入的标准做法。
使用此函数结合由向量表示的两个概念的语义含义。例如,添加“我喜欢狗”的向量和“我喜欢猫”的向量可能会导致一个更接近“我喜欢宠物”或“我喜欢狗和猫”的概念的向量。这在语义搜索中可以拓宽概念,或者在数据分析中寻找聚合含义时很有用。
如果 v1
和 v2
是文本,则必须为 JSON 数组的形式。不过,通常使用嵌入向量作为二进制容器数据可以提高性能。
注释
-
嵌入向量必须从同一模型生成,以确保兼容性和性能;不支持混合来自不同模型的嵌入向量。
-
该函数在以下情况下返回 "?":
-
如果
v1
和v2
具有不同的维度 -
或者结果是零向量(如果 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 包含文本 “高级” 的嵌入向量。生成的向量可以与执行语义查找脚本步骤一起使用,以找到在语义上接近此组合概念的产品描述。