O que são algoritmos e por que tornam as pessoas desconfortáveis?

“Algoritmo” é uma palavra muito usada. Mas quando construímos conversas em torno de algoritmos do YouTube ou Facebook, do que estamos realmente falando? O que são algoritmos e por que as pessoas reclamam tanto deles?

Algoritmos são instruções para solução de problemas

Vivemos em um mundo onde os computadores são apenas vagamente compreendidos, embora eles permeiem todos os momentos de nossas vidas. Mas existe uma área da ciência da computação onde qualquer pessoa pode entender o básico do que está acontecendo. Essa área da ciência da computação é chamada de programação.

Programar não é um trabalho glamoroso, mas é a base de todos os softwares de computador, do Microsoft Office aos robocallers. E mesmo que seu conhecimento de programação resulte unicamente de filmes ruins dos anos 90 e reportagens inusitadas, você provavelmente não precisa de ninguém para lhe explicar o que um programador faz. Um programador escreve código para um computador, e o computador segue as instruções desse código para realizar tarefas ou resolver problemas.

Bem, no mundo da ciência da computação, um algoritmo é apenas uma palavra chique para código. Qualquer conjunto de instruções que diga a um computador como resolver problemas é um algoritmo, mesmo que a tarefa seja muito fácil. Quando você liga o computador, ele segue um conjunto de instruções de “como ligar”. Esse é um algoritmo em funcionamento. Quando um computador da NASA usa dados brutos de ondas de rádio para renderizar uma fotografia do espaço sideral, isso também é um algoritmo em funcionamento.

A palavra “algoritmo” pode ser usada para descrever qualquer conjunto de instruções, mesmo fora do domínio da computação. Por exemplo, seu método para classificar talheres em uma gaveta é um algoritmo, assim como seu método de lavar as mãos depois de usar o banheiro.

Mas o problema é o seguinte: atualmente, a palavra “algoritmo” tende a ser reservada para algumas conversas muito específicas sobre tecnologia. Você não ouve as pessoas falando sobre algoritmos de “matemática básica” ou algoritmos da “ferramenta MS Paint graffiti”. Em vez disso, você ouve usuários do Instagram reclamando de algoritmos de sugestão de amigos ou grupos de privacidade atacando os algoritmos de coleta de dados do Facebook.

Se “algoritmo” é um termo genérico para instruções computacionais, então por que o usamos quase exclusivamente para descrever aspectos confusos, mágicos e malignos do mundo digital?

A maioria das pessoas usa “algoritmos” e “aprendizado de máquina” de forma intercambiável

No passado, os programadores e a cultura pop se referiam à maioria das instruções computacionais como “código”. Isso permanece verdadeiro hoje, na maior parte. O aprendizado de máquina é a grande área nebulosa da computação, onde tendemos a usar a palavra “algoritmo” em vez de “código”. Isso, compreensivelmente, contribuiu para a confusão e desconforto em torno da palavra “algoritmo”.

O aprendizado de máquina existe há muito tempo, mas só se tornou uma grande parte do mundo digital nos últimos 15 anos. Embora o aprendizado de máquina pareça uma ideia complicada, é muito fácil de entender. Os programadores não podem escrever e testar código específico para cada situação, então eles escrevem código que pode escrever a si mesmo.

Pense nisso como uma forma mais prática de inteligência artificial. Se você categorizar e-mails suficientes de seu chefe como spam, seu cliente de e-mail começará a empurrar todos os e-mails de seu chefe para a pasta de spam automaticamente. Da mesma forma, o Google usa aprendizado de máquina para garantir que os resultados de pesquisa do YouTube permaneçam relevantes, e a Amazon usa aprendizado de máquina para sugerir quais produtos você deve comprar.

Claro, o aprendizado de máquina não é tão bom e elegante. O nome “aprendizado de máquina” parece assustador o suficiente para deixar algumas pessoas desconfortáveis, e alguns dos usos populares do aprendizado de máquina são eticamente questionáveis. Os algoritmos que o Facebook usa para minerar dados ou usuários na web são um exemplo nada lisonjeiro de aprendizado de máquina.

Na imprensa, você ouvirá sobre o “algoritmo do Google” para classificar os resultados da pesquisa, o “algoritmo do YouTube” para recomendar vídeos e o “algoritmo do Facebook” para decidir quais postagens você vê em sua linha do tempo. Todos esses são assuntos de contenda e debate.

Por que os algoritmos são controversos

A divisão longa é um algoritmo familiar (entre muitos outros) para dividir números. Acontece que isso é feito por crianças em idade escolar, em vez de computadores. Sua CPU Intel usa um algoritmo totalmente diferente quando divide os números, mas os resultados são os mesmos.

A voz para texto geralmente usa aprendizado de máquina, mas ninguém fala sobre o “algoritmo” de voz para texto porque há uma resposta objetivamente correta que todo ser humano pode reconhecer instantaneamente. Ninguém se preocupa com “como” o computador descobre o que você disse ou se é aprendizado de máquina ou não. Nós apenas nos importamos se a máquina obteve a resposta certa.

Mas outras aplicações de aprendizado de máquina não têm o benefício de ter uma resposta “certa”. É por isso que os algoritmos se tornaram um assunto regular de conversa na mídia.

Um algoritmo para classificar uma lista em ordem alfabética é apenas uma maneira de realizar uma tarefa definida. Mas um algoritmo como o do Google para “classificar os melhores sites para uma busca” ou o do YouTube para “recomendar o melhor vídeo” é muito mais vago e não cumpre uma tarefa definida. As pessoas podem debater se aquele algoritmo está produzindo os resultados que deveriam, e as pessoas terão opiniões diferentes sobre isso. Mas, com nosso exemplo de classificação alfabética, todos podem concordar que a lista acaba sendo classificada em ordem alfabética como deveria. Não há polêmica.

Como devemos usar a palavra “algoritmo?”

Os algoritmos são a base de todo software. Sem algoritmos, você não teria um telefone ou computador e provavelmente estaria lendo este artigo em um pedaço de papel (na verdade, você nem o estaria lendo).

Mas, o público em geral não usa a palavra “algoritmo” como um termo genérico para código de computador. Na verdade, a maioria das pessoas presume que existe uma diferença entre um código de computador e um algoritmo – mas não existe. Por causa da associação da palavra “algoritmo” com aprendizado de máquina, seu significado se tornou nebuloso, embora seu uso tenha se tornado mais específico.

Você deveria começar a usar a palavra “algoritmo” para descrever até mesmo as partes mais triviais de código de computador? Provavelmente não, pois nem todo mundo entenderá o que você quer dizer. A linguagem está sempre mudando e sempre muda por um bom motivo. As pessoas precisam de uma palavra para descrever o mundo confuso, opaco e às vezes duvidoso do aprendizado de máquina, e “algoritmo” está se tornando essa palavra – por enquanto.

Dito isso, é bom ter em mente que um algoritmo (e aprendizado de máquina) é, em sua essência, um monte de código que é escrito para resolver tarefas. Não há truque de mágica; é apenas uma iteração mais complicada do software com o qual já estamos familiarizados.

Fontes: Ardósia, Wikipedia, GeeksforGeeks