Anshumali Shrivastava est professeur adjoint d'informatique à l'Université Rice. Crédit :Jeff Fitlow/Université Rice
Les acheteurs en ligne associent généralement quelques mots pour rechercher le produit qu'ils souhaitent, mais dans un monde avec des millions de produits et d'acheteurs, La tâche de faire correspondre ces mots non spécifiques au bon produit est l'un des plus grands défis de la recherche d'informations.
En utilisant une approche diviser pour régner qui exploite la puissance de la détection compressée, des informaticiens de l'Université Rice et d'Amazon ont montré qu'ils pouvaient réduire le temps et les ressources de calcul nécessaires pour former les ordinateurs à la recherche de produits et à des « problèmes de classification extrêmes » similaires comme la traduction vocale et la réponse à des questions générales.
La recherche sera présentée cette semaine à la conférence 2019 sur les systèmes de traitement de l'information neuronale (NeurIPS 2019) à Vancouver. Les résultats incluent des tests effectués en 2018 lorsque le chercheur principal Anshumali Shrivastava et l'auteur principal Tharun Medini, à la fois de riz, visitaient Amazon Search à Palo Alto, Californie.
Lors de tests sur un ensemble de données de recherche Amazon qui comprenait quelque 70 millions de requêtes et plus de 49 millions de produits, Shrivastava, Medini et ses collègues ont montré leur approche consistant à utiliser des "classificateurs de moyenne fusionnée via le hachage, " (MACH) nécessitait une fraction des ressources de formation de certains systèmes commerciaux de pointe.
"Nos temps d'entraînement sont environ 7 à 10 fois plus rapides, et nos empreintes mémoire sont 2 à 4 fois plus petites que les meilleures performances de base des données à grande échelle précédemment rapportées, systèmes d'apprentissage en profondeur distribués, " dit Shrivastava, professeur adjoint d'informatique à Rice.
Médine, un doctorat étudiant à Rice, ladite recherche de produit est difficile, en partie, en raison du grand nombre de produits. "Il y a environ 1 million de mots anglais, par exemple, mais il y a facilement plus de 100 millions de produits en ligne."
Beidi Chen et Tharun Medini, étudiants diplômés en informatique de l'Université Rice, collaborent lors d'une réunion de groupe. Crédit :Jeff Fitlow/Université Rice
Il y a aussi des millions de personnes qui achètent ces produits, chacun à sa manière. Certains tapent une question. D'autres utilisent des mots-clés. Et beaucoup ne sont pas sûrs de ce qu'ils recherchent lorsqu'ils commencent. Mais parce que des millions de recherches en ligne sont effectuées chaque jour, des entreprises technologiques comme Amazon, Google et Microsoft ont beaucoup de données sur les recherches réussies et infructueuses. Et l'utilisation de ces données pour un type d'apprentissage automatique appelé apprentissage en profondeur est l'un des moyens les plus efficaces de donner de meilleurs résultats aux utilisateurs.
Systèmes d'apprentissage en profondeur, ou des modèles de réseaux de neurones, sont de vastes collections d'équations mathématiques qui prennent un ensemble de nombres appelés vecteurs d'entrée, et les transformer en un ensemble différent de nombres appelés vecteurs de sortie. Les réseaux sont composés de matrices à plusieurs paramètres, et les systèmes d'apprentissage en profondeur distribués à la pointe de la technologie contiennent des milliards de paramètres divisés en plusieurs couches. Pendant la formation, les données sont transmises à la première couche, les vecteurs sont transformés, et les sorties sont transmises à la couche suivante et ainsi de suite.
Les « problèmes extrêmes de classification » sont ceux qui ont de nombreuses issues possibles, Et ainsi, de nombreux paramètres. Les modèles d'apprentissage en profondeur pour la classification extrême sont si volumineux qu'ils doivent généralement être formés sur ce qui est effectivement un superordinateur, un ensemble lié d'unités de traitement graphique (GPU) où les paramètres sont distribués et exécutés en parallèle, souvent pendant plusieurs jours.
"Un réseau de neurones qui prend les entrées de recherche et prédit à partir de 100 millions de sorties, ou des produits, se retrouvera généralement avec environ 2, 000 paramètres par produit, " dit Medini. " Alors tu multiplies ceux-là, et la dernière couche du réseau de neurones est maintenant de 200 milliards de paramètres. Et je n'ai rien fait de sophistiqué. Je parle d'un très, modèle de réseau de neurones très simple."
"Il faudrait environ 500 gigaoctets de mémoire pour stocker ces 200 milliards de paramètres, " a dit Medini. " Mais si vous regardez les algorithmes d'entraînement actuels, il y en a un célèbre appelé Adam qui prend deux paramètres supplémentaires pour chaque paramètre du modèle, car il a besoin de statistiques à partir de ces paramètres pour surveiller le processus d'entraînement. Donc, maintenant nous sommes à 200 milliards de fois trois, et j'aurai besoin de 1,5 téraoctets de mémoire de travail juste pour stocker le modèle. Je n'ai même pas eu accès aux données d'entraînement. Les meilleurs GPU n'ont que 32 gigaoctets de mémoire, donc la formation d'un tel modèle est prohibitive en raison de la communication inter-GPU massive."
MACH adopte une approche très différente. Shrivastava le décrit avec une expérience de pensée divisant au hasard les 100 millions de produits en trois classes, qui prennent la forme de seaux. "Je mélange, Disons, iPhones avec chargeurs et T-shirts dans le même seau, " il a dit. " C'est une réduction drastique de 100 millions à trois. "
Dans l'expérience de pensée, les 100 millions de produits sont triés aléatoirement dans trois seaux dans deux mondes différents, ce qui signifie que les produits peuvent se retrouver dans des seaux différents dans chaque monde. Un classificateur est formé pour attribuer des recherches aux buckets plutôt qu'aux produits qu'ils contiennent, ce qui signifie que le classificateur n'a qu'à mapper une recherche sur l'une des trois classes de produits.
"Maintenant, je nourris une recherche vers le classificateur dans le monde un, et il dit seau trois, et je le nourris au classificateur dans le monde deux, et il est écrit seau un, " dit-il. " A quoi pense cette personne ? La classe la plus probable est quelque chose qui est commun entre ces deux seaux. Si vous regardez l'intersection possible des seaux, il y en a trois dans le monde un fois trois dans le monde deux, ou neuf possibilités, " dit-il. " J'ai donc réduit mon espace de recherche à un sur neuf, et je n'ai payé que le coût de la création de six classes."
Ajout d'un tiers monde, et trois autres seaux, multiplie par trois le nombre d'intersections possibles. "Il y a maintenant 27 possibilités pour ce que pense cette personne, " dit-il. " J'ai donc réduit mon espace de recherche d'un sur 27, mais je n'ai payé que neuf cours. Je paie un coût linéairement, et j'obtiens une amélioration exponentielle."
Dans leurs expériences avec la base de données de formation d'Amazon, Shrivastava, Medini et ses collègues ont divisé au hasard les 49 millions de produits en 10, 000 cours, ou des seaux, et répété le processus 32 fois. Cela a réduit le nombre de paramètres dans le modèle d'environ 100 milliards à 6,4 milliards. Et l'entraînement du modèle a pris moins de temps et moins de mémoire que certains des meilleurs temps d'entraînement rapportés sur des modèles avec des paramètres comparables, y compris le modèle Sparsely-Gated Mixture-of-Experts (MoE) de Google, dit Médini.
Il a déclaré que la caractéristique la plus importante de MACH est qu'il ne nécessite aucune communication entre les processeurs parallèles. Dans l'expérience de pensée, c'est ce qui est représenté par le séparé, mondes indépendants.
"Ils n'ont même pas besoin de se parler, " dit Medini. " En principe, vous pouvez entraîner chacun des 32 sur un GPU, ce qui est quelque chose que vous ne pourriez jamais faire avec une approche non indépendante."
Shrivastava a dit, "En général, la formation a nécessité une communication entre les paramètres, ce qui signifie que tous les processeurs qui fonctionnent en parallèle doivent partager des informations. Avoir hâte de, La communication est un énorme problème dans l'apprentissage en profondeur distribué. Google a exprimé l'ambition de former un réseau de 1 000 milliards de paramètres, par exemple. MACH, actuellement, ne peut pas être appliqué aux cas d'utilisation avec un petit nombre de classes, mais pour la classification extrême, il atteint le Saint Graal de la communication zéro."