Resumo
Neste trabalho foi proposto e avaliado a implementação de um sistema de recomendação de próxima funcionalidade em softwares. O objetivo principal desse sistema de recomendação é de gerar recomendações inteligentes de funcionalidades de softwares para seus usuários com base no histórico de interação desses usuários com as funcionalidades. Cinco algoritmos de aprendizado de máquina foram analisados para esse sistema de recomendação e seus resultados comparados. Para tanto, os experimentos foram realizados em uma base de dados inédita que representa o uso real de seis softwares de contabilidade por milhares de usuários. Para escolha dos algoritmos, buscou-se na literatura os algoritmos mais utilizados emsistemasderecomendaçãosemelhantes,dentreosquaisforamselecionadososalgoritmos de Cadeias de Markov de primeira e segunda ordem, redes neurais recorrentes LSTM, IndRNN e a Rede Neural Recorrente padrão (RNR). Foram ainda analisados três cenários de treinamento diferentes para os modelos, nos quais os históricos dos usuários foram compartilhados em três níveis diferentes, a saber: (i) treinamento a nível de usuário, em que para cada usuário foi treinado um modelo apenas com o histórico pessoal do usuário; (ii) treinamento a nível de empresa, no qual, para cada empresa, é treinado um modelo com o histórico de todos os usuários dessa empresa, sendo esse modelo compartilhado entre esses usuários; (iii) treinamento a nível de sistema, em que é gerado apenas um único modelo para todos os usuários do software com base no histórico de todos os usuários. Os resultados mostraram que os algoritmos de redes neurais conseguiram obter uma ligeira vantagem na capacidade de predição de próxima funcionalidade nos três cenários de teste, porém, as cadeias de Markov apresentaram um tempo de treinamento extremamente mais rápido. A partir dos resultados foi possível concluir que o desempenho de todos os modelos conseguiu ser satisfatório quando, ao invés de recomendar apenas a próxima funcionalidade, é recomendada uma lista de próximas funcionalidades mais prováveis, com os melhores resultados apresentando uma acurácia de 73% para as redes neurais recorrentes IndRNN e RNR padrão. As contribuições deste trabalho vão desde o fato de um sistema de recomendação de próxima funcionalidade de software ser um assunto pouco explorado, com os trabalhos relacionados se limitando a recomendação de paginas de sites, até o uso de uma base de dado inédita, que representa interações reais entre usu
