本文为您介绍PAI-Designer(原PAI-Studio)提供的语义向量距离算法组件。

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

组件配置

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

方式一:可视化方式

在PAI-Designer(原PAI-Studio)工作流页面配置组件参数。
页签 参数 描述
字段设置 id所在列名 输入其唯一标识列ID所在列名。默认为空,即输入表中的所有向量参与计算。
输入端口2的id列表格式为一列,每一行一个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