ビジュアルモデリングの条件付き確率場(CRF)コンポーネントは、シーケンスラベリングタスク向けに線形チェーンCRFモデルをトレーニングします。線形チェーンCRFは、出力変数がマルコフ確率場(MRF)を構成する条件付き確率分布モデルです。CRFはさまざまな予測シナリオで使用できます。特にアノテーションシナリオでは、線形チェーンCRFが主に使用されます。背景については、「条件付き確率場」をご参照ください。
コンポーネントの設定
パイプラインページまたは PAI コマンドを使用して、条件付き確率場コンポーネントを設定します。
方法 1:パイプラインページでの設定
Platform for AI (PAI) の Machine Learning Designer(旧称:Machine Learning Studio)のパイプラインページで、以下のパラメーターを設定します。
| タブ | パラメーター | 説明 |
|---|---|---|
| フィールド設定 | ID 列 | 各サンプルの ID を含む列。サンプルは n タプル形式で格納されます。 |
| 特徴列 | アノテーション対象の単語とその特徴量(存在する場合)。 | |
| ターゲット列 | 選択する列。 | |
| パラメーター設定 | 特徴生成テンプレート | どのコンテキスト特徴量を生成するかを定義するテンプレート。デフォルト:[-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 正則化係数 | L1 正則化の重み。値が大きいほどスパース性が高まります。デフォルト:1。 | |
| L2 正則化係数 | L2 正則化の重み。デフォルト:0。 | |
| 最大反復回数 | L-BFGS 最適化アルゴリズムの最大反復回数。デフォルト:100。 | |
| 収束しきい値 | 反復間の対数尤度の変化がこの値を下回るとトレーニングを停止します。デフォルト:0.00001。 | |
| チューニング | コア数 | コア数。デフォルトではシステムが決定します。 |
| コアあたりのメモリサイズ | コアあたりのメモリ量。デフォルトではシステムが決定します。 |
特徴生成テンプレートの理解
テンプレート内の各項目は [row_offset:col_index] 形式に従います。ここで:
| フィールド | 意味 | 例 |
|---|---|---|
row_offset | 現在のトークンに対する相対位置。0 = 現在のトークン、-1 = 前のトークン、1 = 次のトークン。 | -2、-1、0、1、2 |
col_index | 特徴列内の列インデックス。0 = 最初の特徴列、1 = 2 番目の特徴列。 | 0、1 |
/ で結合された項目は、複数の位置を 1 つの特徴量に統合する共起特徴量を形成します。
| テンプレート項目 | 意味 |
|---|---|
[0:0] | 現在のトークンにおける特徴列 0 の値 |
[-1:0] | 前のトークンにおける特徴列 0 の値 |
[-1:0]/[0:0] | 前のトークンと現在のトークンにおける特徴列 0 の共起 |
[0:1] | 現在のトークンにおける特徴列 1 の値 |
方法 2:PAI コマンドの使用
SQL Script コンポーネントを使用して PAI コマンドを呼び出します。詳細については、「SQL Script」をご参照ください。
モデルのトレーニング
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 | いいえ | ラベル列を除くすべての列 | 入力テーブルからの特徴列。 |
labelColName | はい | — | 予測対象のラベル列。 |
idColName | はい | — | サンプルラベルを含む列。 |
outputTableName | はい | — | トレーニング済みモデルを書き込むテーブル。 |
outputTablePartitions | いいえ | すべてのパーティション | 出力モデルテーブルに書き込むパーティション。 |
template | いいえ | 特徴量生成テンプレート | 特徴生成を制御するテンプレート。形式:<template_item>,<template_item>,...。各項目は [row_offset:col_index]/[row_offset:col_index]/... |
freq | いいえ | 1 | 特徴量の最小頻度しきい値。この値未満の出現回数を持つ特徴量は破棄されます。 |
iterations | いいえ | 100 | 最適化の最大反復回数。 |
l1Weight | いいえ | 1.0 | L1 正則化の重み。L-BFGS アルゴリズムに適用されます。 |
l2Weight | いいえ | 1.0 | L2 正則化の重み。L-BFGS アルゴリズムに適用されます。 |
epsilon | いいえ | 0.0001 | 収束しきい値。連続する 2 回の反復間で対数尤度の変化がこの値を下回るとトレーニングを停止します。L-BFGS アルゴリズムに適用されます。 |
lbfgsStep | いいえ | 10 | L-BFGS オプティマイザーが使用する履歴ステップ数。L-BFGS アルゴリズム専用です。 |
threadNum | いいえ | 3 | モデルトレーニング時の並列スレッド数。 |
lifecycle | いいえ | — | 出力テーブルの保持期間。 |
coreNum | いいえ | システムが決定 | コア数。 |
memSizePerCore | いいえ | システムが決定 | コアあたりのメモリ量。 |
予測の実行
トレーニング後、新しいシーケンスにラベルを付けるために crf_predict コマンドを使用します。
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 | いいえ | ラベル列を除くすべての列 | 入力テーブルからの特徴列。 |
labelColName | いいえ | — | ラベル列。予測時には省略可能です。 |
IdColName | はい | — | サンプルラベルを含む列。 |
resultColName | いいえ | prediction_result | 出力テーブルにおける予測ラベルの列名。 |
scoreColName | いいえ | prediction_score | 予測信頼度スコアの列名。 |
detailColName | いいえ | — | ラベルごとのスコア詳細を格納する列名。 |
outputTableName | はい | — | 予測結果を書き込むテーブル。 |
outputTablePartitions | いいえ | すべてのパーティション | 出力テーブルに書き込むパーティション。 |
modelTableName | はい | — | トレーニング済みモデルを含むテーブル。 |
modelTablePartitions | いいえ | すべてのパーティション | モデルテーブルから読み取るパーティション。 |
lifecycle | いいえ | — | 出力テーブルの保持期間。 |
coreNum | いいえ | システムが決定 | コア数。 |
memSizePerCore | いいえ | システムが決定 | コアあたりのメモリ量。 |
使用例
この例では、CoNLL チャンキングデータセットを使用して CRF モデルをトレーニングし、新しいデータに対して予測を実行します。
入力データ形式
入力テーブルはトークンごとに 1 行を含みます。各文は共通の sentence_id で識別されます。label 列は IOB2 表記を使用してチャンク境界をマークします。
| ラベル | 意味 |
|---|---|
B-<TYPE> | <TYPE> 型のチャンクの最初のトークン <TYPE> |
I-<TYPE> | チャンク内部の継続トークン |
O | どのチャンクにも属さないトークン |
| 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 |
出力データ
説明
出力におけるラベル列は省略可能です。
| 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 |