本文为您介绍Designer提供的语义向量距离算法组件。
基于算法语义向量结果(如Word2Vec生成的词向量),计算给定的词(或者句子)的扩展词(或者扩展句),即计算其中某一向量距离最近的向量集合。其中一个用法是,基于Word2Vec生成的词向量结果,根据输入的词返回最为相似的词列表。
组件配置
您可以使用以下任意一种方式,配置语义向量距离组件参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 | 参数 | 描述 |
字段设置 | id所在列名 | 输入其唯一标识列ID所在列名。默认为空,即输入表中的所有向量参与计算。 输入端口2的id列表格式为一列,每一行一个ID。例如:
|
向量的列名列表 | 如f1,f2。 | |
参数设置 | 输出的距离最近的向量的数目 | 默认值为5。 |
距离的计算方式 | 支持如下计算方式:
默认值为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 |