Aprendizagem Profunda, PNL e Representações

Introdução
Nos últimos anos, as redes neurais profundas dominaram o reconhecimento de padrões. Eles arrasaram o estado anterior da arte fora da água para muitas tarefas de visão por computador. O reconhecimento de voz também está-se a mover dessa maneira.
Mas apesar dos resultados, temos que nos perguntar… por que eles funcionam tão bem?
Esta publicação analisa alguns resultados extremamente notáveis na aplicação de redes neurais profundas ao processamento de linguagem natural (PLN). Ao fazê-lo, espero tornar acessível uma resposta promissora quanto ao motivo pelo qual as redes neurais profundas funcionam. Penso que é uma perspectiva muito elegante.

Uma camada oculta de redes neurais
Uma rede neural com uma camada oculta tem universalidade: com unidades ocultas suficientes, pode aproximar qualquer função. Este é um teorema freqüentemente citado – e ainda mais freqüentemente, mal interpretado e aplicado.
É verdade, essencialmente, porque a camada oculta pode ser usada como uma tabela de pesquisa.
Por simplicidade, consideremos uma rede de perceptron. Um perceptron é um neurônio muito simples que dispara se exceder um certo limite e não dispara se não alcançar esse limite. Uma rede perceptron obtém entradas binárias (0 e 1) e fornece saídas binárias.
Observe que há apenas um número finito de entradas possíveis. Para cada entrada possível, podemos construir um neurônio na camada oculta que dispara para essa entrada, 1 e somente na entrada específica. Então, podemos usar as conexões entre esse neurônio e os neurônios de saída para controlar a saída nesse caso específico. 2

E assim, é verdade que uma camada escondida redes neurais são universais. Mas não há nada particularmente impressionante ou emocionante sobre isso. Dizer que o seu modelo pode fazer o mesmo que uma tabela de pesquisa não é um argumento muito forte para isso. Isso significa que não é impossível que o seu modelo faça a tarefa.
A universalidade significa que uma rede pode caber em todos os dados de treinamento que você forneceu. Isso não significa que ele interpoleará para novos pontos de dados de forma razoável.
Não, a universalidade não é uma explicação para o por quê as redes neurais funcionam tão bem. A verdadeira razão parece ser algo muito mais sutil… E, para compreendê-lo, primeiro precisamos entender alguns resultados concretos.

Incorporações de palavras
Gostaria de começar por traçar uma vertente particularmente interessante de pesquisa de aprendizagem profunda: incorporações de palavras. Na minha opinião pessoal, as incorporações de palavras são uma das áreas de pesquisa mais interessantes em aprendizagem profunda no momento, embora originalmente foram introduzidas por Bengio, et al. há mais de uma década.3 Além disso, acho que são um dos melhores lugares para obter intuição sobre o porquê a aprendizagem profunda é tão efetiva.
Uma incorporação de palavras W: palavras → Rn é uma função paramatrizada que mapeia palavras em algum idioma para vetores de alta dimensão (talvez 200 a 500 dimensões). Por exemplo, podemos encontrar:

W (”gato”)=(0.2,-0.4,0.7,…)
W (”mat”) = (0.0,0.6,-0.1, …)

(Normalmente, a função é uma tabela de pesquisa, parametrizada por uma matriz, θ, com uma linha para cada palavra: Wθ(wn)=θn.)
W é inicializado para ter vetores aleatórios para cada palavra. Aprende a ter vetores significativos para realizar alguma tarefa.
Por exemplo, uma tarefa pela qual possamos treinar uma rede é prever se a 5 gramas (sequência de cinco palavras) é “válida”. Podemos facilmente obter muitos 5 gramas da Wikipédia (por exemplo, “gato sentado na esteira” ) e depois “quebrar” metade deles, trocando uma palavra por uma palavra aleatória (por exemplo, “canção sentada pelo gato”), uma vez que quase certamente fará o nosso absurdo de 5 gramas.
O modelo que treinamos executará cada palavra nos 5 gramas através da W para obter um vetor representando-o e alimentá-los em outro “módulo” chamado R, que tenta prever se as 5 gramas é “válida” ou “quebrada”. Então, nós gostaríamos:

Rede modular para determinar se um 5 gramas é ‘válido’ (De Bottou (2011))

R (W(”gato”), W(“sentado”), W(“na”), W(“esteira’))=1
R (W(”gato”), W(“sentado”), W(“canção”), W(“esteira”))=0

Para prever esses valores com precisão, a rede precisa aprender bons parâmetros para W e R.
Agora, esta tarefa não é extremamente interessante. Talvez possa ser útil na detecção de erros gramaticais em texto ou algo assim. Mas o que é extremamente interessante é W.
(De fato, para nós, o ponto inteiro da tarefa é aprender W. Poderíamos ter feito várias outras tarefas – outra comum é prever a próxima palavra na frase. Mas não nos importamos. No restante desta seção, falaremos sobre muitos resultados de incorporação de palavras e não faremos distinção entre diferentes abordagens.)
Uma coisa que podemos fazer para ter uma idéia do espaço de incorporação de palavras é visualizá-los com t-SNE, uma técnica sofisticada para visualizar dados de alta dimensão.

Visualizações t-SNE de incorporações de palavras. Esquerda: Número Região; Direita: Região de Emprego. De Turian et al. (2010), veja a imagem completa.

Este tipo de ‘mapa’ das palavras faz um sentido intuitivo para nós. As palavras similares estão próximas. Outra maneira de entender isso é olhar para quais palavras estão mais próximas na incorporação em uma determinada palavra. Mais uma vez, as palavras tendem a ser bastante semelhantes.

Que palavras têm inserções mais próximas de uma determinada palavra? De Collobert et al. (2011)

Parece natural para uma rede fazer palavras com significados semelhantes ter vetores semelhantes. Se você mudar uma palavra por um sinônimo (por exemplo, “algumas pessoas cantam bem” → “umas poucas pessoas cantam bem”), a validade da frase não muda. Embora, de uma perspectiva ingênua, a frase de entrada tenha mudado muito, se W traçar sinônimos (como “poucos” e “algumas”) juntos, da perspectiva de R pequenas mudanças.
Isso é muito poderoso. O número de possíveis 5 gramas é enorme e temos um número comparativamente pequeno de pontos de dados para tentar aprender. Palavras semelhantes estando próximas juntas nos permitem generalizar de uma frase a uma classe de frases semelhantes. Isso não significa apenas mudar uma palavra para um sinônimo, mas também mudar uma palavra para uma palavra em uma classe similar (por exemplo, “a parede é azul” → “a parede é vermelha”). Além disso, podemos mudar várias palavras (por exemplo, “a parede é azul” → “o teto é vermelho”). O impacto desta é exponencial em relação ao número de palavras.4
Então, claramente, isso é uma coisa muito útil para que W faça. Mas como ele aprende a fazer isso? Parece bastante provável que existam muitas situações em que viu uma frase como “o muro é azul” e sabe que é válido antes de ver uma frase como “a parede é vermelha”. Como tal, deslocar “vermelho” um pouco mais perto de “azul” faz a rede funcionar melhor.
Ainda precisamos ver exemplos de cada palavra usada, mas as analogias nos permitem generalizar novas combinações de palavras. Você já viu todas as palavras que você entendeu antes, mas você não viu todas as frases que você entendeu antes. Assim também com redes neurais.
As incorporações de palavras exibem uma propriedade ainda mais notável: as analogias entre palavras parecem estar codificadas nos vetores de diferença entre as palavras. Por exemplo, parece haver um vetor de diferença masculino-feminino constante:

De Mikolov et al. (2013a)

W(”mulher”) – W(”homem”) ≃ W(“tia”) – W(“tio”)
W (”mulher”) – W(”homem”) ≃ W(“rainha”) – W(”rei”)

Isso pode não parecer muito surpreendente. Afinal, os pronomes de gênero significam que mudar uma palavra pode fazer uma frase gramaticalmente incorreta. Você escreve, “ela é a tia”, mas “ele é o tio”. Da mesma forma, “ele é o rei”, mas “ela é a rainha”. Se alguém vê “ela é o tio”, a explicação mais provável é um erro gramatical. Se as palavras estão sendo trocadas aleatoriamente metade do tempo, parece muito provável que isso aconteceu aqui.
“Claro!” Dizemos com retrospectiva, “a incorporação da palavra aprenderá a codificar o gênero de forma consistente. Na verdade, provavelmente há uma dimensão de gênero. O mesmo para o singular versus plural. É fácil encontrar essas relações triviais! ”
Acontece, no entanto, que os relacionamentos muito mais sofisticados também são codificados dessa maneira. Parece quase milagroso!

Parceiros de relacionamento em uma incorporação de palavras. De Mikolov et al. (2013b).

É importante apreciar que todas essas propriedades de W são efeitos colaterais. Não tentamos que as palavras semelhantes fiquem próximas. Não tentamos ter analogias codificadas com vetores de diferenças. Tudo o que tentamos fazer foi executar uma tarefa simples, como prever se uma frase era válida. Essas propriedades mais ou menos surgiram do processo de otimização.
Esta parece ser uma grande força de redes neurais: eles aprendem maneiras melhores de representar dados, automaticamente. Representar dados bem, por sua vez, parece ser essencial para o sucesso em muitos problemas de aprendizagem de máquinas. As incorporações de palavras são apenas um exemplo particularmente marcante de aprender uma representação.
Representações compartilhadas
As propriedades das incorporações de palavras são certamente interessantes, mas podemos fazer algo útil com elas? Além de prever coisas tolas, como se um 5 gramas seja “válido”?
Aprendemos incorporações de palavras para fazer uma tarefa simples, mas com base nas boas propriedades que observamos nas incorporações de palavras, você pode suspeitar que elas podem ser geralmente úteis nas tarefas de PNL. Na verdade, as representações de palavras como estas são extremamente importantes:
“O uso de representações de palavras… tornou-se um “molho secreto” chave para o sucesso de muitos sistemas PNL nos últimos anos, em tarefas, incluindo reconhecimento de entidades nomeadas, rotulagem parcial, análise e rotulagem de função semântica. (Luong et al. (2013)) ”

W e F aprendem a executar a tarefa A. Mais tarde, G pode aprender a executar B com base em W.
Esta tática geral – aprender uma boa representação em uma tarefa A e, em seguida, usá-la em uma tarefa B – é um dos principais truques na caixa de ferramentas de Aprendizagem Profunda. Ele passa por nomes diferentes dependendo dos detalhes: pré-treinamento, transferência de aprendizagem e aprendizagem multitarefa. Um dos grandes pontos fortes dessa abordagem é que permite que a representação seja aprendida com mais de um tipo de dados.
Há uma contrapartida com este truque. Em vez de aprender uma maneira de representar um tipo de dados e usá-la para executar vários tipos de tarefas, podemos aprender uma maneira de mapear vários tipos de dados em uma única representação!
Um bom exemplo disso é uma inclusão bilingue de palavras, produzida em Socher et al. (2013a). Podemos aprender a incorporar palavras de duas línguas diferentes em um único espaço compartilhado. Nesse caso, aprendemos a incorporar palavras em inglês e mandarim no mesmo espaço.
Treinamos a incorporação de duas palavras, Wen e Wzh, de forma semelhante à que fizemos acima. No entanto, sabemos que certas palavras em inglês e palavras chinesas têm significados semelhantes. Então, otimizamos uma propriedade adicional: as palavras que sabemos são traduções próximas devem ser próximas.
Claro, observamos que as palavras que conheciam significados semelhantes acabam juntas. Uma vez que otimizamos para isso, não é surpreendente. Mais interessante é que as palavras que não sabíamos eram as traduções que se aproximavam.

À luz de nossas experiências anteriores com inserções de palavras, isso pode não parecer muito surpreendente. As incorporações de palavras unem palavras semelhantes, então, se uma palavra inglesa e chinesa sabemos que significam coisas semelhantes estão próximas uma da outra, os seus sinônimos também acabarão próximos um do outro. Sabemos também que coisas como diferenças de gênero tendem a acabar sendo representadas com um vetor de diferenças constantes. Parece que forçar pontos suficientes para se alinhar deve forçar esses vetores de diferença a serem iguais nas incorporações em inglês e chinês. Um resultado disso seria que, se soubéssemos que duas versões masculinas de palavras se traduzem umas para as outras, também devemos traduzir as palavras femininas entre si.
Intuitivamente, parece um pouco como se as duas línguas tenham uma “forma” similar e, ao forçá-las a se alinhar em pontos diferentes, elas se sobrepõem e outros pontos são puxados para as posições certas.

Visualização t-SNE da incorporação de palavras bilíngües. O verde é chinês, o amarelo é o inglês. (Socher et al. (2013a))

Em incorporações de palavras bilíngües, aprendemos uma representação compartilhada para dois tipos de dados muito semelhantes. Mas também podemos aprender a incorporar tipos de dados muito diferentes no mesmo espaço.
Recentemente, o aprendizado profundo começou a explorar modelos que incorporam imagens e palavras em uma única representação.5
A ideia básica é que se classifica as imagens, produzindo um vetor em uma incorporação de palavras. As imagens de cães são mapeadas perto do vetor da palavra “cão”. As imagens de cavalos são mapeadas perto do vetor “cavalo”. As imagens de automóveis perto do vetor “automóvel”. E assim por diante.

A parte interessante é o que acontece quando você testar o modelo em novas classes de imagens. Por exemplo, se o modelo não foi treinado para classificar os gatos – isto é, para mapeá-los perto do vetor “gato” – o que acontece quando tentamos classificar imagens de gatos?

(Socher et al. (2013b))
Acontece que a rede é capaz de lidar com essas novas classes de imagens com bastante razoabilidade. As imagens de gatos não são mapeadas pelos pontos aleatórios no espaço de incorporação da palavra. Em vez disso, eles tendem a ser mapeados para a vizinhança geral do vetor “cão” e, na verdade, perto do vetor “gato”. Da mesma forma, as imagens do caminhão terminam relativamente perto do vetor “camião”, que está próximo do vetor “automóvel” relacionado.

(Socher et al. (2013b))
Isso foi feito por membros do grupo Stanford com apenas 8 classes conhecidas (e 2 classes desconhecidas). Os resultados já são bastante impressionantes. Mas com tão poucas classes conhecidas, há muito poucos pontos para interpolar a relação entre imagens e espaço semântico fora.
O grupo do Google fez uma versão muito maior – em vez de 8 categorias, eles usaram 1.000 – em torno do mesmo tempo (Frome et al. (2013)) e acompanhou uma nova variação (Norouzi et al. (2014)). Ambos são baseados em um modelo de classificação de imagem muito poderoso (de Krizehvsky et al. (2012)), mas incorporam imagens na palavra incorporando espaço de diferentes maneiras.
Os resultados são impressionantes. Embora eles não consigam obter imagens de classes desconhecidas para o vetor preciso que representa essa classe, eles podem chegar ao bairro certo. Então, se você pedir que classifique imagens de classes desconhecidas e as classes são bastante diferentes, pode distinguir entre as diferentes classes.
Mesmo que nunca tenha visto uma serpente esculápica ou um Armadillo antes, se você me mostrar uma foto de uma e uma imagem do outra, posso dizer-lhe qual é qual porque eu tenho uma idéia geral de que tipo de animal está associado com cada palavra. Essas redes podem realizar o mesmo.
(Estes resultados exploram uma espécie de raciocínio “estas palavras são semelhantes”. Mas parece que os resultados mais fortes devem ser possíveis com base nas relações entre as palavras. No nosso espaço de incorporação de palavras, existe um vetor de diferenças consistentes entre a versão masculina e feminina de modo similar, no espaço da imagem, existem características consistentes que distinguem entre homens e mulheres. Barbas, bigodes e calvície são indicadores fortes e altamente visíveis de serem masculinos. Os peitos e, de forma menos confiável, cabelos compridos, maquiagem e joalharia são óbvios indicadores de ser feminino.6 Mesmo se você nunca viu um rei antes, se a rainha, determinada a ser tal pela presença de uma coroa, de repente tem uma barba, é bastante razoável dar uma versão masculina.)
As incorporações compartilhadas são uma área de pesquisa extremamente excitante e determinam o motivo pelo qual a perspectiva de foco da representação do aprendizado profundo é tão atraente.

Redes Neurais Recursivas
Começamos a nossa discussão de incorporações de palavras com a seguinte rede:

Rede modular que aprende a incorporação de palavras (De Bottou (2011))

O diagrama acima representa uma rede modular, R(W(w1), W(w2), W(w3), W(w4), W(w5)). É construído a partir de dois módulos, W e R. Esta abordagem, de construção de redes neurais a partir de pequenos “módulos” de redes neurais que podem ser compostas, não é muito ampla. No entanto, foi muito bem sucedido na PNL.
Os modelos como os acima são poderosos, mas eles têm uma limitação infeliz: eles só podem ter um número fixo de entradas.
Podemos superar isso adicionando um módulo de associação, A, que terá duas representações de palavras ou frases e mesclá-las.

(De Bottou (2011))

Ao combinar sequências de palavras, A nos leva a representar palavras para representar frases ou mesmo representando frases inteiras! E porque podemos juntar diferentes números de palavras, não precisamos ter um número fixo de insumos.
Não faz sentido mesclar as palavras em uma frase linearmente. Se considerarmos a frase “o gato sentado na esteira”, pode ser naturalmente encadernado em segmentos: “((o gato) (sentado (na (esteira)))”. Podemos aplicar A com base neste bracketing:

(De Bottou (2011))

Esses modelos são freqüentemente chamados “redes neurais recursivas”, porque muitas vezes a saída de um módulo entra em um módulo do mesmo tipo. Também são chamadas “redes neurais estruturadas em árvores”.
As redes neurais recursivas tiveram sucessos significativos em várias tarefas de PNL. Por exemplo, Socher et al. (2013c) usa uma rede neural recursiva para prever o sentimento da sentença:

(De Socher et al. (2013c))
Um dos principais objetivos foi criar uma representação de sentença reversível, uma representação de que se pode reconstruir uma frase real, com aproximadamente o mesmo significado. Por exemplo, podemos tentar introduzir um módulo de desassociação, D, que tenta desfazer o A:

(De Bottou (2011))
Se pudéssemos realizar tal coisa, seria uma ferramenta extremamente poderosa. Por exemplo, podemos tentar fazer uma representação de sentença bilíngüe e usá-la para tradução.
Infelizmente, isso acaba por ser muito difícil. Muito muito difícil. E dada a tremenda promessa, há muitas pessoas trabalhando nela.
Recentemente, Cho et al. (2014) fizeram algum progresso na representação de frases, com um modelo que pode codificar frases em inglês e decodificá-las em francês. Olhe para as representações da frase que aprende!

Pequena seção do t-SNE da representação da frase
(De Cho et al. (2014))

Críticas
Ouvi que alguns dos resultados analisados anteriormente foram criticados por pesquisadores em outros campos, em particular, na PNL e linguística. As preocupações não são com os próprios resultados, mas com as conclusões tiradas com eles, e como eles se comparam com outras técnicas.
Não me sinto qualificado para articular essas preocupações. Eu incentivaria alguém que se sinta assim a descrever as preocupações nos comentários.

Conclusão
A perspectiva de representação da aprendizagem profunda é uma visão poderosa que parece responder porque as redes neurais profundas são tão eficazes. Além disso, acho que há algo extremamente bonito sobre isso: por que as redes neurais são efetivas? Porque podem surgir melhores maneiras de representar dados da otimização de modelos em camadas.
A aprendizagem profunda é um campo muito jovem, onde as teorias não estão fortemente estabelecidas e as visualizações mudam rapidamente. Dito isto, tenho a impressão de que a perspectiva centrada na representação das redes neurais é atualmente muito popular.
Esta publicação analisa muitos resultados de pesquisa que eu acho muito emocionante, mas a minha principal motivação é preparar o cenário para uma publicação futura explorando conexões entre aprendizagem profunda, teoria dos tipos e programação funcional. Se você estiver interessado, você pode inscrever-se no meu feed rss para que você o veja quando for publicado.
(Eu ficaria encantado de ouvir os seus comentários e pensamentos: você pode comentar no meio ou no final. Por erros de digitação, erros técnicos ou esclarecimentos que você gostaria de adicionar, você esta incentivado a fazer um pedido de envio no github)

Reconhecimentos
Agradeço a Eliana Lorch, Yoshua Bengio, Michael Nielsen, Laura Ball, Rob Gilson e Jacob Steinhardt por seus comentários e apoio.
1. Construir um caso para cada entrada possível requer 2n neurônios escondidos, quando você possui n neurônios de entrada. Na realidade, a situação não é tão ruim assim. Você pode ter casos que englobam múltiplas entradas. E você pode ter casos sobrepostos que se somam para alcançar a entrada certa em sua interseção.
2. (Não são apenas as redes perceptron que têm universalidade. As redes de neurônios sigmóides (e outras funções de ativação) também são universais: dão suficientes neurônios ocultos, eles podem aproximar qualquer função contínua arbitrariamente bem. Ver isso é significativamente mais complicado porque você não pode apenas isolar as entradas.) ↩
3. As incorporações de palavras foram desenvolvidos originalmente (Bengio et al, 2001; Bengio et al, 2003), alguns anos antes da renovação de aprendizagem profunda de 2006, numa época em que as redes neurais estavam fora de moda. A idéia de representações distribuídas para símbolos é ainda maior, por exemplo, (Hinton, 1986).”↩
4. O documento seminal, Um modelo de linguagem probabilística Neural (Bengio, et al., 2003) tem uma grande visão sobre por que as incorporações de palavras são poderosos.
5. O trabalho anterior foi feito modelando as distribuições conjuntas de tags e imagens, mas teve uma perspectiva muito diferente.
6. Sou muito consciente de que os indicadores físicos de gênero podem ser enganadores. Não quero dizer, por exemplo, que todos os que são carecas são homens ou todos os que têm seios são mulheres. Só que isso geralmente indica tal, e ajusta muito o nosso prior.↩

Sobre o autor

Sara Filipa

Posts recentes

Comentários

Arquivos

Categorias

Meta