本文為您介紹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 |