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 de | Tipo |
---|---|
Preço | Número inteiro positivo |
Tamanho | Valor de ponto flutuante positivo em unidades de metros quadrados |
Código postal | Inteiro |
Número de quartos | Inteiro |
Tipo de casa | Um valor de texto de "single_family", "multi-family", "apartment" ou "condo" |
Garage | 0/1 para não/sim |
Cores | categó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 de | Tipo ou distribuição | Ação |
---|---|---|
Preço | Distribuição Poisson | Quantificar e dimensionar para [0,1]. |
Tamanho | Distribuição Poisson | Quantificar e dimensionar para [0,1]. |
Código postal | Categórico | Converter para longitude e latitude, quantizar e dimensionar para [0,1]. |
Número de quartos | Inteiro | Corte os outliers e escalone para [0,1]. |
Tipo de casa | Categórico | Converta para codificação one-hot. |
Garage | 0 ou 1 | Deixe como está. |
Cores | Categó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:
- Verifique se as camadas ocultas do codificador automático são menores que as camadas de entrada e saída.
- Calcule a perda para cada saída, conforme descrito em Medidas de semelhança supervisionadas.
- 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.
- 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.