Introdução ao Word Embedding em Processamento de Linguagem Natural

Sem dúvidas a plataforma Open-Webui é o projeto para implementação de agentes de IAs mais bem sucedido da comunidade open-source. Construído com Backend em Python e Front-end em Nodejs, ainda conta com um conjunto de APIs que permite integrar desde modelos que utilizam o Backend Ollama como modelos originais da Openai, ou se preferir utilizar algum outro projeto open-source que gera uma fake API da Openai, permitindo por exemplo executar modelos em servidores locais usando GPUs da Nvidia, Intel ou AMD sem a menor necessidade de transmitir seus dados que alimentam os modelos oriundos de seu banco de dados, documentos, ou contextos embarcados em binários ou vetores dentro dos modelos que você utiliza. Graças as integrações entre APIs, possibilidade de utilização de “ACTIONS“, “FUNCTIONS“, “PROMPTS” e “KNOWLEDGE BASE” alimentadas por diversos formatos de arquivos como, TXT, PDF, DOCS, XLS, CSV.

Com um bom conhecimento de hardware, ajustes de drivers, compilação de alguns backends, que utilizam de linguagens como C++, Go, Python, C, tudo junto e misturado, é possível tirar o máximo proveito da (s) maquina (s) envolvidas em um projeto, gerando verdadeiras nuvens privadas escaláveis paralelamente.

É possível gerar desde um ambiente de laboratório para aulas em uma faculdade (que pode sair fora da caixa e parar de ensinar apenas consumo de serviços de empresas que querem monopolizar as tecnologias por trás de uma implementação de IA, e gerar engenheiros e arquitetos cientistas e engenheiros da computação de verdade).

Mas vamos ao que interessa, Word Embedding, que está presente no Open-Webui quando vamos alimentar modelos com documentos que alimentam contextos e prompts. Recurso de grande utilidade quando se pretende obter resultados personalizados e “íntimos” a seu negócio ou projeto utilizando Agentes de IA integrados para manipular ou interpretar os dados. Um escritório de advocacia por exemplo pode com os modelos corretos utilizar esses conjuntos de agentes alimentados com os dados de um determinado processo e obter opiniões, versões, interpretações, possibilidades de caminhos a se tomar em uma linha de defesa ou acusação. Muito mais do que apenas gerar textos automatizados, é por a IA para pensar com você. É claro que ainda existem limitações, mas alguns resultados já impressionam, uma vez que um modelo é capaz de simular e experimentar de forma rápida e matemática várias possibilidades. Por mais superior que um humano seja perante uma IA, sempre pode acontecer de deixarmos passar determinada possibilidade que para um modelo são processos sistemáticos e executados um a um, gerando informações de probabilidades do que faz mais ou menos sentido e tem mais chances de sucesso dentro de uma lógica pré estalecida baseada nos dados de referencia que alimentam o modelo.

O conceito de Word Embedding é fundamental no campo do Processamento de Linguagem Natural (PLN). Neste texto, serão abordados os principais aspectos desse conceito, sua importância e como é implementado, especificamente através do algoritmo Word2vec.

O que é Word Embedding?

Word Embedding refere-se à representação de palavras em forma de vetores numéricos. Essa transformação é crucial para o uso de modelos estatísticos e de aprendizado profundo em PLN, uma vez que algoritmos de machine learning não conseguem processar texto em sua forma bruta.

Documentos PDF que alimentam um modelo ou conjunto de Agentes no Open-webui.

O conceito de Word Embedding é fundamental no campo do Processamento de Linguagem Natural (PLN). Neste texto, serão abordados os principais aspectos desse conceito, sua importância e como é implementado, especificamente através do algoritmo Word2vec.

 

O que é Word Embedding?
Word Embedding refere-se à representação de palavras em forma de vetores numéricos. Essa transformação é crucial para o uso de modelos estatísticos e de aprendizado profundo em PLN, uma vez que algoritmos de machine learning não conseguem processar texto em sua forma bruta.

Interface de configuração do Modelo de Embedding, no exemplo é usado o Mxbal, um arquivo de apenas 600 MB. Para extração e reclassificação dos dados dos documentos fornecidos é utilizado o modelo BAAI/bge-reranker, também com apenas 600 MB.

Vetores: Definição e Importância
Um vetor, no contexto deste texto, pode ser visto como uma lista de valores numéricos, ou uma matriz 1xN.

A maneira como representamos palavras influencia diretamente a capacidade dos modelos de captar significados e relações semânticas.

Limitações de Métodos Tradicionais
Métodos tradicionais de representação textual, como Bag of Words e TF-IDF, apresentam algumas limitações:

Tamanho do vetor: O vetor resultante tem um tamanho equivalente ao vocabulário, o que é inviável em corpora com milhares de palavras.
Informação semântica: Esses métodos não capturam bem o significado e a relação entre palavras.

Representação de Palavras através de Escalas
Para ilustrar, considere como poderíamos representar a palavra “mestre”. Poderíamos criar um vetor com dimensões que representam diferentes características:

Gênero: Uma escala que varia de -1 (feminino) a 1 (masculino).
Status: Uma escala de -1 (plebeu) a 1 (nobre).

A representação da palavra “mestre” poderia ser:

Gênero: 1 (masculino)
Status: 1 (nobre)

Assim, “mestre” poderia ser representado pelo vetor v=[1,1]\mathbf{v} = [1, 1]v=[1,1].

Como Obter os Embeddings?
A atribuição manual de valores a cada palavra seria impraticável. Em vez disso, os embeddings são aprendidos a partir do contexto das palavras utilizando algoritmos de machine learning. A ideia principal é que o significado de uma palavra está relacionado às palavras que frequentemente aparecem com ela.

Dimensionamento dos Vetores
Ao usar Word Embedding, é possível escolher a quantidade de dimensões dos vetores. Em geral, um valor entre 100 e 1000 dimensões é comum, e isso depende do corpus de treinamento.

Word2vec
Word2vec é um dos algoritmos mais populares para gerar embeddings. Ele treina uma rede neural rasa, podendo usar duas arquiteturas principais: CBOW (Continuous Bag of Words) e Skip-Gram.

Exemplificação
Considere a frase “Fui ao mercado e comprei maçã.”

Modelo CBOW: A tarefa é prever uma palavra a partir do contexto. Por exemplo, o modelo deve completar “Fui ao ___ e comprei maçã” com “mercado”.


Modelo Skip-Gram: A tarefa é prever o contexto a partir de uma palavra. Por exemplo, dado “mercado”, prever “Fui”, “ao”, “e”, “comprei”, “maçã”.

Ambas as abordagens são chamadas de auto-supervisionadas, pois a rede aprende sem a necessidade de rotulação manual dos dados.

Extraindo os Embeddings
Após o treinamento, os embeddings são extraídos da matriz de pesos da camada oculta da rede neural. O tamanho dessa matriz é um hiperparâmetro definido pelo usuário, e o fato de levar em consideração o contexto permite que os vetores resultantes possuam significado semântico.

Visualização de Embeddings
É possível plotar os vetores para visualizar as relações entre palavras. Por exemplo, a relação entre as palavras pode ser representada em um gráfico 3D, onde cada ponto é um vetor.

Similaridade entre Vetores
Distância Euclidiana
A distância euclidiana é uma das formas de medir a similaridade entre vetores. Para dois pontos ppp e qqq em um espaço nnn-dimensional, a distância é calculada pela fórmula:

 

d(p, q) = sqrt((p1 - q1)^2 + (p2 - q2)^2 + ... + (pn - qn)^2)

Cálculo da Distância Euclidiana

Para exemplificar, considere os vetores:

  • p=[1,2]p = [1, 2]p=[1,2]
  • q=[4,6]q = [4, 6]q=[4,6]

A distância euclidiana seria:

d(p,q)=(1−4)2+(2−6)2=9+16=25=5

Em um contexto de embeddings, se um vetor para “mulher” for [0.8,0.5] e para “homem” for [0.7,0.6], a distância pode ser calculada da mesma forma.

Similaridade de Cossenos

A similaridade de cossenos é frequentemente usada para medir a semelhança entre vetores. É calculada como:

Comparação de Similaridade

Por exemplo, a similaridade entre “mulher” e “pessoa” poderia ser maior do que entre “mulher” e “abacate”, refletindo a semelhança entre os significados das palavras.

Analogias

Uma relação interessante é a analogia, que pode ser expressa matematicamente. Por exemplo, para encontrar uma palavra que está em relação de analogia com “mestre” como “mulher” está para “homem”, podemos representar a relação como:

f(mestre)−f(homem)=f(p)−f(mulher)f(mestre) – f(homem) = f(p) – f(mulher)f(mestre)−f(homem)=f(p)−f(mulher)

Onde ppp é a palavra que desejamos descobrir. Assim, obtemos:

f(p)=f(mestre)−f(homem)+f(mulher)f(p) = f(mestre) – f(homem) + f(mulher)f(p)=f(mestre)−f(homem)+f(mulher)

Avaliação dos Embeddings

Avaliação Intrínseca

A avaliação intrínseca analisa se os embeddings capturam informações semânticas adequadamente, como em analogias e similaridades.

Avaliação Extrínseca

Já a avaliação extrínseca mede se os embeddings melhoram o desempenho em tarefas específicas, como a classificação de sentimentos em análises de produtos.

Conclusão

O Word Embedding é uma técnica poderosa que permite representar palavras de forma que suas relações semânticas sejam preservadas. Compreender como esses vetores funcionam e como podem ser gerados é fundamental para aplicar técnicas de PLN eficazmente. No próximo texto desta série, será explorado o funcionamento detalhado do Word2vec.