Jacques Wainer
20/3/21
Não processamento de fala.
Tem 3 fontes, em momentos diferentes.
me retorne todas as paginas que falem sobre um cachorro mordendo um menino.
mas também: me retorne todas as normas técnicas que falem de canos de esgoto.
e: me retorne as patentes mais parecidas com este pedido de patente.
objeto central são documentos/texto
desde os anos 50
analise sintática
relações semânticas e retóricas entre sentenças
objeto central são sentenças
desde os anos 70
desde 2000
será o enfoque desta apresentação
Eu vou ilustrar as tarefas usando pontos no espaço (plano).
Cada dado esta associado a um “valor de saída”
esse valor pode ser um nome/uma categoria e nesse caso o problema é um problema de classificação
o valor pode ser um número, e neste caso o problema é regressão
outros
Os dados não tem valores associados.
Neste caso queremos coisas como:
agrupar os dados em diferentes grupos
definir uma medida de distancia ou similaridade entre os dados
agrupar os dados em “normais” ou “comuns” versus “anormais” ou “diferentes” ou “anomalias”
outros
Diferente dos anteriores.
Uma sequencia de estados, o programa precisa fazer “ações” a cada estado.
Você só sabe se a sequencia de ações dá certo ou não ao final.
Jogos: AlphaGo, video games
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**
um dado pode ser membro de varias classes. Uma noticia é sobre pandemia e política. Uma figura contem um cachorro e um cavalo e um gato
classes podem estar organizadas em hierarquias: pastor alemão, cachorro, mamífero, animal.
Classificação / Regressão de um conjunto de dados em
primeiro, segundo, terceiro, etc.
problema de ordenação
Por exemplo:
Agrupar dados em conjuntos de dados similares
quais são os tipos/os grupos de dados?
Quais dados são “normais” e quais dados são “anormais”/inesperados.
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
Todas essas tarefas de aprendizado de maquina são relevantes para o processamento de documentos/texto
classificar texto como sendo positivo ou negativo, como sendo fake news, gerado por bots, etc
agrupamento de conjunto de texto em grupos talvez temáticos.
noção de similaridade entre textos
Há outras tarefas para NLP que não são diretamente relacionadas com as de aprendizado de maquina:
sumarização de texto
geração de texto
tradução
extração de partes do texto
ligação entre diferentes partes de diferentes textos
Um texto não é um ponto do espaço.
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.
Radicalização: remover sufixos de substantivos, adjetivos, e verbos
menino, meninas -> menin*
mordeu, morderíamos, mordido -> mord*
etc
Remoção de verbos de ligação, artigos, pronomes, conjunções e preposições.
“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.
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.
Tweets positivos e negativos: maiúsculas, pontuação, emojis, ortografia deliberadamente errada (“OOOOTIMO”), “valência” de algumas palavras (ótimo, ruim, nojo, felicidade).
Sinônimos e quase-sinônimos : o cão atacou a criança.
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
a maioria dos documentos são sobre poucos tópicos (dai a maioria das dimensões serem 0)
não existe “tópico negativo” Um documento que é contra elefantes é sobre elefantes ou sobre mamíferos, ou sobre animais grandes, etc. (dai os valores não 0 devem ser positivos). Esse documento também é sobre outros tópicos.
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
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
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
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]
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.
A camada interna do encoder/decoder acaba aprendendo um modelo de linguagem (language model) onde
masked task ensina estrutura da linguagem “em contexto”
next sentece task ensina a relação entre sentenças
usa-se o LM para as tarefas de aprendizado de maquina: classificação e agrupamento.
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]
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.
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).
VSM mais truques específicos para o problema e para o domínio dão resultados aceitáveis.
BERT consegue pelo menos os mesmos resultados com muito menos esforço
já existe um BERT para o português: BERTimbau
não sei sobre basear o projeto em GPT-2 (ou GPT-3) mas parece uma possibilidade
Space, Right Arrow or swipe left to move to next slide, click help below for more details