Académique Documents
Professionnel Documents
Culture Documents
Rio de Janeiro
Maio 2016
Eliane Martins de Aguiar
Programa de Ps-Graduao
Rio de Janeiro
Maio 2016
FichacatalogrficaelaboradapelaBibliotecaMarioHenriqueSimonsen/FGV
Aguiar,ElianeMartinsde
AplicaodoWord2vecedoGradientedescendenteestocstico
emtraduoautomtica/ElianeMartinsdeAguiar.2016.
78f.
Dissertao(mestrado)FundaoGetulioVargas,EscoladeMatemtica
Aplicada.
Orientador:RenatoRochaSouza.
Coorientador:FlvioCodeoCoelho
Incluibibliografia.
1.Redesneurais(Computao).2.Processamentodalinguagemnatural
(Computao).I.Souza,RenatoRocha.II.Coelho,FlvioCodeo.III.Fundao
GetulioVargas.EscoladeMatemticaAplicada.IV.Ttulo.
CDD006.3
minha me, Neide.
Agradecimentos
Ao meu orientador Renato Rocha por todo apoio e por ter acreditado no meu
potencial.
Ao meu coorientador Flvio Codeo por ter me ajudado diversas vezes e por ter me su-
gerido o tema deste trabalho.
CAPES por ter acreditado em mim e investido nos meus estudos.
Aos professores da banca pelo carinho e pela ateno.
Aos professores e funcionrios da EMAp por toda ateno e suporte ao longo desta
jornada.
Aos meus colegas de curso por terem me feito sentir como realmente parte da turma. Em
especial ao Leon Diniz e ao Luis Eduardo Craizer por sempre terem sentado ao meu lado
e feito os trabalhos de grupo comigo.
minha me por todo seu apoio emocional, financeiro e moral. Sem voc este
mestrado nunca teria sido possvel.
Aos meus parentes e amigos pelo apoio, por terem acreditado em mim, e por serem com-
preensivos com meus sumios.
Ao Felipe Bottega Diniz pelo apoio, pacincia, compreenso, aulas e toda ajuda durante
todo o mestrado. Voc foi fundamental para eu manter minha sanidade.
E tambm s pessoas que ajudaram revisando minha dissertao ou dando ideias.
Wir mssen wissen. Wir werden wissen. - Ns devemos saber. Ns saberemos
(David Hilbert)
Resumo
O word2vec um sistema baseado em redes neurais que processa textos e representa pa-
lavras como vetores, utilizando uma representao distribuda. Uma propriedade notvel
so as relaes semnticas encontradas nos modelos gerados. Este trabalho tem como
objetivo treinar dois modelos utilizando o word2vec, um para o Portugus e outro para
o Ingls, e utilizar o gradiente descendente estocstico para encontrar uma matriz de
traduo entre esses dois espaos.
1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Objetivo do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 REFERENCIAL TERICO . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Processamento de linguagem natural . . . . . . . . . . . . . . . . . . 3
2.2 Modelo de linguagem de redes neurais . . . . . . . . . . . . . . . . . 3
2.2.1 Vetores de palavras e relaes semnticas . . . . . . . . . . . . . . . . . . 4
2.2.3 Word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3.1.1 Raw-freq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.2 Chi-quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.3 Jaccard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.5 Mi-like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1.6 PMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1.7 Poisson-Stirling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1.8 T-Student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 Etapas do experimento . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Obteno dos corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Remoo dos docs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Tokenizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 Obteno de n-grams . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 Criao do dicionrio bilngue . . . . . . . . . . . . . . . . . . . . . . 20
3.7 Gerando os modelos com o word2vec . . . . . . . . . . . . . . . . . 22
3.8 Gradiente descendente estocstico . . . . . . . . . . . . . . . . . . . 23
3.9 Hubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1 Teste com PCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Teste de correspondncia . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Relaes entre as palavras . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Testes dos alphas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5 Teste de nmero de hubs em K vizinhos . . . . . . . . . . . . . . . . 34
4.6 Teste da posio da palavra correta nos ranks dos pivs . . . . . . 36
4.7 Teste de similaridade dos pivs com as tradues . . . . . . . . . . 39
4.8 Tratamento de hubs: Normalizar os vetores de similaridade . . . . 42
4.9 Tratamento de hubs: Inverter a ordem da fila . . . . . . . . . . . . . 44
4.10 Teste das distncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.1 Edit distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.10.2 Norma euclidiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5 CONCLUSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Referncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1
1 Introduo
Esses sistemas, normalmente, usam modelos n-gram para representar uma palavra
na lngua alvo. No entanto, h outras formas de representar palavras, tais como vetores,
por exemplo. A ideia de representao distribuda no recente [14], e h modelos que a
utilizam, como o word2vec. Modelos como o word2vec se mostraram robustos e poderosos
em prever relaes semnticas entre palavras, mesmo em diferentes lnguas. Porm eles
no lidam muito bem com os diferentes significados de palavras polissmicas em uma
nica representao.
2 Referencial Terico
Uma rede neural pode ser vista como um sistema de neurnios, interconectados
que processam informaes em resposta a entradas externas. Geralmente os modelos de
redes neurais so organizados em trs camadas: uma camada como input, uma camada
oculta e uma camada como output. Na figura abaixo temos um exemplo1 da estrutura de
uma rede neural, nela cada n representa um neurnio artificial e as setas representam a
conexo do output de um neurnio com o input de outro.
A entrada de cada neurnio um somatrio ponderado, e esse valor usado como entrada
de uma funo de ativao. As redes neurais precisam de muitas informaes para treino
e tambm precisam de informaes para teste.
simples. Tambm possvel verificar similaridades entre pares de palavras, o exemplo mais
conhecido : King Men + Women = Queen. A igualdade aqui encontrada no signi-
fica que a operao d exatamente igual ao vetor Queen, mas sim que a palavra Queen
a mais prxima do vetor encontrado. Essa similaridade corresponde a dizer que men
est para king da mesma forma que woman est para queen. Essas similaridades tambm
so chamadas de regularidades lingusticas e no se restringem somente ao Ingls. Elas
so capazes de capturar diferentes tipos de relaes, segue alguns exemplos encontrados
por Lopes[2]:
1. Rei +Mulher - Homem = Rainha
2. Areia + Montanha Praia = Neve
3. Inglaterra + Paris Frana = Londres
4. Maior + Pequeno Grande = Menor
5. Vencer + Perdeu Venceu = Perder
No modelo CBOW o input um contexto e o output uma palavra omitida, para isso
se combina as representaes das palavras do em torno para prever a palavra do meio.
considerado como contexto as palavras que esto ao redor da palavra alvo . Um exemplo
usar como contexto as duas palavras anteriores a e as duas palavras posteriores. No
caso de uma frase 1 2 3 4 5 o contexto da palavra 3 1 2 4 5 .
No modelo skip-gram o objetivo : ao ser dada uma palavra, poder prever o seu
contexto. Nesse caso, o input, uma palavra que passa por uma camada oculta e tem
como output o contexto mais provvel.
Os dois modelos se utilizam de uma rede neural com uma camada oculta para
gerar o output, e do algoritmo de back propagation para atualizar, ou apenas pesar, os
valores dos parmetros conforme observam novospara exemplos.
2.2.3 Word2vec
O word2vec um ferramenta open-source, feita por Mikolov et al. [11], que utili-
zada para calcular representaes de palavras como vetores. Ele oferece duas arquiteturas
como opo: continuous bag-of-words (CBOW) e skip-gram. O word2vec funciona tomando
um corpus como input e devolvendo vetores de palavras como output. No processo cons-
trudo um vocabulrio, e ocorre o aprendizado das representaes do vocabulrio como
vetores. Pode-se escolher qual das duas arquiteturas ser utilizada. Na prtica o skip-gram
oferece uma representao melhor de palavras quando a base de dados menor. CBOW
mais rpido e aplicvel em grandes bases de dados [13]. Na figura abaixo temos um mo-
delo simplificado de como funcionam as arquiteturas. No CBOW se prev uma palavra
6 Captulo 2. Referencial Terico
2 ,
min
=1
onde uma matriz de traduo, que comea com valores aleatrios e ser
ajustada, { , }=1 so pares de vetores de palavras associados, onde a representao
distribuda da palavra na lngua fonte e a o vetor representao da sua traduo na
lngua alvo.
trico semelhante. Isso ocorre pelo fato de as lnguas compartilharem conceitos semelhantes,
como por exemplo que o gato um animal menor que um cachorro e que alto o oposto
de baixo.
2.3.1 Mtricas
= = Total
= =
= 11 12 = 1 1 1 1 2
= 11 =
12 =
= 21 22 = 2 2 1 2 2
= 21 = 22 =
Total = 1 = 2 =
Tanto o experimento como as mtricas foram feitos com trigramas, mas as expli-
caes e exemplos de seus funcionamentos sero com bigramas. O experimento consistiu
em analisar um dos textos do portugus. Nesse texto foi aplicado a mtrica raw-freq igual
a 100, explicado logo abaixo, e isso resultou em 1126 trigramas que foram analisados ma-
nualmente. Desses trigramas, foram considerados 42 bigramas vlidos, 20 trigramas e 16
quadrigramas. Os testes utilizando as mtricas abaixo consistiram em analisar quantos
8 Captulo 2. Referencial Terico
2.3.1.1 Raw-freq
2.3.1.2 Chi-quadrada
2.3.1.3 Jaccard
Hiptese 1. (2 |1 ) = = (2 |1 ),
Hiptese 2. (2 |1 ) = 1 = 2 = (2 |1 ).
2 http://www.nltk.org/api/nltk.metrics.html# nltk.metrics.association.NgramAssocMeasures
2.3. Procedimentos estatsticos 9
2.3.1.5 Mi-like
2.3.1.6 PMI
(1 , 2 )
( )
pmi(1 ; 2 ) := log .
(1 )(2 )
10 Captulo 2. Referencial Terico
2.3.1.7 Poisson-Stirling
2 2 Total
1 11 12 1
1 21 22 2
Total 1 2
2.3.1.8 T-Student
Consideremos as frmulas
= (1 2 ) = (1 ) (2 )
= 2 ,
Colher os dados
Subtrair a mdia
X Y Z
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
.. .. .. .. .. ..
. . . . . .
(, ) (, ) (, )
C = (, ) (, ) (, ) .
(, ) (, ) (, )
Nesse trabalho ele foi utilizado para podermos calcular a matriz de traduo,
usada para achar uma correspondncia entre as palavras, do espao vetorial do treino em
Portugus, no espao vetorial do treino em Ingls.
O espao do Portugus ser referido como fonte e o do Ingls como alvo. Ento
queremos achar , que uma matriz de pesos, sendo vetores treino do espao fonte
e sua traduo correspondente no espao alvo. O problema de otimizao :
2
min
=1
Para isso a cada iterao, com cada um dos vetores do treino, as entradas de
sero atualizadas da seguinte forma:
= ( )
Logo estamos interessados na derivada parcial de loss com relao a cada um dos
.
= ( )
14 Captulo 2. Referencial Terico
Alguns modelos utilizam a funo sigmoide neste mtodo como funo de ativao,
que a responsvel pela ativao das sadas. Nesses casos teremos = e
1
=
1 +
= .
(1 + )2
= ( ) .
15
3 Metodologia
Obteno do Corpus
Remoo dos endereos web (qualquer token que contenha http ou www)
Tokenizao
Remoo de stopwords
Depois diversas tentativas verificou-se que seguir os passos, nessa ordem, era a
melhor maneira de preparar o Corpus. Essa tentativas incluiram testar os passos em
ordens diferentes e tentar fazer os procedimentos com um nico texto para cada um das
lnguas. Tambm foi contemplada a ideia de identificar automticamente n-grams nmeros
e representa-los como um token, mas como seria necessrio um algortimo melhor do que
o imaginado, logo essa ideia ficou para trabalhos futuros.
16 Captulo 3. Metodologia
Nesta etapa o foco foi retirar as linhas que continham essas informaes. Ento
toda linha em que se encontrava um <doc id=...> ou </doc> foi eliminada. Em seguida
foram retirados todos os endereos de pginas na web, isto , qualquer token que contivesse
http ou www.
3.4 Tokenizao
Na etapa da tokenizao foi utilizado o script do Statmt 4 nos 68 textos, preparando-
os assim para separao das palavras com as pontuaes.
1 http://dumps.wikimedia.org/enwiki/20150901/
2 http://dumps.wikimedia.org/ptwiki/20150901/
3 https://github.com/NAMD/ptwp_tagger
4 http://www.statmt.org/wmt09/scripts.tgz
3.5. Obteno de n-grams 17
Para utilizar o script foi rodada uma linha de cdigo no terminal no seguinte
modelo:
scripts/tokenizer.perl -l en < wiki-en/AA/wiki_00 > working-dir/parte1/wikien-AA00
Esse script separa as palavras das pontuaes, deixando um espao entre elas. Por
exemplo a frase
Este artigo sobre clculo estocstico em geral, para equaes diferenciais
estocsticas.
seria separada nos seguintes tokens: Este artigo sobre clculo
estocstico em geral, para equaes diferenciais estocsticas..
Ou seja Este seria considerado um nico token, com as aspas assim inclusas,
e o mesmo ocorre com estocsticas..
Com o script sendo utilizado antes, a separao de tokens fica:
Este artigo sobre clculo estocstico em geral , para equaes
diferenciais estocsticas .
Dessa forma fica muito mais fcil a remoo das pontuaes e a separao de
frases, que ocorrero nas etapas seguintes. A retirada dos endereos web tive que ser
antes, justamente por representarem apenas um token antes do script, e aps o mesmo
seria mais trabalhoso retirar o endereo inteiro.
Em seguida, foi a etapa de retirar toda a pontuao dos textos, e todos os tokens
ficaram com um espao de distncia. Nesse processo foram feitas duas cpias para cada
arquivo: uma sem pontuao nenhuma e a outra quase sem pontuao, restando apenas
as de final de frase (., ! e ?) que foram transformadas em ponto final.
Essa distino foi necessria, pois para a etapa de obteno dos n-grams foram
utilizados os arquivos sem pontuao, e para o processo de gerar o input para o modelo
word2vec foi necessrio delimitar aonde as frases terminavam, a demarcao utilizada foi
o ponto final.
aparecem muitas vezes, tende a ser uma unidade nica de sentido. O experimento foi feito
procurando trigramas, ou seja, trs palavras seguidas que representem um nico sentido.
O valor imposto para o filtro de frequncia foi igual a 100, ou seja, s passaro para
prximo filtro aqueles conjuntos de n-grams que apareceram juntos mais de 100 vezes.
Essa etapa reduz o nmero de n-grams para a casa dos milhares, algo em torno de 1000 e
2000 possvel trigramas. O segundo filtro foi a utilizao de uma das mtricas disponveis
pelo NLTK.
Para decidir qual das mtricas seria a utilizada foi realizado um teste com uma
das selees de trigramas depois da primeira etapa, que continha 1126 trigramas. Eles
foram avaliados, manualmente, individualmente, e classificados como sendo vlidos como
trigramas, como n-gram (onde n maior que trs), bigrama, casos dbios ou descartados.
Chi-quadrada
Jaccard
Mi-like
Poisson-Stirling
T Student
Depois de ter feito o levantamento dos n-grams, e ter mantido apenas os conside-
rados vlidos, utilizamos os textos obtidos aps a utilizao do script, nos quais a maioria
das pontuaes foram removidas e os caracteres ? e ! foram substitudos por .. Nes-
ses textos foram feitas as substituies dos n-grams encontrados. Aps os textos estarem
nesse formato final poderemos separ-lo em frases.
Essas escolhas foram necessrias para manter apenas as palavras que sejam rele-
vantes para a lngua portuguesa e que tenham um correspondente que seja significativo no
Ingls. As tradues foram feitas uma a uma, manualmente, utilizando o Google Translate
como auxiliar, e algumas escolhas tiveram que ser feitas. Algumas palavras poderiam ser
traduzidas de mais de uma forma, com em casos de sinnimos, e foi necessrio escolher
qual das tradues utilizar. Outras palavras como estao, mata, cobre, cobertura e
tomada tem mais de um significado, e dependendo do contexto podem significar coisas
bem distintas. Estao pode ser traduzida como station ou season, mata pode ser do
verbo matar ou de mata relacionada com floresta, por exemplo.
Alm disso, algumas palavras que possuem uma grafia diferente em Portugus
3.6. Criao do dicionrio bilngue 21
de os da e o
se por as aquele entre
nos pela havia me como
pelos estes depois este para
isto do mesmo num a
no em esses pelas
que na te aos dos
das esta at esse mas
22 Captulo 3. Metodologia
Os modelos foram gerados com o word2vec. Para poder rodar o word2vec basta
instalar o Gensim6 , e rodar:
>>> model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
O parmetro sentences o input. Todos os textos da base de dados devem ser
colocadas no formato de frases, como por exemplo:
sentences = [[primeira, frase], [segunda, frase]]
O argumento size o tamanho dos vetores do nosso modelo, window o tamanho
mximo das frases que o modelo vai analisar por vez, e min count quantas vezes uma
palavra precisa aparecer, no mnimo, para ser includa no modelo. Workers o nmero
de threads usados para o treinar o modelo. possvel gravar o modelo e depois rod-lo,
sem precisar treina-lo novamente.
model.accuracy(/tmp/questions-words.txt)
Cada entrada das quatro primeiras matrizes foi gerado inicialmente por uma dis-
tribuio uniforme [0, 1]. As entradas das duas ltimas tiveram o tamanho do intervalo
da distribuio testado, e a mdia, de cada entrada de 6 , foi mantida com o valor zero.
Cada uma das variaes acima gerou uma matriz de traduo diferente. No algoritmo
do gradiente descendente necessrio determinar previamente a taxa de aprendizado,
denotado por . Para isso foram feitos testes para calcular qual seria o valor que gera o
menor erro relativo.
3.9 Hubs
9
O Gensim disponibiliza algumas funes que podem ser utilizadas em modelo.
Dentre essas funes, existe a funo most similar, que pode ser usada para procurar os
9 https://radimrehurek.com/gensim/models/word2vec.html
24 Captulo 3. Metodologia
vizinhos mais prximos de uma palavra, usando o valor do cosseno entre seus vetores
como medida, ou para procurar a palavra mais similar em um teste de correspondncia.
Um dos primeiros testes realizados com os modelos foi a busca dos vizinhos
mais prximos das palavras mapeadas, e este no funcionou como esperado, as tradues
corretas no se encontravam com igual a cinco, dez ou cem. Aps anlise e pesquisa na
literatura, surgiu a suspeita de existirem hubs no espao. Hubs so vetores que tendem a
estar prximos de vrios outros ao mesmo tempo. A presena desses vetores um problema
intrnseco de espaos com altas dimenses.
No trabalho de Dinu [3] foi apresentada uma forma de medir o quanto um vetor
um hub, isto , quanto mais alta sua pontuao mais hubby ele . utilizada a nomen-
clatura hubby para dizer se referir a qualidade de ser hub. Tambm foram propostos dois
mtodos para corrigir globalmente a recuperao de vizinhos.
No trabalho de Dinu foram propostos dois mtodos, que neste trabalho foram
reproduzidos. O primeiro mtodo consiste em normalizar os vetores de similaridade. Para
isso necessrio criar vetores de similaridade para cada um dos elemento do espao
alvo, neste caso so todos os vetores do vocabulrio do modelo do Ingls, pois todos tem
potencial de ser uma traduo correta.
no qual o piv aparece com um rank maior. Como o piv no aparece explicitamente no
rank, possvel avaliar sua posio, comparando o valor de similaridade do elemento com
o piv e as demais similaridades que aparecem no rank.
27
4 Resultados
Aps recolher todos os dados do experimento aplicamos testes, que foram regis-
trados nesse captulo assim como os resultados obtidos. Na maioria deles foram utilizadas
as 6 matrizes de traduo, mencionadas previamente, para fins de comparao.
Os testes, assim como os cdigos para limpar os dados e gerar o modelo, foram feito em
Python e esto disponvel no GitHub1 .
A tcnica do PCA foi utilizada logo aps a gerao do modelo usando o word2vec.
Com ela podemos notar alguma semelhana no arranjo geomtrico das palavras dos dois
espaos aqui estudados. Isso ocorre pois palavras com significados parecidos tendem a
ocorrer no mesmo contexto em lnguas distintas.
A ideia de poder achar uma matriz de traduo entre dois espao deriva da ideia
deles possurem um arranjo geomtrico semelhante. Nos grficos a seguir temos alguns
exemplos de representaes vetoriais, projetados em duas dimenses usando a tcnica do
PCA e, rotacionados manualmente para acentuar as similaridades entre as duas lnguas.
1 https://github.com/elianemart/Projeto
28 Captulo 4. Resultados
As categorias dos resultados so: (1) correto; (2) similar; (3) errada. Em todas
relaes existiam palavras que espervamos encontrar, logo se no teste encontrvamos
exatamente a palavra esperada, a relao era classificada na primeira categoria. Se a
palavra encontrada no era exatamente a esperada, porm era uma palavra similar a esta,
a relao era classificada na segunda categoria. E por ltimo, se a palavra encontrada era
completamente diferente da esperada, a relao classificada na terceira categoria.
E no Ingls:
E no Ingls:
E no Ingls:
Foram testados 12 valores de para cada uma das quatro primeiras matrizes ,
onde ele variou de 106 at 1017 . Os valores de 101 a 105 foram desconsiderados por
darem um erro muito maior que os demais.
1500
=
=1
e
=
1500
Figura 7 Erros de 1
32 Captulo 4. Resultados
Figura 8 Erros de 2
Figura 9 Erros de 3
4.4. Testes dos alphas 33
Figura 10 Erros de 4
Figura 11 Erros de 5
34 Captulo 4. Resultados
Figura 12 Erros de 6
As diferenas dos erros encontrados foram bem pequenas, pois a ordem de grandeza
destes erros foi bem prximas apesar da variao nos valores de . Nos grficos de 5 e
6 o valor de foi fixado previamente em 105 , pois foi o que gerou os menores erros,
enquanto o valor de foi variado. Os valores escolhidos de foram os que resultaram em
menor erro relativo. Para 1 foi 1016 , para 2 foi 1011 , para 3 foi 1011 e para 4 foi
1013 . Para 5 e 6 foi 1010 para e 105 para . De 1 a 4 as diferenas entre os
erros foram menores que 0,16. possvel observar que os valores dos erros, nas primeiras
4 matrizes, oscilam dentro de uma margem pequena, em geral essa margem um valor
prximo a 0,1. Os erros encontrados para as duas ltimas matrizes foram bem menores
que os encontrados para as matrizes anteriores.
Vamos considerar que o total de vezes que uma palavra aparece nos ranks nos
indique o quo hubby uma palavra , ou seja, palavras que obtenham uma pontuao alta
nesse teste so consideradas hubs. O teste foi realizado com = 5, = 10, = 20 e
= 50.
Nas tabelas abaixo temos quantos vizinhos distintos foram gerados em cada caso,
quantos desses vizinhos aparecem entre 10 e 100 vezes, e quantos aparecem mais de 100.
4.5. Teste de nmero de hubs em K vizinhos 35
Como pode ser observado nas tabelas a cima, h um nmero considervel de pa-
lavras que apareceram repetidas vezes como vizinhas de vrias palavras distintas e este
um indicativo de que existem hubs no espao. Conforme o valor de aumenta, aumentam
tambm o nmero de hubs existentes em valor absoluto. Porm, proporcionalmente ao
crescimento de , os hubs no aumentaram tanto. Menos de 1% dos vizinhos encontrados
obtiveram um valor muito alto (maior que cem) no teste. 6 foi quem obteve os melhores
resultados, apresentando os menores nmeros de hubs em todos os testes.
No word2vec existe a funo most similar, que aqui ser chamada de rank, que
permite escolhermos um valor , onde um nmero natural, ela nos retorna os
vizinhos mais prximos de um vetor, por ordem de proximidade (ordem decrescente). Isto
, ao usar a funo rank em uma palavra ou vetor do modelo, ela nos retorna quais vetores
so seus vizinhos. A similaridade utilizada pelo mtodo o valor do cosseno entre os dois
vetores, logo ela pode variar de 1 a 1.
Nosso interesse analisar os ranks dos pivs (os vetores calculados com as matrizes
) para verificar em qual posio do rank se encontra a palavra alvo (a palavra correta).
Nos grficos a seguir os pivs foram ordenados de forma que ficassem com as posies no
rank em ordem crescente.
Podemos observar que a distribuio das posies nos ranks muito similar em
todas as matrizes , apresentando um crescimento linear. Alguns pivs ficaram abaixo
da posio 1000, e a grande maioria ficou bem acima disso. O resultado ideal seria obter
valores pequenos, menores que 10 por exemplo, para todas as posies no rank, pois isso
significaria que as tradues estariam muito boas visto que os pivs estariam muito prxi-
mos dos alvos. O que ocorreu foi bem diferente do cenrio ideal, as posies encontradas
foram muito superiores aos valores esperados, indicando que as tradues esto muito
distantes do desejvel.
Para cada um dos pivs analisado qual palavra do vocabulrio possui maior si-
milaridade relativa, a similaridade depois de ser normalizada. As similaridades relativas
encontradas foram todas positivas e entre 0.04 e 0.2. O crescimento a princpio parece ser
linear mas tem um salto de alguns pontos na extremidade direita.
Esse teste originalmente prope inverter a ordem fila, ou seja, ao invs de olharmos
que palavras aparecem mais alto no rank de um determinado piv, olharemos em que
palavra esse piv aparece em uma posio mais alta. No possvel verificar com a funo
rank em qual posio um piv aparece, pois os pivs no esto associados a uma palavra
no espao. Porm, possvel estimar em que posio ele estaria, ao comparar o cosseno
entre o piv e a palavra alvo e os cossenos das palavras que esto no rank.
invivel verificar para todas as palavras do vocabulrio, pois essa verificao seria
muito custosa. Logo esse teste foi adaptado da seguinte forma: iremos gerar o rank-100
para um determinado piv, e para cada uma desses 100 vizinhos iremos gerar o rank-1000
e iremos verificar se o piv apareceria na lista e em qual posio.
4.9. Tratamento de hubs: Inverter a ordem da fila 45
matrizes, e a que obteve menos foi 2 . Com exceo de 6 , que apresenta um crescimento
bem rpido com relao s posies, as demais matrizes tm menos da metade dos pivs
em posio abaixo de 500.
2. Com as palavras obtidas pelo teste 1 proposto por Dinu e os vetores alvos
3. Com as palavras obtidas pelo teste 2 proposto por Dinu e os vetores alvos
Foram testadas duas medidas de distncia. A primeira delas foi a edit distance,
que uma maneira de quantificar quo similar morfologicamente so duas palavras. Nesse
mtodo contado o nmero mnimo de operaes necessrias para transformar uma pala-
vra em outra, como por exemplo, de pato para gato necessrio trocar apenas uma letra,
ento contado como 1 de distncia. As operaes so insero, excluso e substituio
de letras. A segunda medida de distncia a norma eucliana.
Nas trs figuras abaixo temos os histogramas do mtodo edit distance. Cada uma
das colunas de uma cor corresponde a uma das matrizes.
Figura 37 Histograma das distncias de palavras, usando o mtodo edit distance, entre
pivs gerados por cada uma das 6 matrizes e as palavras alvos correspon-
dentes.
48 Captulo 4. Resultados
Figura 38 Histograma das distncias de palavras, usando o mtodo edit distance, entre
palavras geradas utilizando o primeiro mtodo de Dinu e as palavras alvos
correspondentes.
Figura 39 Histograma das distncias de palavras, usando o mtodo edit distance, entre
palavras geradas utilizando o segundo mtodo de Dinu e as palavras alvos
correspondentes.
Nos 3 testes obtivemos resultados similares. Na maioria dos casos, para todas as
matrizes , o edit distance encontrado foi 7, e a partir de 13 passavam a no serem muito
comuns. E em pouqussimos casos o edit distance foi um valor bem baixo, como menor
ou igual a 2.
Figura 41 Norma euclidiana entre os vetores gerados com as palavras obtidas no teste
1 de Dinu com 1 e os vetores alvos.
50 Captulo 4. Resultados
Figura 42 Norma euclidiana entre os vetores gerados com as palavras obtidas no teste
2 de Dinu com 1 e os vetores alvos.
O caso ideal seria obter trs grficos parecidos e na mesma ordem de grandeza.
Porm, como j vimos que os valores das similaridades entre os pivs e os alvos no eram
muito altos, era de se esperar que os vetores no estivessem to prximos, e portanto,
apresentassem uma norma maior que nos demais casos.
51
5 Concluso
No teste utilizando a tcnica PCA, foi possvel verificar que existe uma similari-
dade no arranjo geomtrico nos dois espaos, portanto h muito o que explorar. O modelo
do Ingls obteve, em geral, um melhor resultado do que o Portugus no teste de corres-
pondncia, mas o Portugus apresentou um melhor resultado nas relaes de palavras.
Foi possvel averiguar que diferentes abordagens na gerao da matriz de traduo obti-
veram comportamentos similares, mesmo com diferena significativa no erro absoluto. O
trabalhou demonstrou ter bastante potencial de aprimoramento, com diversos testes para
anlise.
Corpus maior
Os dumps da Wikipdia geraram 513k tokens para a lngua inglesa e 447k para
a lngua portuguesa. Seria desejvel ter um corpus maior para ter mais tokens de treino.
Alm disso um dicionrio maior poderia ser interessante. O dicionrio utilizado por Mi-
kolov continha 5K palavras para treino, o deste experimento continha 3K.
Uma opo desejvel tambm fazer o experimento do Ingls para o Portugus e compa-
rar o desempenho das matrizes nas duas direes (PT -> EN e EN -> PT).
52 Captulo 5. Concluso
Mais limpeza
Outra mudana reescrever valores numricos como um nico token aps a retirada
das stopwords. Dessa forma nmeros escritos por extenso no sero considerados palavras
diferentes. Como por exemplo o nmero 31 por extenso fica trinta um (o e uma
stopword e por isso j foi retirado) e na diviso de tokens viram dois tokens distintos o
trinta e o um. O desejvel que ele vire um token s: trinta_um
Corpus anotado
No word2vec em Ingls a palavra book poderia ter uma representao como verbo
(de reservar) e uma representao como substantivo (de livro), e podemos imaginar que
elas teriam uma representao distintas por se tratarem de classes gramaticais distintas.
No Portugus o mesmo ocorreria como, por exemplo, com casa, pois temos casa como
substantivo e casa como verbo.
Seria aconselhvel realizar esse experimento utilizando corpus anotados, pois dessa
forma diversas palavras polissmicas poderiam ser tratadas de forma distintas. Como foi
mencionado anteriormente, na criao do dicionrio, um dos desafios era a escolha de
uma traduo adequada, em especial para palavras polissmicas, pois a escolha dependia
de fixar um dos significados e ignorar os demais. Com as palavras j sendo diferenciadas
por suas classes, a escolha das tradues se torna mais simplificada. Porm, em alguns
casos, ainda haver problema, como por exemplo a palavra planta pode ser do verbo
plantar, mas tambm tem dois significados distintos como substantivo: o de botnica e o
de arquitetura.
matriz de traduo por ter sido mencionado como o mtodo utilizado por Mikolov em
seu trabalho. Porm existem outros mtodos que podem ser significativos para gerar essa
matriz como o gradient descent e o conjugate gradient.
Referncias
[1] Dean Allemang and James Hendler. Semantic web for the working ontologist: effective
modeling in RDFS and OWL. Elsevier, 2011.
[2] Evandro Dalbem Lopes. Utilizao do modelo skip-gram para representao distri-
buda de palavras no projeto Media Cloud Brasil. Fundao Getulio Vargas, Rio de
Janeiro 2015.
[3] Georgiana Dinu, Angeliki Lazaridou, and Marco Baroni.. Improving zero-shot learning
by mitigating the hubness problem. arXiv preprint arXiv:1412.6568, 2014.
[4] Harris, Zellig S. Distributional structure. Word 10.2-3 (1954): 146-162. 1954
[5] Hutchins, W. John. Machine translation: A brief history. Concise history of the lan-
guage sciences: from the Sumerians to the cognitivists (1995): 431-445, 1995
[6] Karen Sparck Jones. Natural language processing: a historical review. Current issues
in computational linguistics: in honour of Don Walker, pages 316. Springer, 1994.
[7] Luiz Antnio Lopes Mesquita. Sintagmas nominais na indexao automtica: uma
anlise estrutural da distribuio de termos relevantes em teses de doutorado da UFMG
Universidade Federal de Minas Gerais, Minas Gerais, 2012.
[8] Martnez Garcia, Eva, et al. Words vector representations meet machine translation.
Eighth Workshop on Syntax, Semantics and Structure in Statistical Translation (SSST-
8): EMNLP 2014, SIGMT, SIGLEX Workshop: 25 Oct 2014, Doha, Qatar. Association
for Computational Linguistics, 2014
[9] Omer Levy, Yoav Goldberg, and Israel Ramat-Gan. Linguistic regularities in sparse
and explicit word representations. CoNLL-2014, page 171, 2014.
[10] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of
word representations in vector space. In arXiv preprint arXiv:1301.3781, 2013
[11] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. Distributed
representations of words and phrases and their compositionality. In Advances in neural
information processing systems, pages 31113119, 2013
[12] Tomas Mikolov, Wen-tau Yih, and Geoffrey Zweig. Linguistic regularities in conti-
nuous space word representations. In HLT-NAACL, pages 746751, 2013
[13] Tomas Mikolov, Quoc V. Le, and Ilya Sutskever. Exploiting similarities among lan-
guages for machine translation arXiv preprint arXiv:1309.4168, 2013.
56 Referncias
[14] Milos Radovanovi, Alexandros Nanopoulos, and Mirjana Ivanovi. On the existence
of obstinate results in vector space models. In Proceedings of the 33rd international
ACM SIGIR conference on Research and development in information retrieval, pages
186193. ACM, 2010
[15] Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. Learning repre-
sentations by back-propagating errors. Cognitive modeling, v. 5, n. 3, p. 1, 1988.