Doc2Vec是一種用於產生文檔向量的機器學習演算法,通過將文檔ID視為特殊詞進行訓練,學習與文檔ID對應的句向量和詞向量。該演算法能夠實現文章到向量的映射,使得文檔之間的語義關係可以通過向量空間中的距離進行比較。輸入為詞彙表,輸出為文檔向量表、詞向量表或詞彙表。
使用限制
支援的計算引擎為MaxCompute。
組件配置
方式一:可視化方式
在Designer工作流程頁面添加Doc2Vec組件,並在介面右側配置相關參數:
參數類型 | 參數 | 描述 |
欄位設定 | 文檔ID列名 | 用來進行訓練的文檔列名。 |
文檔內容 | 用來進行訓練的詞彙,以空格分隔。 | |
參數設定 | 單詞的特徵維度 | 單詞的特徵維度數量。取值範圍為0~1000,預設值為100。 |
語言模型 | 訓練使用的語言模型。取值範圍為
| |
單詞視窗大小 | 單詞的視窗大小。取值範圍為正整數,預設值為5。 | |
截斷的最小詞頻 | 取值範圍為正整數,預設值為5。 | |
Hierarchical Softmax | 是否採用HIERARCHICAL SOFTMAX。預設採用。 | |
Negative Sampling | 負採樣的視窗大小。取值範圍為正整數,預設值為5,0表示不可用。 | |
向下採樣閾值 | 向下採樣的閾值。取值範圍為1e-3~1e-5,預設值為1e-3,0表示不可用。 | |
開始學習速率 | 取值大於0,預設值為0.025。 | |
訓練的迭代次數 | 取值大於等於1,預設值為1。 | |
Window是否隨機 | 指定單詞視窗的展示方式。取值範圍為大小在1~5間隨機和不隨機,其值由window參數指定,預設值為不隨機,其值由window參數指定。 | |
執行調優 | 計算的核心數 | 預設為系統自動分配。 |
每個核心的記憶體(MB) | 預設為系統自動分配。 |
方式二:PAI命令方式
使用PAI命令配置Doc2Vec組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name pai_doc2vec
-project algo_public
-DinputTableName="d2v_input"
-DdocIdColName="docid"
-DdocColName="text_seg"
-DoutputWordTableName="d2v_word_output"
-DoutputDocTableName="d2v_doc_output";參數名稱 | 是否必選 | 預設值 | 描述 |
inputTableName | 是 | 無 | 輸入詞彙表的名稱。 |
inputTablePartitions | 否 | 無 | 輸入詞彙表中參與分詞的分區名稱。格式為 |
docIdColName | 是 | 無 | 用來進行訓練的文檔列名。 |
docColName | 是 | 無 | 用來進行訓練的詞彙,以空格分隔。 |
layerSize | 否 | 100 | 單詞的特徵維度數量。取值範圍為0~1000。 |
cbow | 否 | 0 | 訓練使用的語言模型。取值範圍為0(skip-gram模型)和1(cbow模型)。 |
window | 否 | 5 | 單詞的視窗大小。取值範圍為正整數。 |
minCount | 否 | 5 | 截斷的最小詞頻。取值範圍為正整數。 |
hs | 否 | 1 | 是否採用HIERARCHICAL SOFTMAX。取值範圍為0(不採用)和1(採用)。 |
negative | 否 | 5 | 負採樣的視窗大小。取值範圍為正整數,0表示不可用。 |
sample | 否 | 1e-3 | 向下採樣的閾值。取值範圍為1e-3~1e-5,預設值為1e-3,0表示不可用。 |
alpha | 否 | 0.025 | 取值大於0。 |
iterTrain | 否 | 1 | 取值大於等於1。 |
randomWindow | 否 | 1 | 指定單詞視窗的展示方式。取值範圍為0(不隨機,其值由window參數指定)和1(大小在1~5間隨機)。 |
outVocabularyTableName | 否 | 無 | 輸出詞彙表名稱。 |
outputWordTableName | 是 | 無 | 輸出詞向量表名稱。 |
outputDocTableName | 是 | 無 | 輸出文檔向量表名稱。 |
lifecycle | 否 | 無 | 輸出表的生命週期。取值範圍為正整數。 |
coreNum | 否 | 系統自動分配 | 核心數,需要與memSizePerCore參數同時設定才生效。取值範圍為正整數。 |
memSizePerCore | 否 | 系統自動分配 | 記憶體數,需要與coreNum參數同時設定才生效。取值範圍為正整數。 |