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

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

配置组件

PAI-Studio支持通过可视化或PAI命令的方式,配置组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 请选择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 -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列为可选列。