Este repositório se baseia no trabalho de análise de dados exploratórios (EDA) nos dados da Amazon Review (2018) usando o MongoDB e o Pyspark e inclui um aplicativo da Web conectado a um sistema de recomendação de produto desenvolvido com o conjunto de dados de revisão amazon (2018), consistindo em quase 233,1 milhões de registros e ocupando aproximadamente 128 gig Kafka, como parte do projeto final para o curso Fundamental do Big Data Analytics (DS2004).
Os sistemas de recomendação de produtos são tipos de software que usam análises de dados e técnicas de aprendizado de máquina para sugerir produtos aos clientes com base em seus interesses, compras passadas e histórico de navegação. Esses sistemas podem ser encontrados em sites de comércio eletrônico, como a Amazon.com, e foram projetados para fornecer recomendações personalizadas aos usuários em tempo real. Os sistemas de recomendação funcionam analisando grandes quantidades de dados, como comportamento do usuário, atributos do produto e histórico de transações. Com base nesses dados, o sistema gera recomendações relevantes para os interesses e preferências do usuário. Por exemplo, se um usuário já comprou um livro sobre um tópico específico, o sistema de recomendação pode sugerir outros livros sobre o mesmo tópico ou tópicos relacionados.
O conjunto de dados da Amazon Review Data (2018) pode ser utilizado para treinar um sistema de recomendação de produtos que oferece sugestões de produtos personalizadas aos usuários com base no histórico de compras, bem como nos níveis de satisfação de outros usuários que revisaram e classificaram produtos na plataforma. No entanto, como o conjunto de dados é vasto, é crucial analisar e selecionar cuidadosamente os recursos relevantes que contribuirão efetivamente para o sistema de recomendação do produto, a fim de evitar ajustes excessivos e subjacentes do modelo de aprendizado de máquina.
Semelhante à nossa abordagem na realização de análises de dados exploratórios (EDA) sobre os dados da Amazon Review (2018) DataSet Amazon Review Data (2018) Analysis.ipynb, 1-38) , empregamos um método estatístico inferencial para treinar nosso modelo de recomendação de produtos. A lógica para usar uma amostra para fazer inferências sobre toda a população é minimizar a carga computacional associada ao processamento do conjunto de dados completo, o que geralmente é impraticável para uma única máquina. Embora o aprendizado profundo normalmente exija grandes quantidades de dados, o aprendizado de máquina pode ser efetivamente usado para desenvolver metodologias de treinamento robustas, mesmo com pequenos conjuntos de dados. Isso é particularmente útil para pesquisas orientadas por hipóteses, que é nosso objetivo principal com o sistema de recomendação do produto. (Vabalas et al., 2019) Em qualquer caso, é importante observar que qualquer conjunto de dados é essencialmente um subconjunto de uma população maior.
Para garantir a precisão de nossos resultados, é crucial analisar e mitigar cuidadosamente vieses potenciais nos dados. Isso é particularmente importante no aprendizado de máquina, sensível a vieses que podem resultar em estimativas de desempenho distorcidas. Para resolver esse problema, aplicaremos a abordagem de amostragem aleatória estratificada que discutimos anteriormente para extrair uma amostra representativa de 10.000.000 de registros da população, mantendo a mesma distribuição de produtos que no conjunto de dados original. (Compress.py, 1-61) Como o tamanho da amostra é bastante grande, a comprimimos em um formato de arquivo Apache Parquet, que reduz o tamanho do conjunto de dados em mais de 90%.
Os mínimos quadrados alternados (ALS) são um algoritmo de filtragem colaborativo usado para desenvolver sistemas de recomendação de produtos. O algoritmo visa aprender os fatores latentes ou ocultos que influenciam as interações do usuário-ITEM, decompondo a matriz de classificação do usuário em duas matrizes de baixo rank, representando os fatores latentes do usuário e do item.
Os mínimos quadrados alternados (ALS) funcionam iterativamente, alternando entre a fixação de um conjunto de fatores latentes e a solução para o outro usando um algoritmo de otimização de mínimos quadrados. Em particular, em cada iteração, o algoritmo corrige os fatores latentes do item e resolve os fatores latentes do usuário usando otimização de mínimos quadrados e, em seguida, corrige os fatores latentes do usuário e resolve os fatores latentes do item usando a otimização de mínimos quadrados.
Os mínimos quadrados alternados (ALS) têm várias vantagens para sistemas de recomendação de produtos. É escalável e computacionalmente eficiente, principalmente para conjuntos de dados grandes e esparsos. Ele pode lidar com dados de feedback implícitos, onde as interações do usuário-usuário são conhecidas apenas por existir ou não, e não suas classificações específicas. Também pode lidar com dados ausentes, onde nem todos os usuários classificaram todos os itens. Além disso, os mínimos quadrados alternados (ALS) podem fornecer recomendações de itens em tempo real, tornando-o adequado para sistemas de recomendação on-line.
Product Recommendation Model.ipynb - Contém a implementação (MLLIB) do sistema de recomendação de produto treinado e testado no conjunto de dados da Amazon Review Data (2018).srcdata.py - código -fonte para armazenar o conjunto de dados do arquivo JavaScript Object Notation (JSON) em um banco de dados MongoDB como uma coleção.srccompress.py - código -fonte para extrair uma amostra aleatória estratificada de um tamanho de amostra especificado do conjunto de dados armazenado no banco de dados MongoDB como uma coleção e armazenando -o como um arquivo Apache Parquet.srcvalidate.py - código -fonte para validar a precisão e a funcionalidade do sistema de recomendação de produto treinado usando um exemplo prático.modelproduct_recommendation_model - Diretório que contém o modelo de aprendizado de máquina treinado para o sistema de recomendação do produto.appapplication.py - Fonte do aplicativo da Web (Flask) associado ao sistema de recomendação do produto através de um cluster Apache Kafka.apprecommendation.py - Código -fonte do cluster Apache Kafka conectado ao modelo de aprendizado de máquina treinado para o sistema de recomendação do produto, permitindo a geração de recomendações de produtos.templates - contém os códigos de origem das páginas da web ( login.html , dashboard.html , review.html , loading.html e recommendation.html ) renderizadas pelo aplicativo da web (frasco).static - contém todos os ícones e elementos visuais utilizados pelo aplicativo da web (Flask)..hintrc - arquivo de configuração para personalizar o comportamento de Eslint especificando configurações e regras específicas. All_Amazon_Review.json.gz no site da coleção Amazon Review Data (2018).srcdata.py para salvar o conjunto de dados do arquivo JavaScript Object Notation (JSON) em um banco de dados MongoDB como uma coleção (verifique se o MongoDB já está configurado).srccompress.py para extrair uma amostra aleatória estratificada de um tamanho especificado do conjunto de dados armazenado no MongoDB e salve a amostra como um arquivo Apache Parquet.Product Recommendation Model.ipynb .apprecommendation.py ao lado (verifique se um cluster Apache Kafka foi estabelecido com sucesso e está operacional, com dois tópicos chamados credenciais e recomendações ).appapplication.py e abra o link fornecido para a porta do host./dashboard , clique no botão Revisão e envie qualquer conteúdo./loading enquanto as recomendações do produto forem geradas./recommendation para visualizar as recomendações de produto gerado. Os arquivos de código -fonte foram escritos especificamente para MacOS Ventura e podem precisar de modificações para garantir a execução adequada em outros sistemas operacionais.
Este projeto existe graças às pessoas extraordinárias que contribuíram para ele.