Embeddings: exercícios interativos

O seguinte widget, baseado no Embedding Projector do TensorFlow, achata 10.000 vetores estáticos word2vec em um espaço 3D. Esse colapso de dimensões pode ser enganador, porque pontos próximos no espaço original, que tem muitas dimensões, talvez pareçam mais distantes na projeção 3D. Os pontos n mais próximos estão destacados em roxo, com n escolhido pelo usuário em Isolate __ points. A barra lateral na direita identifica os vizinhos mais próximos.

Nestes experimentos, você vai brincar com os embeddings do word2vec no widget acima.

Tarefa 1

Tente encontrar os 20 vizinhos mais próximos dos termos a seguir e ver as posições dos grupos na nuvem.

  • iii, third e three
  • tao e way
  • orange, yellow e juice

O que você notou nos resultados?

Clique aqui para ver nossa resposta

Apesar de iii, third e three serem parecidos semanticamente, eles aparecem em contextos diferentes no texto e não parecem estar próximos nesse espaço de embedding. No word2vec, iii está mais perto de iv do que de third.

Do mesmo modo, apesar de way ser uma tradução direta de tao, essas palavras ocorrem com mais frequência junto a grupos completamente diferentes no conjunto de dados usado. Por isso, os dois vetores estão bem distantes.

Os primeiros vários vizinhos de orange são cores, mas juice e peel, relacionados com o significado de orange como uma fruta, aparecem nas posições 14º e 18º. prince, por sua vez, no significado relacionado a "Príncipe de Orange", está em 17º. Na projeção, as palavras mais próximas de orange são yellow e outras cores, enquanto as palavras mais próximas de juice não incluem orange.

Tarefa 2

Tente descobrir algumas características dos dados de treinamento. Por exemplo, tente encontrar os 100 vizinhos mais próximos dos termos a seguir, e veja onde os grupos ficam na nuvem:

  • boston, paris, tokyo, delhi, moscow e seoul (esta é uma "pegadinha")
  • jane, sarah, john, peter, rosa e juan

Clique aqui para ver nossa resposta

Muitos dos vizinhos mais próximos de boston são outras cidades nos EUA. Muitos dos vizinhos mais próximos de paris são outras cidades na Europa. tokyo e delhi não parecem ter resultados parecidos: a primeira é associada a cidades ao redor do mundo que são centros turísticos, e a segunda é associada com india e palavras relacionadas. seoul não aparece nesse conjunto reduzido de vetores de palavras.

Parece que esse conjunto de dados contém muitos documentos relacionados à geografia dos Estados Unidos, alguns documentos relacionados à geografia europeia e pouca cobertura detalhada de outros países ou regiões.

Do mesmo modo, esse conjunto de dados parece conter muitos nomes masculinos em inglês, alguns nomes femininos em inglês e pouquíssimos nomes em outros idiomas. Veja que Don Rosa escreveu e ilustrou os quadrinhos de Scrooge McDuck (em português, o Tio Patinhas) para a Disney. Provavelmente, é por isso que "scrooge" e "mcduck" estão entre os vizinhos mais próximos de "rosa".

Os vetores de palavras pré-treinados oferecidos pelo word2vec foram, na verdade, treinados com matérias do Google Notícias até o ano de 2013.

Tarefa 3

Embeddings não se limitam a palavras. Imagens, áudios e outros dados também podem se transformar em embeddings. Para esta tarefa:

  1. Abra o Embedding Projector do TensorFlow.
  2. Na barra lateral esquerda, chamada Data, escolha Mnist with images. Isso exibe uma projeção dos embeddings do banco de dados MNIST que consistem em dígitos escritos à mão.
  3. Clique para parar a rotação e escolher uma imagem. Aumente e diminua o zoom conforme necessário.
  4. Procure os vizinhos mais próximos na barra lateral direita. Alguma surpresa?
  • Por que alguns 7s têm 1s como vizinho mais próximo? Por que alguns 8s têm 9 como vizinho mais próximo?
  • As imagens que ficam nas bordas do espaço de projeção parecem diferentes das imagens que ficam no centro?

Não se esqueça: o modelo que criou esses embeddings está recebendo dados de imagens, ou seja, pixels, e escolhendo uma representação vetorial numérica para cada imagem. O modelo não faz uma associação mental automática entre a imagem do dígito escrito à mão e o próprio dígito.

Clique aqui para ver nossa resposta

Devido a semelhanças no formato, as representações vetoriais de alguns 7s que são mais finos ficam mais próximas dos vetores de 1s escritos à mão. A mesma coisa acontece com alguns 8s e 9s, e até com alguns 5s e 3s.

Os dígitos escritos à mão nas bordas do espaço de projeção parecem ser mais fortemente definíveis como um dos nove dígitos, se diferenciando com mais clareza de outros possíveis números.