Bonjour,
Je suis un peu matheux mais pas vraiment dans le domaine des systèmes de recommandation... Toutefois, c'est toujours amusant de jouer avec des données donc pourquoi pas !
En fait, la compatibilité des utilisateurs ne m'intéresse pas vraiment. Je serai plus intéressé par un système de recommandation d'anime en fonction des goûts, mais j'y reviendrai par la suite.
Déjà, je ne comprends pas trop pourquoi tu dis que le coefficeint de Pearson ne marche pas et ensuite tu parles du coefficient de Spearman : le coefficient de Spearman est le même calcul que celui de Pearson mais avec des données rankées, or tes données sont déjà des ranks, donc en gros appliquer le coefficient de Pearson revient à la même chose que le coefficient de Spearman.
Des gens ont demandé à avoir un top 10 et tu as répondu qu'en raison d'un nombre trop élevé d'utilisateurs, ce n'était pas possible... Je ne sais pas quelle est la config du serveur qui est derrière tout ça mais du 3000 * 3000 ne me parait pas insurmontable. Ce serait au pire une chose à réactualiser une fois par jour. Pour te donner une idée, du 50000 * 50000 sur 1000 valeurs me prend environ 1 minute sur mon laptop qui n'est pas une machine de course. Sinon, il doit être possible de réduire la dimensionnalité de tes données en utilisant une correspondence analysis par exemple.
Enfin, j'ai vu que certaines personnes avaient utilisé un algorithme appelé graph lasso dans le concours Netflix qui a eu lieu il y a quelques années et que ça avait donné des résultats pas idiots. C'est une piste à explorer, surtout qu'il en existe des implémentations efficaces.
J'ai dit au début que j'étais plus intéressé par la recommandation d'anime. En effet, je pense qu'il pourrait être intéressant de mettre en place un système d'imputation de valeurs manquantes. En gros, se baser sur les données des autres utilisateurs pour mettre des notes là où il n'y en a pas. Si tu imputes des notes, tu seras capable de recommander un animé, et en plus ça te ferait des données supplémentaires pour ton évaluation de similarité entre utilisateurs.
Voilà, ce sont quelques idées en vrac !