2 pontos por GN⁺ 2025-07-08 | 1 comentários | Compartilhar no WhatsApp
  • Com o fim do Pocket se aproximando, ao migrar artigos salvos, foi constatado que 878 links do Pocket acumulados ao longo de cerca de 7 anos, de 2018-07-12 a 2025-06-26, poderiam servir como dados para inferir um perfil pessoal
  • Foi pedido ao o3 que, usando apenas a lista de URLs salvas, estimasse atributos pessoais como idade, gênero, local de residência, nível educacional, profissão, renda, orientação política, situação familiar e interesses de saúde
  • O resultado apontou para alguém entre meados dos 30 e início dos 40 anos, morando na costa da Virgínia, engenheiro de software sênior/staff, casado e com vários filhos pequenos; idade, localização e tamanho da família bateram com bastante precisão
  • As respostas do o3 pareceram mais convincentes quando o CSV foi colado diretamente no corpo do prompt do que quando anexado como arquivo; no modo com anexo, ele tendia a ficar excessivamente preso à análise de amostras em Python
  • Ficou claro que até simples “curtidas” ou rastros de links salvos permitem inferências significativas, e que esse tipo de capacidade analítica está disponível para quase qualquer pessoa, não só para empresas de publicidade como Google ou Facebook

A lista de itens salvos no Pocket virou dados de experimento

  • Como o Pocket será encerrado, ao migrar os artigos salvos foi constatado que a lista de links salvos era grande o bastante para ser usada como dados de preferências pessoais
  • A exportação CSV do Pocket foi examinada rapidamente com xsv
    • As colunas eram title, url, time_added, tags, status
    • Um item de exemplo incluía o artigo salvo The Uncertain Future of American Libraries
    • O total de itens salvos era 878
    • O período de salvamento ia de 2018-07-12 a 2025-06-26
  • O experimento de geoadivinhação com o o3 feito por Simon Willison veio à mente, e decidiu-se verificar o que seria possível descobrir sobre a própria pessoa usando apenas a lista de URLs

O pedido de profiling feito ao o3

  • Foi usado o o3 em uma conversa temporária do ChatGPT, sem usar o recurso de memory do ChatGPT
  • Foi pedido que ele fizesse um perfil da pessoa com base na lista de artigos salvos no Pocket
  • As dimensões de inferência foram definidas de forma ampla, indo de dados pessoais a padrões de vida
    • Idade, gênero, localização geográfica
    • Nível educacional, setor/área de atuação, cargo
    • Faixa de renda, orientação política, propensão a riscos
    • Forma de aprendizado, dieta informacional
    • Situação de relacionamento, se tem filhos e idade dos filhos
    • Interesses de saúde, grandes transições de vida, padrões sazonais de interesse

O perfil pessoal criado pelo o3

  • Com base nos temas, fontes e datas de salvamento dos artigos, o o3 gerou um best-guess portrait, mais próximo de uma “narrativa coerente” do que de uma inferência definitiva
  • As principais estimativas demográficas foram as seguintes
    • Idade: meados dos 30 a início dos 40 anos
    • Gênero: masculino
    • Localização: costa da Virgínia
    • Educação: BS/MS em ciência da computação ou área semelhante
    • Profissão: engenheiro de software sênior/staff especializado em segurança e infraestrutura
    • Renda: cerca de US$ 150 mil a US$ 220 mil por domicílio
    • Família: casado, 3 a 4 filhos pequenos, sendo pelo menos um toddler
  • Como evidências, foram usados artigos técnicos sobre software, IA, cibersegurança e finanças aparecendo junto com textos sobre vida familiar, homeschooling e prática católica
  • A psicologia e os interesses também foram estimados com relativa especificidade
    • Orientação política: fiscalmente conservador, civil-libertário e socialmente tradicionalista
    • Propensão a riscos: alta na carreira, média nas finanças
    • Forma de aprendizado: autodirigida, centrada em texto, com preferência por textos longos e áudio
    • Dieta informacional: 60% deep-tech, 20% finanças pessoais/FIRE, 10% criação de filhos e tarefas domésticas, 10% fé e cultura
    • Trajetória de vida: transição de hacker IC puro para liderança técnica, vida centrada na família e uma fase orientada a FI
  • A partir de pistas mais sutis, também inferiu fé, privacidade e self-hosting, inclinação a DIY, interesses de saúde como Zone-2 training e sono, além de impulso para escrever

Precisão e diferença no modo de entrada

  • O resultado foi bastante preciso e, na primeira leitura, chegou a ser assustador
  • Mesmo acreditando que a maior parte do dataset fosse composta por artigos do Hacker News, foi especialmente surpreendente que o o3 acertasse detalhes como faixa etária, localização e tamanho da família
  • O experimento mostra o quanto é possível inferir apenas a partir de “curtidas” ou rastros de itens salvos
  • A qualidade do resultado variou conforme o modo de entrada
    • Quando os dados CSV eram colados diretamente no corpo do prompt, a resposta parecia mais precisa
    • Quando o CSV era enviado como anexo, o o3 tendia a ficar preso demais a amostragem e análise em Python
    • Nesse modo, a narrativa final parecia menos convincente

Recomendação personalizada e capacidade analítica ao alcance de todos

  • A ideia de que empresas de publicidade traçam perfis de usuários com base em interesses expressos já é uma premissa familiar
  • No passado, parecia que a capacidade analítica de tirar conclusões significativas a partir de múltiplos pontos de dados estava restrita a empresas como Google ou Facebook
  • Agora, a mudança mais interessante é que o mesmo tipo de tecnologia pode ser usado publicamente por quase qualquer pessoa
  • Esse perfil será usado para alimentar um sistema pessoal de recomendação de conteúdo
  • No processo de migração, houve uma mudança para o Wallabag e também uma transição do Inoreader para o FreshRSS
    • A avaliação é que, em 2025, self-hosting ficou muito mais fácil do que no passado, e que o Caddy teve um papel importante nisso
  • Para explorar o CSV, foi usado o xsv
    • Embora, até 2 meses atrás, parecesse não ser mais mantido, a sensação é de que suas funcionalidades estão bastante completas

1 comentários

 
GN⁺ 2025-07-08
Opiniões no Hacker News
  • Depois de ler este texto, também me lembrei de que eu tinha um arquivo da minha conta do Pocket, então coloquei os mesmos prompts, com 4.200 itens, no o3, no Gemini 2.5 Pro e no Opus 4
    A UI do ChatGPT bloqueou o envio dizendo que a entrada era grande demais. Eram cerca de 80 mil tokens, menos que o tamanho de contexto de 200 mil do o3, mas mesmo assim aconteceu
    O Gemini 2.5 Pro acertou bem o perfil em termos de personalidade e interesses, mas errou as previsões de faixa etária, função, localização e se eu tinha filhos
    O Opus 4 acertou de forma muito mais impressionante e previu corretamente Amsterdam como cidade onde moro, minha faixa etária e até meu status de relacionamento, mas não tratou da questão de eu ter filhos ou não
    Os dois modelos falharam em acertar minha função, mas dá para entender. Na prática sou cientista de dados, mas gosto de escrever software, então leio bastante sobre a prática de engenharia de software; como não tenho oportunidade de fazer esse tipo de coisa na empresa, acabo programando projetos pessoais e precisei aprender bastante sobre design de sistemas etc. Por isso, ambos me viram como engenheiro de software
    No geral foi um experimento divertido, e chamou a atenção o fato de ambos os modelos terem apontado fotografia como meu principal hobby. Mas, se tivessem visto também meu histórico de visualização do YouTube, provavelmente teriam dito tênis com confiança. Juntar o histórico de visualização do YouTube com o arquivo do Pocket parece interessante, já que os temas e interesses que costumo consumir em vídeo são diferentes dos que consumo em texto, mas obter esses dados não parece fácil

    • Com o Google Takeout, acho que dá para baixar todos os dados do YouTube, incluindo o histórico de visualização
      Este texto é um bom exemplo:

      When I downloaded all my YouTube data, I’ve noticed an interesting file included. That file was named watch-history and it contained a list of all the videos I’ve ever watched.
      https://blog.viktomas.com/posts/youtube-usage/
      Se você for europeu, as empresas têm obrigação legal de fornecer direito de acesso aos dados, mas o Google Takeout parece funcionar no mundo todo

    • Consegui tentar isso com todos os vídeos do YouTube que assisti exportando o histórico pelo Google Takeout:
      https://takeout.google.com/settings/takeout/custom/youtube?p...
      Depois, combinei pup e jq para fazer o parsing dos títulos dos vídeos no arquivo HTML:
      cat watch-history.html \
      | pup '.outer-cell .mdl-grid .content-cell:nth-child(2) json{}' \
      | jq -r '.[] .children[0] | select(.tag != "br") | select(.text | startswith("https://www.youtube.com/watch?v=";) | not) | .text' \
      > videos.txt
    • Se o interesse é tão grande assim, vale tomar isso como um sinal e tentar também vagas de engenharia de software
      Isso não quer dizer que o trabalho que você faz hoje na empresa não possa ser transferido para uma trilha de função relacionada
    • É preciso usar o prompt como uma pirâmide de refinamento iterativo. A ideia é comprimir a maior parte dos dados brutos em blocos com modelos baratos e depois aplicar modelos cada vez mais fortes e caros a conjuntos maiores de blocos, até chegar ao nível de resumo desejado
    • Se os dois modelos acharam que você era engenheiro de software, talvez isso esteja pelo menos um pouco certo, mesmo que não seja sua trajetória de carreira :)
  • A maior coisa que aprendi com minha exportação do Pocket foi que 99% dos textos estavam como não lidos. Não sei muito bem o que dá para inferir de mim com isso além de uma coleta compulsiva de links :D

    • Usei o Pocket por anos para me dar permissão de voltar ao trabalho
    • Comparar o que foi lido com o que não foi lido talvez mostre a diferença entre preferência revelada e preferência declarada. Em geral, acho que a pilha de coisas não lidas de uma pessoa tende a ser mais aspiracional
      Deve haver muitos dados assim; por exemplo, o grafo de recomendações da Amazon poderia atribuir pesos diferentes a itens na lista de desejos e a itens comprados
    • Lidos ou não, você teve algum motivo para salvar esses links
  • Hoje em dia, sinto que muita gente está convergindo para a ideia de analisar os próprios dados com IA, assim como empresas usam nossos dados para oferecer conteúdo hiperpreciso
    Recentemente li https://labs.rs/en/browsing-histories/ e apliquei isso ao meu histórico completo de navegação
    Fiz a mesma coisa com os históricos de conversas do ChatGPT/Claude, e o mais assustador foi deixar um LLM ver meu histórico de comentários no Reddit
    A principal dificuldade é ter uma janela de contexto grande o bastante e rastrear o contexto entre várias fontes de dados. Um método que estou explorando é usar um grafo de conhecimento para acompanhar o perfil do usuário. Dá para comprimir padrões de comportamento em uma estrutura consultável, mas a construção do grafo em si vira um problema computacional
    A maioria das startups de IA com que trabalhei recentemente acabou chegando a algo como “dar ao LLM acesso a um banco de dados vetorial feito de um conjunto de documentos de texto e a um grafo de conhecimento”. Os documentos de texto podem ser faturas, documentos jurídicos, documentos fiscais, relatórios diários, transcrições de reuniões, código etc.
    Espero que surjam sistemas de recomendação de conteúdo pessoal ou de profiling baseados em IA. O incentivo econômico é o oposto do modelo das big techs. Em vez de otimizar engajamento e receita de anúncios, otimiza a utilidade para o usuário
    Na era dos leitores RSS, eu consumia muito conteúdo curado de tecnologia e design, e isso me ajudou a desenvolver bastante meu gosto e conhecimento nessa área. Também ajudou a me conectar com pessoas legais e interessantes
    Um app de que gosto é https://www.dimensional.me/, mas a abordagem de MBTI e testes de personalidade poderia ser mais rigorosa. Não um teste de personalidade; dá para imaginar colocar no sistema tudo o que consumo, escrevo e faço em dispositivos digitais, e atualizar continuamente um grafo de conhecimento sobre mim

    • Isso me fez perceber o quanto a era do RSS foi útil. Eu seguia várias fontes de artigos e as priorizava mais ou menos conforme meu interesse
      Lendo milhares de textos no ensino médio, foi realmente útil para construir modelos mentais cada vez melhores de como a tecnologia funciona. Muita coisa mudou, mas boa parte dos modelos que criei naquela época ainda é bem precisa e útil quando quero me aprofundar nas áreas que me interessam
    • Você diz que “é otimizado para a utilidade do usuário em vez de engajamento e receita de anúncios”, mas será que é mesmo, ou só vai ajudar a mantê-lo dentro de uma prisão confortável?
      Claro, uma prisão confortável é melhor do que uma prisão de engajamento, mas às vezes talvez seja preciso sair dela
      A curadoria da era dos leitores RSS não era feita por pessoas com quem você nem sempre concordava?
  • Criei uma ferramenta parecida que faz profiling de contas do HN e tira sarro delas: https://hn-wrapped.kadoa.com/
    É engraçada e às vezes meio assustadora
    Edit: o nome de usuário diferencia maiúsculas de minúsculas

    • Acho que seria muito mais engraçado ou revelador se olhasse mais do que só a primeira página de comentários do usuário
      Ainda assim, foi bem preciso:
      Predictions
      Personal Projects
      After a deep dive into archaic data storage, you'll finally release 'Magnetic Tape Master 3000' – a web-based app that simulates data retrieval from a reel-to-reel, complete with authentic 'whirring' sound effects. It'll be a niche hit with historical computing enthusiasts and anyone who misses the good old days of physical media.
    • “Seus comentários costumam ter explicações técnicas detalhadas ou correções, o que me faz ver você como alguém profundamente imerso em tecnologia — ou que simplesmente gosta de ser a pessoa mais inteligente da sala. Sinceramente, provavelmente os dois.”
      Totalmente brutal
    • Senti que fui pego em cheio

      Your profile reads like a 'Hacker News Bingo' card: NASA, PhD, Python, 'Ask HN' about cheating, and a strong opinion on Reddit's community. The only thing missing is a post about your custom ergonomic keyboard made from recycled space shuttle parts.

    • Resultado da previsão:
      “Você vai descobrir um buraco negro de upvotes do HN até então desconhecido. É onde todos os comentários bem estruturados e sutis sobre instabilidade econômica são sugados para o esquecimento, enquanto ‘Show HN: minha lista de tarefas feita em Rust’ recebe 500 pontos.”
      É cruel, mas ficou bem feito
    • Usamos algo parecido ao fazer profiling de usuários na plataforma da empresa. Em geral, LLMs são “gentis” demais; quando você pede para eles fazerem um roast do usuário, informações importantes, interessantes ou contraditórias aparecem melhor
      Além disso, é bem engraçado
  • Tenho me interessado muito por esse tipo de coisa recentemente. Isso inclui não só textos salvos no Pocket, mas também meta-análise dos históricos de conversas do ChatGPT/Gemini/Claude
    Estou usando um script de resumo RSS hiperpersonalizado e descobri que os feeds RSS com mais itens realmente relevantes para mim são bem diferentes daqueles que leio casualmente
    A próxima coisa que quero tentar é criar um modelo de mundo generativo alinhado aos meus interesses e à relevância para mim. Diferentes partes desse modelo de mundo poderiam ser atualizadas e investigadas em ciclos diferentes
    Assim, para mim, “notícias” passariam a ser o diff das mudanças que uma notícia causa nesse modelo de mundo. Além disso, como eu poderia sempre ter uma versão local e offline do modelo de mundo atual, isso parece útil para filtrar ou ordenar caixa de entrada, calendário, mensagens, tweets etc. com um modelo local

    • Parece interessante. Você poderia explicar um pouco mais?
  • Antigamente, por diversão e curiosidade, fiz um pequeno script que fazia esse tipo de coisa com perfis do HN. Ele usava o histórico de posts e comentários para inferir perfil, como localização, orientação política, carreira, idade e gênero
    A principal motivação foi ver opiniões surpreendentes em várias threads de comentários e ficar curioso sobre de onde elas poderiam ter vindo. Não tenho nenhuma ideia de quão precisos os perfis eram, mas foi um experimento interessante para ver a capacidade dos LLMs de fazer esse tipo de coisa

    • Recentemente alguém usou isso para prever posts que chegariam à primeira página do HN com base no conteúdo do artigo e no perfil do usuário
    • Seria interessante pelo menos rodar em si mesmo, já que dá para verificar o quanto é preciso
    • Lembro disso. Para mim foi bem preciso, mas um pouco doce demais. Por exemplo, dizia que eu salvaria o mundo ou algo assim
  • Do ponto de vista de alguém com um contexto familiar católico mais de esquerda, achei interessante ele ter julgado como conservador por causa de católico. Parece que esse tipo de católico é mais comum no nordeste dos EUA

    • No geral, acho que tanto católicos quanto protestantes, de qualquer denominação, têm maior probabilidade de ser mais progressistas no Nordeste e na Costa Oeste, e mais conservadores no Meio-Oeste e no Sul
      Isso diz algo sobre qual é a importância média da religião em 2025
    • Nasci em Pittsburgh, fui criado como católico e sou bastante progressista. Nos anos 90 já havia coroinhas mulheres, e havia membros abertamente gays que realizavam cerimônias na igreja
      Hoje não sou católico, mas aquela igreja dos anos 80 e 90 era uma boa igreja
    • Para ser justo, o que ele disse de fato foi:

      Fiscally conservative / civil-libertarian with traditionalist social leaning
      E a justificativa foi:
      Bogleheads & MMM frugality + Catholic/First Things pieces, EFF privacy, skepticism of Big Tech censorship
      A First Things atual é mais próxima de um veículo sobre conservadorismo social religioso. Se alguém é católico e lê artigos da First Things, prever “conservador” é bastante seguro
      Ainda assim, acho que perfilar uma pessoa só pelo que ela lê pode ser um erro em geral. Costumo ler também textos dos quais discordo, às vezes mudo de opinião, e mesmo quando não mudo procuro ler de propósito para entender qual é o argumento real. Mas fico curioso se eu teria salvo esse tipo de texto no Pocket

  • Se houver centenas de links salvos em uma lista plana, provavelmente é um depósito honesto chamado “ler depois”; dá para fazer a IA ou processamento de linguagem natural classificar tudo, para facilitar apagar itens que já não interessam

  • Texto interessante. Estranhamente, me deu vontade de ter usado mais o Pocket
    Como observação lateral, estou ficando realmente cansado do tom padrão que aparece nas respostas de LLMs. Dá para reconhecer o formato típico de uma saída tagarela:
    Frase batida! Depois de várias palavras que um humano comum talvez dissesse, finalmente vem a resposta essencial de que 2 mais 2 é 4. Mais palavras que soam plausivelmente humanas!
    Entendo, claro, que internamente é assim que isso funciona de verdade. Pela natureza do treinamento, um LLM precisa tatear de forma prolixa até chegar ao ponto. Mas não há esperança de remover isso com um pós-processamento para cortar o supérfluo? Quero destilar só a resposta real dentro do motor de inferência, sem usar outra máquina de corpus linguístico
    É como o velho problema das receitas na internet. O que eu quero é isto:
    500g wheat flour
    280ml water
    10g salt
    10g yeast
    Mas o que recebo na prática é isto:
    It was at the age of five, sitting
    on my grandmother’s lap in the
    cool autumn sun on West Virginia
    that I first tasted the perfect loaf…

    • Como confiar em uma receita sem contexto?
      As pessoas dizem que querem uma coisa, mas o comportamento real e o dinheiro vão para outro lugar
      Concordo que existe enrolação desnecessária. Mas não acho que “só me dê a receita” seja o que as pessoas realmente querem. E também não acho que esse ponto de vista seja uma exceção peculiar. Você já quis de fato receber uma receita sem contexto nenhum assim e prepará-la?
    • Isso é um problema de apps de LLM de uso geral como o ChatGPT. Como precisam ter apelo amplo, fica difícil quando você quer uma resposta diferente da que o usuário médio quer
      A OpenAI disse que está trabalhando para tornar as saídas do ChatGPT mais configuráveis
    • Se você acrescentar “responda de forma concisa” no final, funciona bem razoavelmente
      Não sou especialista, mas, nos modelos que “pensam”, eu gostaria que essa etapa de concisão acontecesse no fim. Internamente, pode pensar de forma tão prolixa quanto quiser; para mim, basta dar a resposta
    • Como referência, o o3 parece ir direto ao ponto mais rápido do que a maioria dos outros LLMs. Até demais: quando você pergunta sobre um tema amplo, ele resume tanto que às vezes fica difícil entender exatamente o que ele quer dizer
  • Tenho pensado na possibilidade de organizar todas as minhas abas com um LLM. Sou um daqueles terríveis colecionadores de abas que deixou o contador “:D” no celular por tempo demais
    Normalmente faço uma limpeza geral periodicamente, mas há muito tempo não tinha motivação para isso. Só preciso de um jeito fácil de despejar as abas em algo como um CSV, como fizeram com o Pocket

    • Fiz isso recentemente com favoritos não organizados. Foi a primeira vez que usei chamadas de API em paralelo
      10 threads de gpt-4-nano classificaram lotes de 10 favoritos cada, e processaram 10.000 favoritos em poucos minutos