Um espaço latente em aprendizado de máquina (ML) é uma representação compactada de pontos de dados que preserva apenas características essenciais que informam a estrutura subjacente dos dados de entrada. A modelagem eficaz do espaço latente é parte integrante do deep learning, incluindo a maioria dos algoritmos de IA generativa .
Mapear pontos de dados para o espaço latente pode expressar dados complexos de forma eficiente e significativa, aumentando a capacidade dos modelos de aprendizado de máquina de entendê-los e manipulá-los, ao mesmo tempo em que reduz os requisitos computacionais. Para esse fim, a codificação de representações espaciais latentes normalmente envolve algum grau de redução de dimensionalidade: a compressão de dados de alta dimensão em um espaço de menor dimensão que omite informações irrelevantes ou redundantes.
Os espaços latentes desempenham um papel importante em muitos campos da ciência de dados e a codificação do espaço latente é uma etapa essencial em muitos algoritmos modernos de inteligência artificial (IA). Por exemplo, quaisquer modelos generativos, como autocodificadores variacionais (VAEs) e redes adversárias generativas (GANs), calculam o espaço latente de dados de treinamento para, em seguida, interpolar a partir dele para gerar novas amostras de dados. Os modelos de computer vision treinados para tarefas de classificação, como detecção de objetos ou segmentação de imagens mapeiam dados de input para um espaço latente para isolar suas qualidades relevantes para fazer previsões precisas.
Grandes modelos de linguagem (LLMs), desde modelos de incorporação que permitem pesquisa semântica até modelos autorregressivos como IBM® Granite, ou aqueles que alimentam o ChatGPT da OpenAI, manipulam o espaço latente para explorar conexões complexas entre diferentes palavras em contextos específicos.
A palavra espaço assume um significado mais variado no contexto do aprendizado de máquina do que na linguagem geral. Em termos gerais, um "espaço" no ML refere-se a um modo específico de mapear, comparar ou amostrar pontos de dados. Por exemplo:
Em termos matemáticos, um espaço é definido principalmente pelo que suas dimensões correspondem, ou seja, quais recursos ‑ variáveis ‑ estão sendo utilizados para descrever os pontos de dados nesse espaço. Quando os pontos de dados são mapeados para um espaço específico, os pontos de dados com valores semelhantes para as variáveis que definem o espaço serão semelhantes ou próximos uns dos outros por alguma métrica, como semelhança de cosseno, distância euclidiana ou produto escalar.
No aprendizado de máquina, os pontos de dados devem ser representados numericamente. Na maioria das vezes, os pontos de dados são representados (ou “incorporados”) como vetores. Portanto nos referimos ao espaço no qual os pontos de dados são comparados por suas representações vetoriais como o "espaço de incorporação vetorial" (ou "espaço de incorporação"). As representações numéricas, nas quais cada elemento do vetor corresponde a uma dimensão individual do espaço de incorporação, são chamadas de incorporações vetoriais. Algoritmos de aprendizado de máquina normalmente utilizam incorporações vetoriais como entrada ou começam convertendo dados de entrada em incorporações vetoriais.
O espaço de características é o espaço vetorial associado à gama de possibilidades não para pontos de dados, mas para os valores de características significativas que podem caracterizar um conjunto específico de pontos de dados. Por exemplo, em modelos que processam dados de imagem, cada dimensão do espaço de recursos pode corresponder a formas, texturas ou padrões de cores específicos presentes nos dados de treinamento do modelo.
O espaço de recurso normalmente omite informações das dimensões do espaço de incorporação que não contêm nenhum recurso. Continuando o exemplo de dados de imagem, o espaço de feição excluiria fundos ou espaço vazio. O processo de isolamento de recursos significativos do espaço de incorporação maior é chamado de extração de recursos.
"Espaço de recursos" e "espaço latente" são frequentemente utilizados de forma intercambiável, mas nem sempre são sinônimos. Como a extração de recursos geralmente envolve uma representação compactada de dados que omite informações que não são úteis, os conceitos estão intimamente relacionados. No entanto, alguns recursos podem não ser necessariamente relevantes para a estrutura subjacente dos dados. Portanto, o espaço latente geralmente é uma representação de menor dimensão do espaço de recursos contendo apenas o subconjunto de recursos que, por meio de aprendizado de máquina, são identificados como os mais relevantes para a tarefa em questão.
Em um espaço latente, cada dimensão corresponde a uma variável latente dos dados originais. Variáveis latentes são características subjacentes que informam a maneira como os dados são distribuídos, mas muitas vezes não são diretamente observáveis.
Para um exemplo intuitivo, imagine uma ponte com um sensor que meça o peso de cada veículo que passa. Muitos veículos diferentes, desde conversíveis leves até caminhões pesados, utilizam a ponte, mas não há uma câmera para detectar o tipo de veículo. No entanto, sabemos que o tipo de veículo influencia consideravelmente seu peso. Nesse exemplo, o peso do veículo é uma variável observável e o tipo de veículo é uma variável latente: podemos inferir quais tipos de veículos utilizam a ponte explorando padrões no peso do veículo.
Nem toda variável “oculta” é importante e portanto nem toda variável oculta será representada no espaço latente codificado por um modelo de aprendizado de máquina. Na prática, o modelo aprende a codificar o espaço latente mais propício para executar com precisão a tarefa para a qual está sendo treinado.
A codificação de uma representação de espaço latente geralmente envolve a compressão de dados de alta dimensão em um espaço de menor dimensão por meio de um processo chamado redução de dimensionalidade.
Considere as imagens no MNIST, conjunto de dados de código aberto contendo dezenas de milhares de imagens em escala de cinza 28x28 de dígitos escritos à mão. Cada pequena imagem de 28x28 pixels poderia ser representada como um vetor de embedding de 784 dimensões, no qual cada dimensão corresponde a um pixel individual e tem um valor entre 0 (para preto) e 1 (para branco). Se fossem imagens coloridas, essas incorporações vetoriais teriam 2.352 dimensões: 3 dimensões para cada um dos 784 pixels, correspondendo aos respectivos valores de vermelho, verde e azul (RGB).
No entanto, os próprios dígitos compreendem somente uma pequena fração do espaço de pixels. A maior parte da imagem contém fundo vazio. Reduzir as imagens (e os vetores que as representam) a somente as dimensões que contêm informações reais—o espaço latente— pode melhorar consideravelmente a capacidade de um modelo de aprendizado de máquina processar as imagens com precisão e eficiência.
Um tipo de arquitetura de rede neural projetada explicitamente para redução de dimensionalidade e compactação de dados de entrada no espaço latente é o autoencoder.
Autocodificadores são sistemas autossupervisionados cujo objetivo de treinamento é comprimir (ou codificar) dados de entrada por meio da redução da dimensionalidade e, então, reconstruir com precisão sua entrada original a partir dessa representação compactada. Em um codificador automático padrão, cada camada do codificador contém progressivamente menos nós do que a camada anterior. À medida que a incorporação vetorial dos dados de entrada é passada para a próxima camada do codificador, ela é comprimida por meio do processo de "redução" para menos dimensões. A rede do decodificador reconstrói a entrada original utilizando apenas o vetor latente produzido pela rede do codificador.
Os autocodificadores são treinados para minimizar a perda de reconstrução, que mede o quanto a reconstrução do decodificador difere da entrada original. Como o codificador pode passar somente uma quantidade limitada de informações para o decodificador, é forçado a extrair apenas as características mais importantes dos dados. Em outras palavras, um autocodificador aprende naturalmente um mapeamento eficaz do espaço latente de entrada.
Essa capacidade oferece aos codificadores automáticos muitos casos de uso interessantes, além da compactação de dados. Por exemplo, os autocodificadores podem ser utilizados para detecção de anomalias porque podem registrar anomalias não aparentes para um observador humano. Imagine um relógio falsificado: até mesmo para os olhos treinados pode se assemelhar perfeitamente ao item real. Somente o desmontando e tentando reconstruir as engrenagens e mecânicas internas subjacentes — seu espaço latente — é possível identificar elementos que não correspondem aos do relógio genuíno que imita.
Um benefício principal dos codificadores automáticos em relação a outros algoritmos de redução de dimensionalidade, como a análise discriminante linear ou a análise de componentes principais (PCA), é que os codificadores automáticos podem modelar relacionamentos não lineares entre diversas variáveis.
Muitas outras redes neurais implementam uma arquitetura de codificador-decodificador semelhante, na qual a rede do codificador reduz a dimensionalidade da entrada e o decodificador processa essa codificação latente para fazer previsões. Um codificador automático é qualquer implementação dessa estrutura na qual o modelo é treinado para reconstruir dados de entrada.
Os autocodificadores variacionais (VAEs) utilizam a arquitetura de autoencoder para codificar o espaço latente de forma a ser usada para tarefas generativas, como a geração de imagens.
Diferentemente da maioria dos autocodificadores, que são modelos "determinísticos" que codificam um único vetor de valores discretos para cada variável latente dos dados de treinamento, os VAES são modelos "probabilísticos" que codificam o espaço latente como um conjunto de possibilidades. Interpolando dentro dessa gama de possibilidades codificadas, os VAEs podem sintetizar novas amostras de dados que, embora únicas e originais em si mesmas, assemelham-se aos dados de treinamento originais.
Para possibilitar a geração de amostras de dados completamente novas (em vez de simplesmente recriar ou combinar amostras de dados de treinamento), o espaço latente deve exibir dois tipos de regularidade:
Uma maneira simples de impor continuidade e completude no espaço latente é forçá-lo a seguir uma distribuição normal (Gaussiana). Portanto, os VAEs codificam 2 vetores diferentes para cada atributo latente dos dados de treinamento: um vetor de médias, "μ", e um vetor de desvios padrão, "σ". Em essência, esses 2 vetores representam a gama de possibilidades para cada variável latente e a variância esperada dentro de cada faixa de possibilidades, respectivamente.
Os VAEs conseguem isso adicionando uma função de perda adicional com a perda de reconstrução: divergência de Kullback-Leibler (ou divergência KL). Mais especificamente, o VAE é treinado para minimizar a divergência entre uma distribuição gaussiana padrão e o espaço latente aprendido, minimizando a perda de reconstrução.
Embora outras arquiteturas de modelos de geração de imagens utilizem objetivos de treinamento diferentes da perda de reconstrução, todas elas normalmente empregam termos de regularização para impor a continuidade e a integridade do espaço latente. A maioria, mas não todos, ajusta o espaço latente a uma distribuição normal.
As redes adversárias generativas (GANs) treinam duas redes neurais: uma rede "discriminadora" e uma rede geradora, em um jogo adversário. O discriminador vê uma imagem e é treinado para prever se é uma imagem original ou uma imagem extraída do conjunto de dados de treinamento. O gerador é treinado para enganar o discriminador por amostragem do espaço latente para gerar amostras originais.
O gerador é considerado treinado quando o discriminador não é mais capaz de diferenciar entre imagens de treinamento e imagens geradas.
Os modelos de difusão latente, introduzidos pela primeira vez pelo modelo original Stable Diffusion, combinam essencialmente modelos de difusão com VAEs. Enquanto os modelos de difusão padrão agem diretamente no espaço de pixels, os modelos de difusão latente primeiro empregam uma arquitetura no estilo VAE para codificar o input em uma representação latente de dimensão inferior e, em seguida, aplicam a difusão ao espaço latente. Essa inovação aumentou muito a velocidade e a eficiência dos modelos de difusão.
As relações entre diversos pontos de dados no espaço latente são inerentemente difíceis de imaginar ou visualizar. Nossos sentidos e experiências estão confinados a uma compreensão tridimensional do mundo e nossas mentes não podem conceber um gráfico que traça pontos ao longo de dezenas, centenas ou mesmo milhares de dimensões.
Para enfrentar esse desafio, os cientistas de dados aplicam técnicas de redução de dimensionalidade, como t-distributedstochastic neighbor embedding (t-SNE) ou Uniform Manifold Approximation and Projection (UMAP). Tais técnicas, amplamente utilizadas na visualização de dados, mapeiam dados de alta dimensão para um gráfico bidimensional (ou tridimensional), em que objetos semelhantes estão próximos uns dos outros e objetos diferentes estão distantes. A visualização do espaço latente de um VAE apresentada anteriormente neste artigo, por exemplo, foi criada usando t-SNE.
A pesquisa em modelos de imagens também produziu insights interessantes sobre a natureza do espaço latente que contribuíram para avanços na manipulação do espaço latente para modelos generativos. Por exemplo, o artigo amplamente citado "Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks" explorou técnicas como a realização de aritmética com vetores latentes para produzir intuitivamente novas imagens com qualidades específicas.
Da mesma forma que as incorporações vetoriais para imagens visam representar os dados apresentados pela distribuição original de valores de pixel de uma imagem, as incorporações de palavras visam capturar o significado semântico de uma palavra específica.
No entanto, ao contrário de uma imagem, o significado semântico de uma palavra não é estático: é dinâmico com conotações e relações que podem ser alteradas pelas palavras ao seu redor. Portanto os modelos de transformadores utilizam um mecanismo de autoatenção para calcular como o significado de uma palavra é impactado por seu contexto e atualizar sua incorporação corretamente. Entre a camada de entrada que recebe um prompt e a camada de produção onde o novo texto é gerado, as palavras originais incorporadas são transformadas em uma série de representações latentes à medida que o modelo refina constantemente sua compreensão contextual.
Embora o funcionamento interno dos grandes modelos de linguagem (LLMs) tenha se mostrado bastante difícil de interpretar até o momento, pesquisas em andamento têm explorado a ativação do espaço latente na aprendizagem no contexto e outras habilidades emergentes dos LLMs.1, 2
1 "Large Language Models Are Latent Variable Models: Explaining and Finding Good Demonstrations for In-Context Learning," Proceedings of the 37th Conference on Neural Information Processing Systems (NeurIPS 2023), dezembro de 2023.
2 "A Latent Space Theory for Emergent Abilities in Large Language Models," arXiv, 13 de setembro de 2023.