Doc2Vec は、トレーニング中にドキュメント ID を特殊な単語として扱うことで、固定長のドキュメントベクターを生成する機械学習アルゴリズムです。単語ベクターとドキュメントベクターを同時に学習し、ベクタースペースでの距離を測定することで、ドキュメント間の意味的関係を比較できます。
Doc2Vec は、次のような場合に利用します:
クエリドキュメントとの類似度によるドキュメントのランク付け
コンテンツレコメンデーションシステムの構築
トピックによるドキュメントのクラスタリング
このアルゴリズムは、入力として語彙テーブルを受け取り、最大で 3 つの出力 (ドキュメントベクターテーブル、単語ベクターテーブル、およびオプションの語彙テーブル) を生成します。
制限事項
Doc2Vec は MaxCompute の計算リソース上でのみ実行されます。
Doc2Vec コンポーネントの構成
PAI コンソール (ビジュアルモデリング) と SQL スクリプトによる PAI コマンドの 2 つの構成方法が利用できます。
PAI コンソールでの構成
ビジュアルモデリングのパイプラインページで、以下のパラメーターを使用して Doc2Vec コンポーネントを構成します。
[フィールド設定] タブ
| パラメーター | 説明 |
|---|---|
| ドキュメント ID 列 | トレーニングに使用されるドキュメント列の名前です。 |
| ドキュメントコンテンツ | トレーニングに使用される単語です。単語はスペースで区切ります。 |
[パラメーター設定] タブ
| パラメーター | 説明 |
|---|---|
| 単語特徴のディメンション数 | 単語ベクターの次元数です。有効な値:0~1000。デフォルト値:100。 |
| 言語モデル | トレーニングに使用するモデルです。有効な値:**Skip-gram モデル**(デフォルト)および **CBOW モデル**。 |
| 単語ウィンドウサイズ | 文脈ウィンドウのサイズです。正の整数を指定する必要があります。デフォルト値:5。 |
| 単語の最小出現頻度 | トレーニングに含める単語の最小出現回数です。このしきい値より少ない回数しか出現しない単語は除外されます。正の整数を指定する必要があります。デフォルト値:5。 |
| 階層的ソフトマックス | トレーニングの最適化に階層的ソフトマックスを使用するかどうかです。デフォルトで選択されています。 |
| ネガティブサンプリング | ネガティブサンプリングのウィンドウサイズです。正の整数を指定する必要があります。デフォルト値:5。値を 0 に設定すると、ネガティブサンプリングが無効になります。 |
| 高頻度単語のダウンサンプリングしきい値 | 高頻度単語をダウンサンプリングする際のしきい値です。有効な値:1e-3~1e-5。デフォルト値:1e-3。値を 0 に設定すると、ダウンサンプリングが無効になります。 |
| 初期学習率 | 学習を開始する際の学習率です。0 より大きい値を指定する必要があります。デフォルト値:0.025。 |
| トレーニング反復回数 | トレーニングの反復回数です。1 以上を指定する必要があります。デフォルト値:1。 |
| ランダムウィンドウの使用 | 単語ウィンドウのモードです。有効な値:**1~5 の範囲内のランダム値** および **ウィンドウパラメーターで指定された値**(デフォルト)。 |
[チューニング] タブ
| パラメーター | 説明 |
|---|---|
| 計算コア数 | 使用する計算コアの数です。デフォルトでは、システムが自動的に値を決定します。 |
| コアごとのメモリサイズ (MB) | コアごとに割り当てられるメモリです。デフォルトでは、システムが自動的に値を決定します。 |
PAI コマンドを使用した構成
PAI コマンドで Doc2Vec コンポーネントを呼び出します。SQL スクリプトで PAI コマンドを実行する方法については、「SQL スクリプト」をご参照ください。
次の例は、最小限の構成を示しています:
PAI -name pai_doc2vec
-project algo_public
-DinputTableName="d2v_input"
-DdocIdColName="docid"
-DdocColName="text_seg"
-DoutputWordTableName="d2v_word_output"
-DoutputDocTableName="d2v_doc_output";入力テーブルには、ドキュメント ID 列 (例:docid) と、単語がスペースで区切られたドキュメントコンテンツ列 (例:text_seg) の、少なくとも 2 つの列が含まれている必要があります。
完全なパラメーターリファレンスは次のとおりです。
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
inputTableName | はい | — | 入力語彙テーブルの名前です。 |
inputTablePartitions | いいえ | — | 入力テーブルから使用するパーティションです。フォーマット:partition_name=value。複数のパーティションの場合は name1=value1/name2=value2 を使用し、パーティションセットはカンマ (,) で区切ります。 |
docIdColName | はい | — | トレーニングに使用されるドキュメント ID 列の名前です。 |
docColName | はい | — | トレーニングに使用されるドキュメントコンテンツ列の名前です。単語はスペースで区切る必要があります。 |
layerSize | いいえ | 100 | 単語ベクターのディメンション数です。有効値:0~1000。 |
cbow | いいえ | 0 | トレーニングモデルです。0 = Skip-gram モデル、1 = CBOW モデル。 |
window | いいえ | 5 | コンテキストウィンドウのサイズです。正の整数である必要があります。 |
minCount | いいえ | 5 | トレーニングに含めるための最小単語出現回数です。正の整数である必要があります。 |
hs | いいえ | 1 | 階層的ソフトマックスを使用するかどうか。0 = 無効、1 = 有効。 |
negative | いいえ | 5 | ネガティブサンプリングのウィンドウサイズです。正の整数である必要があります。ネガティブサンプリングを無効にするには 0 に設定します。 |
sample | いいえ | 1e-3 | 頻出単語をダウンサンプリングするためのしきい値です。有効値:1e-3~1e-5。ダウンサンプリングを無効にするには 0 に設定します。 |
alpha | いいえ | 0.025 | 初期の学習率です。0 より大きい値である必要があります。 |
iterTrain | いいえ | 1 | トレーニングの反復回数です。1 以上である必要があります。 |
randomWindow | いいえ | 1 | 単語ウィンドウのモードです。0 = window で指定された値を使用、1 = 1~5 のランダムな値を使用。 |
outVocabularyTableName | いいえ | — | 出力語彙テーブルの名前です。 |
outputWordTableName | はい | — | 出力単語ベクターテーブルの名前です。 |
outputDocTableName | はい | — | 出力ドキュメントベクターテーブルの名前です。 |
lifecycle | いいえ | — | 出力テーブルのライフサイクルです。正の整数である必要があります。 |
coreNum | いいえ | 自動 | 計算コアの数です。coreNum と memSizePerCore の両方が設定されている場合にのみ有効です。正の整数である必要があります。 |
memSizePerCore | いいえ | 自動 | コアごとのメモリサイズ (MB) です。coreNum と memSizePerCore の両方が設定されている場合にのみ有効です。正の整数である必要があります。 |
参照
ビジュアルモデリングの概要については、「ビジュアルモデリングの概要」をご参照ください。