paint-brush
Incorporação posicional: o segredo por trás da precisão das redes neurais transformadoraspor@sanjaykn170396
2,693 leituras
2,693 leituras

Incorporação posicional: o segredo por trás da precisão das redes neurais transformadoras

por Sanjay Kumar10m2022/12/04
Read on Terminal Reader

Muito longo; Para ler

Um artigo explicando a intuição por trás da “incorporação posicional” em modelos de transformadores do renomado trabalho de pesquisa - “Atenção é tudo que você precisa”. Um artigo explica a intuição. O conceito de incorporação em NLP é um processo usado no processamento de linguagem natural para converter texto bruto em vetores matemáticos. A incorporação é fazer com que a rede neural entenda a ordenação e a dependência posicional na frase. Isso ocorre porque um modelo de aprendizado de máquina não será capaz de consumir diretamente uma entrada em formato de texto para os diversos processos computacionais.
featured image - Incorporação posicional: o segredo por trás da precisão das redes neurais transformadoras
Sanjay Kumar HackerNoon profile picture
Um artigo explicando a intuição por trás da “incorporação posicional” em modelos de transformadores do renomado trabalho de pesquisa - “Atenção é tudo que você precisa”.

Índice

  • Introdução
  • Conceito de incorporação em PNL
  • Necessidade de incorporação posicional em Transformers
  • Vários tipos de experimentos iniciais de tentativa e erro
  • Incorporação posicional baseada em frequência
  • Conclusão
  • Referências

Introdução

A introdução da arquitetura transformadora no campo da aprendizagem profunda, sem dúvida, abriu caminho para a revolução silenciosa, especialmente nos ramos da PNL. Uma das partes mais integrais da arquitetura do transformador é a “incorporação posicional” , que dá às redes neurais a capacidade de entender a ordem das palavras e suas dependências em uma frase longa.

No entanto, sabemos que RNN e LSTM, que foram introduzidos muito antes dos transformadores, tinham a capacidade de entender a ordem das palavras mesmo sem incorporação posicional. Então, você teria uma dúvida óbvia de por que esse conceito foi introduzido em transformadores e a vantagem real por trás de instigar essa noção. Vamos conceituar todas essas informações neste artigo.

Conceito de incorporação em PNL

A incorporação é um processo usado no processamento de linguagem natural para converter texto bruto em vetores matemáticos. Isso ocorre porque um modelo de aprendizado de máquina não poderá consumir diretamente uma entrada em formato de texto para os vários processos computacionais internos.

O processo de incorporação realizado por algoritmos como Word2vec, Glove, etc é chamado de incorporação de palavras ou incorporação estática.

Aqui, um grande corpo de texto contendo muitas palavras é passado dentro de um modelo para o processo de treinamento. O modelo atribuirá um valor matemático correspondente a cada palavra, assumindo que as palavras que aparecem próximas umas das outras com mais frequência são semelhantes. Após esse processo, os valores matemáticos derivados são usados para cálculos posteriores.

Por exemplo,

Considere que nosso corpus de texto tinha 3 frases como mencionado aqui-

  • O governo britânico, que concedeu um grande subsídio anual ao rei e à rainha em Palermo, afirmou ter algum controle sobre a administração.
  • A comitiva real incluía, além do rei e da rainha, sua filha Marie Therese Charlotte (Madame Royale), a irmã do rei Madame Elisabeth, o criado Clery e outros.
  • Isso é interrompido pelas notícias da traição de Mordred, e Lancelot, não participando do último conflito fatal, sobrevive ao rei e à rainha e à queda da Távola Redonda.

Aqui, podemos ver que as palavras “Rei” e “Rainha” estão aparecendo com frequência. Portanto, o modelo assumirá que pode haver algumas semelhanças entre essas palavras. Quando essas palavras forem transformadas em valores matemáticos, elas serão colocadas a uma pequena distância quando representadas em um espaço multidimensional.

Fonte da imagem: Ilustrada pelo autor

Imagine que há outra palavra “Estrada” então, logicamente, ela não aparecerá com mais frequência com “Rei” e “Rainha” em um corpus de texto grande. Portanto, essa palavra será colocada bem distante no espaço.

Fonte da imagem: Ilustrada pelo autor

Matematicamente, um vetor é representado por uma sequência de números onde cada número representa a magnitude da palavra em uma determinada dimensão.

Por exemplo,

Representamos a palavra “Rei” em 3 dimensões aqui. Portanto, pode ser representado hipoteticamente em um espaço [0,21,0,45,0,67] .

A palavra “Rainha” pode ser hipoteticamente representada como [0,24,0,41,0,62] .

A palavra “Estrada” pode ser hipoteticamente representada como [0,97,0,72,0,36] .

Necessidade de incorporação posicional em Transformers

Conforme discutimos na parte introdutória, a necessidade de incorporação posicional é fazer com que a rede neural entenda a ordenação e a dependência posicional na frase.

Por exemplo, vamos considerar as seguintes sentenças-

Frase 1 - “Embora Sachin Tendulkar não tenha completado um século hoje, ele levou o time a uma posição de vitória”.

Frase 2 - “Embora Sachin Tendulkar tenha completado um século hoje, ele não foi capaz de levar o time a uma posição de vitória”.

Ambas as frases parecem semelhantes, pois compartilham a maioria das palavras, mas o significado intrínseco de ambas é muito diferente. A ordem e a posição de uma palavra como “não” mudaram todo o contexto das informações aqui veiculadas.

Portanto, entender as informações posicionais é muito crítico ao trabalhar em projetos de PNL. Se o modelo interpretar mal o contexto apenas usando os números em um espaço multidimensional, isso pode nos levar a graves consequências, especialmente em modelos preditivos.

Para superar esse desafio, arquiteturas de redes neurais como RNN (Recurrent neural network) e LSTM (Long Term Short Term Memory) foram introduzidas. Até certo ponto, essas arquiteturas foram muito bem-sucedidas na compreensão das informações posicionais. O principal segredo por trás de seu sucesso é que eles tentam aprender frases longas preservando a ordem sequencial das palavras. Além disso, eles terão informações sobre as palavras que estão muito próximas da “palavra de interesse” e as palavras que estão muito distantes da “palavra de interesse”.

Por exemplo,

Considere a seguinte frase-

“Sachin é o maior jogador de críquete de todos os tempos.”

Fonte da imagem: Ilustrado pelo autor

As palavras sublinhadas em vermelho são a “palavra de interesse”. É a palavra que a rede neural (RNN/LSTM) tenta aprender por meio de processos matemáticos complexos, como a incorporação. Podemos ver aqui que a “palavra de interesse” é percorrida sequencialmente conforme o texto original.

Além disso, eles podem memorizar a dependência entre as palavras, lembrando-se das “palavras de contexto” . Aqui, as palavras de contexto são aquelas que são colocadas próximas à “palavra de interesse”. Como simples demonstração, podemos considerar as palavras de contexto como as palavras sublinhadas pela cor verde na imagem a seguir enquanto aprendemos cada “ palavra de interesse” .

Fonte da imagem: Ilustrado pelo autor

Por meio dessas técnicas, o RNN/LSTM pode entender as informações posicionais em um grande corpus de texto.

Todos estão indo bem. Certo?

Então, qual é o verdadeiro problema aqui?

O verdadeiro problema é a travessia sequencial das palavras em um grande corpus de texto. Imagine que temos um corpus de texto muito grande com 1 milhão de palavras, levará muito tempo para percorrer sequencialmente cada uma das palavras. Às vezes, não é viável dispor de tanto tempo de computação para treinar os modelos.

Para ultrapassar este desafio, foi introduzida uma nova arquitetura avançada - “Transformers”.

Uma das características importantes da arquitetura do transformador é que ela pode aprender um corpus de texto processando todas as palavras em paralelo. Mesmo se você tiver 10 palavras ou 1 milhão de palavras, ele não se importa com o comprimento do corpus.

Fonte da imagem: Ilustrado pelo autor

Fonte da imagem: Ilustrado pelo autor

Agora, há um desafio associado a esse processamento paralelo de palavras. Como todas as palavras são acessadas simultaneamente, as informações de dependência serão perdidas. Assim, o modelo não será capaz de lembrar o “contexto” de uma determinada palavra e as informações sobre a relação entre as palavras não poderão ser preservadas com precisão. Este problema novamente nos leva ao desafio inicial de preservar a dependência contextual embora o tempo de computação/treinamento do modelo seja consideravelmente reduzido.

Agora, como podemos lidar com essa situação?

A solução é a “incorporação posicional”.

Vários tipos de experimentos iniciais de tentativa e erro

Inicialmente, quando este conceito foi introduzido, os pesquisadores estavam ansiosos para derivar um método otimizado que pudesse preservar a informação posicional em uma arquitetura de transformador.

O primeiro método testado como parte desse experimento de tentativa e erro foi “Incorporação posicional com base no índice de palavras” .

Aqui, a ideia era introduzir um novo vetor matemático junto com esse vetor de palavras que pode conter o índice de uma determinada palavra.

Fonte da imagem: Ilustrado pelo autor

Assuma que esta é a representação de palavras no espaço multidimensional

Fonte da imagem: Ilustrada pelo autor

Depois de adicionar o vetor posicional, a magnitude e a direção podem alterar a posição de cada palavra assim:

Fonte da imagem: Ilustrada pelo autor

Uma das grandes desvantagens associadas a esta técnica é que, se o comprimento da frase for muito grande, a magnitude do vetor posicional também aumentará proporcionalmente. Digamos que uma frase tenha 25 palavras, então a primeira palavra será adicionada com um vetor posicional com magnitude 0 e a última palavra será adicionada com um vetor posicional com magnitude 24. Essa grande disparidade pode causar um problema quando estão projetando esses valores em dimensões superiores.

Outra técnica tentada para reduzir a grande magnitude do vetor posicional é “Positional embedding baseado na fração de comprimento da sentença” .

Aqui, o valor fracionário de cada palavra em relação ao comprimento da frase é calculado como uma magnitude do vetor posicional.

O valor fracionário é calculado usando a fórmula

Valor = 1/N-1

  • Onde "N" é a posição de uma palavra específica.

Por exemplo,

Vamos considerar esta frase-

Fonte da imagem: Ilustrada pelo autor

Nesta técnica, a magnitude máxima do vetor posicional pode ser limitada a 1 independentemente do comprimento da sentença. Mas, há uma grande brecha nesse sistema.

Se estivermos comparando 2 frases com comprimentos diferentes, o valor de incorporação de uma palavra em uma determinada posição será diferente. Uma palavra ou posição específica deve possuir o mesmo valor de incorporação em todo o corpus de texto para facilitar a compreensão de seu contexto. Se a mesma palavra em várias sentenças possui diferentes valores de incorporação, representar a informação de todo o corpus de texto em um espaço multidimensional se tornará uma tarefa muito complexa. Mesmo que alcancemos um espaço tão complexo, há uma grande chance de que o modelo entre em colapso em algum ponto devido à distorção de muita informação. Portanto, essa técnica foi eliminada do progresso posterior para incorporação posicional em transformadores.

Por fim, os pesquisadores criaram um sistema de “incorporações posicionais baseadas em frequência” que recebeu aclamação da crítica em todo o mundo e finalmente foi incorporado à arquitetura do transformador e mencionado no renomado white paper - “Atenção é tudo que você precisa” .

Incorporação posicional baseada em frequência

De acordo com essa técnica, os pesquisadores recomendam uma maneira única de incorporar as palavras com base na frequência de onda usando a seguinte fórmula:

Fonte da imagem: Ilustrado pelo autor

Onde,

  • “pos” é a posição ou valor de índice da palavra específica na frase
  • “d” é o comprimento/dimensão máximo do vetor que representa uma determinada palavra na frase.
  • “i” representa os índices de cada uma das dimensões de imersão posicional. Também denota a frequência. Quando i=0, é considerada a maior frequência e para os valores subseqüentes, a frequência é considerada como magnitude decrescente.


    Fonte da imagem: Ilustrado pelo autor

    Fonte da imagem: Ilustrado pelo autor

    Fonte da imagem: Ilustrado pelo autor

Como a altura da curva depende da posição da palavra representada no eixo x, a altura da curva pode ser usada como proxy para as posições das palavras.

Se 2 palavras tiverem altura semelhante, podemos considerar que sua proximidade na frase é muito alta.

Da mesma forma, se 2 palavras têm alturas drasticamente diferentes, podemos considerar que sua proximidade na frase é muito baixa.

De acordo com nosso texto de exemplo - “Sachin é um grande jogador de críquete” ,

Para a palavra “Sachin” ,

  • pos =0
  • d = 3
  • i[0] = 0,21, i[1] = 0,45, i[2] = 0,67


Ao aplicar a fórmula,

Fonte da imagem: Ilustrado pelo autor

Para i = 0,

PE(0,0) = sin(0/10000^2(0)/3)
PE(0,0) = sin(0)
PE(0,0) = 0

Para i = 1,

PE(0,1) = cos(0/10000^2(1)/3)
PE(0,1) = cos(0)
PE(0,1) = 1


Para i = 2,

PE(0,2) = sin(0/10000^2(2)/3)
PE(0,2) = sin(0)
PE(0,2) = 0


Para a palavra “Ótimo”,

  • pos =3
  • d = 3
  • i[0] = 0,78, i[1] = 0,64, i[2] = 0,56

Ao aplicar a fórmula,

Fonte da imagem: Ilustrado pelo autor

Para i = 0,

PE(3,0) = sin(3/10000^2(0)/3)
PE(3,0) = sin(3/1)
PE(3,0) = 0,05

Para i = 1,

PE(3,1) = cos(3/10000^2(1)/3)
PE(3,1) = cos(3/436)
PE(3,1) = 0,99

Para i = 2,

PE(3,2) = sin(3/10000^2(2)/3)
PE(3,2) = sin(3/1.4)
PE(3,2) = 0,03

Fonte da imagem: Ilustrado pelo autor

Aqui, o valor máximo será limitado a 1 (já que estamos usando funções sin/cos). Portanto, não há espaço para vetores posicionais de alta magnitude, o que era um problema nas técnicas anteriores.

Além disso, as palavras com alta proximidade umas das outras podem cair em alturas semelhantes em frequências mais baixas e sua altura será um pouco diferente em frequências mais altas.

Se as palavras tiverem pouca proximidade umas das outras, suas alturas serão altamente diferentes, mesmo em frequências mais baixas, e sua diferença de altura aumentará à medida que a frequência aumenta.

Por exemplo,

Considere a frase - "O rei e a rainha estão andando na estrada".

As palavras “King” e “Road” são colocadas distantes umas das outras.

Considere que essas 2 palavras estão tendo alturas aproximadamente semelhantes após a aplicação da fórmula de frequência de onda. Quando alcançamos frequências mais altas (como 0), suas alturas se tornam mais diferentes.

Fonte da imagem: Ilustrado pelo autor

Fonte da imagem: Ilustrado pelo autor

Fonte da imagem: Ilustrado pelo autor

As palavras “Rei” e “Rainha” são colocadas a uma curta distância.

Essas 2 palavras serão colocadas em uma altura semelhante em frequências mais baixas (como 2 aqui). Quando atingimos frequências mais altas (como 0), sua diferença de altura teria aumentado um pouco para diferenciação.

Fonte da imagem: Ilustrado pelo autor

Mas precisamos observar que, se as palavras tiverem menos proximidade, suas alturas serão drasticamente diferentes quando progredirmos para frequências mais altas. Se as palavras estiverem muito próximas, suas alturas serão apenas um pouco diferentes quando progredirmos para frequências mais altas.

Conclusão

Por meio deste artigo, espero que você tenha uma compreensão intuitiva dos cálculos matemáticos complexos por trás da incorporação posicional no aprendizado de máquina. Em suma, discutimos a postulação por trás do conceito de “Embedding”, alguns de seus vários tipos e a necessidade de implementar a imersão posicional para atingir determinados objetivos.

Para os entusiastas de tecnologia cuja área de interesse é “Processamento de linguagem natural”, acho que este conteúdo será útil para compreender alguns dos cálculos sofisticados em poucas palavras. Para obter informações mais detalhadas, você pode consultar o renomado trabalho de pesquisa - “Atenção é tudo que você precisa” (adicionei o ul para acessar este trabalho de pesquisa na seção de referência).

Referências