全部產品
Search
文件中心

Platform For AI:PLDA

更新時間:Jul 13, 2024

主題模型用於在一系列文檔中發現抽象主題(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工作流程頁面配置組件參數。

表 1. 參數說明

頁簽

參數

參數描述

欄位設定

選擇特徵列

選擇參與訓練的特徵列。

參數設定

主題個數

設定LDA的輸出的主題個數。

Alpha

P(z/d) 的先驗狄利克雷分布的參數。

beta

P(w/z) 的先驗狄利克雷分布的參數。

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

輸入表中,參與訓練的分區。系統支援以下格式:

  • Partition_name=value

  • name1=value1/name2=value2:多級分區

說明

指定多個分區時,分區之間使用英文逗號(,)分隔。

STRING

輸入表的所有分區

selectedColNames

輸入表中用於LDA的列名。

STRING

輸入表中所有的列名

topicNum

Topic的數量,取值範圍為[2, 500]

正整數

kvDelimiter

Key和Value間的分隔字元。取值:

  • 空格

  • 英文逗號(,)

  • 英文冒號(:)

STRING

英文冒號(:)

itemDelimiter

Key和Key間的分隔字元。取值:

  • 空格

  • 英文逗號(,)

  • 英文冒號(:)

STRING

空格

alpha

P(z/d)的先驗狄利克雷分布的參數。取值為(0, ∞)

FLOAT

0.1

beta

P(w/z)的先驗狄利克雷分布的參數。取值為(0, ∞)

FLOAT

0.01

topicWordTableName

topic-word頻率貢獻表。

STRING

pwzTableName

P(w/z)輸出表。

STRING

無,即不輸出P(w/z)

pzwTableName

P(z/w)輸出表。

STRING

無,即不輸出P(z/w)

pdzTableName

P(d/z)輸出表。

STRING

無,即不輸出P(d/z)

pzdTableName

P(z/d)輸出表。

STRING

無,即不輸出P(z/d)

pzTableName

P(z)輸出表。

STRING

無,即不輸出P(z)

burnInIterations

Burn In迭代次數,且取值必須小於totalIterations

正整數

100

totalIterations

迭代次數。

說明

z是主題,w是詞,d是文檔。

正整數

150

enableSparse

是否是kv輸入,選擇kv輸入或分詞結果。取值範圍如下:

  • true:kv輸入

  • false:非kv輸入

BOOL

true

coreNum

與參數memSizePerCore配對使用,預設系統會根據輸入資料量計算所起Instance的數量,即取值為-1。

正整數

-1

memSizePerCore

單個節點記憶體大小,單位MB。範圍為[1024, 64*1024]。預設系統自動計算每個節點的記憶體大小,即取值為-1。

正整數

-1

輸入和輸出設定

  • 輸入

    資料必須為疏鬆陣列的格式。可以通過三元組轉KV組件進行轉換。

    輸入格式如輸入格式所示。

    圖 1. 輸入格式輸入格式

    • 第一列:docid。

    • 第二列:單詞及詞頻的kv資料。

  • 輸出:

    輸出依次為:topic-word頻率貢獻表、單詞|主題輸出表、主題|單詞輸出表、文檔|主題輸出表、主題|文檔輸出表、主題輸出表。

    topic-word頻率貢獻表的輸出格式如輸出格式所示。

    圖 2. 輸出格式輸出格式