Votes, scores e ranks

Votes, scores e ranks são, normalmente, utilizados em conjunto. Por exemplo, scores são funções utilizadas para reduzir dados multi-dimensionais para uma única dimensão. Com base nesse score, é possível ordenar os dados através de um rank. Assim, é possível acessar o n-ésimo elemento a partir de um rank. Votes, é um dos exemplos que pode ser reduzido a partir de uma função score.

Um exemplo comum é o ranking de produtos em uma página baseado na avaliação dos usuários. Nesse caso, a avaliação dos usuários são os votes. A partir destes, um score (normalmente a média, que não é uma boa opção) é calculado. Finalmente, os produtos são apresentados em um ranking com base no score.

Outros exemplos incluem o ranking de resultados de busca. Nesse cenário, mais detalhes podem ser levados em consideração e a função score pode ser probabilística. Por exemplo: $$ P(X) = P_r(X) \times P_c(X) \times P_l(X) $$

Em português: O score de uma página $X$ é calculado como $P(X)$. Sendo que esse score é a probabilidade conjunta do PageRank ($P_r(X)$), da relevância do conteúdo para o usuário ($P_c(X)$) e do idioma em que o texto está escrito em relação ao idioma do usuário ($P_l(X)$).

Em alguns casos não a distinção entre votes, scores e ranks não é muito clara. Por exemplo, o método de Borda é um sistema de votos que organiza o resultado pelo item com melhor score. Assim, existe o vote (o que cada usuário atribuiu para um item), o score (calculado a partir dos votes dos usuários), e um ranking final a partir dos scores.

Exemplo do método de Borda. Fonte.

Item / Usuário Usuário A Usuário B Usuário C Usuário D Total / Ordem
Filme A 1 2 1 1 5
Filme B 3 1 2 2 8
Filme C 2 3 3 4 12
Filme D 4 4 5 3 16
Filme E 5 5 4 5 19

No exemplo acima, cada usuário votou em um filme com uma nota de 1 à 5 (que é a ordem de preferência). Portanto, se existirem N filmes, o usuário teria que votar entre 1 e N. Outro detalhe é que o resultado final para um determinado filme é a simples soma dos votos de cada usuário.

No método de Borda só é necessário tomar cuidado porque os votos em posições centrais tendem a ter mais incerteza que os primeiros e últimos. Ou seja, existe maior certeza no que o usuário gosta e não gosta, mas os itens intermediários tem mais incerteza.

Ao trabalhar com ranks uma informação que pode ser importante é a correlação entre os usuários. Por exemplo, um item que é sempre muito bem avaliado é melhor que um item com avaliações boas e ruins. Para isso, uma estatística de correlação como o ICC(3, 1) pode ser melhor que a correlação de Pearson.

Outras ideias para ranks

Se o conjunto de dados a ser ordenado é composto por comparações binárias (A > B, B > C, A > C), é possível utilizar a ordenação topológica de um grafo. Outra opção é o método Elo Ranking, que parte de uma expectativa entre os elementos envolvidos na comparação e ajusta o resultado com base no resultado. Exemplo (algo comum em jogos):

  • A ganha de B e B ganha de C
  • Por transitividade, A ganha de C (tem o ranking melhor)
  • Porém, se o resultado entre A e B foi inesperado (B deveria ganhar pela série histórica)
  • A condição A ganha de C não é uma total certeza
  • Portanto, é necessário que levar em consideração um “fator de sorte”

Outro detalhe importante sobre ranks é que a ordem não deveria ser calculada pela média

Propriedades desejadas em funções de score

  • Fáceis de entender e calcular
  • Interpretação monotônica das variáveis (variáveis aumentam de valor, o score também aumenta)
  • Funciona com outliers (ao menos de forma satisfatória)
  • As diferenças devem ser normalizadas (Z-scores são um bom exemplo)

Cuidados com sistemas de votos

Existem algumas propriedades desejadas em sistemas de votos que tornam os ranks difíceis. Algumas são:

  • Se todos os votos preferem A sobre B, então A deve ter um rank melhor que B
  • Transitividade: Se A > B e B > C, então A > C
  • Outras

Entretanto, todas as propriedades não podem ser atendidas ao mesmo tempo. Essa é a conclusão do Teorema da impossibilidade de Arrow (um vídeo explicando). Portanto, é necessário escolher as preferências desejadas ao montar um sistema de votes e ranks para atender as demandas necessárias. Com base nessas escolhas, também será possível escolher o método de rank. Por exemplo, a transitividade é uma “propriedade violada” pelo Elo Ranking.

Scores ou Ranks

A diferença entre apresentar um score ou um rank vai do que se deseja apresentar. Uma pequena variação no score pode ser uma mudança significativa no rank. Se o resultado isolado faz sentido, apenas um score é suficiente. Caso contrário, incluir o rank ajuda na aprensetação.