Ceci est pour http://cssfingerprint.com
J'ai un système (voir la page à propos sur le site pour plus de détails) où :
- J'ai besoin de produire une liste classée, avec des confiances, des catégories qui correspondent à un vecteur de caractéristiques particulier
- les vecteurs de caractéristiques binaires sont une liste d'identifiants de site et que cette session a détecté un clic
- les vecteurs de caractéristiques sont, pour une catégorisation donnée, quelque peu bruyants (les sites sortiront de l'historique, et les gens visiteront des sites qu'ils ne visitent pas normalement)
- les catégories sont un ensemble important, non fermé (identifiants d'utilisateur)
- mon espace de caractéristiques total est d'environ 50 millions d'éléments (URL)
- pour un test donné, je ne peux interroger qu'environ 0,2% de cet espace
- je ne peux prendre la décision de quoi interroger que sur la base des résultats jusqu'à présent, environ 10 à 30 fois, et je dois le faire en moins de 100ms (bien que je puisse prendre beaucoup plus de temps pour le post-traitement, l'agrégation pertinente, etc.)
- obtenir le classement probabiliste de l'IA des catégories sur la base des résultats jusqu'à présent est quelque peu coûteux ; idéalement, la décision dépendra principalement de quelques requêtes sql bon marché
- J'ai des données d'entraînement qui peuvent affirmer que deux vecteurs de caractéristiques sont de la même catégorie mais pas qu'ils sont différents (les gens oublient parfois leurs codes et utilisent de nouveaux, créant ainsi un nouvel identifiant d'utilisateur)
J'ai besoin d'un algorithme pour déterminer quelles caractéristiques (sites) sont les plus susceptibles d'avoir un retour sur investissement élevé à interroger (c'est-à-dire pour mieux discriminer entre des catégories plausibles jusqu'à présent [utilisateurs], et pour augmenter la certitude que c'est n'importe laquelle).
Cela doit prendre en compte l'exploitation (test basé sur les données de test précédentes) et l'exploration (tester des choses qui n'ont pas été suffisamment testées pour savoir comment elles se comportent).
Il y a une autre question qui traite du classement a priori ; celui-ci concerne spécifiquement le classement a posteriori basé sur les résultats recueillis jusqu'à présent.
À l'heure actuelle, j'ai assez peu de données pour tester tout ce que quiconque a jamais eu un clic, mais éventuellement ce ne sera plus le cas, à ce moment-là, ce problème devra être résolu.
J'imagine que c'est un problème assez courant en IA - avoir une heuristique bon marché pour des requêtes coûteuses à faire - mais cela n'a pas été abordé dans mon cours d'IA, donc je ne sais pas vraiment s'il y a une réponse standard. Ainsi, une lecture pertinente qui n'est pas trop mathématique serait utile, ainsi que des suggestions pour des algorithmes particuliers.
Quelle est la meilleure façon d'aborder ce problème ?