A incorporação de palavras é uma forma de representar palavras como vetores em um espaço multidimensional, onde a distância e a direção entre vetores refletem a similaridade e as relações entre as palavras correspondentes.
O desenvolvimento de embeddings para representar texto teve um papel fundamental no avanço das aplicações de processamento de linguagem natural (PLN) e aprendizado de máquina (ML). Os embeddings de palavras tornaram-se parte essencial de tarefas como classificação de texto, análise de sentimento, tradução automática, entre outras.
Os métodos tradicionais de representar palavras de maneira que máquinas possam entender, como codificação one-hot, representam cada palavra como um vetor esparsa com uma dimensão igual ao tamanho do vocabulário. Aqui, apenas um elemento do vetor é "hot" (definido como 1) para indicar a presença daquela palavra. Embora simples, essa abordagem sofre com a maldição da dimensionalidade, falta de informações semânticas e não captura relações entre palavras.
Os embeddings de palavras são vetores densos com valores contínuos, treinados por meio de técnicas de aprendizado de máquina, muitas vezes baseadas em redes neurais. A ideia é aprender representações que codificam o significado semântico e as relações entre palavras. Os embeddings de palavras são treinados expondo um modelo a grandes quantidades de dados textuais e ajustando as representações vetoriais com base no contexto em que as palavras aparecem.
Um método popular para treinar incorporações de palavras é o Word2Vec, que usa uma rede neural para prever as palavras ao redor de uma palavra-alvo em um dado contexto. Outra abordagem amplamente utilizada é o GloVe (Global Vectors for Word Representation), que aproveita estatísticas globais para criar incorporações.
Os embeddings de palavras provaram ser inestimáveis para tarefas de PLN, pois permitem que os algoritmos de aprendizado de máquina compreendam e processem relações semânticas entre palavras de maneira mais sofisticada do que os métodos tradicionais.
As incorporações de palavras são usadas em uma variedade de tarefas de PNL para aprimorar a representação das palavras e capturar relações semânticas, incluindo:
As incorporações de palavras são frequentemente usadas como recursos em tarefas de classificação de texto, como análise de sentimento, detecção de spam e categorização de tópicos.
Para identificar e classificar entidades com precisão (como nomes de pessoas, organizações e locais) em um texto, os embeddings de palavras ajudam o modelo a compreender o contexto e as relações entre palavras.
Em sistemas de tradução automática, as incorporações de palavras ajudam a representar palavras de uma maneira independente de idioma, permitindo que o modelo compreenda melhor as relações semânticas entre palavras nos idiomas de origem e de destino.
Nos sistemas de recuperação de informações, as incorporações de palavras podem permitir correspondências mais precisas entre consultas de usuários e documentos relevantes, o que melhora a eficácia dos motores de busca e sistemas de recomendação.
As incorporações de palavras contribuem para o sucesso de sistemas de resposta a perguntas ao aprimorar a compreensão do contexto em que as perguntas são feitas e as respostas são encontradas.
As incorporações de palavras possibilitam medir a similaridade semântica entre palavras ou documentos para tarefas como agrupar artigos relacionados, encontrar documentos semelhantes ou recomendar itens similares com base em seu conteúdo textual.
Em tarefas de geração de texto, como modelagem de linguagem e autoencoders, os embeddings de palavras são frequentemente usados para representar o texto de input e gerar sequências de saída coerentes e contextualmente relevantes.
As incorporações de palavras podem ser usadas para realizar tarefas de similaridade de palavras (por exemplo, encontrar palavras similares a uma palavra dada) e tarefas de analogia de palavras (por exemplo, "rei" está para "rainha" assim como "homem" está para "mulher").
As incorporações de palavras pré-treinadas servem como base para o pré-treinamento de modelos de representação de linguagem mais avançados, como BERT (Bidirectional Encoder Representations from Transformers) e GPT (Generative Pre-trained Transformer).
Nos anos 2000, os pesquisadores começaram a explorar modelos de linguagem neural (MLNs), que usam redes neurais para modelar as relações entre palavras em um espaço contínuo. Esses modelos iniciais lançaram as bases para o desenvolvimento posterior dos word embeddings.
Bengio et al. (2003) introduziram redes neurais feedforward para modelagem de linguagem. Esses modelos foram capazes de capturar representações distribuídas de palavras, porém tinham limitações em sua capacidade de lidar com vocabulários extensos.
Pesquisadores, incluindo Mnih e Hinton (2009), exploraram modelos probabilísticos para aprender representações distribuídas de palavras. Esses modelos se concentram em capturar relações semânticas entre palavras e foram um passo importante na direção das incorporações de palavras.
O modelo Word2Vec, introduzido por Tomas Mikolov e seus colegas no Google em 2013, marcou um avanço significativo. O Word2Vec utiliza dois modelos, Continuous Bag of Words (CBOW) e Continuous Skip-gram, que aprendem incorporações de palavras de grandes corpora de forma eficiente e se tornaram amplamente adotados devido à sua simplicidade e eficácia.
O GloVe (Global Vectors for Word Representation), apresentado por Pennington et al. em 2014, é baseado na ideia de usar estatísticas globais (frequências de coocorrência de palavras) para aprender representações vetoriais para palavras. Ele tem sido usado em várias aplicações de PLN e é conhecido por sua capacidade de capturar relações semânticas.
Hoje, com o avanço do deep learning, camadas de embedding tornaram-se um componente padrão das arquiteturas de redes neurais para tarefas de PLN. Os embeddings agora são usados não apenas para palavras, mas também para entidades, frases e outras unidades linguísticas. Em grande parte, as incorporações de palavras permitiram modelos de linguagem como redes neurais recorrentes (RNNs), redes de memória de curto prazo (LSTM), incorporações de modelos de linguagem (ELMo), BERT, ALBERT (um BERT claro) e GPT evoluíssem a um ritmo tão acelerado.
O objetivo principal das incorporações de palavras é representar palavras de uma maneira que capture suas relações semânticas e informações contextuais. Esses vetores são representações numéricas em um espaço vetorial contínuo, onde as posições relativas dos vetores refletem as similaridades semânticas e relações entre palavras.
A razão pela qual vetores são usados para representar palavras é que a maioria dos algoritmos de aprendizado de máquina, incluindo redes neurais, é incapaz de processar texto simples em sua forma bruta. Eles exigem números como entradas para realizar qualquer tarefa.
O processo de criação de incorporações de palavras envolve treinar um modelo em um grande corpus de texto (por exemplo, Wikipedia ou Google News). O corpus é pré-processado ao tokenizar o texto em palavras, remover palavras de parada e pontuação, e realizar outras tarefas de limpeza de texto.
O texto é submetido a uma janela de contexto deslizante, onde, para cada palavra-alvo, as palavras circundantes dentro da janela são consideradas como palavras de contexto. O modelo de incorporação de palavras é treinado para prever uma palavra-alvo com base em suas palavras de contexto, ou vice-versa.
Isso permite que os modelos capturem padrões linguísticos diversos e atribuam a cada palavra um vetor único, que representa a posição da palavra em um espaço vetorial contínuo. Palavras com significados similares são posicionadas próximas umas das outras, e a distância e direção entre os vetores codificam o grau de similaridade.
O processo de treinamento envolve ajustar os parâmetros do modelo de incorporação para minimizar a diferença entre as palavras previstas e as reais em contexto.
Aqui está um exemplo simplificado de incorporação de palavras para um corpo muito pequeno (6 palavras), onde cada palavra é representada como um vetor tridimensional:
gato [0,2, -0,4, 0,7]
cão [0,6, 0,1, 0,5]
maçã [0,8, -0,2, -0,3]
laranja [0,7, -0,1, -0,6]
feliz [-0,5, 0,9, 0,2]
triste [0,4, -0,7, -0,5]
Neste exemplo, cada palavra (por exemplo, "gato", "cão", "maçã") está associada a um vetor único. Os valores no vetor representam a posição da palavra em um espaço vetorial contínuo tridimensional. É esperado que palavras com significados ou contextos semelhantes tenham representações vetoriais similares. Por exemplo, os vetores para "gato" e "cão" estão próximos, refletindo sua relação semântica. Da mesma forma, os vetores para "feliz" e "triste" têm direções opostas, indicando seus significados contrastantes.
O exemplo acima é altamente simplificado para fins ilustrativos. As incorporações de palavras reais normalmente têm centenas de dimensões para capturar relações mais intrincadas e nuances de significado.
As incorporações de palavras tornaram-se uma ferramenta fundamental em PLN, fornecendo uma base para entender e representar a linguagem de uma maneira que esteja alinhada com a semântica subjacente das palavras e frases.
Abaixo estão alguns dos conceitos-chave e desenvolvimentos que tornaram o uso de incorporações de palavras uma técnica tão poderosa para ajudar a avançar a PNL:
A Hipótese Distributiva postula que palavras com significados similares tendem a ocorrer em contextos similares. Esse conceito forma a base para muitos modelos de incorporações de palavras, pois eles visam capturar relações semânticas analisando padrões de coocorrência de palavras.
Ao contrário da codificação one-hot tradicional, as incorporações de palavras são vetores densos de dimensionalidade inferior. Isso reduz a complexidade computacional e os requisitos de memória, tornando-os adequados para aplicações de PLN em grande escala.
As incorporações de palavras capturam relações semânticas entre palavras, permitindo que modelos compreendam e representem palavras em um espaço vetorial contínuo onde palavras similares estão próximas umas das outras. Essa representação semântica possibilita uma compreensão mais sutil da linguagem.
As incorporações de palavras capturam informações contextuais ao considerar as palavras que coocorrem em um dado contexto. Isso ajuda os modelos a entenderem o significado de uma palavra com base em suas palavras ao redor, levando a uma melhor representação de frases e sentenças.
As incorporações de palavras generalizam bem para palavras não vistas ou raras porque aprendem a representar palavras com base em seu contexto. Isso é particularmente vantajoso ao trabalhar com vocabulários diversos e em evolução.
Os métodos de incorporação baseados em frequência e em previsão representam duas amplas categorias de abordagens no contexto das incorporações de palavras. Esses métodos diferem principalmente na forma como geram representações vetoriais para palavras.
As incorporações baseadas em frequência referem-se a representações de palavras que são derivadas da frequência das palavras em um corpo. Essas incorporações são baseadas na ideia de que a importância ou significado de uma palavra pode ser inferido a partir de quão frequentemente ela ocorre no texto.
Um exemplo de embedding baseado em frequência é o Term Frequency-Inverse Document Frequency (TF-IDF). O TF-IDF foi desenvolvido para destacar palavras que são frequentes dentro de um documento específico, mas relativamente raras em todo o corpus, ajudando assim a identificar termos significativos para um determinado documento.
A pontuação TF-IDF para um termo (palavra) em um documento é calculada usando a seguinte fórmula:
TF-IDF (t,d,D) = TF(t,d) x IDF(t, D)
As aplicações do TF-IDF incluem recuperação de informações, classificação de documentos, sumarização de textos e mineração de texto.
Embora as incorporações baseadas em frequência sejam diretas e fáceis de entender, elas carecem da profundidade de informações semânticas e da consciência de contexto fornecidas por incorporações baseadas em predição mais avançadas.
As incorporações baseadas em predição são representações de palavras derivadas de modelos treinados para prever certos aspectos do contexto de uma palavra ou palavras vizinhas. Ao contrário das incorporações baseadas em frequência, que se concentram em estatísticas de ocorrência de palavras, as incorporações baseadas em predição capturam relações semânticas e informações contextuais, fornecendo representações mais ricas dos significados das palavras.
As incorporações baseadas em predição podem diferenciar entre sinônimos e lidar com a polissemia (múltiplos significados de uma palavra) de forma mais eficaz. As propriedades do espaço vetorial das incorporações baseadas em predição permitem tarefas como medir a similaridade entre palavras e resolver analogias. As incorporações baseadas em previsão também podem generalizar bem para palavras ou contextos não vistos, tornando-as robustas no tratamento de termos fora do vocabulário.
Métodos baseados em predição, particularmente aqueles como Word2Vec e GloVe (discutidos abaixo), tornaram-se dominantes no campo de incorporações de palavras devido à sua capacidade de capturar significado semântico rico e generalizar bem para várias tarefas de PLN.
Desenvolvido por uma equipe de pesquisadores do Google, incluindo Tomas Mikolov, em 2013, o Word2Vec (Palavra para Vetor) tornou-se uma técnica fundamental para aprender incorporações de palavras em processamento de linguagem natural (PLN) e modelos de aprendizado de máquina.
O Word2Vec consiste em dois modelos principais para gerar representações vetoriais: Continuous Bag of Words (CBOW) and Continuous Skip-gram.
No contexto do Word2Vec, o modelo Continuous Bag of Words (CBOW) visa prever uma palavra-alvo com base em suas palavras de contexto circundante dentro de uma janela especificada. Ele usa as palavras de contexto para prever a palavra-alvo, e as incorporações aprendidas capturam relações semânticas entre as palavras.
O modelo Continuous Skip-gram, por outro lado, toma uma palavra-alvo como entrada e visa prever as palavras de contexto circundante.
Dada uma sequência de palavras em uma sentença, o modelo CBOW toma um número fixo de palavras de contexto (palavras ao redor da palavra-alvo) como entrada. Cada palavra do contexto é representada como uma incorporação (vetor) através de uma camada de incorporação compartilhada. Essas incorporações são aprendidas durante o processo de treinamento.
As incorporações individuais de palavras de contexto são agregadas, geralmente somando-as ou tirando a média delas. Esta representação agregada serve como entrada para a próxima camada.
A representação agregada é então usada para prever a palavra-alvo usando uma função de ativação softmax. O modelo é treinado para minimizar a diferença entre sua distribuição de probabilidade prevista sobre o vocabulário e a distribuição real (representação one-hot codificada) para a palavra-alvo.
O modelo CBOW é treinado ajustando os pesos da camada de incorporação com base em sua capacidade de prever a palavra-alvo com precisão.
O modelo Continuous Skip-gram usa dados de treinamento para prever as palavras de contexto com base na incorporação da palavra-alvo. Especificamente, ele gera uma distribuição de probabilidade sobre o vocabulário, indicando a probabilidade de cada palavra estar no contexto dado a palavra-alvo.
O objetivo do treinamento é maximizar a probabilidade das palavras de contexto reais dadas a palavra-alvo. Isso envolve ajustar os pesos da camada de incorporação para minimizar a diferença entre as probabilidades previstas e a distribuição real das palavras de contexto. O modelo também permite um tamanho de janela de contexto flexível. Ele pode ser ajustado com base nas necessidades específicas da tarefa, permitindo que os usuários capturem tanto as relações de contexto locais quanto globais.
O modelo Skip-gram essencialmente "pula" da palavra-alvo para prever seu contexto, o que o torna particularmente eficaz na captura de relações semânticas e similaridades entre palavras.
Ambos os modelos usados pelo Word2Vec têm suas próprias vantagens e limitações. Skip-gram funciona bem com o manuseio de grandes quantidades de dados de texto e é encontrado para representar bem palavras raras. CBOW, por outro lado, é mais rápido e tem melhores representações para palavras mais frequentes.
Quanto às limitações, o Word2Vec pode não lidar eficazmente com a polissemia, onde uma única palavra tem múltiplos significados. O modelo pode calcular a média ou misturar as representações de diferentes sentidos de uma palavra polissêmica. O Word2Vec também trata palavras como unidades atômicas e não captura informações de subpalavras.
Abordar algumas dessas limitações foi a motivação para o desenvolvimento de modelos mais avançados, como FastText, GloVe e modelos baseados em transformadores (discutidos abaixo), que visam superar algumas das limitações do Word2Vec.
O GloVe (Global Vectors for Word Representation) é um modelo de incorporação de palavras projetado para capturar informações estatísticas globais sobre padrões de coocorrência de palavras em um corpo.
Introduzido por Jeffrey Pennington, Richard Socher e Christopher D. Manning em 2014, o modelo GloVe difere do Word2Vec ao enfatizar o uso de informações globais em vez de se concentrar apenas no contexto local.
O GloVe é baseado na ideia de que as estatísticas globais de coocorrência de palavras em todo o corpo são cruciais para capturar a semântica das palavras. Ele considera com que frequência as palavras coocorrem umas com as outras no conjunto de dados inteiro em vez de apenas no contexto local de palavras individuais.
O modelo visa minimizar a diferença entre as probabilidades de coocorrência previstas e as probabilidades reais derivadas das estatísticas do corpo.
O GloVe é computacionalmente eficiente em comparação com alguns outros métodos, pois depende de estatísticas globais e emprega técnicas de fatoração de matrizes para aprender os vetores de palavras. O modelo pode ser treinado em grandes corpora sem a necessidade de recursos computacionais extensivos.
O GloVe introduz pesos escalares para pares de palavras para controlar a influência de diferentes pares de palavras no processo de treinamento. Esses pesos ajudam a mitigar o impacto de pares de palavras muito frequentes ou raros nas incorporações aprendidas.
Ao contrário dos modelos Word2Vec (CBOW e Skip-gram), que se concentram em prever palavras de contexto dadas uma palavra-alvo ou vice-versa, o GloVe usa uma abordagem diferente que envolve a otimização de vetores de palavras com base em suas probabilidades de coocorrência. O processo de treinamento é projetado para aprender incorporações que capturem eficazmente as relações semânticas entre palavras.
O primeiro passo é construir uma matriz de coocorrência que representa com que frequência as palavras aparecem juntas no corpo.
Em seguida, é formulada uma função objetiva que descreve a relação entre vetores de palavras e suas probabilidades de coocorrência.
A função objetiva é otimizada usando gradiente descendente ou outros algoritmos de otimização. O objetivo é ajustar os vetores de palavras e os vieses para minimizar a diferença ao quadrado entre as probabilidades de coocorrência logarítmicas previstas e reais.
Os usuários podem baixar incorporações GloVe pré-treinadas e realizar o ajuste fino para aplicações específicas ou usá-los diretamente.
As incorporações GloVe são amplamente usadas em tarefas de PLN, como classificação de texto, análise de sentimento, tradução de máquina e muito mais.
GloVe se destaca em cenários onde capturar relações semânticas globais, entender o contexto geral das palavras e aproveitar estatísticas de coocorrência são cruciais para o sucesso de tarefas de processamento de linguagem natural.
O sucesso do Word2Vec e GloVe inspirou pesquisas adicionais em modelos de representação de linguagem mais sofisticados, como FastText, BERT e GPT. Esses modelos utilizam incorporações de subpalavras, mecanismos de atenção e transformadores para lidar de forma eficaz com incorporações de dimensões superiores.
As incorporações de subpalavras, como FastText, representam palavras como combinações de unidades de subpalavras, oferecendo mais flexibilidade e lidando com palavras raras ou fora do vocabulário. As incorporações de subpalavras melhoram a robustez e cobertura das incorporações de palavras.
Ao contrário do GloVe, o FastText incorpora palavras tratando cada palavra como sendo composta de caracteres n-gramas em vez de uma palavra inteira. Este recurso permite não apenas aprender palavras raras, mas também palavras fora do vocabulário.
Os mecanismos de atenção e modelos transformadores consideram informações contextuais e relações bidirecionais entre palavras, levando a representações de linguagem mais avançadas.
Os mecanismos de atenção foram introduzidos para melhorar a capacidade das redes neurais de se concentrar em partes específicas da sequência de input ao fazer previsões. Em vez de tratar todas as partes do input da mesma forma, os mecanismos de atenção permitem que o modelo selecione de forma seletiva as partes relevantes da entrada.
Transformadores tornaram-se a base de diversos modelos de última geração em NLP, incluindo BERT, GPT e T5 (Text-to-Text Transfer Transformer), entre outros. Eles se destacam em tarefas como modelagem de linguagem, tradução automática, geração de texto e resposta a perguntas.
Os transformadores usam um mecanismo de autoatenção para capturar relações entre diferentes palavras em uma sequência. Este mecanismo possibilita que cada palavra considere todas as outras na sequência, capturando dependências de longo alcance.
Os transformadores possibilitam maior paralelização durante o treinamento comparado aos RNNs e são eficientes computacionalmente.
Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.
Acelere o valor comercial da inteligência artificial com um portfólio poderoso e flexível de bibliotecas, serviços e aplicativos.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.
O IBM Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagens, código, séries temporais e proteções.
Descubra como o processamento de linguagem natural pode ajudar você a conversar de forma mais natural com computadores.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
Explore o site do desenvolvedor da IBM para acessar blogs, artigos, boletins informativos e saber mais sobre a IA incorporável da IBM.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io