neptune_ml の features フィールド - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

neptune_mlfeatures フィールド

プロパティ値と RDF リテラルには、さまざまな形式とデータ型があります。機械学習で優れたパフォーマンスを実現するには、これらの値を特徴として知られる数値エンコーディングに変換することが不可欠です。

Neptune ML は、Neptune ML での特徴エンコーディング で説明されているように、データのエクスポートおよびデータ処理手順の一部として、特徴抽出とエンコーディングを実行します。

プロパティグラフデータセットの場合、エクスポートプロセスにより、文字列プロパティおよび複数の値を含む数値プロパティの auto 特徴が自動的に推論されます。単一の値を含む数値プロパティの場合、numerical 特徴を推論します。します。日付のプロパティについては、datetime 特徴を推論します。

自動推論特徴仕様をオーバーライドする場合、またはプロパティにバケット数値、TF-IDF、FastText、または SBERT 仕様を追加する場合は、特徴フィールドを使用して特徴のエンコーディングを制御できます。

注記

使用できるのは features フィールドのみで、RDF データではなく、プロパティグラフデータの特徴仕様を制御します。

自由形式のテキストの場合、Neptune ML はいくつかの異なるモデルを使用して、文字列プロパティ値内のトークンのシーケンスを固定サイズの実数値ベクトルに変換できます。

  • text_fasttextfastText エンコーディングを使用します。これは、fastText がサポートする 5 つの言語のうちの 1 つだけを使用する機能に推奨されるエンコーディングです。

  • text_sbertセンテンス BERT (SBERT) エンコーディングモデルを使用します。これは、text_fasttext がサポートしていないテキストについて推奨されるエンコーディングです。

  • text_word2vecGoogle が最初に公開した Word2Vec アルゴリズムを使用して、テキストをエンコードします。Word2Vec は英語のみをサポートしています。

  • text_tfidfterm frequency–inverse document frequency (TF-IDF) ベクタライザを使用して、テキストのエンコードを行います。TF-IDF エンコーディングは、他のエンコーディングにはない統計機能をサポートします。

features フィールドには、ノードプロパティ特徴の JSON 配列が含まれます。ターゲットオブジェクトには、次のフィールドを含めることができます。

featuresnode フィールド

node フィールドは、特徴頂点のプロパティグラフラベルを指定します。例:

"node": "Person"

頂点に複数のラベルがある場合は、配列を使用してそれらを含めます。例:

"node": ["Admin", "Person"]

featuresedge フィールド

edge フィールドは、特徴エッジのエッジタイプを指定します。エッジタイプは、始点頂点のプロパティグラフラベル、エッジのプロパティグラフラベル、および終点頂点のプロパティグラフラベルを含む配列で構成されます。エッジ特徴を指定するときは、3 つの値すべてを指定する必要があります。例:

"edge": ["User", "reviewed", "Movie"]

エッジタイプの始点または終点頂点に複数のラベルがある場合は、別の配列を使用してラベルを格納します。例:

"edge": [["Admin", "Person"]. "edited", "Post"]

featuresproperty フィールド

プロパティパラメータを使用して、node パラメータで識別される頂点のプロパティを指定します。例:

"property" : "age"

特徴の type フィールドで使用できる値

type パラメータは、定義するフィーチャのタイプを指定します。例:

"type": "bucket_numerical"
type パラメータの使用できる値
  • "auto" — Neptune ML がプロパティタイプを自動的に検出し、適切な特徴エンコーディングを適用するように指定します。auto 特徴には、オプションで separator フィールドも使用できます。

    Neptune ML での自動特徴エンコーディング」を参照してください。

  • "category" — この特徴エンコーディングは、プロパティ値をいくつかのカテゴリの 1 つとして表します。つまり、特徴は 1 つ以上の離散値を取ることができます。category 特徴には、オプションで separator フィールドも使用できます。

    Neptune MLのカテゴリ別特徴」を参照してください。

  • "numerical" — この特徴エンコーディングは、数値プロパティ値を「より大きい」と「より小さい」が意味を持つ連続間隔の数値として表します。

    numerical 特徴には、オプションで normimputerseparator フィールドも使用できます。

    Neptune MLのカテゴリ別特徴」を参照してください。

  • "bucket_numerical" — この特徴エンコーディングは、数値のプロパティ値をバケットまたはカテゴリのセットに分割します。

    たとえば、人の年齢を、子供 (0 ~20 歳)、若年大人 (20 ~ 40 歳)、中年 (40 ~ 60 歳)、および高齢者 (60歳以上) の 4 つのバケットで符号化できます。

    bucket_numerical 特徴には rangebucket_cnt フィールドが必須で、オプションで、imputer および/または slide_window_size フィールドを使用できます。

    Neptune MLの Bucket-numerical 特徴」を参照してください。

  • "datetime" — この特徴エンコーディングは、datetime プロパティ値を、年、月、曜日、および時間の分類的特徴の配列として表します。

    これら 4 つのカテゴリのうち 1 つ以上は、datetime_parts パラメータを使って排除できます。

    Neptune ML のDatetime 特徴」を参照してください。

  • "text_fasttext" — この特徴エンコーディングは、fastText モデルを使用して、文または自由形式のテキストで構成されるプロパティ値を数値ベクトルに変換します。英語 (en)、中国語 (zh)、ヒンディー語 (hi)、スペイン語 (es)、フランス語 (fr) の 5 つの言語をサポートしています。この 5 つの言語のいずれかのテキストプロパティ値の場合、text_fasttextが推奨されるエンコーディングです。ただし、同じ文に複数の言語の単語が含まれている場合は処理できません。

    fastText がサポートする言語以外の言語では、text_sbert エンコーディングを使用してください。

    例えば、120 トークンを超えるプロパティ値のテキスト文字列が多数ある場合は、max_length フィールドを使用して、"text_fasttext" がエンコードする各文字列のトークンの数を制限します。

    Neptune ML でのテキストプロパティ値の fastText エンコーディング」を参照してください。

  • "text_sbert" — このエンコーディングは、Sententh BERT (SBERT) モデルを使用してテキストプロパティ値を数値ベクトルに変換します。Neptune は 2 つの SBERT メソッドをサポートしています。すなわち、text_sbert128 (text_sbert とだけ指定した場合のデフォルト) と text_sbert512 です。両者の違いは、エンコードされるテキストプロパティ内のトークンの最大数です。text_sbert128 エンコーディングでは最初の 128 トークンのみがエンコードされるのに対し、text_sbert512 は最大 512 トークンをエンコードします。その結果、text_sbert512 を使用する場合は、text_sbert128 よりも処理時間が長くなる可能性があります。どちらの方法も、text_fasttext より遅くなります。

    text_sbert* の方法は、多くの言語をサポートしており、複数の言語を含む文をエンコードできます。

    Neptune MLにおけるテキストフィーチャの Sentence BERT (SBERT) エンコーディング」を参照してください。

  • "text_word2vec" — このエンコーディングは、Word2Vec アルゴリズムを使用して、テキストプロパティ値を数値ベクトルに変換します。英語のみをサポートしています。

    Neptune ML でのテキストフィーチャの Word2Vec エンコーディング」を参照してください。

  • "text_tfidf" — このエンコーディングは、term frequency–inverse document frequency (TF-IDF) ベクタライザーを使用して、テキストプロパティ値を数値ベクトルに変換します。

    text_tfidf 機能エンコーディングのパラメータは、ngram_range フィールド、min_df フィールド、および max_features フィールドを使用して定義します。

    Neptune ML でのテキストフィーチャの TF-IDF エンコーディング」を参照してください。

  • "none"none タイプを使用すると、特徴エンコーディングは実行されません。代わりに生プロパティ値が解析され、保存されます。

    カスタムモデルトレーニングの一部として独自のカスタム特徴エンコーディングを実行する予定の場合のみ none を使用します。

norm フィールド

このフィールドは数値特徴に必須です。数値に使用する正規化方法を指定します。

"norm": "min-max"

次の正規化メソッドがサポートされています。

  • "min-max" — 最小値を減算し、最大値と最小値の差で除算して、各値を正規化します。

  • "standard" — すべての値の合計で割って、各値を正規化します。

  • "none" — エンコーディング中に数値を正規化しないでください。

Neptune MLのカテゴリ別特徴」を参照してください。

language フィールド

言語フィールドは、テキストプロパティ値に使用される言語を指定します。その使用法は、テキストのエンコード方法によって異なります。

  • text_fasttext エンコーディングの場合、このフィールドは必須で、以下の言語のいずれかを指定する必要があります。

    • en   (英語)

    • zh   (中国語)

    • hi   (ヒンディー語)

    • es   (スペイン語)

    • fr   (フランス語)

  • text_sbert エンコーディングの場合、SBERT エンコーディングは多言語であるため、このフィールドは使用されません。

  • text_word2vec エンコーディングの場合、text_word2vec は英語のみをサポートするため、このフィールドはオプションです。存在する場合は、英語言語モデルの名前を指定する必要があります。

    "language" : "en_core_web_lg"
  • text_tfidf エンコーディングの場合、このフィールドは使用されません。

max_length フィールド

max_length フィールドは、text_fasttext 機能についてはオプションであり、入力テキストフィーチャ内のエンコードされるトークンの最大数を指定します。max_length より長い入力テキストは切り捨てられます。例えば、max_length を 128 に設定すると、テキストシーケンス内の 128 番目より後のトークンは無視されます。

"max_length": 128

separator フィールド

このフィールドはオプションで categorynumerical および auto と使用されます。プロパティ値を複数のカテゴリ値または数値に分割するために使用できる文字を指定します。

"separator": ";"

たとえば、"Actor;Director"または"0.1;0.2"といった、プロパティが複数の区切り値を 1 つの文字列に格納する場合にのみ、この separator フィールドを使用してください。

- カテゴリ別特徴数値特徴自動エンコーディング フィールド

range フィールド

このフィールドは bucket_numerical 特徴に必須です。バケットに分割する数値の範囲を、[lower-bound, upper-bound] の形式で指定します。

"range" : [20, 100]

プロパティ値が下限より小さい場合は、最初のバケットに割り当てられます。上限よりも大きい場合は最後のバケットに割り当てられます。

Neptune MLの Bucket-numerical 特徴」を参照してください。

- bucket_cnt フィールド

このフィールドは bucket_numerical 特徴に必須です。これは、range パラメータにより定義される数値範囲が分割されるバケットの数を指定します。

"bucket_cnt": 10

Neptune MLの Bucket-numerical 特徴」を参照してください。

slide_window_size フィールド

このフィールドはオプションで bucket_numerical 特徴と使用して複数のバケットに値を割り当てます。

"slide_window_size": 5

スライドウィンドウの仕組みでは、Neptune ML はウィンドウサイズ s を取り、プロパティの各数値 v v - s/2 から v + s/2 の範囲内へ変換します。この値は、範囲が重なるすべてのバケットに割り当てられます。

Neptune MLの Bucket-numerical 特徴」を参照してください。

imputer フィールド

このフィールドはオプションで numerical および bucket_numerical 特徴と使用して欠損値を埋めるためのインプテーション手法を提供します。

"imputer": "mean"

サポートされているインプテーション手法は次のとおりです。

  • "mean"

  • "median"

  • "most-frequent"

imputer パラメータを含めない場合、欠落した値が見つかったときにデータの前処理が停止し、終了します。

Neptune MLのカテゴリ別特徴」および「Neptune MLの Bucket-numerical 特徴」を参照してください。

max_features フィールド

このフィールドはオプションで text_tfidf 特徴と使用して符号化する項の最大数を指定します。

"max_features": 100

100 に設定すると、TF-IDF ベクタライザーは最も一般的な項を 100 個だけ符号化します。指定しない場合、デフォルト値は max_features 5,000 です。

Neptune ML でのテキストフィーチャの TF-IDF エンコーディング」を参照してください。

min_df フィールド

このフィールドはオプションで text_tfidf 特徴と使用して符号化する項の最低ドキュメント頻度を指定します。

"min_df": 5

5 に設定されている場合、符号化されるためには、少なくとも 5 つの異なるプロパティ値に項が含まれている必要があります。

この min_df パラメータを使用しない場合、デフォルト値は 2 です。

Neptune ML でのテキストフィーチャの TF-IDF エンコーディング」を参照してください。

ngram_range フィールド

このフィールドはオプションで text_tfidf 特徴と使用して、符号化する可能性のある個々の項として考慮すべき単語またはトークンのサイズを指定します。

"ngram_range": [2, 4]

[2, 4] は、2、3、4 語のシーケンスが潜在的な個別項として考慮されることを指定します。

ngram_range と明示的に設定しない場合のデフォルトは [1, 1] で、符号化する項として単一の単語またはトークンのみを考慮することを意味します。

Neptune ML でのテキストフィーチャの TF-IDF エンコーディング」を参照してください。

datetime_parts フィールド

このフィールドはオプションで datetime 特徴と使用して datetime 値のどの部分をカテゴリ別に符号化するかを指定します。

"datetime_parts": ["weekday", "hour"]

datetime_parts を含めない場合、デフォルトでは、Neptune ML は datetime 値の年、月、曜日、および時間の部分を符号化します。値 ["weekday", "hour"] は、datetime 値の曜日と時間のみを特徴内でカテゴリ的に符号化する必要があることを示します。

パートの 1 つがトレーニングセットに複数の固有値を持たない場合、そのパートは符号化されません。

Neptune ML のDatetime 特徴」を参照してください。