Wir haben in unserer ralis-App ein Modell, dessen Objekte auf der Grundlage positiver Benutzeraktionen eine Punktzahl erhalten. Wir nennen sie der Einfachheit halber Produkte. Wenn einem Nutzer ein Produkt gefällt, er es kauft oder anschaut, wird die Punktzahl mit unterschiedlicher Gewichtung erhöht (ein "Like" kann mehr wert sein als ein "View", zwei "Views" innerhalb von 30 Sekunden können mehr wert sein als drei "Views" über eine Stunde verteilt usw.)
Wir würden diese Punktzahlen gerne verwenden, um Produkte zu sortieren und einzustufen, z. B. für eine Liste beliebter Produkte, aber aus verschiedenen Gründen wird die Verwendung des direkten Rankings ältere Produkte ungleichmäßig bevorzugen, da sie mehr Zeit hatten, eine höhere Punktzahl zu erreichen.
Meine Frage ist, wie man die Punktzahlen zwischen neuen und alten Produkten normalisieren kann. Ich habe darüber nachgedacht, die Produktbewertung durch eine Zeiteinheit zu teilen, z. B. durch die Anzahl der Tage, die das Produkt bereits existiert, aber ich befürchte, dass dies die älteren Produkte zu sehr einschränken würde. Hat jemand eine Idee, wie man die Punktzahlen zwischen alten und neuen Produkten am besten normalisieren kann?
Ich denke auch an ein Beispiel für ein bayesianisches Bewertungssystem, das ich in einer anderen Frage gefunden habe:
rating = ((avg_num_votes * avg_rating) + (product_num_votes * product_rating)) / (avg_num_votes + product_num_votes)
Wo die avg
Die Zahlen werden berechnet, indem die Punktzahlen aller Produkte, die mehr als ein Produkt haben, betrachtet werden. vote
(oder in unserem Fall eine positive action
). Dies ist vielleicht nicht der beste Weg, da wir in unserem System keine negative Bewertung haben und die Zeit überhaupt nicht berücksichtigt wird.