主题模型用于在一系列文档中发现抽象主题(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 |