O campo features no neptune_ml - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O campo features no neptune_ml

Os valores das propriedades e os literais do RDF têm diferentes formatos e tipos de dados. Para obter um bom desempenho no machine learning, é essencial converter esses valores em codificações numéricas conhecidas como atributos.

O Neptune ML realiza extração e codificação de atributos como parte das etapas de exportação e processamento de dados, conforme descrito em Codificação de atributos no Neptune ML.

Para conjuntos de dados de grafos de propriedades, o processo de exportação infere automaticamente atributos auto para propriedades de string e propriedades numéricas que contêm vários valores. Para propriedades numéricas que contenham valores únicos, ele infere atributos numerical. Para propriedades de data, ele infere atributos datetime.

Se quiser substituir uma especificação de atributo inferida automaticamente ou adicionar uma especificação numérica de bucket, TF-IDF, FastText ou SBERT para uma propriedade, poderá controlar a codificação do atributo usando o campo atributos.

nota

É possível usar o campo features somente para controlar as especificações do atributo para dados de grafos de propriedades, não para dados do RDF.

Para texto de formato livre, o Neptune ML pode usar vários modelos diferentes para converter a sequência de tokens em um valor de propriedade de string em um vetor de valor real de tamanho fixo:

  • text_fasttext: usa a codificação fastText. É a codificação recomendada para atributos que usam um e somente um dos cinco idiomas aceitos pela codificação fastText.

  • text_sbert: usa os modelos de codificação Sentence BERT (SBERT). É a codificação recomendada para texto que não é compatível com text_fasttext.

  • text_word2vec: usa algoritmos Word2Vec originalmente publicados pelo Google para codificar texto. O Word2Vec é compatível apenas com inglês.

  • text_tfidf: usa um vetorizador de frequência de termo – frequência inversa do documento (TF-IDF) para codificar texto. A codificação TF-IDF é compatível com atributos estatísticos não aceitos por outras codificações.

O campo features contém uma matriz JSON de atributos de propriedade do nó. Os objetos na matriz podem conter os seguintes campos:

O campo node em features

O campo node especifica um rótulo de grafo de propriedades de um vértice de atributo. Por exemplo:

"node": "Person"

Se um vértice tiver vários rótulos, use uma matriz para contê-los. Por exemplo:

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

O campo edge no features

O campo edge especifica o tipo de uma borda de atributo. Um tipo de borda consiste em uma matriz que contém os rótulos do grafo de propriedades do vértice de origem, o rótulo do grafo de propriedades da borda e os rótulos do grafo de propriedades do vértice de destino. É necessário fornecer todos os três valores ao especificar um atributo de borda. Por exemplo:

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

Se um vértice de origem ou destino de um tipo de borda tiver vários rótulos, use outra matriz para contê-los. Por exemplo:

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

O campo property no features

Use o parâmetro propriedade para especificar uma propriedade do vértice identificado pelo parâmetro node. Por exemplo:

"property" : "age"

Valores possíveis do campo type para atributos

O parâmetro type especifica o tipo de atributo que está sendo definido. Por exemplo:

"type": "bucket_numerical"
Valores possíveis do parâmetro type
  • "auto": especifica que o Neptune ML deve detectar automaticamente o tipo de propriedade e aplicar uma codificação de atributo adequada. Um atributo auto também pode ter um campo separator opcional.

    Consulte Codificação de atributos automáticos no Neptune ML.

  • "category": essa codificação de atributo representa um valor de propriedade como uma das várias categorias. Em outras palavras, o atributo pode assumir um ou mais valores distintos. Um atributo category também pode ter um campo separator opcional.

    Consulte Atributos categóricos no Neptune ML.

  • "numerical": essa codificação de atributo representa valores de propriedade numérica como números em um intervalo contínuo em que “maior que” e “menor que” têm significado.

    Um atributo numerical também pode ter campos norm, imputer e separator opcionais.

    Consulte Atributos numéricos no Neptune ML.

  • "bucket_numerical": essa codificação de atributos divide os valores de propriedade numérica em um conjunto de buckets ou categorias.

    Por exemplo, é possível codificar a idade das pessoas em quatro buckets: crianças (de 0 a 20 anos), jovens adultos (de 20 a 40 anos), meia idade (de 40 a 60 anos) e idosos (de 60 anos em diante).

    Um atributo bucket_numerical requer um campo range e um bucket_cnt e também pode incluir um campo imputer e/ou slide_window_size.

    Consulte Atributos numéricos de bucket no Neptune ML.

  • "datetime": essa codificação de atributos representa um valor de propriedade de data e hora como uma matriz desses atributos categóricos: ano, mês, dia da semana e hora.

    Uma ou mais dessas quatro categorias podem ser eliminadas usando o parâmetro datetime_parts.

    Consulte Atributos de data e hora no Neptune ML.

  • "text_fasttext": essa codificação de atributos converte valores de propriedade que consistem em frases ou texto de formato livre em vetores numéricos usando modelos fastText. Ela é compatível com cinco idiomas, a saber, inglês (en), chinês (zh), hindi (hi), espanhol (es) e francês (fr). Para valores de propriedade de texto em qualquer um desses cinco idiomas, text_fasttext é a codificação recomendada. No entanto, ela não consegue lidar com casos em que a mesma frase contenha palavras em mais de um idioma.

    Para outros idiomas além dos compatíveis com a fastText, use a codificação text_sbert.

    Se você tiver muitas strings de texto de valor de propriedade maiores que, digamos, 120 tokens, use o campo max_length para limitar o número de tokens em cada string codificada por "text_fasttext".

    Consulte Codificação fastText de valores de propriedades de texto no Neptune ML.

  • "text_sbert": essa codificação converte valores de propriedade de texto em vetores numéricos usando modelos Sentence BERT (SBERT). O Neptune é compatível com dois métodos SBERT, ou seja, text_sbert128, que será o padrão se você apenas especificar text_sbert e text_sbert512. A diferença entre eles é o número máximo de tokens em uma propriedade de texto codificada. A codificação text_sbert128 codifica apenas os primeiros 128 tokens, enquanto text_sbert512 codifica até 512 tokens. Como resultado, o uso de text_sbert512 pode exigir mais tempo de processamento do que text_sbert128. Os dois métodos são mais lentos do que text_fasttext.

    Os métodos text_sbert* são compatíveis com vários idiomas e podem codificar uma frase que contenha mais de um idioma.

    Consulte Codificação Sentence BERT (SBERT) de atributos de texto no Neptune ML.

  • "text_word2vec": essa codificação converte valores de propriedade de texto em vetores numéricos usando algoritmos Word2Vec. Ela aceita apenas inglês.

    Consulte Codificação Word2Vec de atributos de texto no Neptune ML.

  • "text_tfidf": essa codificação converte valores de propriedade de texto em vetores numéricos usando um vetorizador de frequência de termo – frequência inversa de documento (TF-IDF).

    Você define os parâmetros de uma codificação de atributos text_tfidf usando os campos ngram_range, min_df e max_features.

    Consulte Codificação TF-IDF de atributos de texto no Neptune ML.

  • "none": usar o tipo none faz com que nenhuma codificação de atributos ocorra. Em vez disso, os valores brutos das propriedades são analisados e salvos.

    Use none somente se você planeja realizar a própria codificação de atributos personalizados como parte do treinamento de modelos personalizados.

O campo norm

Esse campo é obrigatório para atributos numéricos. Ele especifica um método de normalização a ser usado em valores numéricos:

"norm": "min-max"

Os seguintes métodos de normalização são compatíveis:

  • “mín-máx”: normalize cada valor subtraindo o valor mínimo e dividindo-o pela diferença entre o valor máximo e o mínimo.

  • “padrão”: normalize cada valor dividindo-o pela soma de todos os valores.

  • “nenhum”: não normalize os valores numéricos durante a codificação.

Consulte Atributos numéricos no Neptune ML.

O campo language

O campo de idioma especifica o idioma usado nos valores das propriedades de texto. O uso depende do método de codificação de texto:

  • Para a codificação text_fasttext, esse campo é obrigatório e deve especificar um dos seguintes idiomas:

    • en   (inglês)

    • zh   (chinês)

    • hi   (hindi)

    • es   (espanhol)

    • fr   (francês)

  • Para a codificação text_sbert, esse campo não é usado, pois a codificação SBERT é multilíngue.

  • Para a codificação text_word2vec, esse campo é opcional, pois text_word2vec só é compatível com inglês. Se presente, ele deve especificar o nome do modelo em inglês:

    "language" : "en_core_web_lg"
  • Para a codificação text_tfidf, esse campo não é usado.

O campo max_length

O campo max_length é opcional para atributos text_fasttext, no qual ele especifica o número máximo de tokens em um atributo de texto de entrada que será codificado. Texto de entrada maior do que max_length é truncado. Por exemplo, definir max_length como 128 indica que qualquer token após o 128º em uma sequência de texto será ignorado:

"max_length": 128

O campo separator

Esse campo é usado opcionalmente com os atributos category, numerical e auto. Ele especifica um caractere que pode ser usado para dividir o valor de uma propriedade em vários valores categóricos ou valores numéricos:

"separator": ";"

Use o campo separator somente quando a propriedade armazena vários valores delimitados em uma única string, como "Actor;Director" ou "0.1;0.2".

Consulte Atributos categóricos, Atributos numéricos e Codificação automática.

O campo range

Esse campo é obrigatório para atributos bucket_numerical. Ele especifica o intervalo de valores numéricos que devem ser divididos em buckets, no formato [lower-bound, upper-bound]:

"range" : [20, 100]

Se o valor de uma propriedade for menor que o limite inferior, ele será atribuído ao primeiro bucket ou, se for maior que o limite superior, será atribuído ao último bucket.

Consulte Atributos numéricos de bucket no Neptune ML.

O campo bucket_cnt

Esse campo é obrigatório para atributos bucket_numerical. Ele especifica o número de buckets nos quais o intervalo numérico definido pelo parâmetro range deve ser dividido:

"bucket_cnt": 10

Consulte Atributos numéricos de bucket no Neptune ML.

O campo slide_window_size

Esse campo é usado opcionalmente com atributos bucket_numerical para atribuir valores a mais de um bucket:

"slide_window_size": 5

Uma janela de controle deslizante funciona da seguinte forma: o Neptune ML considera o tamanho da janela s e transforma cada valor numérico v de uma propriedade em um intervalo de v - s/2 a v + s/2 . O valor é então atribuído a cada bucket ao qual o intervalo se sobrepõe.

Consulte Atributos numéricos de bucket no Neptune ML.

O campo imputer

Esse campo é usado opcionalmente com atributos numerical e bucket_numerical para fornecer uma técnica de imputação a fim de preencher valores ausentes:

"imputer": "mean"

As técnicas de imputação compatíveis são:

  • "mean"

  • "median"

  • "most-frequent"

Se você não incluir o parâmetro estimador, o pré-processamento de dados será interrompido e encerrado quando um valor ausente for encontrado.

Consulte Atributos numéricos no Neptune ML e Atributos numéricos de bucket no Neptune ML.

O campo max_features

Esse campo é usado opcionalmente pelos atributos text_tfidf para especificar o número máximo de termos a serem codificados:

"max_features": 100

Uma configuração de cem faz com que o vetorizador TF-IDF codifique somente os cem termos mais comuns. O valor padrão, se você não incluir max_features será cinco mil.

Consulte Codificação TF-IDF de atributos de texto no Neptune ML.

O campo min_df

Esse campo é usado opcionalmente pelos atributos text_tfidf para especificar a frequência mínima de documentos de termos a serem codificados:

"min_df": 5

Uma configuração de cinco indica que um termo deve aparecer em pelo menos cinco valores de propriedade diferentes para ser codificado.

O valor padrão se você não incluir o parâmetro min_df será 2.

Consulte Codificação TF-IDF de atributos de texto no Neptune ML.

O campo ngram_range

Esse campo é usado opcionalmente pelos atributos text_tfidf para especificar quais sequências de tamanho de palavras ou tokens devem ser consideradas como possíveis termos individuais a serem codificados:

"ngram_range": [2, 4]

O valor [2, 4] especifica que sequências de dois, três e quatro palavras devem ser consideradas como possíveis termos individuais.

O padrão, se você não definir explicitamente ngram_range será [1, 1], o que significa que somente palavras ou tokens individuais são considerados termos a serem codificados.

Consulte Codificação TF-IDF de atributos de texto no Neptune ML.

O campo datetime_parts

Esse campo é usado opcionalmente pelos atributos datetime para especificar quais partes do valor de data e hora devem ser codificadas categoricamente:

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

Se você não incluir datetime_parts, por padrão, o Neptune ML codificará as partes de ano, mês, dia da semana e hora do valor de data e hora. O valor ["weekday", "hour"] indica que somente os valores do dia da semana e da hora da data e hora devem ser codificados categoricamente no atributo.

Se uma das partes não tiver mais de um valor exclusivo no conjunto de treinamento, ela não será codificada.

Consulte Atributos de data e hora no Neptune ML.