;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Como emoji de raiva no Facebook pode ter facilitado propagação de fake news

Emojis recebiam peso diferentes no Facebook - Reprodução
Emojis recebiam peso diferentes no Facebook Imagem: Reprodução

Abinoan Santiago

Colaboração para Tilt, em Florianópolis

26/10/2021 15h38

Se você alguma vez reagiu a publicação no Facebook com um emoji, saiba que a sua interação valeu até cinco vezes mais do que uma curtida para engajar o conteúdo na plataforma. Foi assim que o algoritmo da rede social se manteve programado por três anos, segundo investigação do jornal Washington Post.

A descoberta faz parte das denúncias baseadas em documentos internos vazados da empresa de Mark Zuckerberg, chamadas de "Facebook Papers".

De acordo com a nova denúncia, ao dispor aos usuários, há cinco anos, os emojis "amor", "haha", "uau", "triste" e "zangado", o algoritmo estava programado para impulsionar nos feeds de notícias os conteúdos com reações mais emocionais e provocativos em relação aos que recebiam apenas curtidas.

Os documentos mostram que, a partir de 2017, cada reação emocional recebia de quatro a cinco pontos em relação à curtida, com um. A raivosa, contudo, era a única a valer a pontuação máxima, influenciando no conteúdo que aparecia ou era ocultado na linha do tempo de algum usuário.

Os emojis valiam muito mais porque o Facebook entendia que a interação por reação emocional apresentava maior potencial de engajamento, fazendo o usuário ar mais tempo na rede social, o que é bom economicamente para a empresa, segundo a reportagem.

Em 2019, cientistas de dados concluíram um efeito danoso dessa programação do algoritmo, pois verificaram que as postagens com reações emocionais possibilitavam a propagação de fake news, sobretudo, pelo impulso do uso do emoji de raiva.

De acordo com o Washington Post, o funcionamento do algoritmo afetou consideravelmente o trabalho da equipe de moderação de conteúdo do Facebook contra desinformações.

Ao jornal, um porta-voz do Facebook, Dani Lever, afirmou que a empresa trabalha "para entender qual conteúdo cria experiências negativas" para que possa "reduzir sua distribuição". "Isso inclui conteúdo com uma quantidade desproporcional de reações de raiva, por exemplo".

Após inúmeras propostas de funcionários, o alto escalão do Facebook reduziu a zero a pontuação do emoji de raiva somente em setembro de 2020. Isso aconteceu após usuários relatarem não gostar dessa reação em suas postagens.

Depois da medida, houve um declínio de oferta de postagens com conteúdo "perturbador" e com menos "violência gráfica", destacou o jornal.

O porta-voz do Facebook reafirmou ao veículo que esse peso ainda permanece, porém, o de "amor" e "triste" agora valem dois pontos, cada.

Único usuário, várias contas e nenhuma solução

O "Facebook Papers" também revelou hoje que a empresa pouco fez para coibir as chamadas Sumas (Single Multiple s, que em português significa Múltiplas Contas de Único Usuário). É aquela pessoa que abastece de conteúdo vários perfis na rede social.

Apesar de o Facebook pontuar em sua política de privacidade que não permite várias contas de uma única pessoa, a empresa soube da existência de milhões de Sumas, mas não conseguiu combatê-las, revelou o site "Político", dos Estados Unidos.

Uma pesquisa interna mostrou que, em 2018, as Sumas atingiam 11 milhões de norte-americanos por dia que consumiam conteúdos políticos, representando 14% desse público.

Apesar de muitos se mostrarem inofensivos, uma parcela de usuários utilizava esse mecanismo para propagar discursos de ódio e fake news na rede social, dizem os documentos.

Ao site "Político", um porta-voz do Facebook, Joe Osborne, pontuou que os documentos não mostram um quadro abrangente sobre as Sumas, como o fato de a rede social atuar para conter os perfis.

"Não é uma revelação que estudamos contas duplicadas, e este instantâneo de informações não conta toda a história", afirmou.