web-dev-qa-db-fra.com

Contenu hautement évalué, comment les utilisateurs s'attendent-ils à ce qu'il soit trié?

Nous concevons actuellement une communauté où les utilisateurs peuvent télécharger du contenu (contenu généré par l'utilisateur). Ce contenu est voté par ceux qui ont utilisé le contenu téléchargé (l'utilisation est un critère de vote) et nous décidons maintenant de la façon d'afficher "Plus haut Contenu "évalué".

Utilisateurs vote up ou vote down content.

Nous avons ces variables à utiliser et je cherche de l'aide pour savoir comment les classer afin de répondre au mieux aux attentes des utilisateurs pour une liste intitulée "Contenu le mieux noté":

  • Décompte des votes
  • Pourcentage de votes positifs

Je n'ai pas accès à plus de données et je ne peux pas accéder aux données granulaires. Lorsque les votes ont été exprimés, par exemple, ils ne sont pas accessibles, ce qui exclut les options de calcul de la notation en fonction de la décroissance temporelle des votes.

.
(Excusez-vous d'être vague concernant le type de contenu/communauté, cela est dû à la confidentialité du client)

21
JeroenEijkhof

La meilleure méthode consiste à utiliser la borne inférieure d'un intervalle de confiance statistique .

Je n'entrerai pas dans les détails sur la façon de procéder, car Evan Miller a un excellent article sur Comment NE PAS trier par note moyenne pour une distribution de Bernoulli - c'est ce que vous avez.

La principale raison pour laquelle vous utiliseriez cette méthode est de trouver un équilibre entre le vote moyen et le nombre de votes. Nous savons tous instinctivement que 2 votes positifs et aucun vote négatif n'indiquent moins la qualité que 254 votes positifs et 30 votes négatifs, même si la moyenne est plus élevée. Cette méthode est la meilleure que j'ai trouvée pour équilibrer les deux.

24
JohnGB

La réponse de JohnGB fonctionne bien en haut d'une liste de notes, mais elle pose des problèmes plus bas dans la liste. Par exemple, en utilisant des intervalles de confiance à 95%:

  • A a 100 votes positifs, 3 votes négatifs (97%). Intervalle de confiance: (0,917, 0,990)
  • B a 10 votes positifs, 0 votes négatifs (100%). Intervalle de confiance: (0,722, 1)
  • C a 180 votes positifs, 100 votes négatifs (67%). Intervalle de confiance: (0,585, 0,697)

Donc, cela conduit à l'ordre A> B> C, ce qui est exactement ce que nous voulons intuitivement. Mais, considérons maintenant que nous en avons un quatrième:

  • D a 3 votes positifs, 1 votes négatifs (75%). Intervalle de confiance: (0,300, 0,954)

Cela donne l'ordre A> B> C> D. Intuitivement, je m'attendrais à A> B> D> C, puisque D n'a eu que 4 votes. Ce problème se pose parce que nous utilisons la limite d'intervalle inférieure.

L'approche ci-dessus fonctionne en poussant vers le bas le contenu à haute note dont nous ne sommes pas sûrs. En fait, nous voulons le pousser vers la moyenne. Et les notes basses dont nous ne sommes pas sûrs devraient être poussées vers la moyenne.

Cette réponse de stats.SE fournit le schéma suivant:

The Best of BeerAdvocate (BA) ... utilise une estimation bayésienne:

rang pondéré (WR) = (v/(v + m)) × R + (m/(v + m)) × C

où: R = moyenne des avis pour la bière v = nombre d'avis pour la bière m = nombre minimum d'avis requis pour être répertoriés (actuellement 10) C = la moyenne de la liste (actuellement 2,5)

qui pour les exemples ci-dessus suggère:

  • [C = 0,738, m = 4]
  • A a WR = 0,962
  • B a WR = 0,925
  • C a WR = 0,644
  • D a WR = 0,744

Et cela nous donnera notre commande souhaitée A> B> D> C.

7
Brendon

Comme les autres réponses sont généralement d'accord, ce que vous voulez essentiellement faire est, en fait, de biaiser le classement des articles avec un faible nombre de votes vers un classement "par défaut" - qui pourrait être le rang moyen, si vous voulez une estimation impartiale, ou un rang très bas si vous souscrivez à l'idée qu'un élément devrait être classé bas jusqu'à ce qu'il soit prouvé qu'il mérite un rang plus élevé.

La méthode Wilson score interval suggérée dans le lien donné par JohnGB fonctionne certainement pour cette dernière approche, et peut être ajustée pour atteindre la première en prenant un autre point sur l'intervalle ( par exemple le point médian plutôt que le point final bas). Cependant, si vous préférez quelque chose de plus simple sur le plan mathématique et conceptuel, vous pouvez utiliser à la place lissage additif en ajoutant pseudocomptes - essentiellement, un nombre fixe de votes ascendants et descendants "virtuels" - au décompte des voix pour chaque élément avant de calculer le score moyen.

En particulier, ajouter exactement un pseudo-upvote et un pseudo-downvote pour chaque élément correspond à règle de succession de Laplace , ce qui, en termes modernes (bayésiens), donne la fraction moyenne attendue (postérieure) des votes positifs sur le point, étant donné les votes observés jusqu'à présent et sur la base des hypothèses que a) les votes sont indépendants et b) avant que des votes ne soient observés, toutes les fractions de votes entre 0 et 1 sont prises en compte tout aussi probable a priori.

Il est également possible d'utiliser différents pseudocomptes pour exprimer différentes croyances antérieures sur la distribution des votes, et/ou différents niveaux d'optimisme ou de pessimisme sur les résultats incertains (correspondant au choix des intervalles de confiance dans la méthode Wilson). Par exemple, l'ajout de 4 pseudo-votes négatifs (et de zéro pseudo-votes positifs) à chaque message donne une fraction de votes positifs estimée qui est très proche de la limite inférieure de l'intervalle de confiance de 95% de Wilson (que le article lié par JohnGB recommande), tout en ajoutant 2 pseudo-upvotes et 2 pseudo-downvotes donne une approximation encore plus proche du centre de cet intervalle.

(Le nombre 4 ici vient du fait que la formule de Wilson implique la valeur z2, où z est le centile de la distribution normale standard correspondant à l'intervalle de confiance souhaité autour de la moyenne, par ex. le 97,5e centile pour un intervalle de confiance à 95%. Cette valeur centile particulière est environ 1,96 (oui, Wikipedia a vraiment un article sur tout), ou assez proche de 2 et 22 = 4. En effet, en utilisant exactement z2/ 2 pseudo-votes croissants et décroissants, pour tout percentile z, donne la valeur exacte du centre de l'intervalle de confiance Wilson correspondant, tout en faisant tous z2 des pseudo-votes positifs ou négatifs donne une assez bonne approximation de sa borne supérieure ou inférieure respectivement.)

À titre de comparaison, j'ai tracé la limite inférieure de l'intervalle de confiance de 95% de Wilson (en vert) et la fraction de vote positif simple avec quatre pseudo-votes négatifs ajoutés (en rouge) ci-dessous:
GRAPH
Les axes horizontaux donnent respectivement le nombre de votes positifs et négatifs (de 0 à 20), tandis que l'axe vertical donne le score (qui est en fait une probabilité, et donc varie de 0 à 1) calculé en utilisant les deux méthodes . Généralement, les méthodes donnent des résultats presque identiques aux extrêmes (majoritairement des votes positifs ou négatifs), mais la méthode Wilson attribue des valeurs un peu plus faibles pour les articles avec des rapports intermédiaires positifs/négatifs. Notez que la différence entre les méthodes culmine en fait à 6 upvotes et 6 downvotes (pour lesquelles la méthode Wilson donne un score d'environ 0,254 tandis que la méthode pseudocount donne 6/(6 + 6 + 4) ≈ 0,357) et diminue progressivement par la suite.

Bien sûr, vous n'avez pas besoin de vous en tenir à ces valeurs de pseudo-comptage particulières; vous pouvez les modifier pour obtenir la commande que vous aimez. Les pseudocomptes n'ont même pas besoin d'être des entiers. Un bon moyen de comprendre ce que le changement des pseudocomptes fait au classement est de garder à l'esprit que le ratio des pseudocomptes donne directement le score estimé d'un nouvel élément non voté, tout en augmentant les deux pseudocomptes du même montant, laissez le score du nouveau éléments inchangés, mais augmente le nombre de votes réels nécessaires pour surmonter ce biais initial.

En effet, la méthode du pseudo-décompte se généralise également bien aux schémas avec plusieurs options (par exemple 1 à 5 étoiles), ou même plusieurs axes orthogonaux (par exemple, les sondages avec trois options alternatives ou plus par article). Ici, il peut être plus pratique de penser en termes de nombre total de pseudocomptes et de leur valeur moyenne, plutôt qu'en termes de pseudo-votes individuels; par exemple, dans un système de notation à cinq étoiles, peu importe si vous ajoutez, disons, 5 pseudo-évaluations à une étoile et 5 à cinq étoiles, ou simplement ajoutez 10 pseudo-évaluations identiques chacune avec une valeur de 3 étoiles.


Pour résumer tout cela, si vous avez le nombre total de votes v et le pourcentage de votes positifs R, vous pouvez calculer le score lissé additivement S comme:

S = (v * R + m * C) / (v + m)

m (le nombre de pseudo-votes) et C (la moyenne des pseudo-votes) sont des paramètres arbitraires que vous pouvez choisir d'ajuster le tri. En cas de doute, essayez par ex. m = 4 et C quelque part entre 0 et ½ selon ce que vous voulez que le score initial d'un nouvel élément soit.

5
Ilmari Karonen