Publicado em: 22 de dezembro de 2023
colaboradores: Joel Barnard
Incorporar é um meio de representar objetos como texto, imagens e áudio como pontos em um espaço vetorial contínuo onde os locais desses pontos no espaço são semanticamente significativos para os algoritmos de aprendizado de máquina (ML).
A incorporação é uma ferramenta crítica para engenheiros de ML que criam mecanismos de pesquisa de texto e imagem, sistemas de recomendação, chatbots, sistemas de detecção de fraudes e muitas outras aplicações. Basicamente, a incorporação permite que modelos de aprendizado de máquina encontrem objetos semelhantes.
Ao contrário de outras técnicas de ML, as incorporações são criadas a partir de dados usando diferentes algoritmos, como redes neurais, em vez de depender explicitamente da experiência humana para definição. Elas permitem que o modelo aprenda padrões e relacionamentos complexos nos dados, que de outra forma seriam impossíveis de serem identificados por humanos.
Por exemplo, a implementação da incorporação da OpenAI permite que o ChatGPT compreenda facilmente as relações entre diferentes palavras e categorias, em vez de apenas analisar cada palavra de maneira isolada. Com as incorporações, os modelos do GPT da OpenAI podem gerar respostas mais coerentes e contextualmente relevantes às solicitações e perguntas do usuário.
Um estúdio empresarial de última geração para desenvolvedores de IA treinarem, validarem, ajustarem e implementarem modelos de IA
Assine o boletim informativo da IBM
A maioria dos algoritmos de aprendizado de máquina só pode obter dados numéricos de baixa dimensão como entradas. Portanto, é necessário converter os dados em um formato numérico. Isso pode envolver questões como a criação de uma representação de "saco de palavras" para dados de texto, a conversão de imagens em valores de pixel ou a transformação de dados gráficos em uma matriz numérica.
Os objetos que entram em um modelo de incorporação saem como incorporações, representados como vetores. Um vetor é uma matriz de números (por exemplo, 1489, 22… 3, 777), em que cada número indica onde um objeto está ao longo de uma dimensão especificada. O número de dimensões pode chegar a mil ou mais dependendo da complexidade dos dados de entrada. Quanto mais próxima uma incorporação estiver de outras incorporações nesse espaço n-dimensional, mais semelhantes elas serão. A similaridade de distribuição é determinada pelo comprimento dos pontos vetoriais de um objeto para o outro (medido em Euclidiano, coseno ou outra medida).
Um modelo, Word2Vec (palavra para vetor), desenvolvido pela Google em 2013, é um método para criar incorporações de palavras de forma eficiente usando uma rede neural de duas camadas. Ele usa como input uma palavra e gera uma coordenada n-dimensional (o vetor de incorporação) de modo que, quando você trace esses vetores de palavras em um espaço tridimensional, os sinônimos se agrupem.
Veja como duas palavras, "papai" e "mamãe" seriam representadas como vetores:
"papai" = [0.1548, 0,4848, …, 1,864]
"mamãe" = [0,8785, 0,8974, …, 2,794]
Embora haja alguma semelhança entre essas duas palavras, esperamos que "pai" esteja muito mais perto de "pai" no espaço vetorial, resultando em um produto escalar mais alto (uma medida da direção relativa de dois vetores e o quanto eles se alinham na direção em que apontam).
Um exemplo mais complexo é a incorporação de recomendações, que funciona representando usuários e itens (por exemplo, filmes, produtos, artigos) como vetores de alta dimensão em um espaço vetorial contínuo. Essas incorporações capturam elementos latentes que refletem as preferências dos usuários e as características do item. A ideia é aprender uma representação para cada usuário e item de tal forma que o produto escalar de suas incorporações esteja correlacionado com a preferência do usuário para o item em questão.
Cada usuário e item está associado a um vetor de incorporação. Esses vetores normalmente são aprendidos por meio de um modelo de recomendação durante um processo de treinamento. As incorporações do usuário e do item são organizadas em matrizes. As linhas da matriz de usuário representam os usuários e as linhas da matriz de item representam os itens.
A pontuação de recomendação de um par de usuário-item pode ser determinada calculando o produto escalar do vetor de incorporação do usuário e o do item. Quanto maior o produto escalar, maior a probabilidade de o usuário estar interessado no item.
Pontuação de recomendação = Incorporação de usuário ⋅ Incorporação de item
As matrizes de incorporação são aprendidas por meio de um processo de treinamento que usa interações históricas entre usuário e item. O modelo tem como objetivo minimizar a diferença entre as pontuações previstas e as preferências reais do usuário (por exemplo, classificações, cliques, compras).
Depois que o modelo é treinado, ele pode ser usado para gerar as melhores N recomendações para os usuários. Os itens com as pontuações previstas mais altas para um usuário são recomendados.
As incorporações são usadas em vários domínios e aplicações devido à sua capacidade de transformar dados categóricos e de alta dimensão em representações vetoriais contínuas, capturando padrões, relações e semântica significativos. Veja abaixo algumas razões pelas quais a incorporação é usada na ciência de dados:
Ao mapear entidades (palavras, imagens, nós em um gráfico, etc.) para vetores em um espaço contínuo, as incorporações capturam relações semânticas e similaridades, permitindo que os modelos entendam e generalizem melhor.
Dados de alta dimensão, como textos, imagens ou gráficos, podem ser transformados em representações de baixa dimensão, tornando-os computacionalmente eficientes e mais fáceis de trabalhar.
Ao aprender representações significativas a partir dos dados, os modelos podem generalizar bem para exemplos não vistos, o que torna as incorporações cruciais para tarefas com dados rotulados limitados.
Técnicas como a t-SNE podem ser aplicadas para visualizar incorporações de alta dimensão em duas ou três dimensões, fornecendo insights sobre relações e agrupamento nos dados.
As camadas de incorporação são comumente usadas nas arquiteturas de rede neural para mapear entradas categóricas em vetores contínuos, facilitando a retropropagação e a otimização.
As incorporações são representações versáteis que podem ser aplicadas a uma ampla gama de tipos de dados. Estes são alguns dos objetos mais comuns que podem ser incorporados:
Palavras
As incorporações de palavras capturam as relações semânticas e os significados contextuais das palavras com base em seus padrões de uso em um determinado corpus linguístico. Cada palavra é representada como um vetor denso de tamanho fixo de números reais. É o oposto de um vetor esparso, como a codificação one-hot, que tem várias entradas zero.
O uso da incorporação de palavras melhorou significativamente o desempenho dos modelos de processamento de linguagem natural (NLP), fornecendo uma representação mais significativa e eficiente das palavras. Essas incorporações permitem que as máquinas entendam e processem a linguagem de forma a capturar nuances semânticas e relações contextuais, tornando-as valiosas para uma grande variedade de aplicações, incluindo análise de sentimento, tradução automática e recuperação de informações.
Modelos populares de incorporação de palavras incluem Word2Vec, GloVe (Vetores Globais para Representação de Palavras), FastText e incorporações derivadas de modelos baseados em transformadores como o BERT (Representações de Codificadores Bidirecionais a partir de Transformadores) e GPT (Transformador Generativo Pré-treinado).
Texto
A incorporação de texto estende a incorporação de palavras para representar frases, parágrafos ou documentos inteiros em um espaço vetorial contínuo. As incorporações de texto desempenham um papel crucial em várias aplicações de NLP, como a análise de sentimento, classificação de texto, tradução automática, resposta a perguntas e recuperação de informações.
Modelos como o Doc2Vec, USE (Codificador de Frases Universal), BERT e ELMO (Incorporações de Modelos de Linguagem) foram treinados em grandes quantidades de corpora de incorporação pré-treinada, como Wikipedia e Google News.
Imagens
A incorporação de imagens foi projetada para capturar recursos visuais e informações semânticas sobre o conteúdo das imagens. As incorporações de imagens são particularmente úteis para várias tarefas de visão computacional, permitindo a modelagem de semelhanças de imagens, classificação de imagens, detecção de objetos e outras tarefas de reconhecimento visual.
Redes Neurais Convolucionais (CNNs) populares para incorporações de imagens incluem modelos como VGG (Grupo de Geometria Visual), ResNet (Redes Residuais), Inception (GoogLeNet) e EfficientNet. Estes modelos foram pré-treinados em conjuntos de dados de imagem de grande escala e podem ser usados como poderosos extratores de recursos.
Áudio
Semelhante às incorporações de imagem e texto, as incorporações de áudio são muitas vezes geradas usando arquiteturas de deep learning, particularmente redes neurais recorrentes (RNNs), redes neurais convolucionais (CNNs) ou modelos híbridos que combinam ambas. Essas incorporações capturam os recursos e características relevantes dos dados de áudio, permitindo análises, processamento e métricas de similaridade eficazes. Incorporações de áudio são particularmente úteis em aplicações como reconhecimento de fala, classificação de áudio e análise musical, entre outras.
Gráficos
A incorporação de gráficos é fundamental para várias tarefas, incluindo a classificação de nós, previsão de links e detecção de comunidades em redes complexas. Essas incorporações encontram aplicações na análise de redes sociais, sistemas de recomendação, análise de rede biológica, detecção de fraudes e vários outros domínios em que os dados podem ser representados por gráficos.
As incorporações são criadas por meio de um processo chamado de "aprendizado por incorporação". Embora o método específico usado dependa do tipo de dado que está sendo incorporado, as incorporações são criadas seguindo estas etapas gerais:
Em todos os casos incorporados, a ideia é representar os dados em um espaço vetorial contínuo onde relações significativas são preservadas. O processo de treinamento envolve o ajuste dos parâmetros do modelo para minimizar a diferença entre os valores previstos e os valores reais com base na função objetiva escolhida. Depois de treinadas, as incorporações podem ser usadas para várias tarefas posteriores.
As incorporações são amplamente usadas em várias aplicações do mundo real em diferentes domínios. Por exemplo:
Esses exemplos destacam a versatilidade das incorporações em diversas aplicações, mostrando sua capacidade de capturar representações e relações significativas em diferentes tipos de dados.
O IBM® Watson Natural Language Understanding usa deep learning para extrair o significado e metadados dos textos não estruturados. Conheça seus dados usando a análise de texto para extrair categorias, classificações, entidades, palavras-chave, sentimentos, emoções, relações e sintaxe.
Multiplique o poder da IA com nossa plataforma de dados e IA de última geração. O IBM watsonx é um portfólio de ferramentas, aplicações e soluções prontas para o negócio, projetado para reduzir os custos e os obstáculos da adoção da IA e, ao mesmo tempo, otimizar os resultados e o uso responsável da IA.
Operacionalize a IA no seu negócio para oferecer benefícios com rapidez e ética. Nosso rico portfólio de produtos de IA e soluções de análise de dados de alto nível foi projetado para reduzir os obstáculos da adoção de IA e estabelecer a base de dados certa, além de otimizar os resultados e o uso responsável.
Obtenha insights sobre como o aprendizado de máquina usa dados e algoritmos, seus casos de uso e preocupações associadas para possibilitar o uso responsável e inovador da tecnologia.
Saiba mais sobre os diferentes tipos de modelos de linguagem de grande porte (LLMs) e os benefícios, riscos e casos de uso de negócios dos LLMs de código aberto para a IA generativa.
Python é uma linguagem de programação comumente usada com incorporação. Este guia apresentará alguns conceitos básicos que você precisa conhecer para começar a usar esta linguagem de programação simples.