Anshumali Shrivastava é professor assistente de ciência da computação na Rice University. Crédito:Jeff Fitlow / Rice University
Os compradores online normalmente agrupam algumas palavras para pesquisar o produto que desejam, mas em um mundo com milhões de produtos e compradores, a tarefa de combinar essas palavras inespecíficas com o produto certo é um dos maiores desafios na recuperação de informações.
Usando uma abordagem de dividir e conquistar que aproveita o poder do sensoriamento comprimido, cientistas da computação da Rice University e da Amazon mostraram que podem reduzir a quantidade de tempo e recursos computacionais necessários para treinar computadores para pesquisa de produtos e "problemas extremos de classificação" semelhantes, como tradução de fala e respostas a perguntas gerais.
A pesquisa será apresentada esta semana na Conferência sobre Sistemas de Processamento de Informação Neural de 2019 (NeurIPS 2019) em Vancouver. Os resultados incluem testes realizados em 2018 quando o pesquisador principal Anshumali Shrivastava e o autor principal Tharun Medini, ambos de arroz, estavam visitando o Amazon Search em Palo Alto, Califórnia.
Em testes em um conjunto de dados de pesquisa da Amazon que incluiu cerca de 70 milhões de consultas e mais de 49 milhões de produtos, Shrivastava, Medini e colegas mostraram sua abordagem de usar "classificadores de média mesclada por meio de hashing, "(MACH) exigia uma fração dos recursos de treinamento de alguns sistemas comerciais de última geração.
"Nossos tempos de treinamento são cerca de 7 a 10 vezes mais rápidos, e nossas pegadas de memória são 2 a 4 vezes menores do que os melhores desempenhos básicos de grande escala relatados anteriormente, sistemas distribuídos de aprendizagem profunda, "disse Shrivastava, professor assistente de ciência da computação na Rice.
Medini, um Ph.D. estudante na Rice, disse que a pesquisa de produtos é um desafio, em parte, por causa do grande número de produtos. "Existem cerca de 1 milhão de palavras em inglês, por exemplo, mas existem facilmente mais de 100 milhões de produtos online. "
Beidi Chen e Tharun Medini, estudantes de graduação em ciência da computação da Rice University, colaboram durante uma reunião do grupo. Crédito:Jeff Fitlow / Rice University
Também há milhões de pessoas comprando esses produtos, cada um à sua maneira. Algum tipo de pergunta. Outros usam palavras-chave. E muitos não têm certeza do que estão procurando quando começam. Mas, como milhões de pesquisas online são realizadas todos os dias, empresas de tecnologia como a Amazon, O Google e a Microsoft têm muitos dados sobre buscas bem e malsucedidas. E usar esses dados para um tipo de aprendizado de máquina chamado aprendizado profundo é uma das maneiras mais eficazes de fornecer melhores resultados aos usuários.
Sistemas de aprendizagem profunda, ou modelos de rede neural, são vastas coleções de equações matemáticas que pegam um conjunto de números chamados vetores de entrada, e transformá-los em um conjunto diferente de números chamados vetores de saída. As redes são compostas por matrizes com diversos parâmetros, e os sistemas de aprendizado profundo distribuído de última geração contêm bilhões de parâmetros que são divididos em várias camadas. Durante o treinamento, os dados são alimentados para a primeira camada, vetores são transformados, e as saídas são alimentadas para a próxima camada e assim por diante.
"Problemas extremos de classificação" são aqueles com muitos resultados possíveis, e assim, muitos parâmetros. Modelos de aprendizado profundo para classificação extrema são tão grandes que normalmente devem ser treinados no que é efetivamente um supercomputador, um conjunto vinculado de unidades de processamento gráfico (GPU) onde os parâmetros são distribuídos e executados em paralelo, frequentemente por vários dias.
"Uma rede neural que obtém dados de pesquisa e prevê 100 milhões de resultados, ou produtos, normalmente acabará com cerca de 2, 000 parâmetros por produto, "Medini disse." Então você multiplica aqueles, e a camada final da rede neural é agora de 200 bilhões de parâmetros. E eu não fiz nada sofisticado. Estou falando muito, modelo de rede neural simples muito morto. "
"Levaria cerca de 500 gigabytes de memória para armazenar esses 200 bilhões de parâmetros, "Medini disse." Mas se você olhar para os algoritmos de treinamento atuais, há um famoso chamado Adam que leva mais dois parâmetros para cada parâmetro do modelo, porque precisa de estatísticas desses parâmetros para monitorar o processo de treinamento. Então, agora estamos em 200 bilhões vezes três, e vou precisar de 1,5 terabytes de memória de trabalho apenas para armazenar o modelo. Eu nem cheguei aos dados de treinamento. As melhores GPUs que existem têm apenas 32 gigabytes de memória, portanto, treinar esse modelo é proibitivo devido à comunicação massiva entre GPU. "
A MACH tem uma abordagem muito diferente. Shrivastava o descreve com um experimento mental, dividindo aleatoriamente os 100 milhões de produtos em três classes, que assumem a forma de baldes. "Estou mixando, Digamos, iPhones com carregadores e camisetas no mesmo balde, "disse ele." É uma redução drástica de 100 milhões para três. "
No experimento mental, os 100 milhões de produtos são classificados aleatoriamente em três grupos em dois mundos diferentes, o que significa que os produtos podem acabar em baldes diferentes em cada mundo. Um classificador é treinado para atribuir pesquisas aos baldes em vez dos produtos dentro deles, o que significa que o classificador só precisa mapear uma pesquisa para uma das três classes de produto.
"Agora eu alimento uma pesquisa para o classificador no mundo um, e diz balde três, e eu alimento para o classificador no mundo dois, e diz balde um, "disse ele." No que esta pessoa está pensando? A classe mais provável é algo comum entre esses dois intervalos. Se você olhar para a possível interseção dos baldes, há três no mundo um vezes três no mundo dois, ou nove possibilidades, "ele disse." Então eu reduzi meu espaço de busca para um sobre nove, e eu paguei apenas o custo de criação de seis classes. "
Adicionando um terceiro mundo, e mais três baldes, aumenta o número de cruzamentos possíveis por um fator de três. "Existem agora 27 possibilidades para o que esta pessoa está pensando, "ele disse." Então, eu reduzi meu espaço de pesquisa em um sobre 27, mas eu só paguei o custo de nove aulas. Estou pagando um custo linearmente, e estou obtendo uma melhora exponencial. "
Em seus experimentos com o banco de dados de treinamento da Amazon, Shrivastava, Medini e colegas dividiram aleatoriamente os 49 milhões de produtos em 10, 000 aulas, ou baldes, e repetiu o processo 32 vezes. Isso reduziu o número de parâmetros no modelo de cerca de 100 bilhões para 6,4 bilhões. E treinar o modelo levou menos tempo e menos memória do que alguns dos melhores tempos de treinamento relatados em modelos com parâmetros comparáveis, incluindo o modelo Sparsely-Gated Mixture-of-Experts (MoE) do Google, Medini disse.
Ele disse que a característica mais significativa do MACH é que ele não requer comunicação entre processadores paralelos. No experimento mental, isso é o que é representado pelo separado, mundos independentes.
"Eles nem precisam falar um com o outro, "Medini disse." Em princípio, você pode treinar cada um dos 32 em uma GPU, que é algo que você nunca poderia fazer com uma abordagem não independente. "
Shrivastava disse, "Em geral, o treinamento exigiu comunicação entre parâmetros, o que significa que todos os processadores que estão rodando em paralelo precisam compartilhar informações. Esperando ansiosamente, a comunicação é um grande problema no aprendizado profundo distribuído. O Google expressou aspirações de treinar uma rede de parâmetros de 1 trilhão, por exemplo. MACH, Atualmente, não pode ser aplicado a casos de uso com pequeno número de classes, mas para classificação extrema, alcança o Santo Graal de comunicação zero. "