全部产品
Search
文档中心

人工智能平台 PAI:PLDA

更新时间:Feb 27, 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. 输出格式输出格式