
Resumo — O que faz a Netflix acertar (quase) sempre o que você quer assistir? A resposta é um dos sistemas de grafos mais valiosos do mundo. Na sua essência, o problema de recomendação é um imenso grafo bipartido ligando usuários a itens, e o desafio é prever as “arestas” que faltam. A solução que definiu a indústria não foi uma GNN, mas uma técnica elegante chamada Fatoração Matricial (MF). Este post explica a intuição por trás dessa ideia, como ela funciona e por que é uma lição fundamental sobre grafos.
1. Modelagem como Grafo: A Planilha de 1 Milhão de Dólares
O problema que a Netflix enfrenta é direto: Como prever a nota que um usuário daria a um filme que ele ainda não viu?
Imagine uma planilha gigante. De um lado, todas as linhas são os milhões de usuários da Netflix. Do outro, todas as colunas são os milhares de filmes e séries do catálogo. Quando você dá uma nota para um filme, você preenche uma célula. O “Netflix Prize”, lançado em 2006, foi um desafio de 1 milhão de dólares para criar um algoritmo que conseguisse preencher os bilhões de células vazias com a maior precisão possível.
Em Teoria dos Grafos, essa “planilha” é um grafo bipartido.
- Por que “bipartido”? Porque temos dois tipos de nós que não se conectam entre si: um conjunto de nós de Usuário (que chamaremos de
) e um conjunto de nós de Item (que chamaremos de). - As notas são as arestas (ligações) que conectam um nó de usuário a um nó de item. O peso dessa aresta é a nota,
.
O resultado é uma matriz de interações gigantesca e extremamente esparsa, pois a maioria dos usuários não avaliou a maioria dos itens. O problema, portanto, é um clássico link prediction (previsão de arestas, ou, no caso, do peso delas).
2. A Solução Elegante: Fatoração Matricial (MF)
Como prever as células vazias? A intuição da Fatoração Matricial é genial. Em vez de se preocupar com as conexões diretas (ex: “usuários que gostaram do filme A também gostaram do B”), ela assume que existe um “DNA” oculto por trás dos gostos.
Imagine que o “gosto” de cada usuário pode ser descrito por um punhado de números (ex: 50 “fatores latentes”). Esses fatores podem representar coisas como:
- Gosto por Ação:
9.0 - Gosto por Comédia:
2.1 - Gosto pelo Diretor X:
7.5…e assim por diante. O algoritmo não sabe o que são esses fatores, ele apenas os “descobre” matematicamente. Da mesma forma, cada filme é descrito pelos mesmos 50 fatores: - O quanto ele é Ação:
8.8 - O quanto ele é Comédia:
1.5 - O quanto ele é do Diretor X:
7.2
A nota que você daria a um filme é simplesmente a “compatibilidade” entre o seu vetor de gostos e o vetor de características do filme.
Em termos técnicos, isso se chama Fatoração Matricial (MF). O algoritmo decompõe a matriz gigante em duas matrizes menores:
: Onde cada linhaé o vetor de fatores latentes do usuário.: Onde cada linhaé o vetor de fatores latentes do item.
A previsão da avaliação que o usuário daria ao item é simplesmente o produto escalar de seus vetores:
O modelo aprende os vetores e minimizando o erro nas avaliações que ele já conhece. A função de perda (objetivo) mais comum é o erro quadrático regularizado (Koren et al., 2009):
Traduzindo a matemática: Esta equação diz ao computador: “Encontre os vetores de usuário () e de item () que, quando multiplicados (), cheguem o mais perto possível das notas reais que já conhecemos (). Faça isso evitando que os números dos vetores fiquem grandes demais (essa é a ‘regularização’ , que previne overfitting).”
Na prática, podemos ver a MF como uma forma poderosa de aprender embeddings para os nós do grafo bipartido.
3. Além da MF: O Poder dos Ensembles e do Contexto
A solução vencedora do Netflix Prize, “BellKor’s Pragmatic Chaos”, não foi apenas um modelo de MF, mas um ensemble (mistura) de centenas de modelos.
Mais importante ainda, como descrito por Gómez-Uribe & Hunt (2015), o sistema de produção real da Netflix evoluiu para muito além da MF estática. O sistema moderno considera contexto:
- Temporalidade: O que você assistiu hoje? Seus gostos mudam com o tempo.
- Contexto de Acesso: Você está na TV (provavelmente buscando filmes) ou no celular (talvez séries mais curtas)?
- Sazonalidade: É dezembro? A chance de você querer um filme de Natal é maior.
O sistema de produção real é um ensemble massivo que usa a MF como uma das fontes de sinal, mas a combina com dezenas de outras features e modelos para gerar a recomendação final.
4. Por que a Fatoração Matricial Funcionou Tão Bem?
- Generalização e Descoberta: Ao aprender fatores latentes, o modelo generaliza. Ele descobre padrões por conta própria. Por exemplo, ele pode aprender que pessoas que gostam de ‘Star Wars’ e ‘Blade Runner’ (que compartilham fatores latentes de ‘ficção científica épica’) também tendem a gostar de ‘Duna’, mesmo que não haja uma conexão óbvia entre os usuários que assistiram esses filmes.
- Escalabilidade: Embora a matriz
seja imensa, as matrizesesão muito menores (ex:oufatores). Algoritmos como Stochastic Gradient Descent (SGD) ou Alternating Least Squares (ALS) conseguem otimizar esses fatores de forma eficiente. - Flexibilidade: O modelo de MF pode ser facilmente estendido para incluir bias (vieses) de usuário (ex: “usuário A é mais crítico e sempre dá notas baixas”) e de item (ex: “filme B é popular e sempre recebe notas altas”).
5. Limitações da Abordagem Clássica
O principal desafio da MF pura é o problema do início frio (cold start):
- Novo Usuário: Se um usuário
chega, não temos nenhuma avaliação dele. É impossível construir seu vetor de fatores. - Novo Item: Se um filme
é adicionado ao catálogo, ele não tem avaliações. Seu vetoré desconhecido.
Nesses casos, o sistema precisa recorrer a outras heurísticas (ex: recomendar os itens mais populares, ou perguntar os gêneros favoritos do usuário).
6. Onde Grafos “Modernos” (GNNs) Poderiam Ajudar?
Este é o ponto-chave: a MF é uma solução fantástica para o grafo bipartido, mas ela só usa a estrutura de interação. E se quiséssemos usar os atributos dos nós?
É aqui que as Redes Neurais de Grafos (GNNs) brilham:
- Resolvendo o Cold Start: Se tivéssemos atributos para os itens (gênero, atores, diretor, ano) e para os usuários (demografia, localização), uma GNN (como a GraphSAGE) poderia aprender a generalizar a partir desses atributos. Ela aprenderia uma função que gera o embedding de um filme com base nos seus metadados, resolvendo o problema do item novo.
- Usando Grafos Heterogêneos: Poderíamos modelar o problema de forma mais rica, não apenas com usuários e itens, but also com nós de “Ator”, “Diretor”, “Gênero”. Uma GNN poderia propagar informação por esse grafo heterogêneo.
- Capturando Padrões Complexos: GNNs podem capturar padrões estruturais mais complexos na vizinhança de um nó do que o produto escalar da MF, potencialmente levando a recomendações mais sofisticadas.
Conclusão
O sistema da Netflix é um estudo de caso fundamental sobre o poder dos grafos. Ele demonstra que, embora o problema seja de grafo (um grafo bipartido), a solução mais eficaz por muito tempo foi uma técnica de aprendizado de representação (embedding), a Fatoração Matricial.
Ele nos ensina que “usar grafos” não significa apenas aplicar GNNs; significa entender a estrutura relacional do problema e escolher a ferramenta certa para ele — seja ela MF, PageRank ou uma GCN.
Referências
- Gómez-Uribe, C. A., & Hunt, N. (2015). The Netflix Recommender System: Algorithms, Business Value, and Innovation. ACM Transactions on Management Information Systems (TMIS).
- Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix Factorization Techniques for Recommender Systems. IEEE Computer.
Sobre o autor
Rener Menezes Cofundador & CTO — FitBank
Rener Menezes é cofundador e CTO do FitBank, fintech brasileira de Banking-as-a-Service. Com mais de 25 anos de experiência projetando sistemas financeiros em larga escala, é bacharel em Sistemas de Informação e mestrando na Unifor, onde pesquisa Redes Neurais de Grafos e aprendizado por reforço para detecção de fraude. Interesses: sistemas distribuídos, infraestrutura de pagamentos e graph ML.
Links: LinkedIn · ORCID · contato@grafolab.ia.br
Deixe uma resposta