语义向量距离

本文为您介绍Designer提供的语义向量距离算法组件。

基于算法语义向量结果(如Word2Vec生成的词向量),计算给定的词(或者句子)的扩展词(或者扩展句),即计算其中某一向量距离最近的向量集合。其中一个用法是,基于Word2Vec生成的词向量结果,根据输入的词返回最为相似的词列表。

组件配置

您可以使用以下任意一种方式,配置语义向量距离组件参数。

方式一:可视化方式

Designer工作流页面配置组件参数。

页签

参数

描述

字段设置

id所在列名

输入其唯一标识列ID所在列名。默认为空,即输入表中的所有向量参与计算。

输入端口2id列表格式为一列,每一行一个ID。例如:

1
2
4
6
8

向量的列名列表

f1,f2。

参数设置

输出的距离最近的向量的数目

默认值为5。

距离的计算方式

支持如下计算方式:

  • euclidean

  • cosine

  • manhattan

默认值为euclidean。

距离的阈值

当两个向量的距离小于此值时输出,默认值为+∞。

执行调优

计算的核心数

默认自动分配。

每个核心的内存(MB)

默认自动分配。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本

PAI -name SemanticVectorDistance 
    -project algo_public    
    -DinputTableName="test_input"    
    -DoutputTableName="test_output"    
    -DidColName="word"    
    -DvectorColNames="f0,f1,f2,f3,f4,f5"    
    -Dlifecycle=30

参数名称

是否必选

描述

默认值

inputTableName

输入表名。

inputTablePartitions

输入表中指定参与计算的分区。

输入表的所有分区

outputTableName

输出表名。

idTableName

需要计算相近向量的ID的列表所在表名。格式为一列,每一行一个ID。默认为空,即输入表中的所有向量参与计算。

idTablePartitions

ID表中参与计算的分区列表,默认为所有分区。

idColName

ID所在列名。

3

vectorColNames

向量的列名列表,如f1,f2。

topN

输出的距离最近的向量的数目。取值范围[1,+∞]。

5

distanceType

距离的计算方式。

euclidean

distanceThreshold

距离的阈值。当两个向量的距离小于此值时输出。取值范围(0,+∞)。

+∞

lifecycle

输入出表的生命周期,取值为正整数。

coreNum

参与计算的核心数,取值为正整数。

系统自动计算

memSizePerCore

每个核心需要的内存,取值为正整数。

系统自动计算

示例

输出表为四列,分别是original_id、near_id、distance、rank。

original_id

near_id

distance

rank

hello

hi

0.2

1

hello

xxx

xx

2

Man

Woman

0.3

1

Man

xx

xx

2