Fusão de Dados e Longevidade

Certos fenômenos que muito interessam atualmente a Biologia têm causas difíceis de serem identificadas, e muito debate e hipóteses a respeito das mesmas. Um desses fenômenos é o aumento de longevidade associado com restrição calórica: é um fato bem conhecido há muitos anos que animais de várias espécies recebendo uma dieta mais pobre em calorias têm tendência a viver muito mais que outros com dieta normal. Dessa forma, há um grande interesse da Biologia, da Medicina e também (como não poderia deixar de ser) da indústria farmacêutica na causa ou causas desse fenômeno. Uma vez que as mesmas sejam identificadas, no melhor dos mundos talvez um “santo graal” já imaginado há um bom tempo seja alcançado: a produção de uma droga simulando os efeitos da restrição calórica - permitindo a uma pessoa ter uma dieta normal e ainda assim viver bem além da expectativa de vida atual. Seria algo que lembraria distantemente o lendário “elixir da vida eterna” - embora “elixir da vida longa” seja um nome mais apropriado, ainda que menos bombástico, nesse caso. :)

Uma das pesquisas realizada pelo Vetta Labs em parceria com a Biomind, foi aceita recentemente para publicação no renomado periódico científico Rejuvenation Research - talvez o mais importante da atualidade em matéria de pesquisa de longevidade - que de fato se ocupa do problema das causas dos efeitos de extensão de vida obtidos pela restrição calórica. Os resultados biológicos que conseguimos com essa pesquisa foram bastante interessantes, mas acho melhor deixar nosso biológo, o Maurício, escrever a respeito dessa parte e da restrição calórica em geral. Afinal, sou apenas um pobre computeiro que só tem uma vaga idéia do que são coisas como a “hipótese da hormesis”. :) Assim, vou me concentrar na nossa abordagem computacional para o estudo das bases de dados relacionadas com restrição calórica, abordagem essa que, modéstia à parte, foi bastante inovadora.

Conforme já mencionei, atualmente existem várias hipóteses concorrentes para explicar qual é o mecanismo central por trás da longevidade por restrição calórica. Ao mesmo tempo, são feitos vários experimentos com enfoques diferentes para se medir ou observar um ou outro aspecto da restrição calórica, e talvez testar um ou outro aspecto das várias teorias para a restrição calórica. Essa abordagem reducionista, porém, ao mesmo tempo que é uma força pode ser uma fraqueza: ao focar em detalhes do problema da restrição calórica, pode ficar bem difícil enxergar a “visão panorâmica” contendo os princípios universais que dão a solução definitiva para esse problema.

Assim, nossa abordagem foi um tanto quanto na contramão do que é feito - em vez de estudarmos uma ou outra base de dados isolada referente a um experimento preocupado com um ou outro aspecto da restrição calórica, integramos bases de dados produzidas por diversos experimentos diferentes - todos eles relacionados a restrição calórica - para daí tirarmos nossas conclusões.

Mais especificamente, lidamos com bases de dados de expressão genética em camundongos. Um mapa de expressão gênica, como o nome sugere, mostra o nível de atividade de um grande número de genes em um dado indivíduo. No caso das bases de dados utilizadas, alguns indivíduos haviam sido submetidos a restrição calórica, enquanto outros era os “controles”, recebendo uma dieta normal. Assim, explicando de um jeito “numérico”, cada base de dados dessas pode ser imaginada como uma planilha (ou matriz) onde as linhas estão associadas aos genes (tipicamente, milhares deles), as colunas estão associadas aos indivíduos (em geral poucos - frequentemente bases de dados de expressão gênica têm algo entre apenas dez e vinte indivíduos), e os números nas células da matriz dizem o quanto o gene X da linha estava expresso no indivíduo Y da coluna. Cada coluna tem ainda um rótulo indicando se o indivíduo correspondente é caso (sofreu restrição calórica) ou controle. As matrizes (bases de dados) que utilizamos foram feita a partir de condições experimentais diferentes, mas no fundo todas comparavam indivíduos com restrição calórica com controles: por exemplo as linhagens de camudongos usadas em uma dada matriz eram diferentes das usadas nas outras; em uma das matrizes, os indivíduos com restrição calórica incluíam camundongos velhos e jovens, enquanto que nas outras a idade era uma variável controlada; e assim por diante.

De novo explicando numericamente, o que nós fizemos foi fundir essas matrizes, e analisar a meta-base de dados daí resultante. Essa “fusão de dados” é bem trivial no caso das colunas - basta simplesmente incorporar todas as colunas de indivíduos de todas as matrizes na mesma matriz fundida. No caso das linhas, porém - isto é, na hora de fundir os genes vindos de base de dados diferentes - fazer a fusão de uma maneira que faça sentido biológica e numericamente está longe de ser elementar.

Uma das reações que a maioria das pessoas tem ao se deparar com um problema desses é pensar em escalar ou normalizar a expressão de um gene em cada base de dados individual, e então fundir as versões normalizadas, e não as contendo os números originais. Dando um exemplo disso usando um tipo de normalização bem simples, imagine que a expressão do gene X varie de 100 a 1000 unidades entre os indivíduos da matriz A, enquanto que nos indivíduos da matriz B varia de 8 a 80. Fazendo uma normalização linear, podemos então dizer que 100 unidades no dataset A mapeia para 0.0 em sua versão normalizada, e 1000 unidades mapeiam para 1.0, e escalamos todos os outros valores para o intervalo [0,1]. Fazendo a mesma coisa com a base de dados B (usando 8 como zero e 80 como 1.0 desta vez), no final temos duas matrizes onde todos os valores de expressão genética caem no intervalo [0,1], e assim a fusão das duas bases parece ser - numericamente ao menos - compatível.

O problema, com alguns já devem ter visto pelos próprios números propositalmente discrepantes usados no exemplo, é que biologicamente isso faz muito pouco sentido. No exemplo a expressão do gene X no dataset A pode ser mais de uma ordem de magnitude maior que no dataset B. Assim, embora a “miraculosa” transformação numérica passe todos os valores para a mesma faixa, o que nós estamos fazendo na prática é usar um gene X que se comporta de forma completamente diferente em dois datasets que tratam do mesmo fenômeno, a restrição calórica. Malabarismos numéricos à parte, isso parece mais um indicador de que o gene X *não é* la muito relacionado com a restrição calórica.

Porém, fomos rigorosos (alguns diriam teimosos :) e decidimos dar a essa abordagem o benefício da dúvida. O interessante na abordagem de aprendizagem de máquina usada pela Biomind e Vetta Labs é que podemos validar essas transformações de dados simplesmente gerando modelos de classificação em cima dos dados transformados, e então observando a qualidade dos resultados de classificação assim obtidos. Em termos bem simples, e restringindo a explicação ao presente caso, um modelo de classificação (ou simplesmente modelo) é uma função lógico-matemática, “descoberta” automaticamente por um método de aprendizagem de máquina, capaz de dizer se um indivíduo é controle ou com restrição calórica, com base em sua expressão gênica. No caso desta pesquisa, o método de aprendizagem usado foi Programação Genética - “evolução” de programas inspirada em princípios Darwinianos. Os programas em si eram bem limitados, na verdade expressões lógicas do tipo “se o gene X tem expressão maior que 0.5 e o gene Y tem expressão menor que 0.2, então o indivíduo tem restrição calórica, senão é controle”, para dar um exemplo simples. Pois bem, aplicando esse processo em bases de dados fundidas por meio de normalização (como exemplicado acima), os modelos alcançaram resultados bem ruins - os modelos acertavam o diagnóstico restrição calórica/controle apenas em 70% dos indivíduos.

O resultado bem melhor, próximo dos 91% de acerto, que efetivamente analisamos, foi obtido com uma abordagem bem diferente, que ao mesmo tempo faz sentido numérica e biologicamente. Nesta abordagem, em vez de forçarmos todos os genes a se conformarem em faixas de valores compatíveis, propositalmente deixamos de usar todos os genes, selecionando apenas aqueles genes cujas faixas de variação de nível de expressão são parecidas nas duas (ou mais) bases de dados sendo integradas. Criamos uma simples medida de “sobreposição” (baseada na média e desvio padrão expressões de um gene em um dataset e em outro) para escolher apenas aqueles genes com faixas de valores mais sobrepostas nas duas ou mais bases de dados em fusão. (Exemplo numérico: suponha um gene X com média de expressão 100 e desvio padrão 10 na matriz A, e média 105 e desvio 15 na matriz B. Isso daria uma sobreposição de cerca de 0.67 para X em A e B, e o gene passaria no limiar de 0.5 usado para a seleção, indo para a matriz fundida final.) Biologicamente falando, se esses genes naturalmente se comportam de forma numérica parecida em bases de dados de restrição calórica diferentes, as chances parecem ser de que os mesmos são intrinsecamente relacionados ao problema da restrição calórica…

Fundimos três bases de dados diferentes - e mais tarde quatro - usando esse método. Na fusão tripla diminuímos o conjunto inicial de mais de oito mil genes para pouco mais de 500; na fusão quádrupla, conseguimos uma lista de genes muito parecida (apenas ligeiramente menor) com a da fusão tripla, indicando que o nosso método realmente estava convergindo para um conjunto de genes particularmente estáveis, robustos, no que diz respeito ao seu comportamento em estudos de restrição calórica.

As matrizes fundidas produzidas por essa abordagem passaram por toda a “linha de montagem” de análises do OpenBiomind, o software aberto para análises de dados de bioinformática desenvolvido pelo Vetta Labs e Biomind. Assim, pudemos gerar modelos de classificação (que conforme já dito acertavam o diagnóstico em mais de 90% dos casos), analisar esses modelos em busca dos genes mais importantes para a classificação, e finalmente montar redes de múltiplas relações entre os genes - mostrando importância de genes, co-ocorrência de genes nos mesmos modelos, co-expressão dos genes nos mesmos indivíduos, etc - que permitiram fechar o cerco em torno dos mecanismos da restrição calórica. Mas aqui, como eu já disse, acho que o Maurício é a pessoa indicada para falar com mais propriedade do que nosso estudo concluiu a respeito dessas redes de relações.

Este estudo de fato representa no campo de aplicação particular da Bioinformática uma lição “a união faz a força” que é recorrente em estudos de mineração de dados: às vezes, integrando múltiplas fontes de dados heterogêneas e indiretamente relacionadas (mesmo que essa integração não seja nem óbvia e nem simples), seus resultados são bem melhores, e lançam muito mais luz sobre o problema em questão, que visões “míopes” focando em um ou outro aspecto do mesmo…

Biotecnologia, Data Mining, Inovação, Inteligência Artificial 4 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Visão das empresas brasileiras

Li uma notícia no site da Época Negócios sobre uma empresa de tecnologia chamada SAS (www.sas.com) localizada nos Estados Unidos, no estado da Carolina do Norte. A notícia apresenta a empresa como um excelente local para trabalhar. Ela está instalada não em grandes prédios de áreas centrais, mas em um enorme campus cercado de área verde e que possui piscina semi-olímpica, campos de golfe, futebol, beisebol, dentre outros. A jornada de trabalho dos funcionários é de 35 horas semanais, a menor da área de tecnologia. Além disso, eles possuem regalias como restaurantes, serviços de cabelereiro, tratamento de pele, facilidades para as mães, etc. A SAS está desde 1998 na lista das melhores empresas para se trabalhar. Diz a reportagem que os executivos do Google buscaram lá as idéias para a criação dos
seus fomosos escritórios.

Porém esse post não é sobre o ambiente de trabalho da empresa, mas sim sobre o que ela faz e os seus resultados. A SAS desenvolve software de business inteligence, que na minha opinião, de uma maneira simplória, é a aplicação de técnicas de mineração de dados e aprendizado de máquinas em bases de dados empresarias. O objetivo do software pode ser o mais variado, como por exemplo a categorização de pessoas com potencial de inadimplência (adotado por empresas de cartão de crédito) e a avaliação do risco assumido ao se vender um seguro (adotado por seguradoras).

O que mais me impressionou na notícia é que a SAS é a maior empresa privada de software do mundo, possuindo mais de 40 mil clientes. Ela faturou 2.1 bilhões de dólares em 2007. Fiquei impressionado não com a SAS, mas com a visão dos seus milhares de clientes que adotam softwares de business inteligence para buscar melhores resultados. Me lembro de uma aula do mini MBA que tivemos aqui na Vetta e o André disse que, no Brasil, muitos contratos de software não são fechados pois as empresas possuem um orçamento limitado e não consideram o software como prioridade. Isso considerando software em geral. Imagine então uma aplicação de business inteligence…….

Bom, a idéia que eu queria deixar nesse post é que acho importante uma mudança na mentalidade das empresas brasileiras. Muitas delas precisam perceber que software é investimento que trará resultados, e não despesa. Acho que falta uma visão mais inovadora das empresas. Posso estar errado, mas é o que percebo…..

Data Mining, Inovação 1 Comentário

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Mais Netflix: o valor dos dados

Como eu disse no post anterior sobre o desafio da Netflix, a grande maioria dos times no topo da tabela de classificação utiliza variações dos mesmos algoritmos básicos. Cada time cria novas formas de tornar os algoritmos mais sofisticados e inteligentes, refinando suas técnicas de forma incremental.

Computadores que jogam Xadrez funcionam da mesma maneira: todos os melhores programas utilizam variações do mesmo algoritmo básico. O algoritmo original é bastante simples, mas as variações são cada vez mais complexas e ricas, refletindo avanços incrementais e bastante focados.

Muitas vezes esse foco em sofisticação da tecnologia faz com que as pessoas ignorem idéias muito mais simples e eficazes. Um bom exemplo aconteceu recentemente em Stanford, onde o Prof. Anand Rajaraman ministra uma matéria de mineração de dados. Como trabalho final na disciplina, vários grupos de alunos atacaram o problema da Netflix.

A maioria dos grupos agiu de forma parecida com os times que lideram o desafio, criando variações complexas e refinadas de algoritmos de recomendação simples. O grupo que se deu melhor, e chegou perto dos melhores resultados na tabela de classificação, usou um algoritmo muito simples e, ao invés de refiná-lo, melhorou os dados. Eles aumentaram os dados iniciais com meta-informação sobre cada filme extraída do IMDB. Com dados melhores e mais ricos, um algoritmo simples bateu técnicas bem mais sofisticadas.

Data Mining 0 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Clusters, recomendações e a NetFlix

Nos comentários do post do Kenji sobre clusterização, a Adriana mencionou o desafio da NetFlix. Eu acho que merece o seu próprio post.

A NetFlix é uma locadora virtual de DVDs, de enorme sucesso nos EUA. Você se associa, escolhe quais filmes gostaria de ver e põe numa fila. A NetFlix manda os filmes pelo correio à medida que estão disponíveis, com envelope pago para você devolvê-los. Em um plano comum, você pode alugar até 3 DVDs de uma vez e fica quanto tempo quiser com eles, mas só recebe o próximo depois de devolver pelo menos um.

Pois a NetFlix tem um sistema de recomendações chamado Cinematch, que funciona até bem. Querendo melhorar a qualidade das recomendações eles lançaram, em 2006, um desafio. O primeiro a diminuir o erro das recomendações em 10% ganha US$1 milhão. É, um milhão de verdinhas. Os erros podem ser de dois tipos. Falsos positivos são quando o sistema faz recomendações estúpidas. Falsos negativos são quando ele deixa de recomendar algo que você ia gostar.

A idéia é genial: outsourcing da inovação. Gente do mundo inteiro, times acadêmicos e nerds em garagens estão participando e a NetFlix só paga se alguém conseguir os resultados que eles querem. Fora a publicidade gratuita e o incentivo à pesquisa - dezenas de publicações surgiram desse desafio.

Não é fácil. Em menos de um mês, já tinha gente na metade do caminho, com 5% de melhora. Mas depois disso, o progresso foi cada vez mais lento. Depois de um ano, um time da AT&T Labs Research tinha reduzido o erro em 8.43% e ganhou um prêmio de progresso de US$50.000,00 e uma placa horrível de “honra ao mérito”. Eles são os atuais líderes, com 9% de redução.

A grande maioria dos líderes no desafio utiliza métodos similares para gerar novas recomendações: eles se baseiam em filmes que você assistiu e gostou (ou quer assistir) e recomendam outros filmes similares. Isso é outra aplicação de clusterização.  O segredo está em definir uma forma de medir essa similaridade que faça sentido para quem está alugando os filmes, o consumidor final da NetFlix.

Recentemente, um outro competidor chamou atenção. Ao contrário dos times de laboratórios e universidades, esse é só um cara em casa. E sua formação original é em psicologia. Ele começou a trabalhar no problema um ano depois de anunciado e seus resultados melhoraram mais rapidamente que os de qualquer time até então. Atualmente, Gavin Potter está em nono lugar. Qual o seu segredo?

A maneira mais comum de medir a “similaridade” entre dois filmes é representar os filmes como um conjunto de números, onde cada número tem um significado específico.  Assim, o primeiro número pode ser o gênero do filme e duas comédias tendem a ser mais similares que uma comédia e um épico de guerra, por exemplo.  O segundo número pode indicar a linguagem do filme, e assim por diante.  Quando se caracteriza um filme dessa maneira, cada número é uma dimensão.

Existem métodos automáticos para determinar quais dimensões são importantes para um problema específico, mas eles são sujeitos a erros e decisões estúpidas, como toda técnica heurística.  Pois o segredo do Gavin é exatamente sua formação original.  Como psicólogo ele tem uma intuição muito melhor que a dos computeiros a respeito do valor de cada dimensão, e pensa em dimensões importantes que outros times ignoram.

Mesmo que ele não ganhe o prêmio, seu relativo sucesso em pouco tempo me lembra um velho ditado: a inteligência artificial não é páreo para a burrice natural.  Ou, de forma menos agressiva, nunca subestime o valor do conhecimento dos especialistas no assunto.

Data Mining, Inovação 1 Comentário

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Clusty não é o palhaço

Esta semana, a Vivisimo, uma spin-off da universidade de Carnegie Mellon especializada em clusterização aplicada a mecanismos de busca, andou levantando um bocado de dinheiro em investimento. Ótimo momento, para quem andou acompanhando a tensão do aceita-não-aceita da proposta de compra da Yahoo pela Microsoft.

Para ver a tecnologia da Vivisimo em ação, confira o site Clusty e faça rapidamente uma busca, digamos, por “harmônica” (também conhecido como gaita de boca).

Além dos resultados tradicionais, note do lado esquerdo que algumas respostas estão “categorizadas” em itens como “blues harp” (gaita blues), “harmonica lessons” (aulas de gaita) e etc.

O interessante da tecnologia da Vivísimo, diga-se de passagem que não é nenhuma novidade, é que essa separação em categorias não é manual. Ninguém colocou um monte de estagiários para separar essas categorias. Isso é clusterização.

Clusterização, a grosso modo, é uma forma de, dado um monte de itens e um conjunto de características destes itens, separar o que é diferente e juntar o que é similar. Como você pode imaginar, há um monte de aplicações interessantes para isso.

Aqui no Labs, uma das aplicações disto é nas pesquisas de biotech que fazemos para diversos clientes, especialmente a Biomind. É comum os biólogos terem vários dados sobre como genes se comportam em diversas condições, e é muito interessante que, suponhamos, dentre 40.000 genes, os biólogos possam analisar apenas uns 10 ou 20 genes que, de alguma forma, tenham um comportamento parecido dentro de um determinado processo (por exemplo, quando comparamos tecidos de pessoas saudáveis e pessoas com câncer). Uma das formas de selecionar estes genes é através de algoritmos de clustering.

Outra aplicação famosa de clustering é no e-commerce. Se você já fez compras na Amazon, deve ter se deparado com aquelas sugestões de itens do tipo “pessoas que compraram este livro também compraram estes outros”. E com o dólar baixo, o dedo coça :-).

O algoritmo que a Amazon usa, que não deixa de ser um tipo muito refinado de clustering, é patenteado e é um tipo de Collaborative Filtering (filtro colaborativo). No fim das contas, baseado no perfil de compras de todos os clientes da Amazon, existem vários conjuntos de clientes que se comportam de maneira parecida, que compram parecido, que gostam das mesmas coisas. O sistema, estudando estes grupos, sugere para o cliente os livros que mais parecem agradar aquele segmento.

Naturalmente que um bom vendedor, ou o dono de uma livraria, aprende com o tempo a “clusterizar” seus clientes, e muito bem diga-se de passagem, enquadrando pessoas dentro de “perfis”. Tal cliente é o estudante de matemática que gosta de livros de ficção. Outra cliente é a dona-de-casa sagitariana que gosta de romances água-com-açúcar. Contudo, vale lembrar alguns aspectos aqui.

  • A Amazon lida com muito mais gente que o nosso competente dono de livraria.
  • A Amazon faz estas contas e indica produtos relacionados o tempo todo, a cada passo que você dá dentro do site deles. O que significa que a NAVEGAÇÃO do site é modificada DINAMICAMENTE, ou seja, o site se ajusta a cada passo do usuário.
  • O algoritmo da Amazon pode encontrar padrões nos perfis de usuários que uma pessoa não encontraria.
  • Estudar estes padrões encontrados pelo algoritmo ajudam a conhecer melhor o seu próprio negócio.
  • Aplicar este tipo de algoritmo aos mais diversos tipos de dados não é uma coisa incrivelmente difícil ou cara.

Fica meu gigante ponto de interrogação: por que a submarino não me sugere outras coisas que eu gostaria de comprar?

krusty-2.jpg

Biotecnologia, Data Mining 1 Comentário

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Next Entries »