• Nenhum resultado encontrado

Representação Distribuída das palavras Na seção anterior foi apresentada uma forma de representar os documentos como

4. Processamento de Linguagem Natural e Representação das palavras

4.1. Representação das palavras

4.1.1. Representação Distribuída das palavras Na seção anterior foi apresentada uma forma de representar os documentos como

vetores em um espaço vetorial, onde dois documentos similares tendem a ter palavras similares e consequentemente seus vetores são similares (SALTON et al., 1975). Entretanto a representação vetorial também pode ser utilizada para representar o significado das palavras, associando cada palavra a um vetor, onde os valores deste vetor estão relacionados a distribuição das palavras que são vizinhas a palavra analisada.

Diferentemente da hipótese BOW citada anteriormente este tipo de representação está associada a hipótese da distribuição, formulada pela primeira vez por (HARRIS, 1954), onde o mesmo afirmou que as palavras que ocorrem em contextos similares, ou seja, com os

49

mesmos vizinhos, tendem a ter significados similares. Entretanto, a declaração mais famosa desta representação foi dada por um linguista em 1961 (RUPERT, 1961), onde o mesmo afirmou que é possível conhecer uma palavra através da companhia que ela mantém (do inglês: “You shall know a word by the company it keeps!”).

Dentro deste contexto, citando como exemplo a palavra “escada” é possível afirmar então que em um texto, existe uma grande probabilidade da mesma, aparecer ao lado de palavras como, “subir”, “descer”, “lâmpada”, “construção”, “piso”, etc. Estas palavras representam termos que co-ocorrem com a palavra citada (escada), ou seja, são seus possíveis vizinhos. Sendo assim é possível afirmar que na hipótese distribuída procura-se todas as ocorrências de uma determinada palavra e usando uma janela de tamanho k pré-definido em torno da palavra analisada é possível encontrar seus vizinhos (todas as palavras dentro desta janela serão consideradas como vizinhas da palavra analisada). Na figura 4.3 apresentada a seguir é possível visualizar os vizinhos (contexto) de uma sentença definida como: “Ele subiu na escada para trocar uma lâmpada queimada”. O contexto da palavra analisada (destacada em verde) é definido a partir de uma janela (k) de tamanho igual a 2.

Figura 4.3 - Contexto das palavras utilizando representação distribuída

O princípio da hipótese distribuída pode ser analisado em diferentes abordagens que estão divididas em duas categorias diferentes (BARONI et al., 2014) conforme ilustrado na figura 4.4. Na primeira categoria estão os métodos baseados em contagem, que faz uso da estatística para determinar com que frequência as palavras co-ocorrem. Neste caso é construído uma matriz de co-ocorrência das palavras para um determinado conjunto de treinamento (corpus), onde cada linha representa uma palavra no corpus e cada coluna é o contexto em que a palavra foi observada dentro de uma determinada janela em torno da palavra analisada (esta busca pelo contexto da palavra pode ser visualizada na figura 4.3

50

apresentada anteriormente). Geralmente o cálculo da frequência com que as palavras co- ocorrem pode ser determinado pela medida de Informação Mútua Pontual (Pointwise Mutual

Information - PMI) proposta por (CHURCH et al., 1989), que é baseada na noção de

informação mútua (para mais detalhes sobre esta e outras medidas veja seção 6.2.1). JURAFSKY et al. (2014) afirmaram que a PMI é mais eficiente como medida da associação entre duas palavras do que o simples cálculo da frequência.

Uma abordagem muito utilizada da hipótese distribuída baseada em contagem é a Análise Semântica Latente (Latent Semantic Analysis - LSA) proposta por (DEERWESTER

et al. 1990). Nesta abordagem após a criação da matriz de co-ocorrência das palavras é feito

uma redução da dimensionalidade desta matriz utilizando o método de Decomposição em Valores Singulares (Singular Value Decomposition – SVD), (GOLUB et al., 1996). Esta redução dimensional permite uma diminuição dos ruídos presentes na amostra gerando vetores mais densos (DEERWESTER et al. 1990). O cálculo da similaridade entre vetores pode ser realizado através da medida do cosseno apresentada na equação 4.3. Trabalhos envolvendo a LSA podem ser encontrados em (EVANGELOPOULOS et al., 2012; YALCINKAYA et al., 2015).

Na segunda categoria estão os métodos preditivos que tentam diretamente prever uma palavra a partir de seus vizinhos utilizando algoritmos de aprendizagem de máquina. Os vetores gerados são denominados word embeddings e são considerados como parâmetros do modelo. Exemplos de métodos preditivos são o Modelo de linguagem Neural (Neural

Network Language Model – NNLM) (BENGIO et al., 2003), o método Global Vectors for Word Representation - Glove (PENNINGTON et al., 2014) e o Word2vec, nas versões Skip- Gram e Cbow (MIKOLOV et al., 2013). Sendo este último detalhado na próxima seção, pois

o mesmo foi utilizado nesta tese na etapa de representação das palavras.

Figura 4.4 - Representação distribuída (à esquerda, métodos baseados em contagem e à direita métodos preditivos)

51

4.2. Word2Vec

Os métodos preditivos da hipótese distribucional vêm sendo muito citados na literatura nos últimos anos. Este sucesso se deu devido à publicação do trabalho de (MIKOLOV et al., 2013a), onde os autores implementaram um algoritmo denominado

word2vec que consiste em criar representações vetoriais de palavras (word embeddings)

utilizando técnicas de RNAs. Ou seja, ao invés de contar co-ocorrências de palavras vizinhas (como nos métodos baseados em contagem), o vetor é predito através de métodos de aprendizado de máquina capturando assim indiretamente propriedades linguísticas para modelar a linguagem.

Estes vetores word embeddings vem sendo utilizados em diferentes aplicações de PLN como em classificação de textos, agrupamento de documentos, rotulador de categorias morfossintáticas (part of speech tagging), reconhecimento de entidade nomeada (named

entity recognition), análise de sentimentos, entre outras.

A terminologia word embedding vem da comunidade de DLNN, porém é possível encontrar na literatura o termo modelo semântico distribuído (distributional semantic model), representação distribuída, vetor de espaço semântico (semantic vestor space) ou simplesmente espaço de palavra (word space). Neste trabalho aderindo a prática atual em aplicações de DLNN foi adotado o termo word embedding.

O uso de word embedding foi proposto pela primeira vez por (BENGIO et al., 2003) no modelo denominado modelo de linguagem de redes neurais (Neural Network Language

Model - NNLM) que teve como base as ideias de representação distribuída proposta por

(HINTON, 1986). Entretanto o uso da mesma só se tornou popular com o algoritmo

word2vec proposto por (MIKOLOV et al., 2013a).

O algoritmo word2vec é um modelo preditivo que visa aprender os vetores word

embeddings através de um modelo de RNA. E apesar de ser considerado como um grande

motivador do uso de DLNN em PLN, o mesmo não faz uso das técnicas de aprendizado profundo e sim de RNAs de arquitetura rasa (shallow). Pode se dizer então que esta importância está no fato de que a saída do word2vec é que pode ser entendida e utilizada facilmente pelos modelos de redes DLNNs.

O objetivo do word2vec é agrupar palavras semanticamente semelhantes no espaço vetorial, ou seja, o algoritmo consegue criar uma representação distribuída das palavras de forma eficiente preservando as relações semânticas que as palavras têm com seus vizinhos. A

52

forma como isto pode ser feito é através de operações simples entre vetores. Em um trabalho proposto por (MIKOLOV et al., 2013b), os autores mostraram que ao realizar a operação v(king) – v(man) + v(women) o vetor palavra mais próximo foi v(queen), que representa a figura feminina do rei (v(king)). Vale ressaltar que este resultado inicialmente foi considerado como notável, uma vez que para geração de modelos usando o word2vec é necessário apenas um conjunto de textos, que podem ter sido pré-processados ou não. Nenhum conhecimento sintático ou semântico precisa ser passado ao algoritmo, pois o mesmo captura estas relações através da análise da posição das palavras e do contexto que as acompanha.

Existem dois principais algoritmos de aprendizado para o word2vec, o Continuous-

Baf-of-Words (CBOW) e Continuous Skip-Gram. Algoritmicamente os dois modelos são

similares, entretanto no CBOW o algoritmo prevê a palavra corrente (alvo) baseada no contexto (uma janela de palavras próximas da palavra alvo) enquanto o Continuous Skip-

Gram faz o inverso, prevê o contexto baseado na palavra corrente.

Esta inversão, estatisticamente tem o efeito de que o skip-gram representa melhor as palavras quando o conjunto de dados é pequeno e praticamente é mais utilizado pois na maioria das vezes as aplicações não disponibilizam de grandes bancos de dados. Já o CBOW, entretanto é mais rápido e mais adequado para grandes bancos de dados (MIKOLOV et al., 2013).

O modelo Skip-gram foi escolhido como método para representação das palavras nesta tese. Esta escolha está em linha com a proposta de (MIKOLOV et al., 2013a) citada anteriormente, onde os autores afirmam que o método Skip-gram é o mais adequado para conjunto de dados pequenos, que é o caso da base de dados utilizada.