Tarefas de processamento de linguagem natural

Jacques Wainer

20/3/21

Processamento de linguagem natural

Não processamento de fala.

Tem 3 fontes, em momentos diferentes.

  1. Recuperação de informação: Google.
  1. Implementação computacional de teorias linguisticas.
  1. aprendizado de maquina

Tarefas de aprendizado de máquina

Eu vou ilustrar as tarefas usando pontos no espaço (plano).

Aprendizado supervisionado

Cada dado esta associado a um “valor de saída”

Aprendizado não supervisionado

Os dados não tem valores associados.

Neste caso queremos coisas como:

Aprendizado por reforço

Diferente dos anteriores.

Classificação

dados de treino

uma solução para o classificador

usando o classificador

outra solução com regiões de “não sei” (open classification)

outra solução com maior explicabilidade

se $y<0$ entao **verde**  
         senao se $x>0$ entao **vermelho**
                        senao **azul**

Variações

Regressão

Outros problemas supervisionados

Classificação / Regressão de um conjunto de dados em

Por exemplo:

Não supervisionado

agrupamento

Agrupar dados em conjuntos de dados similares

quais são os tipos/os grupos de dados?

deteção de anomalias

Quais dados são “normais” e quais dados são “anormais”/inesperados.

Dimensões importantes (redução de dimensionalidade)

Encoder Decoder

Isso é meio técnico mas será importante para as partes que se seguem desta apresentação

Uma forma importante de reduzir as dimensões é passar o conjunto de dados por um par encoder/decoder (chamado de autoencoder de vez em quando)

autoencoder

Aprender a representação intermediária com treino do mesmo dado na entrada e na saída.

denoising autoencoder

aprende-se com dados com ruído na entrada

Texto

Todas essas tarefas de aprendizado de maquina são relevantes para o processamento de documentos/texto

Há outras tarefas para NLP que não são diretamente relacionadas com as de aprendizado de maquina:

Texto não são pontos no espaço!

Um texto não é um ponto do espaço.

Vector space model (VSM)

Até 10-15 anos atras: vector space model (ou bag-of-words)

Foi criado para a tarefa de recuperação de informações: quais artigos de jornais do ultimo ano falam sobre um cachorro que mordeu um menino?

Um texto/documento é um vetor (0, 7, 1, 0, 2, 4 …) onde 0 indica que neste texto a 1a palavra aba do dicionário aparece 0 vezes, que a segunda abacate 7 vezes, a terceira abacaxi 1 vez, e assim por diante.

Dicionário não é o Aurélio todo, mas o conjunto de palavras que aparece no conjunto de textos relevantes.

Palavras não são palavras 1

Radicalização: remover sufixos de substantivos, adjetivos, e verbos

Remoção de verbos de ligação, artigos, pronomes, conjunções e preposições.

Palavras não são palavras 2

“Rio de Janeiro” não são 3 (ou 2) palavras. É uma “entidade” ou “palavra” única

Named-entity recognition (NER), entity identification, entity chunking, ou entity extraction é a tarefa de agrupar palavras em uma só entidade (que passa a ser uma nova “palavra” no VSM)

NER não é só reconhecer entidades que o sistema já conhece, mas reconhecer que “Padaria e Confeitaria Nemesis Souza” e “Martides Silverio” são entidades mesmo que o sistema nunca as tenha visto antes.

Reconhecer que referencias futuras no mesmo texto a “Martides” ou a “Padaria Souza” possivelmente se referem a essas entidades já apresentadas.

VSM e aprendizado de maquina

O dado/ cada texto é vetor de 10.000 a 100.000 números: (0, 7, 1, 0, 2, 4 ..)

Redução de dimensionalidade passa a ser importante (do ponto de vista prático)

Esses são os dados que são usados para os algoritmos de classificação, de agrupamento, etc.

Normalmente usa-se vários truques para estender o VSM para problemas específicos.

Modelo de tópicos

Uma forma interessante de redução de dimensionalidade é restringir os valores comprimidos/reduzidos a serem na maioria 0 ou só positivos.

Esta redução é chamada de modelagem de tópicos: com sorte cada uma das dimensões reduzidas reflete os diferentes tópicos que o documento se refere

Sumarização

Uma das técnicas de sumarização de documentos é computar os tópicos associados a sentenças ou segmentos do texto, e selecionar os segmentos que mais claramente são sobre um único tópico, e junta-los no sumario.

Há outras técnicas que são mais baseadas em conceitos tradicionais de linguistica e de relações entre sentenças e menos em aprendizado de maquina (diretamente)

Há técnicas baseada em classificação: dado sumários que ja existem de textos, aprenda se cada sentença deve ou não aparecer no sumário.

Citação: Kanapala, A., Pal, S. & Pamula, R. Text summarization from legal documents: a survey. Artif Intell Rev 51, 371–402 (2019). https://doi.org/10.1007/s10462-017-9566-2

Abordagens modernas

BERT

De 2018 para ca, deixamos de usar o VSM, devido a uma rede neural proposta pela Google, chamada BERT.

Há outras similares/com melhorias incrementais XLNet, RoBERTa, T5

BERT

encoder/decoder que mapeia uma sequencia de 512 “palavras” em outra sequencia de 512 palavras

Não é mais uma contagem de palavra. A sequencia é mantida!

Não são exatamente as mesmas “palavras” que no VSM - mantem-se não só a raiz mas também as declinações mordeu = mord* + ##passado##

Treinado em texto ja existentes - Livros e Wikipedia

masked task

baseado nas ideias de denoising autoencoder. Incluir palavras faltantes na entrada

entrada: [CLS] Bom dia [SEP] [MASK] vai você [SEP] [EMP] [EMP]

saída: [CLS] Bom dia [SEP] Como vai você [SEP] [EMP] [EMP]

next sentence task

aprender quando uma sentença pode ser a próxima sentença

Entrada: [CLS] Bom dia [SEP] Como vai você [SEP]

Saída: sim

Entrada [CLS] Bom dia [SEP] A casa esta pegando fogo [SEP]

Saída: não.

Language model

A camada interna do encoder/decoder acaba aprendendo um modelo de linguagem (language model) onde

usa-se o LM para as tarefas de aprendizado de maquina: classificação e agrupamento.

Variações no BERT (XML)

XML: o next sentence é a mesma sentença mas em outra lingua:

Entrada: [CLS] Bom dia [SEP] Good Morning [SEP]

Saída: sim

Entrada: [CLS] Bom dia [SEP] Good night [SEP]

Saída: não

Coloque a sentença em português e o XML traduz para o inglês.

Entrada: [CLS] Boa noite [SEP] [MASK] [MASK] [MASK] [MASK]

Saída: [CLS] Boa noite [SEP] Good night [SEP]

GPT-2

Geração de texto.

Baseado em ideias do BERT mas treinado com mais ênfase em predição da próxima palavra (masked task) mas o MASK é a ultima palavra).

Treinado em paginas da Internet.

De um trecho do texto ao GPT e ele gera a próxima palavra. Inclua essa palavra ao final e repita.

O sistema também responde questões. Inclua o texto e a pergunta, e o GPT gera a primeira palavra da resposta, e assim por diante.

GPT-3

Modelo 100X maior que o GPT-2. Também treinado em paginas da Internet

As várias descrições da saída do GPT-3 são assustadoras. Não “acerta” sempre.

Capaz de gerar poemas, programas de computador (pequenos).

Resumo