条件随机场

本文为您介绍Designer提供的条件随机场算法组件。

条件随机场CRF(conditional random field)是给定一组输入随机变量条件下,另一组输出随机变量条件的概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场可用于不同的预测问题,主要应用于标注问题中,其中最典型的是线性链(linear chain)。详情请参见wiki

组件配置

您可以使用以下任意一种方式,配置条件随机场组件参数。

方式一:可视化方式

Designer工作流页面配置组件参数。

页签

参数

描述

字段设置

请选择ID

样本以N元组的形式存储,ID列为一条样本的唯一ID。

请选择特征列

要进行标注的单词,以及该单词所对应的特征(如果有)。

请选择目标列

选择目标列。

参数设置

特征生成模板

默认值为

[-2:0],[-1:0],[0:0],[1:0],[2:0],[-1:0]/[0:0],
[0:0]/[1:0],[-2:1],[-1:1],[0:1],[1:1],[2:1],
[-2:1]/[-1:1],[-1:1]/[0:1],[0:1]/[1:1],[1:1]/[2:1],
[-2:1]/[-1:1]/[0:1],[-1:1]/[0:1]/[1:1],
[0:1]/[1:1]/[2:1]

低频词过滤阈值

默认值为1。

L1正则项系数

默认值为1。

L2正则项系数

默认值为0。

最大迭代次数

默认值为100。

收敛阈值

默认值为0.00001。

执行调优

核心数

默认自动调整。

每个核的内存大小

默认自动调整。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本

PAI -name=linearcrf    
    -project=algo_public    
    -DinputTableName=crf_input_table    
    -DidColName=sentence_id    
    -DfeatureColNames=word,f1    
    -DlabelColName=label    
    -DoutputTableName=crf_model    
    -Dlifecycle=28    
    -DcoreNum=10

参数名称

是否必选

描述

默认值

inputTableName

输入特征数据表。

inputTablePartitions

输入特征表选择的分区。

全表

featureColNames

输入表选择的特征列。

默认选择全部,自动排除label列。

labelColName

目标列。

idColName

样本标号列。

outputTableName

输出模型表。

outputTablePartitions

输出模型表选择的分区。

全表

template

算法特征生成的模板。

  • 定义

    <template .=. <template_item,<template_item,...,<template_item
    <template_item .=. [row_offset:col_index]/[row_offset:col_index]/.../[row_offset:col_index]
    row_offset .=. integer
    col_index .=. integer>
  • 默认值

    [-2:0],[-1:0],[0:0],[1:0],[2:0],[-1:0]/[0:0],[0:0]/[1:0],[-2:1],[-1:1],[0:1],[1:1],[2:1],[-2:1]/[-1:1],[-1:1]/[0:1],[0:1]/[1:1],[1:1]/[2:1],[-2:1]/[-1:1]/[0:1],[-1:1]/[0:1]/[1:1],[0:1]/[1:1]/[2:1]

freq

过滤特征的参数,算法只保留出现次数大于等于freq的特征。

1

iterations

优化的最大迭代次数。

100

l1Weight

L1正则的参数权重。

1.0

l2Weight

L2正则的参数权重。

1.0

epsilon

收敛误差。L-BFGS的终止条件,即两次迭代之间log-likelihood的差。

0.0001

lbfgsStep

lbfgs优化过程中的历史长度,仅对lbfgs有效。

10

threadNum

模型训练时并行启动线程的数量。

3

lifecycle

输出表的生命周期。

coreNum

核心数。

自动计算

memSizePerCore

内存数。

自动计算

示例

  • 输入数据

    sentence_id

    word

    f1

    label

    1

    Rockwell

    NNP

    B-NP

    1

    International

    NNP

    I-NP

    1

    Corp

    NNP

    I-NP

    1

    ‘s

    POS

    B-NP

    823

    Ohio

    NNP

    B-NP

    823

    grew

    VBD

    B-VP

    823

    3.8

    CD

    B-NP

    823

    %

    NN

    I-NP

    823

    .

    .

    O

  • 预测算法PAI命令

    PAI -name=crf_predict    
        -project=algo_public    
        -DinputTableName=crf_test_input_table    
        -DmodelTableName=crf_model    
        -DidColName=sentence_id    
        -DfeatureColNames=word,f1    
        -DlabelColName=label    
        -DoutputTableName=crf_predict_result    
        -DdetailColName=prediction_detail   
        -Dlifecycle=28    
        -DcoreNum=10

    参数名称

    是否必选

    描述

    默认值

    inputTableName

    输入特征数据表

    inputTablePartitions

    输入特征表选择的分区

    全表

    featureColNames

    输入表选择的特征列

    默认选择全部,自动排除label列。

    labelColName

    目标列

    IdColName

    样本标号列

    resultColName

    输出表中result列名

    prediction_result

    scoreColName

    输出表中score列名

    prediction_score

    detailColName

    输出表中detail列名

    outputTableName

    输出预测结果表

    outputTablePartitions

    输出预测结果表选择的分区

    全表

    modelTableName

    算法模型表

    modelTablePartitions

    算法模型表选择的分区

    全表

    lifecycle

    输出表的生命周期

    coreNum

    核心数

    自动计算

    memSizePerCore

    内存数

    自动计算

  • 输出数据

    sentence_id

    word

    f1

    label

    1

    Confidence

    NN

    B-NP

    1

    in

    IN

    B-PP

    1

    the

    DT

    B-NP

    1

    pound

    NN

    I-NP

    77

    have

    VBP

    B-VP

    77

    announced

    VBN

    I-VP

    77

    similar

    JJ

    B-NP

    77

    increases

    NNS

    I-NP

    77

    .

    .

    O

    说明

    label列为可选列。