Esta seção se concentra em duas técnicas comuns para conseguir um embedding:
- Redução de dimensionalidade
- Como extrair um embedding de um modelo maior de rede neural
Técnicas de redução de dimensionalidade
Existem muitas técnicas matemáticas para capturar estrutura de um espaço de alta dimensão em um espaço de baixa dimensão. Na teoria, qualquer uma dessas técnicas pode ser usada para criar um embedding para um em um sistema de machine learning.
Por exemplo, análise de componente principal (PCA, na sigla em inglês) foi usado para criar embeddings de palavras. Dado um conjunto de instâncias como bag of words, o PCA tenta para encontrar dimensões altamente correlacionadas que possam ser recolhidas em uma dimensão.
Como treinar um embedding como parte de uma rede neural
É possível criar um embedding enquanto treina um rede neural para sua tarefa-alvo. Com essa abordagem, você tem uma incorporação bem personalizada para sistema específico, mas pode levar mais tempo do que treinar o embedding separadamente.
Em geral, é possível criar uma camada escondida de tamanho d no pipeline de rede que é designada como camada de incorporação, em que d representa o número de nós na camada escondida e o número de dimensões no espaço de embedding. Essa camada de embedding pode ser combinada com outros atributos e camadas escondidas. Como em qualquer rede neural profunda, a serão otimizados durante o treinamento para minimizar a perda nos nós na camada final da rede.
Voltando ao exemplo de recomendação de comida, nosso objetivo é para prever novas refeições que um usuário vai gostar com base no seu favorito atual refeições. Primeiro, podemos compilar dados adicionais sobre as cinco favoritos alimentos Então, podemos modelar essa tarefa como um problema de aprendizado supervisionado. Definimos quatro desses cinco principais alimentos para serem dados de características e, em seguida, reserva aleatoriamente cinco alimento como o rótulo positivo que nosso modelo visa prever, otimizando o as previsões do modelo usando um softmax e perda de talentos.
Durante o treinamento, o modelo de rede neural vai aprender os pesos ideais os nós na primeira camada escondida, que serve como a camada de embedding. Por exemplo, se o modelo tiver três nós na primeira camada escondida, ele pode determinar que as três dimensões mais relevantes dos alimentos são sanduíche, sobremesa e liquidez. A Figura 12 mostra o fluxo de trabalho valor de entrada para "hot dog" em um vetor tridimensional.
Ao longo do treinamento, os pesos da camada de embedding serão otimizados para que os vetores de embedding para exemplos semelhantes estão mais próximos de cada entre si. As dimensões individuais da camada de embedding (o que cada nó da camada de embedding representa) raramente são compreensíveis como "sobremesa" ou "líquida". Às vezes, o que eles "querem" pode ser inferido, mas isso nem sempre o caso.
Os embeddings geralmente são específicos para a tarefa e diferem entre si quando a tarefa é diferente. Por exemplo, os embeddings gerados por um usuário vegetariano em comparação com modelo de classificação não vegetariana pode ter duas dimensões: teor de carne e laticínios. Por sua vez, os embeddings gerados por um café da manhã x classificador de jantar de culinária americana pode ter dimensões ligeiramente diferentes: teor de calorias, teor de grãos e teor de carne. "Cereal" e "sanduíche de ovo e bacon" podem estar próximos no espaço de embedding de um classificador de café da manhã versus jantar, mas distante no espaço de incorporação de uma classificador vegetariano x não vegetariano.
Como treinar um embedding de palavras
Na seção anterior, você conheceu um a visualização de relações semânticas na espaço de embedding word2vec.
Word2vec é um dos vários algoritmos usados para treinar embeddings de palavras. Ela se baseia na hipótese de distribuição para mapear semanticamente similares palavras para fechar os vetores de embedding de forma geométrica. O modelo de distribuição hipótese afirma que palavras que costumam ter as mesmas palavras vizinhas tendem a ser semanticamente parecida. "Cachorro" e "gato" geralmente aparecem perto de a palavra "veterinário", e este fato reflete sua semelhança semântica. Como o linguista John Firth disse em 1957, "Você deve conhecer uma palavra da empresa ela se mantém."
O vídeo a seguir explica outro método de criação de uma incorporação de palavras como parte do processo de treinamento de uma rede neural, usando um modelo mais simples:
Embeddings estáticos x contextuais
Uma limitação dos embeddings de palavras, como o discutido no vídeo acima, é que são estáticas. Cada palavra é representada por um único ponto no vetor espaço, mesmo que tenham vários significados, dependendo de como em que ele é usado em uma frase. No último exercício, descobriu a dificuldade de mapear semelhanças semânticas para a palavra laranja,que pode significar uma cor ou um tipo de fruta.
Embeddings contextuais foram desenvolvidos para resolver essas deficiências. Os embeddings contextuais permitem várias da mesma palavra, cada uma incorporando informações sobre o contexto em que a palavra é usada. Em um embedding contextual, a palavra orange pode ter duas representações separadas: uma que captura a "cor" uso da palavra, como em frases como "Meu suéter favorito é laranja listras", e outra capturando "fruit" uso da palavra, como em frases como "A laranja foi colhida da árvore antes de amadurecer totalmente."