이 저장소는 Mongodb & Pyspark를 사용하여 Amazon Review Data (2018)에서 탐색 데이터 분석 (EDA) 의 작업을 기반으로하고 거의 2 억 2,310 만 레코드를 사용하고 MONGB, Pysod의 약 128 개의 기가 바이 테스 (GB)로 구성된 포괄적 인 Amazon Review Data (2018) 데이터 세트와 함께 개발 된 제품 추천 시스템에 연결된 웹 애플리케이션을 포함합니다. Kafka, Big Data Analytics (DS2004) 과정의 최종 프로젝트의 일환으로.
제품 추천 시스템은 데이터 분석 및 기계 학습 기술을 사용하여 관심사, 과거 구매 및 탐색 기록에 따라 고객에게 제품을 제안하는 소프트웨어 유형입니다. 이러한 시스템은 Amazon.com과 같은 전자 상거래 웹 사이트에서 찾을 수 있으며 사용자에게 실시간으로 개인화 된 권장 사항을 제공하도록 설계되었습니다. 추천 시스템은 사용자 행동, 제품 속성 및 거래 기록과 같은 방대한 양의 데이터를 분석하여 작동합니다. 이 데이터를 기반으로 시스템은 사용자의 관심사 및 선호도와 관련된 권장 사항을 생성합니다. 예를 들어, 사용자가 이전에 특정 주제에 관한 책을 구입 한 경우 추천 시스템은 동일한 주제 또는 관련 주제에 대한 다른 책을 제안 할 수 있습니다.
Amazon Review Data (2018) 데이터 세트는 구매 기록을 기반으로 사용자에게 개인화 된 제품 제안을 제공하는 제품 추천 시스템과 플랫폼에서 제품을 검토하고 평가 한 다른 사용자의 만족도를 제공하는 제품 추천 시스템을 교육하는 데 활용 될 수 있습니다. 그러나 데이터 세트는 광대하기 때문에 기계 학습 모델의 과적합 및 부적합을 피하기 위해 제품 추천 시스템에 효과적으로 기여할 관련 기능을 신중하게 분석하고 선택하는 것이 중요합니다.
Amazon Review Data (2018) DataSet Amazon Review Data (2018) Analysis.ipynb, 1-38) 에서 탐색 데이터 분석 (EDA)을 수행하는 방법과 유사하게 제품 권장 모델을 훈련하기위한 추론 통계 방법을 사용했습니다. 전체 모집단에 대한 추론을하기 위해 샘플을 사용하는 근거는 전체 데이터 세트를 처리하는 것과 관련된 계산 부담을 최소화하는 것입니다. 딥 러닝에는 일반적으로 많은 양의 데이터가 필요하지만, 작은 데이터 세트에서도 강력한 훈련 방법론을 개발하는 데 기계 학습이 효과적으로 사용될 수 있습니다. 이것은 제품 추천 시스템의 주요 목표 인 가설 중심의 연구에 특히 유용합니다. (Vabalas et al., 2019) 어쨌든, 모든 데이터 세트는 본질적으로 더 많은 인구의 하위 집합이라는 점에 유의해야합니다.
결과의 정확성을 보장하려면 데이터의 잠재적 편향을 신중하게 분석하고 완화하는 것이 중요합니다. 이는 기계 학습에서 특히 중요하며, 이는 성능 추정치가 왜곡 될 수있는 편견에 민감합니다. 이 문제를 해결하기 위해, 우리는 이전에 논의한 계층화 된 랜덤 샘플링 접근법을 적용하여 원래 데이터 세트에서와 동일한 제품 분포를 유지하면서 모집단에서 10,000,000 개의 레코드를 추출합니다. (compress.py, 1-61) 샘플 크기가 상당히 크기 때문에 Apache Parquet 파일 형식으로 압축되어 데이터 세트의 크기가 90%이상 줄어 듭니다.
최소 제곱 (ALS)을 번갈아 가면 제품 추천 시스템을 개발하는 데 사용되는 협업 필터링 알고리즘입니다. 이 알고리즘은 사용자 항목 상호 작용에 영향을 미치는 잠재적 또는 숨겨진 요소를 사용자-항목 등급 매트릭스를 사용자 및 항목 잠재 요인을 나타내는 두 개의 저 순위 행렬로 분해함으로써 학습하는 것을 목표로합니다.
최소 제곱 (ALS)을 번갈아 가면 반복적으로 작동하여 한 번의 잠재 요인 세트를 고정하고 최소 제곱 최적화 알고리즘을 사용하여 다른 세트를 해결하는 것 사이를 번갈아 가며. 특히, 각 반복에서 알고리즘은 항목 잠재 요인을 수정하고 최소 제곱 최적화를 사용하여 사용자 잠재 요인을 해결 한 다음 최소 제곱 최적화를 사용하여 사용자 잠재 요인을 수정하고 항목 잠재 요인을 해결합니다.
최소 제곱 (ALS)을 번갈아 가면 제품 추천 시스템에 몇 가지 장점이 있습니다. 특히 크고 드문 드문 데이터 세트의 경우 확장 가능하고 계산적으로 효율적입니다. 사용자 항목 상호 작용이 특정 등급이 아닌 존재하는 것으로 알려진 것으로 알려진 암시 적 피드백 데이터를 처리 할 수 있습니다. 또한 모든 사용자가 모든 항목을 평가 한 것은 아닙니다. 또한 ALS (Alternating Liter Squares)는 항목 권장 사항을 실시간으로 제공하여 온라인 추천 시스템에 적합합니다.
Product Recommendation Model.ipynb - Amazon Review Data (2018) 데이터 세트에서 훈련 및 테스트 된 제품 추천 시스템의 구현 (MLLIB)을 포함합니다.srcdata.py - javaScript 객체 표기법 (JSON) 파일에서 데이터 세트를 저장하기위한 소스 코드는 컬렉션으로 MongODB 데이터베이스에 MongoDB 데이터베이스에 있습니다.srccompress.py - MongODB 데이터베이스에 저장된 데이터 세트에서 지정된 샘플 크기의 계층화 된 임의 샘플을 추출하기위한 소스 코드는 컬렉션으로서이를 Apache Parquet 파일로 저장합니다.srcvalidate.py - 소스 코드 실용적인 예제를 사용하여 훈련 된 제품 추천 시스템의 정확성과 기능을 검증하는 소스 코드.modelproduct_recommendation_model - 제품 추천 시스템을위한 숙련 된 머신 러닝 모델이 포함 된 디렉토리.appapplication.py - Apache Kafka 클러스터를 통한 제품 권장 시스템과 관련된 웹 응용 프로그램 소스 (FLASK).apprecommendation.py - 제품 권장 사항 생성을 가능하게하는 제품 추천 시스템에 대한 숙련 된 머신 러닝 모델에 연결된 Apache Kafka 클러스터의 소스 코드.templates - 웹 페이지 ( login.html , dashboard.html , review.html , loading.html 및 recommendation.html )의 소스 코드가 포함되어 있습니다.static - 웹 애플리케이션 (FLASK)에서 사용하는 모든 아이콘과 시각적 요소가 포함되어 있습니다..hintrc - 특정 설정 및 규칙을 지정하여 Eslint의 동작을 사용자 정의하기위한 구성 파일. All_Amazon_Review.json.gz 파일을 다운로드하십시오.srcdata.py 실행하여 JAVASCRIPT OBJERTION (JSON) 파일의 데이터 세트를 컬렉션으로 MongODB 데이터베이스에 저장하십시오 (MongoDB가 이미 설정되고 실행 중인지 확인).srccompress.py 실행하여 MongoDB에 저장된 데이터 세트에서 지정된 크기의 계층화 된 임의 샘플을 추출하고 샘플을 Apache Parquet 파일로 저장하십시오.Product Recommendation Model.ipynb 파일 (1-16)을 실행하여 수집을 변환하고 영구 액세스를 위해 MongoDB에 다시 저장하십시오 (전체 파일을 실행할 필요가 없음).apprecommendation.py 추천 .appapplication.py 실행하고 제공된 링크를 호스트 포트로 엽니 다./dashboard 페이지에서 리뷰 버튼을 클릭하고 내용을 제출하십시오./loading 페이지에서 5 분 대기 시간이 있습니다./recommendation 페이지로 리디렉션됩니다. 소스 코드 파일은 MacOS Ventura 용으로 특별히 작성되었으며 다른 운영 체제에서 적절한 실행을 보장하기 위해 수정이 필요할 수 있습니다.
이 프로젝트는 그 프로젝트에 기여한 특별한 사람들 덕분에 존재합니다.