主題模型用於在一系列文檔中發現抽象主題(topic)的一種統計模型,在PAI平台,您可以通過給PLDA組件設定topic參數值,從而讓每篇文檔抽象出不同主題。
LDA(Latent Dirichlet allocation)是一種主題模型,它可以按照機率分布的形式給出文檔集中每篇文檔的主題。LDA也是一種無監督學習演算法,在訓練時您無需手工標註的訓練集,僅需要在文檔集中指定主題的數量K即可(K即為PLDA參數topic)。
LDA首先由David M. Blei、Andrew Y. Ng和Michael I. Jordan於2003年提出,在文本挖掘領域應用於文本主題識別、文本分類和文本相似性計算等方面。
組件配置
您可以使用以下任意一種方式,配置PLDA組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
頁簽 | 參數 | 參數描述 |
欄位設定 | 選擇特徵列 | 選擇參與訓練的特徵列。 |
參數設定 | 主題個數 | 設定LDA的輸出的主題個數。 |
Alpha |
| |
beta |
| |
burn In 迭代次數 | Burn In 迭代次數,必須小於總迭代次數,預設值為100。 | |
總迭代次數 | 正整數,非必選,預設值為150。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
-project algo_public
-DinputTableName=lda_input
–DtopicNum=10
-topicWordTableName=lda_output;
參數名稱 | 是否必選 | 描述 | 類型 | 預設值 |
inputTableName | 是 | 輸入表的名稱。 | STRING | 無 |
inputTablePartitions | 否 | 輸入表中,參與訓練的分區。系統支援以下格式:
說明 指定多個分區時,分區之間使用英文逗號(,)分隔。 | STRING | 輸入表的所有分區 |
selectedColNames | 否 | 輸入表中用於LDA的列名。 | STRING | 輸入表中所有的列名 |
topicNum | 是 | Topic的數量,取值範圍為[2, 500]。 | 正整數 | 無 |
kvDelimiter | 否 | Key和Value間的分隔字元。取值:
| STRING | 英文冒號(:) |
itemDelimiter | 否 | Key和Key間的分隔字元。取值:
| STRING | 空格 |
alpha | 否 |
| FLOAT | 0.1 |
beta | 否 |
| FLOAT | 0.01 |
topicWordTableName | 是 | topic-word頻率貢獻表。 | STRING | 無 |
pwzTableName | 否 |
| STRING | 無,即不輸出 |
pzwTableName | 否 |
| STRING | 無,即不輸出 |
pdzTableName | 否 |
| STRING | 無,即不輸出 |
pzdTableName | 否 |
| STRING | 無,即不輸出 |
pzTableName | 否 |
| STRING | 無,即不輸出 |
burnInIterations | 否 | Burn In迭代次數,且取值必須小於totalIterations。 | 正整數 | 100 |
totalIterations | 否 | 迭代次數。 說明 z是主題,w是詞,d是文檔。 | 正整數 | 150 |
enableSparse | 否 | 是否是kv輸入,選擇kv輸入或分詞結果。取值範圍如下:
| BOOL | true |
coreNum | 否 | 與參數memSizePerCore配對使用,預設系統會根據輸入資料量計算所起Instance的數量,即取值為-1。 | 正整數 | -1 |
memSizePerCore | 否 | 單個節點記憶體大小,單位MB。範圍為[1024, 64*1024]。預設系統自動計算每個節點的記憶體大小,即取值為-1。 | 正整數 | -1 |