Embeddings: como traduzir para um espaço de dimensão inferior

Um embedding é uma espaço relativamente baixa dimensão para o qual é possível traduzir vetores de alta dimensão. Para uma discussão sobre comparação entre dados de baixa dimensão, consulte a seção Categórica Dados mais tarde neste módulo.

Os embeddings facilitam o machine learning em grandes vetores de atributo, como porque os vetores esparsos que representam as refeições seção anterior. Idealmente, um embedding captura algumas semântica da entrada, colocando as entradas que são mais semelhantes em significado no espaço de embedding. Por exemplo, um bom embedding coloca palavra "carro" mais perto de "garagem" e não para "elefante". É possível treinar um embedding e reutilizados em vários modelos.

Para dar uma ideia de como os vetores de embedding representam informações, considere o após a representação unidimensional dos pratos, cachorro-quente, pizza, salada, shawarma e borscht, em uma escala de sandwich" para "parecida com um sanduíche". "sandwichness" (sanduíche) é a única dimensão.

Figura 3. Ao longo de um eixo de sanduíche, do menor ao maior:
    borscht, salada, pizza, cachorro-quente, shawarma.
Figura 3. Alimentos em uma dimensão imaginada de "sanduíche".

Nessa linha, em que ponto strudel de maçã cair? É possível que ela seja colocada entre hot dog e shawarma. Mas a maçã o strudel também parece ter uma dimensão adicional de doce (que é doce a comida) ou a sobremesa (o que torna a comida uma sobremesa) que faz muito diferente das outras opções. A figura a seguir mostra isso adicionando uma "sobremesa" dimensão:

Figura 4. Mesma imagem de antes, mas com um eixo vertical de
    a sobremesa. O strudel de maçã fica entre um cachorro-quente e um shawarma, mas no topo
    do eixo horizontal, mas mais acima no eixo de sobretaxa.
Figura 4. Alimentos plotados por "sanduíche" e "sobremesa".

Um embedding representa cada item em um espaço n dimensional com n números de ponto flutuante (normalmente no intervalo –1 a 1 ou 0 a 1). Por exemplo, a incorporação na Figura 4 representa cada item de refeição um espaço bidimensional com duas coordenadas. O item "strudel de maçã" está na quadrante superior direito do gráfico e pode ser atribuído ao ponto (0,5, 0,3), enquanto "cachorro-quente" está no quadrante inferior direito do gráfico e pode receber o ponto (0,2, -0,5).

Em um embedding, a distância entre dois itens pode ser calculada matematicamente, e pode ser interpretada como a semelhança relativa entre os dois itens. Duas coisas próximas uma da outra, como shawarma e hot dog da figura 4, estão mais estreitamente relacionadas do que duas coisas mais distantes umas outras, como apple strudel e borscht.

Observe também que, no espaço 2D da Figura 4, apple strudel está muito mais longe de shawarma e hot dog do que no espaço 1D, o que corresponde intuição: apple strudel é diferente de um cachorro-quente ou shawarma cães e shawarmas são um para o outro.

Agora considere o borscht, que é muito mais líquido do que os outros itens. Isso sugere uma terceira dimensão, liquidência (o nível de líquido do alimento). Com essa dimensão, os itens podem ser visualizados em 3D desta forma:

Figura 5. A mesma imagem de antes, mas com um terceiro eixo de fluidez
    ortogonal aos outros dois, e borscht se moveu muito ao longo desse eixo.
Figura 5. Os alimentos organizados por "sanduíche", "sobremesa", e "líquida".

Onde neste espaço 3D tangyuan ir? Está picante, como borscht, e uma sobremesa doce, como strudel de maçã, e definitivamente não um sanduíche. Aqui está um posicionamento possível:

Figura 6. Mesma imagem de antes, mas com tangyuan posicionado no alto
    sobremesa e liquidez e pouco sanduíche.
Figura 6. Adicionando o tango à imagem anterior, em cima "sobremesa" e "líquida" e pouco de "sanduíche".

Observe quanta informação é expressa nessas três dimensões. Você pode imaginar dimensões adicionais, como carne ou assado.

Espaços de embedding reais

Como visto nos exemplos de alimentos acima, até mesmo um pequeno espaço multidimensional proporciona a liberdade de agrupar itens semanticamente semelhantes e manter itens diferentes distantes. Posição (distância e direção) no vetor podem codificar a semântica de um bom embedding. Por exemplo, os seguintes visualizações de embeddings reais ilustram as relações geométricas entre as palavras de um país e sua capital. Você pode ver que a distância do "Canadá" para "Ottawa" é aproximadamente igual à distância de "Turquia" para "Ancara".

Figura 7. Três exemplos de embeddings de palavras que representam palavras
      relações geométricas: gênero (homem/mulher e rei/rainha são aproximadamente
      o mesmo comprimento), tempo verbal (caminhada/caminhado e natação/nado são aproximadamente
      do mesmo comprimento) e capitais (Turquia/Ancara e Vietnã/Hanói)
      com quase o mesmo tamanho).
Figura 7. Embeddings podem produzir analogias notáveis.

Um espaço de embedding significativo ajuda um modelo de machine learning a detectar padrões durante o treinamento.

Exercício

Neste exercício, você vai usar o módulo Como incorporar Projetor para visualizar uma palavra um embedding chamado word2vec, representa mais de 70.000 palavras em inglês numericamente em espaço vetorial.

Tarefa 1

Realize as tarefas a seguir e responda à pergunta abaixo.

  1. Abra a ferramenta Projetor de incorporação.

  2. No painel à direita, digite a palavra atom no campo Search. Depois, Clique na palavra atom nos resultados abaixo (em 4 matches). Seu deve ser semelhante à da Figura 8.

    Figura 8. Captura de tela da ferramenta Embedding Projector, com "atom"
    digitado no campo de pesquisa (circulado em vermelho). A visualização
    central da ferramenta agora anota um dos pontos com a palavra 'atom',
    e também adiciona anotações de palavras para pontos próximos. Na seção "Mais próximo"
    pontos lista, as palavras "átomos", "molécula" e "elétrons" estão listados
    como as palavras mais próximas de "átomo" no espaço vetorial.
    Figura 8. Ferramenta de projetor de embedding, com a palavra "atom" adicionados no campo de pesquisa (circulado em vermelho).
  3. Novamente, no painel à direita, clique no botão Isolar 101 pontos (acima de no campo Pesquisa) para mostrar as cem palavras mais próximas a atom. Sua tela deve ser semelhante à da Figura 9.

    Figura 9. Captura de tela da ferramenta Embedding Projector, agora com
    "Isolar 101 pontos" clicado (botão dentro de um círculo em vermelho). A visualização
    da figura 8 foi atualizada para exibir apenas a palavra "atom", e a
    100 palavras mais próximas no espaço vetorial, que incluem as palavras "átomos",
    "núcleo" e "partícula".
    Figura 9. Ferramenta de projetor de embedding, agora com "Isolar 101 pontos" clicado (circulado em vermelho).

Agora, revise as palavras listadas em Pontos mais próximos no espaço original. Como você descreveria essas palavras?

Clique aqui para conferir a resposta

A maioria das palavras mais próximas são palavras que são comumente associadas com a palavra átomo, como a forma plural “átomos”, e as palavras "eletrônico", “moléculas”, e "núcleo".

Tarefa 2

Execute as tarefas a seguir e responda à pergunta abaixo:

  1. Clique no botão Show All Data no painel direito para redefinir os dados a visualização da tarefa 1.

  2. No painel à direita, digite a palavra uranium no campo Pesquisar. Sua tela será semelhante à Figura 10.

    Figura 10. Captura de tela da ferramenta Embedding Projector, com "uranium"
    inserido no campo de pesquisa. A visualização no centro
    ferramenta anota um dos pontos com a palavra "uranium", e também adiciona
    de palavras para pontos próximos. Na seção "Pontos mais próximos", lista, o
    palavras 'carvão', 'isotopo', 'níquel', 'óxido', 'ore', 'zinco' e
    "manganês" são listados como as palavras mais próximas no espaço vetorial
    "uranium".
    Figura 10. Ferramenta de projetor de incorporação, com a palavra "uranium" no campo de pesquisa.

Revise as palavras listadas em Pontos mais próximos no espaço original. Como essas palavras são diferentes das palavras mais próximas para átomo?

Clique aqui para conferir a resposta

O urânio se refere a uma substância radioativa elemento químico muitas das palavras mais próximas são outros elementos, como zinco, manganês, cobre e alumínio.

Tarefa 3

Execute as tarefas a seguir e responda à pergunta abaixo:

  1. Clique no botão Show All Data no painel direito para redefinir os dados a visualização da tarefa 2.

  2. No painel à direita, digite a palavra laranja no campo Pesquisar. Seu deve ser semelhante à da Figura 11.

    Figura 11. Captura de tela da ferramenta Embedding Projector, com a cor "laranja"
    inserido no campo de pesquisa. A visualização no centro da ferramenta
    anota um dos pontos com a palavra "laranja" e também adiciona a palavra
    anotações para pontos próximos. Na seção "Pontos mais próximos", lista,
    as palavras "amarelo", "verde", "azul", "roxo" e "cores" estão listados
    como as palavras mais próximas de "laranja" no espaço vetorial.
    Figura 11. Ferramenta de projetor de incorporação, com a palavra "laranja" no campo de pesquisa.

Revise as palavras listadas em Pontos mais próximos no espaço original. O que você observa sobre os tipos de palavras mostradas aqui não aparecem aqui?

Clique aqui para conferir a resposta

Quase todas as palavras mais próximas são de outras cores, como "amarelo", "verde", "azul", "roxo", e "vermelho". Apenas uma das palavras mais próximas ("suco") se referem ao outro significado da palavra (uma fruta cítrica). Outras frutas que você espera ver, como "maçã" e "banana", não entrou na lista termos mais próximos.

Este exemplo ilustra uma das principais deficiências dos embeddings estáticos como word2vec. Todos os significados possíveis de uma palavra são representados por uma no espaço vetorial. Quando você faz uma análise de similaridade para "laranja", é não é possível isolar os pontos mais próximos para uma denotação específica da palavra, como "laranja" (fruta), mas não "laranja" (cor).