このトピックでは、Machine Learning Designerが提供するWord2Vecコンポーネントについて説明します。
Word2Vecコンポーネントは、ニューラルネットワークを使用して、広範なトレーニングに基づいて単語をK次元空間内のベクトルにマッピングします。 コンポーネントは、ベクトルのセマンティクスを示すためにベクトルに対する演算をサポートする。 入力は単語列または語彙であり、出力はベクトルテーブルと語彙です。
使用上の注意
Word2Vecコンポーネントは、下流ノードとしてWord Frequency Statisticsコンポーネントに接続する必要があります。
単語頻度統計コンポーネントは、単語と単語統計を含むトリプルテーブルを生成します。 Word Frequency Statisticsコンポーネントは、Word2Vecコンポーネントの上流ノードとして接続できます。 次に、Word2Vecコンポーネントは、Word Frequency Statisticsコンポーネントによって生成されたデータを取得し、そのデータを単一の単語に変換した後、すべてのデータをドキュメントとして処理します。
コンポーネントの設定
次のいずれかの方法を使用して、Word2Vecコンポーネントを設定できます。
方法1: コンソールのパイプライン構成タブでコンポーネントを構成する
Machine Learning Platform for AI (PAI) コンソールのMachine Learning Designerの [パイプライン構成] タブでコンポーネントを構成します。 次の表に、コンポーネントのパラメーターを示します。
タブ | パラメーター | 説明 |
フィールド設定 | ワード列 | トレーニングに使用される単語列。 |
パラメーター設定 | 単語特徴寸法 | 単語の次元の数。 有効な値: 0 ~ 1000 デフォルト値:100 |
言語モデル | トレーニングに使用される言語モデル。 有効な値: Skip-gramおよびCbow デフォルト値: Skip-gram | |
Wordウィンドウのサイズ | 単語のウィンドウサイズ。 値は正の整数でなければなりません。 既定値:5 | |
ランダムウィンドウ | ランダムウィンドウを使用するかどうかを指定します。 デフォルトでは、ランダムウィンドウが選択されています。 | |
最小ワード切り捨て周波数 | 切り捨ての単語の最小頻度。 値は正の整数でなければなりません。 既定値:5 | |
階層Softmax | 階層型softmaxを使用するかどうかを指定します。 デフォルトでは、Hierarchical Softmaxが選択されています。 | |
ネガティブサンプリング | 負のサンプリングのウィンドウサイズ。 デフォルト値は0で、負のサンプリング機能が使用できないことを示します。 | |
ダウンサンプリングしきい値 | ダウンサンプリングのしきい値。 デフォルト値は0で、ダウンサンプリング機能が使用できないことを示します。 | |
初期学習率 | 初期学習率。 値は0より大きい。 デフォルト値: 0.025 | |
反復回数 | 反復回数。 値は1以上です。 デフォルト値は 1 です。 | |
チューニング | コア数 | コアの数。 デフォルトでは、システムが値を決定します。 |
コアあたりのメモリサイズ | 各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを実行する
PAIコマンドを使用してWord2Vecコンポーネントを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを実行できます。 詳細については、「SQLスクリプト」をご参照ください。 次の表に、このコンポーネントを設定するために使用されるPAIコマンドのパラメーターを示します。
pai -name Word2Vec
-project algo_public
-DinputTableName=w2v_input
-DwordColName=word
-DoutputTableName=w2v_output;
パラメーター | 必須 | 説明 | デフォルト値 |
inputTableName | 可 | 入力語彙の名前。 | None |
inputTablePartitions | 不可 | 入力ボキャブラリの単語セグメンテーションに使用されるパーティションの名前。 この値は、 | None |
wordColName | 可 | 単語列の名前。 単語列の各セルは、単一の単語のみを含む。 </s> タグは改行を示します。 | None |
inVocabularyTableName | 不可 | 入力語彙に対して実行されるwordcount操作の出力。 | システムが出力テーブルに対して実行するwordcount操作 |
inVocabularyPartitions | 不可 | ワードカウント操作が入力語彙に対して実行された後の出力のパーティションの名前。 | inVocabularyTableNameの出力にあるすべてのパーティション |
layerSize | 不可 | 単語の次元の数。 有効な値: 0 ~ 1000 | 100 |
cbow | 不可 | トレーニングに使用される言語モデル。 有効な値: 0と1。 0の値はスキップ・グラム・モデルを示し、1の値はCBOWモデルを示す。 | 0 |
ウwindow | 不可 | 単語のウィンドウサイズ。 値は正の整数でなければなりません。 | 5 |
minCount | 不可 | 切り捨ての単語の最小頻度。 値は正の整数でなければなりません。 | 5 |
hs | 不可 | 階層型softmaxを使用するかどうかを指定します。 有効な値: 0と1。 0の値は、階層的softmaxが使用されないことを示し、1の値は、階層的softmaxが使用されることを示す。 | 1 |
ネガティブ | 不可 | 負のサンプリングのウィンドウサイズ。 値は正の整数でなければなりません。 0の値は、ネガティブサンプル機能が利用できないことを示します。 | 0 |
サンプル | 不可 | ダウンサンプリングのしきい値。 有効値: 1e-3 ~ 1e-5。 値0は、ダウンサンプリング機能が利用できないことを示します。 | 0 |
アルファ | 不可 | 値は0より大きい。 | 0.025 |
iterTrain | 不可 | 値は1以上です。 | 1 |
randomWindow | 不可 | 単語ウィンドウを表示するために使用されるモード。 有効な値: 0と1。 値が0の場合はwindowパラメーターで指定されていることを示し、値が1の場合は1から5までのランダムな値を示します。 | 1 |
outVocabularyTableName | 不可 | 出力ボキャブラリの名前。 | None |
outputTableName | 可 | 出力ベクトルテーブルの名前。 | None |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 値は正の整数でなければなりません。 | None |
coreNum | 不可 | コアの数。 このパラメーターとmemSizePerCoreパラメーターは、両方が設定されている場合にのみ有効になります。 値は正の整数でなければなりません。 | 自動割り当て |
memSizePerCore | 不可 | 各コアのメモリサイズ。 このパラメーターとcoreNumパラメーターは、両方が設定されている場合にのみ有効になります。 値は正の整数でなければなりません。 | 自動割り当て |
よくある質問
エラーメッセージ "Vocab size is zero! 辞書が空の場合、vocab_size: 0 "が報告されます。 この問題を解決するには、minCountパラメーターを小さい値に設定します。