# Paráfrase (linguística computacional)

A paráfrase ou o parafraseamento em linguística computacional é a tarefa de processamento de linguagem natural de detectar e gerar paráfrases. As aplicações da paráfrase são variadas, incluindo recuperação de informações, resposta a perguntas, resumo de texto e detecção de plágio. A paráfrase também é útil na avaliação da tradução automática, bem como na análise semântica e na geração de novas amostras para expandir os corpora existentes.

## Geração de paráfrase
### Alinhamento de sequências múltiplas

Barzilay e Lee propuseram um método para gerar paráfrases através do uso de corpora paralelos monolíngues, ou seja, notícias cobrindo o mesmo evento no mesmo dia. O treinamento consiste em usar o alinhamento múltiplo de sequências para gerar paráfrases no nível da frase a partir de um corpus não anotado. Para isso,
* encontram-se padrões recorrentes em cada corpus individual, ou seja, "X (feriu/machucou) Y pessoas, Z gravemente" onde X, Y, Z são variáveis
* encontrar pares entre esses padrões que representam paráfrases, ou seja, "X (lesionou/feriu) Y pessoas, Z gravemente" e "Y foram (feridos/machucados) por X, entre eles Z estavam em estado grave"
Isso é conseguido primeiro agrupando frases semelhantes usando sobreposição de n-grama. Os padrões recorrentes são encontrados nos clusters usando o alinhamento de várias sequências. Então, a posição das palavras de argumento é determinada pela localização de áreas de alta variabilidade dentro de cada grupo, isto é, entre palavras compartilhadas por mais de 50% das frases de um grupo. Os emparelhamentos entre padrões são encontrados comparando palavras variáveis semelhantes entre diferentes corpora. Finalmente, novas paráfrases podem ser geradas escolhendo um agrupamento correspondente para uma frase de origem e então substituindo o argumento da frase de origem em qualquer número de padrões no agrupamento.

### Tradução automática baseada em frases

A paráfrase também pode ser gerada através do uso de tradução baseada em frase, conforme proposto por Bannard e Callison-Burch. O conceito principal consiste em alinhar frases em uma linguagem-pivô para produzir paráfrases potenciais na língua original. Por exemplo, a expressão "under control" em uma frase em inglês é alinhada com a expressão "unter kontrolle" em sua contraparte em alemão. A expressão "unter kontrolle" é então encontrada em outra frase alemã com a expressão inglesa alinhada sendo "in check", uma paráfrase de "under control".
A distribuição de probabilidade pode ser modelada como $\Pr(e_{2}|e_{1})$, a probabilidade de a frase $e_{2}$ ser uma paráfrase de $e_{1}$, que é equivalente ao $\Pr(e_{2}|f)\Pr(f|e_{1})$ somada sobre todas as $f$, potenciais traduções de frases na linguagem pivô. Além disso, a frase $e_{1}$ é adicionado como uma prévia para adicionar contexto à paráfrase. Assim, a paráfrase ideal, ${\hat {e_{2}}}$, pode ser modelada como:
    ${\hat {e_{2}}}={\text{arg}}\max _{e_{2}\neq e_{1}}\Pr(e_{2}|e_{1},S)={\text{arg}}\max _{e_{2}\neq e_{1}}\sum _{f}\Pr(e_{2}|f,S)\Pr(f|e_{1},S)$
As probabilidades $\Pr(e_{2}|f)$ e $\Pr(f|e_{1})$ podem ser aproximadas simplesmente tomando suas frequências. A adição de $S$ como um prior é modelada por meio do cálculo da probabilidade de formar $S$ quando $e_{1}$ é substituída por $e_{2}$.

### Memória longa de curto prazo

Tem havido sucesso no uso de modelos de memória longa de curto prazo (LSTM) para gerar paráfrases. Resumindo, o modelo consiste em um codificador e um decodificador, ambos implementados usando variações de um LSTM residual empilhado. Primeiro, o LSTM de codificação pega uma codificação one-hot de todas as palavras em uma frase como entrada e produz um vetor oculto final, que pode ser visto como uma representação da frase de entrada. A decodificação LSTM então pega o vetor oculto como entrada e gera uma nova frase, terminando em um token de fim de frase. O codificador e o decodificador são treinados para pegar uma frase e reproduzir a distribuição one-hot de uma paráfrase correspondente, minimizando a perplexidade usando um gradiente descendente estocástico simples. Novas paráfrases são geradas inserindo uma nova frase no codificador e passando a saída para o decodificador.

## Reconhecimento de paráfrase
### Auto-codificadores recursivos

O reconhecimento de paráfrases foi tentado por Socher et al através do uso de autocodificadores recursivos. O conceito principal é produzir uma representação vetorial de uma frase junto com seus componentes por meio do uso recursivo de um autocodificador. As representações vetoriais de paráfrases devem ter representações vetoriais semelhantes; elas são processadas e, em seguida, alimentadas como entrada em uma rede neural para classificação.
Dada uma sentença $W$ com $m$ palavras, o autocodificador é projetado para levar 2 embeddings de palavras de dimensão $n$ como entrada e produzir um vetor de dimensão $n$ como saída. O mesmo autocodificador é aplicado a cada par de palavras em $S$ para produzir $\lfloor m/2\rfloor$ vetores. O autocodificador é então aplicado recursivamente com os novos vetores como entradas até que um único vetor seja produzido. Dado um número ímpar de entradas, o primeiro vetor é encaminhado como está para o próximo nível de recursão. O autocodificador é então treinado para reproduzir todos os vetores na árvore de recursão completa, incluindo os embeddings de palavras iniciais.
Dada duas sentenças $W_{1}$ e $W_{2}$ de comprimento 4 e 3, respectivamente, os autocodificadores produziriam 7 e 5 representações vetoriais, incluindo os embeddings iniciais das palavras. A distância euclidiana é então tomada entre cada combinação de vetores em $W_{1}$ e $W_{2}$ para produzir uma matriz de similaridade $S\in \mathbb {R} ^{7\times 5}$. $S$ é então submetido a uma camada de min-pooling dinâmica para produzir uma matriz de tamanho fixo $n_{p}\times n_{p}$. Como $S$ não são uniformes em tamanho entre todas as sentenças em potencial, $S$ é dividido em $n_{p}$ seções aproximadamente iguais. A saída é então normalizada para ter média 0 e desvio padrão 1 e é alimentada em uma camada totalmente conectada com uma saída softmax. O modelo de pooling dinâmico para softmax é treinado usando pares de paráfrases conhecidas.

### Vetores de pensamento saltado

Os vetores de pensamento saltado são uma tentativa de criar uma representação vetorial do significado semântico de uma frase de maneira semelhante ao modelo skip gram. Os vetores de pensamento saltado são produzidos através do uso de um modelo de pensamento saltado que consiste em três componentes principais, um codificador e dois decodificadores. Dado um corpus de documentos, o modelo de pensamento saltado é treinado para pegar uma frase como entrada e codificá-la em um vetor pensamento saltado. O vetor de pensamento saltado é usado como entrada para ambos os decodificadores, um dos quais tenta reproduzir a frase anterior e o outro, a frase seguinte em sua totalidade. O codificador e o decodificador podem ser implementados por meio do uso de uma rede neural recursiva (RNN) ou uma LSTM.
Como as paráfrases carregam o mesmo significado semântico entre si, elas devem ter vetores de pensamento saltado semelhantes. Assim, uma regressão logística simples pode ser treinada para obter um bom desempenho com a diferença absoluta e o produto dos componentes de dois vetores de pensamento saltado como entrada.

## Avaliação

Existem vários métodos que podem ser usados para avaliar paráfrases. Visto que o reconhecimento da paráfrase pode ser apresentado como um problema de classificação, a maioria das métricas de avaliação padrão, como precisão, score f1, ou uma curva ROC se sai relativamente bem. No entanto, há dificuldade em calcular scores f1 devido à dificuldade em produzir uma lista completa de paráfrases para uma determinada frase, juntamente com o fato de que boas paráfrases dependem do contexto. Uma métrica projetada para combater esses problemas é a ParaMetric. A ParaMetric tem como objetivo calcular a precisão e o recall de um sistema automatizado de paráfrases, comparando o alinhamento automático de paráfrases com um alinhamento manual de frases semelhantes. Como a ParaMetric está simplesmente classificando a qualidade do alinhamento de frases, ela pode ser usada para classificar sistemas de geração de paráfrases, assumindo que eles usem o alinhamento de frase como parte de seu processo de geração. Uma desvantagem observada na ParaMetric é o conjunto grande e exaustivo de alinhamentos manuais que devem ser inicialmente criados antes que uma classificação possa ser produzida.
A avaliação da geração de paráfrases apresenta dificuldades semelhantes à avaliação da tradução automática. Frequentemente, a qualidade de uma paráfrase depende de seu contexto, de estar ou não sendo usada como um resumo e de como é gerada, entre outros fatores. Além disso, uma boa paráfrase geralmente é lexicamente diferente de sua frase de origem. O método mais simples usado para avaliar a geração de paráfrases seria por meio do uso de juízes humanos. Infelizmente, a avaliação por meio de juízes humanos tende a ser demorada. Abordagens automatizadas para avaliação provam ser desafiadoras, pois é essencialmente um problema tão difícil quanto o reconhecimento de paráfrases. Embora originalmente usado para avaliar traduções automáticas, o estudo básico de avaliação bilíngue (BLEU) também foi usado com sucesso para avaliar modelos de geração de paráfrases. No entanto, as paráfrases geralmente têm várias soluções lexicamente diferentes, mas igualmente válidas, que prejudicam o BLEU e outras métricas de avaliação semelhantes.
Entre as métricas projetadas especificamente para avaliar a geração de paráfrases estão a paráfrase na mudança de n-grama (PINC) e métrica de avaliação de paráfrases (PEM), junto com a ParaMetric mencionada anteriormente. A PINC é projetada para ser usada em conjunto com BLEU e ajudar a cobrir suas inadequações. Como o BLEU tem dificuldade em medir a dissimilaridade lexical, o PINC é uma medida da falta de sobreposição de n-gramas entre uma frase fonte e uma paráfrase candidata. É essencialmente a distância de Jaccard entre a frase excluindo n-gramas que aparecem na frase de origem para manter alguma equivalência semântica. A PEM, por outro lado, tenta avaliar a "adequação, fluência e dissimilaridade lexical" das paráfrases, retornando uma heurística de valor único calculada usando a sobreposição de N-gramas em uma linguagem de pivô. No entanto, uma grande desvantagem do PEM é que deve ser treinado com grandes corpora paralelos no domínio, bem como juízes humanos. Em outras palavras, é equivalente a treinar um sistema de reconhecimento de paráfrases para avaliar um sistema de geração de paráfrases.