domingo, 8 de setembro de 2013

Por que em breve poderemos falar com o computador!

Por mais de uma década tenho dado palestras em que tento explicar o porquê de autores de ficção científica terem errado tão grosseiramente nas previsões de comunicação do homem com a máquina. De fato, em filmes e livros de ficção dos anos 1960-1970 era comum haver robôs que se comunicavam sem dificuldade com os humanos. E como sabemos, isso está muito longe de ocorrer. São várias as razões para esses erros de previsão, mas talvez a mais importante tenha sido não reconhecer a complexidade da linguagem humana, e a necessidade do chamado “conhecimento de mundo” para uma comunicação eficaz. Mesmo crianças em fase de aprendizado da língua já detêm um volume gigantesco de informações e estratégias, que hoje parecem impossíveis de processar por um computador.

Nas palestras menciono as duas abordagens de processamento automático de línguas naturais (PLN), a simbólica e a estatística (ou conexionista e agora também chamada de baseada em corpus ou em aprendizado de máquina). Para uma audiência de não especialistas, é fácil explicar os requisitos de um sistema de processamento no paradigma simbólico, o que inclui dicionários, analisadores sintáticos e semânticos. Minha ênfase – até porque é fácil de a audiência perceber – é sempre voltada para a dificuldade de resolver ambiguidades, principalmente nos casos em que conhecimento de mundo é necessário. Dou exemplo de sentenças que mesmo humanos não conseguem decifrar, a menos que tenham experiência de uma cultura local, e para tanto uso sentenças em inglês cuja compreensão requer conhecimento da cultura britânica. Se houver membros na audiência com tal experiência as sentenças são facilmente decifráveis, e não havendo preciso dar pistas para que a audiência adivinhe o significado. Em ambos os casos, a dificuldade de interpretação por um computador fica claramente demonstrada.

Chegou a hora de reconhecer que eu estava enganado; infelizmente não informei minhas audiências corretamente por todos esses anos ao me fixar nas dificuldades de processamento, dando a entender que dificilmente o homem se comunicaria com a máquina de forma natural. Meu primeiro erro foi não ter a percepção de que o outro paradigma de PLN, que hoje se apoia nos métodos de aprendizado de máquina, pode dar resultados muito superiores aos do paradigma simbólico, o que já acontece nos tradutores automáticos. Mas o erro crucial foi não compreender que o aprendizado de máquina mimetiza – ainda que de maneira rudimentar – o aprendizado humano. Portanto, quando a capacidade de processamento da máquina se equiparar à dos humanos, os sistemas computacionais devem apresentar habilidades semelhantes na produção e recepção de uma língua, talvez com menor eficiência (será?). Minha opinião sobre os limites do PLN mudou drasticamente em 2011 quando o computador Watson da IBM venceu campeões humanos na competição Jeopardy, um programa de perguntas e respostas de conhecimentos gerais da TV americana. Agora prevejo um progresso tão espetacular que permitirá comunicação com computadores num futuro não muito distante, desde que a capacidade de processamento de um computador continue aumentando com taxas semelhantes às atuais (no que é chamado de Lei de Moore).

PLN baseado em aprendizado de máquina
Neste paradigma de PLN, métodos computacionais de aprendizado de máquina são empregados para aquisição de conhecimento a partir de grandes corpora, ou seja, a partir de exemplos. A eficiência do paradigma ficou clara nos últimos anos, à medida que o armazenamento de grandes volumes de informação linguística passou a ser praticamente ilimitado com todo o material hoje disponível em meio eletrônico. Para tradução automática, por exemplo, foram necessários corpora volumosos de textos alinhados para as línguas em questão. Na competição Jeopardy mencionada acima, o supercomputador Watson foi projetado especificamente para a tarefa de perguntas e respostas, com capacidade de processar cerca de um milhão de livros por segundo, e com acesso a grande parte do material disponível em meio eletrônico em língua inglesa.
         
Pode-se agora antever novos desdobramentos que revolucionarão os sistemas de busca na Internet e aplicativos similares. Para dar um exemplo simples, imagine que todos os objetos de certo domínio sejam definidos numa enciclopédia. Para o sistema computacional será fácil responder a qualquer pergunta do tipo “O que é ....?” Exemplo semelhante, talvez um pouco mais difícil, será responder perguntas do tipo “Quem fez ....?” ou “Quem foi ...?”, a partir de bases de dados. 

Computador ou máquina personalizada
Para justificar algumas das previsões e meu otimismo com PLN baseado em aprendizado de máquina, discuto como as máquinas no futuro podem ser diferentes das de hoje. Quando compramos um computador, o hardware vem acompanhado de uma série de softwares, sendo o principal o sistema operacional. Além disso, muitos programas já vêm instalados, de maneira que cada máquina já tenha dezenas ou centenas de programas. Uma característica interessante é que as máquinas são quase iguais para todos. Há obviamente uma particularização da língua natural para comunicação com o usuário, há diferentes sistemas operacionais e algumas outras especificidades. Mas só. Prevejo que em décadas os usuários acharão bizarro que todos tenhamos computadores quase iguais, “sem personalidade”, e com um número pequeno de programas. Para esses usuários do futuro que receberão um computador com milhões ou bilhões de programas, será difícil imaginar o nosso tempo, assim como os jovens agora se divertem em saber que já usamos computador sem disco rígido. 

Em suma, o computador no futuro já terá muito mais conhecimento embutido, e provavelmente contará com estratégias que permitam aumentar esse conhecimento automaticamente com aprendizado de máquina. Hoje o acréscimo é muito tímido, a partir da instalação pelo usuário de programas, bibliotecas e funcionalidades. Tudo em pequena escala e de forma manual.

A possibilidade de aprendizado contínuo do computador suscita a necessidade de independência, para que a aquisição de informação (ou conhecimento?) se dê sem intervenção de um humano. Isso já seria possível atualmente com hardware específico e mobilidade da máquina, como um robô. Podemos imaginar a máquina funcionando com bateria recarregável, que buscará fonte de energia quando necessário. Imagina-se, também, um robô dotado de visão e uma série de sensores que permitam sentir e avaliar o ambiente. A decisão, ou “desejo”, de adquirir novos conhecimentos – da Internet, de algum repositório ou de outras máquinas – será dada pelo programa que gerencia as ações da máquina. Como obviamente o programa foi escrito por um humano, aparentemente a máquina não tem independência. Mas a dependência pode ficar invisível quando não mais for possível descobrir qual dos milhões de programas que vieram com o computador é responsável pelo gerenciamento geral. Ou mesmo se tal programa não foi – ele próprio – produzido por outra máquina, a partir de modificações de um programa originalmente escrito por humanos.

A educação de uma máquina       
Este é um ponto interessante devido à analogia com educação de crianças numa sociedade. Mesmo considerando que cada máquina já poderá vir personalizada a partir das escolhas do comprador (falarei sobre isso mais tarde), o que ela aprenderá vai depender das instruções do dono e do ambiente. Se o dono usar duas ou mais línguas, por exemplo, a máquina adquirirá conhecimento nessas línguas. Para um dono que trabalha no mercado financeiro, a máquina deverá se tornar especialista em estatística, ações, câmbio e acompanhar todo o noticiário de negócios.

Imagino que a máquina possa ser auxiliar, cuidando dos diversos assuntos que o dono definir. Pode fazer gerenciamento de contas bancárias, cuidar da agenda do dono, preparar material de suporte para o trabalho do dono, etc. Por exemplo, fazer pesquisa na literatura e preparar material didático para um dono professor. Obviamente que para realizar a maioria das tarefas, estou supondo que a Internet será acessível para as máquinas, o que ainda não é possível. Mas há propostas nesse sentido, como a Web Semântica.

Gestação de uma máquina
A aquisição de uma máquina será um processo muito mais complicado do que é comprar um computador hoje. Para personalizar a máquina (robô) há que se decidir como selecionar os milhões ou bilhões de programas e aplicativos, o que deverá levar muito mais tempo e provavelmente terá que ser feito com apoio de uma (outra) máquina. Não se pode esperar que um humano vá saber em detalhe o que selecionar. É esta dificuldade de identificar a origem das decisões que dá o aspecto de independência para as máquinas. Elas parecerão ter vontade própria, simplesmente porque não saberemos explicar como as decisões são tomadas. Neste contexto, reparar uma máquina avariada – ou que simplesmente esteja se comportando de maneira inesperada - será muito mais complicado, pois o cenário é completamente distinto do atual em que um humano especialista localiza o problema, conserta ou substitui um componente (programa ou elemento de hardware).

Aqui surge uma possibilidade interessante. Suponhamos um casal recém-casado, cada qual com seu agente (robô ou só agente de software). Esses agentes terão sido treinados de acordo com os gostos e necessidades dos donos. Ao iniciar a nova vida juntos, o casal percebe que seria mais eficiente conciliar agendas e aplicativos, e decide adquirir uma nova máquina (novo agente). Para selecionar a especificação inicial, como mencionado acima, e posteriormente treinar a nova máquina, será necessária a atuação conjunta das máquinas do casal. Ou seja, a nova máquina herdará características da máquina do marido – chamemos máquina-pai – e da esposa, a máquina-mãe. Seria como receber o código genético dos pais (máquinas neste caso); a propósito a metáfora que deu origem aos algoritmos genéticos provavelmente já estará sendo usada para a herança de características. Incompatibilidades poderão aparecer na junção dessas características, e imagino que devamos esperar que a máquina-filha seja diferente das que lhe deram origem, apesar da herança. Fenômenos como mutações poderão ocorrer, de maneira muito semelhante ao que acontece em biologia. E o que é mais relevante: quando quisermos descobrir a razão para certos comportamentos da máquina, como abordagens para resolver problemas ou como decisões são tomadas, pode não ser fácil determinar a origem. O comportamento pode ter sido adquirido das máquinas-pais ou aprendido no processo de aquisição de conhecimento da nova máquina.

Máquina pode ter sentimento?
Um argumento comum daqueles que não acreditam que o computador pode superar o humano é de que uma máquina jamais terá sentimento. Parece verdade. Mas o que é sentimento? Como se sabe que as pessoas têm sentimento? Ora, sabemos que elas têm sentimento por sua reação ao interagir conosco. Usando essa definição de “sentimento”, ou seja, o que é inferido por nossa percepção de uma reação da pessoa, então acredito que as máquinas podem ter sentimento. As reações das máquinas atuais são muito artificiais, e facilmente descobrimos que se devem a estímulos previamente programados por humanos. Mas e quando não for possível determinar a origem das decisões das máquinas? E se estas usarem uma lógica fuzzy para alguns tipos de decisão, dando a impressão de serem irascíveis? Quando as reações das máquinas puderem ser muito variadas, e não formos capazes de compreender sua origem, atribuiremos a elas sentimentos!

A máquina então passará no teste de Turing, sem que consigamos distinguir sua reação da de um humano. 

Convergência de Tecnologias

No século XX vivenciamos enorme desenvolvimento tecnológico, que acredito ter suplantado todo o progresso nos séculos anteriores somados. Isso se deveu principalmente às descobertas científicas nas primeiras décadas do século, que permitiram decifrar a estrutura da matéria. Saber que a matéria é constituída de átomos e moléculas, que interagem entre si segundo as regras da mecânica quântica, permitiu não só compreender as propriedades dos materiais que nos cercam, mas também projetar novos materiais.

Os exemplos mais marcantes são os semicondutores empregados na fabricação de computadores e toda sorte de equipamentos eletrônicos, e os avanços na medicina a partir da síntese de fármacos e da criação de novos métodos de diagnóstico. Ressalte-se, a propósito, que descobertas como as do laser e o uso de ressonância magnética na medicina seriam impossíveis se cientistas desconhecessem como funciona a matéria. No que concerne à importância econômica, levantamentos nos Estados Unidos apontam para mais de 50% do Produto Interno Bruto (PIB) daquele país serem gerados por tecnologias que usam a mecânica quântica. É o sucesso de uma abordagem científico-tecnológica que podemos classificar como reducionista, na medida em que buscamos compreender o funcionamento da matéria até seus constituintes mais elementares, e que hoje é o paradigma no qual se baseia a nanociência e nanotecnologia.

Com os grandes avanços obtidos da aplicação de uma teoria largamente comprovada, a teoria quântica, pode-se ter a impressão de não restar desafios científicos significativos. Esta impressão não poderia ser mais falsa, pois ainda não é possível aplicar a teoria à maioria esmagadora dos materiais, inclusive os mais importantes constituídos de matéria viva (como os seres humanos). A dificuldade principal está na falta de ordem na disposição dos átomos na matéria. Aplicar os princípios da mecânica quântica para um sólido cristalino, em que os átomos estão organizados em arranjos regulares, é relativamente simples. O mesmo não é verdadeiro para líquidos, como a água, ou sólidos não cristalinos, para os quais não conseguimos fazer previsões precisas sobre seu comportamento. Mais complicado é tentar entender as propriedades de moléculas constituídas de grande número de átomos como as proteínas, essenciais para a vida.

A análise da matéria viva, em particular, é um desafio ainda mais gigantesco por dois motivos. i) ela é constituída de estruturas auto-organizadas com número enorme de diferentes componentes, moléculas pequenas e grandes, e muita água. ii) suas propriedades finais não dependem apenas do comportamento individual de cada componente, mas também da interrelação entre esses componentes. Este último ponto é ilustrado pelo funcionamento da rede neural do cérebro, pois mesmo que pudéssemos determinar as propriedades de cada nó da rede (neurônio), ainda assim não teríamos o conhecimento sobre o funcionamento global.

Observa-se a partir da afirmação acima sobre o cérebro que uma abordagem reducionista é insuficiente para tratar sistemas complexos, como a rede neural. Isso obviamente se aplica a muitos outros sistemas, naturais ou produzidos pelo homem, cujo comportamento é governado pelas interações de seus componentes. Muitos cientistas, incluindo físicos, cientistas da computação e sociólogos, usaram um paradigma de certa forma oposto ao reducionista para investigar diferentes tipos de sistemas complexos, em que não se consideram os detalhes dos componentes mas apenas sua conexão.

Um resultado interessante foi a de que a organização de redes, como a da Internet e algumas redes sociais, obedece a princípios universais, como o do chamado efeito rico-fica-mais-rico. Segundo esse efeito, numa rede os componentes que já têm muitas conexões têm mais chances de conseguir conexões adicionais. Ao final, a rede acaba por ser constituída por um número pequeno de nós com uma quantidade enorme de conexões (“riqueza”), e um número enorme de nós com pouquíssimas conexões. Esta constatação é fácil entender para a Internet, pois quando se cria um novo nó, é muito mais provável que seja conectado a um nó já com muitas conexões, um provedor, do que a nós periféricos.

Embora pareçam antagônicos, o paradigma reducionista e o uso de redes ou outros métodos estatísticos começam a ser combinados em diferentes aplicações. É o que eu chamo de tendência à convergência de tecnologias, em que se lançam mão de abordagens e estratégias de naturezas muito distintas para atacar um problema difícil. Como exemplo, menciono o diagnóstico médico. Por um lado, o diagnóstico depende de exames clínicos com biossensores baseados em nanotecnologia. Por outro, requer o tratamento de grande quantidade de dados sobre pacientes, que podem ser imagens, relatórios, resultados de exames, etc. Implica em transformar informação, que é relativamente barata e disponível, em conhecimento.

À medida que formos capazes de combinar eficientemente essas abordagens, e pudermos processar todo o material eletrônico hoje disponível na transformação de informação em conhecimento, assistiremos a uma revolução no diagnóstico médico, como em muitas outras aplicações.