すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:PMI

最終更新日:Apr 02, 2026

PMI コンポーネントは、ドキュメントコーパス内のすべての単語ペアにおける点ごとの相互情報量 (PMI) を計算し、共起頻度に基づいて 2 つの単語がどの程度強く関連しているかを定量化します。Machine Learning Designer のパイプラインでこのコンポーネントを使用して、意味のある単語の関連性を特定します。

PMI の仕組み

情報理論において、相互情報量 (MI) は、ある確率変数の情報を知ることで、別の確率変数の不確実性がどの程度減少するかを測定する指標です。PMI はこれを単語ペアに拡張し、ペアごとに単一の関連性スコアを生成します。

式: PMI(x,y) = ln(p(x,y) / (p(x) × p(y))) = ln(#(x,y) × D / (#x × #y))

ここで:

  • #(x,y) — 単語ペア (x, y) が共起する回数

  • D — ペアの総数

  • #x#y — 各単語の出現回数

単語 x と y が同じウィンドウ内に同時に出現するたびに、コンポーネントは #x#y、および #(x,y) の値を 1 ずつ増やします。

PMI スコアの解釈:

PMI 値意味
正の値2 つの単語が偶然予測されるよりも頻繁に共起することを示します。意味のある関連性がある可能性が高いです。
ゼロに近い値強い関連性がないことを示します。
ネガティブ2 つの単語が偶然予測されるよりも低い頻度で共起することを示します。
出現頻度によるフィルタリングを行わない場合、出現頻度の低い単語は非常に限られたコンテキストでしか出現しないため、人為的に高い PMI スコアが生成される可能性があります。minCount を設定して、信頼できる統計を算出するには出現頻度が低すぎる単語をフィルタリングしてください。

アルゴリズムの背景情報については、「Pointwise mutual information」をご参照ください。

コンポーネントの設定

方法1:PAI コンソールでの設定

Machine Learning Designer のパイプラインページで、次のパラメーターを設定します。

タブパラメーター説明
フィールド設定スペースで区切られた単語を含むドキュメントの列単語がスペースで区切られているドキュメントの列です。
パラメーター設定単語の最小出現頻度このしきい値を下回る出現回数の単語はフィルタリングされます。デフォルト値:5。出現頻度の低い単語が PMI スコアを水増ししている場合は、この値を大きくしてください。
パラメーター設定ウィンドウサイズ現在の単語の右側にある、共起ウィンドウを形成する単語の数です。たとえば、ウィンドウサイズが 5 の場合、現在の単語はすぐ右にある 5 つの単語のそれぞれとペアになります。
チューニングコンピューティングコア数計算に使用する CPU コアの数です。デフォルト値:システムによって決定されます。
チューニングコアあたりのメモリサイズ (単位: MB)各コアに割り当てられるメモリです。デフォルト値:システムによって決定されます。

方法2:PAI コマンドでの設定

SQL スクリプトコンポーネントまたは ODPS SQL ノードを使用して PAI コマンドを実行します。コマンド名は PointwiseMutualInformation です。

PAI -name PointwiseMutualInformation
    -project algo_public
    -DinputTableName=maple_test_pmi_basic_input
    -DdocColName=doc
    -DoutputTableName=maple_test_pmi_basic_output
    -DminCount=0
    -DwindowSize=2
    -DcoreNum=1
    -DmemSizePerCore=110;

パラメーター

パラメーター必須説明デフォルト値
inputTableNameはい入力テーブル
outputTableNameはい出力テーブル
docColNameはい単語分割後のドキュメント列の名前。単語はスペースで区切る必要があります。
windowSizeいいえ現在の単語の右側にある、共起ウィンドウを形成する単語の数です。たとえば、値が 5 の場合は、現在の単語の右側に隣接する 5 つの単語を示します。行内のすべての単語
minCountいいえ単語の最小出現頻度です。これより出現回数が少ない単語はフィルタリングされます。出現頻度の低い単語によって信頼性の低い PMI スコアが生成されている場合は、この値を大きくしてください。5
inputTablePartitionsいいえ入力テーブルから使用するパーティションを Partition_name=value のフォーマットで指定します。複数のパーティションを指定する場合は、name1=value1/name2=value2 のように指定します。複数のエントリはコンマで区切ります。すべてのパーティション
lifecycleいいえ出力テーブルのライフサイクル
coreNumいいえCPU コアの数です。有効な値:1~9999。システムによって決定されます
memSizePerCoreいいえコアあたりのメモリ (MB 単位)。有効な値:1024~65536。システムによって決定されます

この例では、入力テーブルの作成、PMI コマンドの実行、出力の確認という一連のワークフローを説明します。

入力

ODPS SQLノードを使用して、maple_test_pmi_basic_input という名前のテーブルを作成します。詳細については、「MaxCompute SQLタスクを開発する」をご参照ください。

CREATE TABLE maple_test_pmi_basic_input AS
SELECT * FROM (
    SELECT "w1 w2 w3 w4 w5 w6 w7 w8 w8 w9" AS doc
    UNION ALL SELECT "w1 w3 w5 w6 w9" AS doc
    UNION ALL SELECT "w0" AS doc
    UNION ALL SELECT "w0 w0" AS doc
    UNION ALL SELECT "w9 w1 w9 w1 w9" AS doc
) tmp;

結果のテーブルでは、各行に 1 つのドキュメントが含まれ、単語はスペースで区切られています。

doc
w1 w2 w3 w4 w5 w6 w7 w8 w8 w9
w1 w3 w5 w6 w9
w0
w0 w0
w9 w1 w9 w1 w9

コマンドの実行

SQL スクリプトコンポーネントまたは ODPS SQL ノードを使用して、次のコマンドを実行します。

PAI -name PointwiseMutualInformation
    -project algo_public
    -DinputTableName=maple_test_pmi_basic_input
    -DdocColName=doc
    -DoutputTableName=maple_test_pmi_basic_output
    -DminCount=0
    -DwindowSize=2
    -DcoreNum=1
    -DmemSizePerCore=110;

出力

出力テーブル maple_test_pmi_basic_output には、単語ペアごとに 1 行が含まれます。

説明
word1word2単語ペアです。
word1_countword2_countコーパス全体における各単語の総出現回数です。
co_occurrences_countウィンドウ内でペアが共起する回数です。
pmi共起率の自然対数です。正の値は、単語が偶然予測されるよりも頻繁に共起することを示します。負の値は偶然よりも少なく、ゼロは関連性がないことを示します。

maple_test_pmi_basic_output の出力例:

word1word2word1_countword2_countco_occurrences_countpmi
w0w02212.0794415416798357
w1w110101-1.1394342831883648
w1w210310.06453852113757116
w1w31072-0.08961215868968704
w1w51081-0.916290731874155
w1w9101240.06453852113757116
w2w33710.4212134650763035
w2w43410.9808292530117262
w3w47410.13353139262452257
w3w57820.13353139262452257
w3w6771-0.42608439531090014
w4w54810.0
w4w64710.13353139262452257
w5w68720.13353139262452257
w5w78410.0
w5w98121-1.0986122886681098
w6w77410.13353139262452257
w6w8771-0.42608439531090014
w6w97121-0.9650808960435872
w7w84720.8266785731844679
w8w8771-0.42608439531090014
w8w97122-0.2719337154836418
w9w912122-0.8109302162163288

次のステップ