Exemplo de geração de embeddings

Neste exemplo, mostramos como gerar os embeddings usados em uma medida de semelhança supervisionada.

Imagine que você tem o mesmo conjunto de dados de imóveis que usou ao criar uma medida de semelhança manual:

Seleção deTipo
PreçoNúmero inteiro positivo
Tamanho Valor de ponto flutuante positivo em unidades de metros quadrados
Código postalInteiro
Número de quartosInteiro
Tipo de casaUm valor de texto de "single_family", "multi-family", "apartment" ou "condo"
Garage0/1 para não/sim
Corescategórica multivalente: um ou mais valores de cores padrão "branca", "amarela", "verde" etc.

Pré-processamento de dados

Antes de usar dados do recurso como entrada, é necessário pré-processar os dados. As etapas de pré-processamento são baseadas nas etapas que você seguiu ao criar uma medida de semelhança manual. Veja um resumo:

Seleção deTipo ou distribuiçãoAção
PreçoDistribuição Poisson Quantificar e dimensionar para [0,1].
TamanhoDistribuição Poisson Quantificar e dimensionar para [0,1].
Código postalCategórico Converter para longitude e latitude, quantizar e dimensionar para [0,1].
Número de quartosInteiro Corte os outliers e escalone para [0,1].
Tipo de casaCategórico Converta para codificação one-hot.
Garage0 ou 1 Deixe como está.
CoresCategórico Converta para os valores RGB e processe como dados numéricos.

Para mais informações sobre codificação one-hot, consulte Incorporações: dados de entrada categóricos.

Escolher o preditor ou codificador automático

Para gerar embeddings, você pode escolher um codificador automático ou um preditor. Lembre-se, sua escolha padrão é um codificador automático. Em vez disso, escolha um previsor se os recursos específicos do conjunto de dados determinarem a semelhança. Para completude, vamos analisar os dois casos.

Treinar um preditor

Você precisa escolher esses recursos como rótulos de treinamento para seu DNN que são importantes para determinar a semelhança entre seus exemplos. Vamos supor que o preço seja mais importante para determinar a semelhança entre as casas.

Escolha o preço como rótulo de treinamento e remova-o dos dados do atributo de entrada para a DNN. Treine a DNN usando todos os outros atributos como dados de entrada. Para treinamento, a função de perda é simplesmente o EQM entre o preço previsto e o real. Para saber como treinar uma DNN, consulte Como treinar redes neurais.

Treinar um codificador automático

Treine um codificador automático no nosso conjunto de dados seguindo estas etapas:

  1. Verifique se as camadas ocultas do codificador automático são menores que as camadas de entrada e saída.
  2. Calcule a perda para cada saída, conforme descrito em Medidas de semelhança supervisionadas.
  3. Crie a função de perda somando as perdas de cada saída. Avalie a perda de todos os pesos igualmente para cada atributo. Por exemplo, como os dados de cores são processados em RGB, ponderar cada uma das saídas RGB por 1/3.
  4. Treinar o DNN.

Como extrair embeddings da DNN

Depois de treinar o DNN, seja o preditor ou o codificador automático, extraia o embedding para um exemplo do DNN. Extrair o embedding usando os dados de recursos do exemplo como entrada e ler as saídas da camada escondida final. Essas saídas formam o vetor de embedding. Lembre-se, os vetores para casas semelhantes precisam estar mais próximos do que os vetores para casas diferentes.

A seguir, você verá como quantificar a semelhança para pares de exemplos usando os vetores de embedding.