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. 

Um comentário:

  1. Texto interessante, as máquinas evoluiram muito, mas acho que aindas estamos a anos-luz de uma maquina auto-suficiente. Os progressos nessa area são inegáveis mas os desafios ainda são grandes.

    ResponderExcluir