1 pontos por GN⁺ 2025-11-07 | 1 comentários | Compartilhar no WhatsApp
  • Ao inserir os livros que o usuário já leu, o modelo de recomendação sugere o próximo livro para ler
  • Os resultados de busca e as recomendações incluem apenas livros acima de um limite mínimo de popularidade
  • Livros com baixa popularidade podem ser aproveitados em outra seção do site (intersect)
  • Os resultados de recomendação são mais precisos ao inserir 3 livros ou mais
  • Implementação experimental de uma tecnologia de recomendação de leitura personalizada com uso de dados de avaliações em larga escala

Recurso de recomendação de livros

  • Quando o usuário informa os livros que já leu, o sistema fornece resultados de recomendação baseados em modelo
    • Com base na lista de livros inseridos, sugere livros que valem a pena ser lidos em seguida
  • As recomendações e os resultados de busca incluem apenas livros com nível mínimo de popularidade
    • Livros abaixo do critério de popularidade são excluídos dos resultados de recomendação

Forma de entrada e busca

  • Os resultados são exibidos ao digitar duas letras ou mais na caixa de busca
  • Os livros selecionados pelo usuário são mostrados na área “Selected Books” e,
    caso ainda não haja seleção, aparece a mensagem “No books selected yet”

Recursos adicionais

  • Livros com baixa popularidade podem ser usados separadamente na página /intersect
  • Ao inserir 3 livros ou mais, a precisão das recomendações melhora

Visão geral do serviço

  • O site usa um modelo de recomendação baseado em dados em larga escala de avaliações do Goodreads (3 bilhões de registros)
  • O objetivo é oferecer uma experiência personalizada de recomendação de livros de acordo com o histórico de leitura do usuário
  • O texto original não traz detalhes técnicos adicionais nem explicações sobre o algoritmo

1 comentários

 
GN⁺ 2025-11-07
Opiniões no Hacker News
  • Fico me perguntando se isso não viola a cláusula 4 dos Termos de Uso do Goodreads
    Lá diz para não usar o conteúdo do serviço para “modificar, copiar, distribuir ou criar obras derivadas”, então parece que seria necessária uma autorização explícita para usar o conteúdo dos avaliadores no treinamento de LLMs
    • Hoje em dia, acho que esse tipo de cláusula não significa muita coisa
      A legalidade de scraping depende da jurisdição. Nos EUA, com o precedente HiQ Labs v. LinkedIn, ficou reconhecido que raspar páginas públicas não viola a CFAA. Foi por isso que surgiram tantas startups de scraping de dados públicos
    • Tecnicamente, isso não está usando publicamente a obra do Goodreads em si
      As informações exibidas no site são apenas título e autor, e isso não pertence ao Goodreads.
      Pode até esbarrar na cláusula de “criar obras derivadas”, mas é difícil dizer que recomendar livros com base em reviews seja infração.
      É algo parecido com um youtuber fazer um vídeo de “livros que recomendo após ler 50 reviews”
    • Hoje em dia, até treinar LLMs com livros inteiros é considerado fair use, então é bem possível que reviews também não precisem de permissão. Ainda assim, eu gostaria de ouvir a opinião de um especialista jurídico
    • Não entendo por que fazer uma pergunta cuja resposta você já sabe
  • Fui adicionando livros e recebi a mensagem de que havia “livros demais”. A ideia é muito divertida
    Mas tenho algumas sugestões
    • UI: ao clicar em “Add”, o livro deveria desaparecer da lista de recomendações. Se ele continua lá, fica confuso
    • Diversidade das recomendações: o sistema acertou muito bem livros que eu já tinha lido, mas houve poucas novas descobertas.
      Se a minha lista de livros lidos for grande o bastante, seria legal encontrar leitores parecidos comigo (“eigenfriends”) e recomendar livros controversos ou de nicho que eles leram
      Na próxima versão, seria divertido conectar um VLM para permitir entrada por foto da estante
    • Na página “intersect” do site, dá para inserir vários livros e encontrar o conjunto de leitores em comum.
      Por exemplo, se você colocar “Lenin’s Tomb” e “Secondhand Time”, pode ver outros livros lidos por quem leu os dois.
      Isso é parecido com a forma como o Filmaffinity funciona. Eles oferecem recomendações com base em grupos de usuários de gosto semelhante chamados de ‘soulmates’
      Pessoalmente, acho melhor conseguir recomendações mais frescas por meio do filtro de amigos com gostos diferentes do que por livros controversos
  • O site é rápido e muito legal
    Mas, se você coloca um volume de série (por exemplo, Discworld #33), essa série passa a dominar as recomendações. Eu gostaria de excluir séries que já estou lendo
    Além disso, alguns livros que estão no Goodreads não apareceram na busca. Parece que faltam no dataset
    Quando cliquei no botão “Similar”, apareceram livros formalmente parecidos, mas com contexto diferente.
    Ainda assim, para livros mais gerais, bateu bem com a minha wishlist
    • Acho que a forma como séries são tratadas é o maior problema
      Eu já estava satisfeito com as métricas de teste e a checagem de qualidade, então lancei assim mesmo, mas a solução provavelmente seria gerar 100–200 candidatos com um modelo transformer e depois aplicar um reranker
  • Como alguém que já construiu sistemas de recomendação, a partir daqui começa a parte realmente difícil
    Agora isso está mais para recomendação baseada em conteúdo, mas daqui para frente também será preciso considerar métricas como serendipidade e novidade
    Em serviços reais, foi eficaz usar recomendadores diferentes para objetivos diferentes e depois fazer uma integração ponderada dos resultados
    Por exemplo, misturar recomendações baseadas em conteúdo, em grafos, modelos voltados a objetivos específicos e até abordagens baseadas em TF‑IDF/BM25/Splade
    Como cada pessoa quer ser recomendada de um jeito diferente, o essencial é o ajuste de pesos por usuário
  • O autor dos livros inseridos deveria ser excluído da saída
    Se eu já gosto daquele escritor, eu mesmo vou procurar outras obras dele, então recomendar livros do mesmo autor não faz muito sentido
    Uma recomendação realmente interessante é aquela que (1) eu gosto e (2) é inesperada
    Recomendações parecidas demais correm o risco de criar uma câmara de eco
    • Concordo em excluir séries, mas no caso do autor acho melhor deixar como opção
      Muitas vezes a pessoa nem sabe que há outras obras de um autor que já leu uma vez
    • Não é legal quando livros que eu já li continuam sendo recomendados
  • Inseri livros bem variados, e ele acertou livros que eu já tinha lido e gostado
    Mas seria bom poder adicionar também um sinal negativo para livros de que eu não gosto
    No geral, os resultados foram bastante impressionantes
  • O robots.txt diz explicitamente disallow para scraping
    Independentemente da questão legal, isso me parece eticamente inadequado
    • Como alguém que escreve reviews com frequência no Goodreads, esse tipo de uso me parece desagradável
  • Parece que o último livro adicionado está tendo uma influência excessiva no resultado das recomendações
    • Isso acontece por causa da característica do positional embedding
      O último item acaba tendo o maior peso na previsão da próxima interação
      Ao adicionar mais livros, esse efeito diminui
  • Estamos construindo esse dataset desde 2016, e ele já está coberto
    No momento estamos em beta privado no TestFlight e devemos abrir em breve
  • Uns 5 anos atrás, eu imaginava um mecanismo que encontrasse filmes novos quando você dissesse “me recomenda um bom filme de gângster
    Na época, a maioria dizia que isso era impossível, mas agora parece ser viável
    Ainda assim, se existe um dataset tão grande, fico em dúvida se IA é realmente necessária
    Em vez de modelos como SASRec/RAG, talvez fosse possível chegar a resultados parecidos com rankings simples e cálculo de interseção, como no antigo last.fm
    No passado, eu já tinha imaginado uma estrutura de grafo tipo “cérebro” para recomendação, em que a pontuação se espalha seguindo as conexões entre itens.
    Na prática, imagino que variações disso já devam ser usadas em lugares como a Amazon
    • Só com o pedido “me recomenda um bom filme de gângster” isso não dá
      Sem saber quais filmes o usuário já viu ou quais são suas preferências, não dá para recomendar com precisão “um filme de que ele vá gostar e ainda não viu”
      No fim, isso se torna um sistema geral de recomendação viável quando se relaxa a restrição de informação
    • Só para constar, o last.fm também não usava apenas ranking simples, mas algoritmos básicos de machine learning