本文為您介紹Designer提供的Word2Vec算法組件。
Word2Vec算法組件利用神經網絡,通過訓練,將詞映射為K維度空間向量,且支持對表示詞的向量進行操作并和語義相對應。輸入為單詞列或詞匯表,輸出為詞向量表和詞匯表。
使用說明
Word2Vec組件的上游需要接入詞頻統計組件。
詞頻統計的輸出結果為三元組,即詞和詞的統計。組件下游接入Word2Vec組件,Word2Vec組件會先將數據整理成單個單詞的形式,后續會按照整個Doc來處理。
組件配置
您可以使用以下任意一種方式,配置Word2Vec組件參數。
方式一:可視化方式
在Designer工作流頁面配置組件參數。
頁簽 | 參數 | 描述 |
字段設置 | 選擇單詞列 | 用來進行訓練的單詞列。 |
參數設置 | 單詞特征維度 | 單詞的特征維度數量。取值范圍為0~1000,默認值為100。 |
語言模型 | 訓練使用的語言模型。取值范圍為skip-gram模型和cbow模型,默認值為skip-gram模型。 | |
單詞窗口大小 | 單詞的窗口大小。取值范圍為正整數,默認值為5。 | |
使用隨機窗口 | 是否使用隨機窗口。默認使用。 | |
截斷最小詞頻 | 取值范圍為正整數,默認值為5。 | |
采用hierarchical softmax | 是否采用HIERARCHICAL SOFTMAX。默認采用。 | |
負采樣 | 負采樣的窗口大小。默認值為0,表示不可用。 | |
向下采樣閾值 | 向下采樣的閾值。默認值為0,表示不可用。 | |
起始學習速率 | 取值大于0,默認值為0.025。 | |
迭代次數 | 取值大于等于1,默認值為1。 | |
執行調優 | 核心數 | 默認為系統自動分配。 |
每個核的內存大小 | 默認為系統自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL腳本組件進行PAI命令調用,詳情請參見SQL腳本。
pai -name Word2Vec
-project algo_public
-DinputTableName=w2v_input
-DwordColName=word
-DoutputTableName=w2v_output;
參數名稱 | 是否必選 | 描述 | 默認值 |
inputTableName | 是 | 輸入詞匯表的名稱。 | 無 |
inputTablePartitions | 否 | 輸入詞匯表中參與分詞的分區名稱。格式為 | 無 |
wordColName | 是 | 單詞列名。單詞列中每行為一個單詞,換行符用</s>表示。 | 無 |
inVocabularyTableName | 否 | 對輸入詞匯表執行wordcount操作后的輸出結果。 | 系統會對輸出表執行wordcount操作 |
inVocabularyPartitions | 否 | 對輸入詞匯表執行wordcount操作后的輸出結果中的分區名稱。 | inVocabularyTableName對應表的所有分區 |
layerSize | 否 | 單詞的特征維度數量。取值范圍為0~1000。 | 100 |
cbow | 否 | 訓練使用的語言模型。取值范圍為0(skip-gram模型)和1(cbow模型)。 | 0 |
window | 否 | 單詞的窗口大小。取值范圍為正整數。 | 5 |
minCount | 否 | 截斷的最小詞頻。取值范圍為正整數。 | 5 |
hs | 否 | 是否采用HIERARCHICAL SOFTMAX。取值范圍為0(不采用)和1(采用)。 | 1 |
negative | 否 | 負采樣的窗口大小。取值范圍為正整數,0表示不可用。 | 0 |
sample | 否 | 向下采樣的閾值。取值范圍為1e-3~1e-5。0表示不可用。 | 0 |
alpha | 否 | 取值大于0。 | 0.025 |
iterTrain | 否 | 取值大于等于1。 | 1 |
randomWindow | 否 | 指定單詞窗口的展示方式。取值范圍為0(不隨機,其值由window參數指定)和1(大小在1~5間隨機)。 | 1 |
outVocabularyTableName | 否 | 輸出詞匯表的名稱。 | 無 |
outputTableName | 是 | 輸出詞向量表的名稱。 | 無 |
lifecycle | 否 | 輸出表的生命周期。取值范圍為正整數。 | 無 |
coreNum | 否 | 核心數,需要與memSizePerCore參數同時設置才生效。取值范圍為正整數。 | 系統自動分配 |
memSizePerCore | 否 | 內存數,需要與coreNum參數同時設置才生效。取值范圍為正整數。 | 系統自動分配 |
示例
輸入詞匯表如下。
說明word2vec只能接收詞頻統計的右輸出節點作為輸入。
輸出結果
第一列為對應的詞輸出,第二列之后為對應的embedding結果,維度由layerSize參數指定。
常見問題
報錯“Vocab size is zero! vocab_size: 0”,表示詞典為空,調小minCount參數值,即可解決。