Nota: Algorithme de sélection et de rotation des pistes


Il s'agit d'une continuation de l' article précédent sur la radio intelligente qui ne meurt pas lorsque l'Internet est perdu. Il semble que la première crêpe était plutôt grumeleuse: la plupart des utilisateurs n'ont pas aimé l'application. La critique se divise essentiellement en deux fronts:


  1. Les mêmes pistes sont très souvent répétées, et de nouvelles apparaissent très rarement.
  2. Il n'y a aucun moyen de choisir vos genres préférés, ou moins les pistes inappropriées, afin de ne pas avoir à les ignorer péniblement.

Le deuxième problème a été considérablement aggravé par le premier, car les omissions ont très souvent entraîné des répétitions de toutes les mêmes pistes, mais dans un ordre différent.


Je suis heureux de vous informer que j'ai réussi à résoudre le premier problème (la mise à jour est déjà dans le Play Store). Sous la coupe se trouvera une description de l'algorithme sélectionné pour la sélection et la rotation des pistes, ainsi que l'essence de la correction, ce qui, comme je m'y attend, devrait améliorer considérablement l'expérience utilisateur.


L'idée de base de sélectionner des pistes est apparue presque immédiatement: la probabilité de choisir une chanson à jouer est proportionnelle à sa «note de préférence». Ce dernier est calculé comme le rapport entre le temps d'écoute moyen d'une piste et sa durée. Cette méthode de sélection conduit à une lecture fréquente des compositions qui sont plus préférables pour l'auditeur. Malheureusement, cette évaluation ne correspondra pas toujours à une préférence réelle, mais devrait bien y correspondre.


Selon l'idée initiale, la rotation des pistes devrait se produire au moment où toutes les pistes ont été écoutées au moins deux fois (une fois cela semblait insuffisant pour une estimation fiable de la piste). Au moment de la rotation, les pistes ont été supprimées dont le score de préférence était inférieur à un certain niveau, et une nouvelle portion de pistes a été chargée.


Cet algorithme a en pratique conduit à une rotation très rare. En fait, les morceaux qui ont été rapidement sautés ont perdu la possibilité d'être réécoutés pendant longtemps. Par conséquent, j'ai dû surestimer artificiellement mon score de préférence pour les morceaux que j'ai écoutés moins de deux fois pour augmenter les chances de les lire.


De plus, afin d'exclure la répétition des morceaux qui viennent d'être lus, il a été décidé d'abaisser artificiellement le score de préférence pour les dix derniers morceaux joués.


En pratique, cela a plutôt bien fonctionné, mais uniquement sous la condition d'un profil de préférence plus ou moins formé, lorsque la grande majorité des vingt premières pistes chargées ne provoquent pas de rejet. Le nouvel utilisateur a reçu un ensemble de pistes complètement aléatoires qu'il a été obligé de sauter sans fin. Dans le premier cas, les lacunes étaient assez rares et ne provoquaient pas d'irritation. Dans le second - l'auditeur ne pouvait tout simplement pas attendre la prochaine itération de rotation.


Il en était ainsi dans la version originale de l'application, qui a été publiée au moment de la rédaction de l'article précédent. Maintenant, sur ce qui a été fait pour améliorer l'expérience utilisateur:


  1. Pour la prochaine itération, la rotation est maintenant suffisante pour que toutes les pistes ne soient écoutées qu'une seule fois (il y en avait deux fois auparavant).
  2. En présence de compositions inouïes, leur appréciation de préférence augmente fortement, pour toutes les autres, elle diminue fortement (toutes deux d'un ordre de grandeur).

Ces changements ont conduit au fait que lorsqu'il y a une connexion Internet, les pistes ne sont désormais lues qu'une seule fois (comme dans la radio ordinaire), mais les pistes que vous aimez se placent dans le cache, évincant le reste. Dès que la connexion Internet est perdue, l'ancien mécanisme est activé, reproduisant les pistes sélectionnées proportionnellement à leur appréciation de préférence.


PS Un bug lié au manque de reconnaissance du WiFi apparu a également été corrigé.


La version 1.0.2 de PPS a été interrompue. J'ai activé la minification et la compression des ressources, par conséquent, l'application se bloque, comme l'a souligné nikita_dol . Je m'excuse, à partir de maintenant, je ne mettrai à jour les mises à jour que via les versions bêta. J'espère vraiment que la version 1.0.3 fonctionnera.

Source: https://habr.com/ru/post/fr464053/


All Articles