Coder Social home page Coder Social logo

movies_recommedation_system_on_bigdata's Introduction

myrecommender

Kiến trúc xây dựng

Toàn bộ kiến trúc

Raw data

  • Dữ liệu raw của tập dữ liệu MovieLens được lưu trong folder. Tập dữ liệu sử dụng để thực nghiệm là movielens_1M
  • Dữ liệu được crawler, dùng python để download trong thư mực crawler.
  • Chuyển dữ liệu về dạng .csv và lưu vào folder enrich
  • Thêm tên các cột cho data: userID, itemID, rating, timestamp, ... (chạy file changetocsv để thực thi)

Enrich data

Dữ liệu được tiền xử lý theo luồng sau:

  • Về phương pháp content_based similarity: Dữ liệu được thu thập thêm được lưu ở file movies_tags có thêm thông tin về các mục của movies. Dữ liệu này sau khi qua file /notebooks/content_base.ipynb sẽ chuyển dữ liệu về dạng vector similarity, các vector này giúp ta lấy được thông tin các movies nào là tương tự nhau, từ đó xếp hạng độ tương đồng giữa các movies và giúp người dùng tìm được một bộ phim tương tự với phim mà mình đã xem.

  • Về phương pháp LightGCN: Sử dụng thuật toán đã build từ trước của microsoft, thuật toán này sẽ biến các node userID và movieID thành các vector embeddings, các vector này sẽ được cập nhập sau mỗi lần chạy bằng cách cộng tổng các vector emddings với các userID và movieID được kết nối với nó. Các vetor này được cập nhật ở mỗi lớp và sau đó cộng tổng có trọng số các lớp này lại với nhau. Sau đó dùng hàm độ lỗi để tối ưu thuật toán.

Làm giàu dữ liệu

  • Tạo dữ liệu giả lập streaming bằng file createStreamingdata -> dữ liệu được tạo ra sẽ lưu trong folder raw chờ để đưa lên Azure Blob Storage

Process

  • Sau khi chạy file unionData sẽ lưu các ratings mới bằng cách lấy rating của ngày trước đó + ratings mới được tạo ra bước làm giàu dữ liệu. Ta thu dược folder mới chứa dữ liệu ratings.csv mới. Phục vụ cho mục đích huấn luyện

Content-based Similarity

Chạy file /notebooks/content_base.ipynb để lấy ra kết quả tính toán độ tương đồng giữa các movies, dựa trên tag movies mà nhóm thu thập được trên một dữ liệu khác. Link nguồn dữ liệu source

Deep Learning & Recommendation Systems

Deep Learning

Dùng model LightGCN để xây dựng hệ khuyến nghị GCNs có thể được sử dụng để mã hóa tín hiệu tương tác trong các embeddings. Các mục đã tương tác có thể được coi là đặc điểm của người dùng, vì chúng cung cấp bằng chứng trực tiếp về sở thích của người dùng. Tương tự, người dùng tiêu thụ một mục có thể được xem xét như là đặc điểm của mục và được sử dụng để đo lường sự tương đồng hợp tác giữa hai mục. Một cách tự nhiên để tích hợp tín hiệu tương tác vào nhúng là bằng cách khai thác kết nối cấp cao từ tương tác người dùng-mục.

Để làm rõ hơn về phương pháp LigtGCN, ta cần quan tâm đến hai thiết kế chính: tổng hợp vùng lân cận trong lớp và kết hợp giữa các lớp.

  • Trong mỗi lớp, đối với mỗi người trong đồ thị, tính toán việc cập nhật embeddings của nó dưới dạng tổng trọng số của các embeddings từ tất cả các mục lân cận của nó (phim) và ngược lại

  • Khi kết hợp lớp, thay vì lấy embeddings của lớp K cuối cùng, LightGCN tính tổng có trọng số của các phần nhúng ở các lớp khác nhau

Mô hình dự đoán được định nghĩa là đo lường sự tương đồng giữa người dùng và phim, do đó cho phép dự đoán khả năng người dùng thích bộ phim đó.

Để đào tạo mô hình, sử dụng hàm độ lỗi Bayesian Personalized Ranking (BPR) khuyến khích dự đoán về một mục nhập gần kề cao hơn so với các mục không gần kề của nó:

Curated

  • Để tổng hợp dữ liệu, chạy file toCurated để lưu dữ liệu bằng cách merge dữ liệu user, dữ liệu movies và dữ liệu ratings lại với nhau.

Visualize

Dashboard ngày 8-12-2023

Alt text

Dashboard ngày 9-12-2023

Alt text

Dashboard ngày 10-12-2023

Alt text

Website Demo

Tổng kết luồng xử lý

  • Mỗi ngày, dữ liệu trên hệ thóng sẽ cập nhật mới về bằng Synapse Analytics
  • Chạy file uninonData.ipynb để gộp dữ liệu
  • Chạy file lightgcn.ipynb để thực hiện thuật toán lấy kết quả khuyến nghị
  • Chạy file toCurated.ipynb để lấy kết quả dữ liệu cuối cùng
  • Dùng Synapse Analytics để tiếp tục vận hành hệ thống đã xây dựng
  • Dùng PowerBI để truy cập dữ liệu mới để trực quan, tạo bảng Dashboard mới
  • Dùng CosMosDB để lưu trữ kết quả và xây dựng Web

movies_recommedation_system_on_bigdata's People

Contributors

long3309 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.