条件随机场

条件随机场CRF(Conditional Random Field)是一种概率图模型,用于在给定输入随机变量的条件下,预测输出随机变量的联合概率分布。CRF的特点是假设输出随机变量构成马尔可夫随机场。可用于不同的预测问题,主要应用于标注问题中,其中最典型的是线性链(linear chain)。

配置组件

方式一:可视化方式

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

1

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

iterations

100

优化的最大迭代次数。

l1Weight

1.0

L1正则的参数权重。

l2Weight

1.0

L2正则的参数权重。

epsilon

0.0001

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

lbfgsStep

10

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

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

    prediction_result

    输出表中result列名

    scoreColName

    prediction_score

    输出表中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列为可选列。