1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn học kỹ thuật và công nghệ dữ liệu lớn đề tài phân tích dữ liệu lớn đề xuất sản phẩm cho người dùng

30 3 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân tích dữ liệu lớn đề xuất sản phẩm cho người dùng
Tác giả Đỗ Minh Nhật, Trần Nam Anh, Hà Như Ý
Người hướng dẫn TS. Trần Hồng Việt, Ths. Ngô Minh Hương
Trường học Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật và Công nghệ Dữ liệu Lớn
Thể loại Báo cáo môn học
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 4,13 MB

Nội dung

Với lượngdữ liệu khổng lồ được tạo ra hàng ngày từ các hoạt động trực tuyến và mạng xã hội, việctận dụng những dữ liệu này để đưa ra các gợi ý sản phẩm phù hợp cho người dùng đã trởthành

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI

VIỆN TRÍ TUỆ NHÂN TẠO -

BÁO CÁO MÔN HỌC KỸ THUẬT VÀ CÔNG NGHỆ DỮ LIỆU LỚN

ĐỀ TÀIPhân tích dữ liệu lớn đề xuất sản phẩm cho người dùng

Nhóm sinh viên thực hiện: Đỗ Minh Nhật - Trần Nam Anh - Hà Như Ý

Giảng viên hướng dẫn: TS Trần Hồng Việt

Ths Ngô Minh Hương

Trang 2

MỞ ĐẦU

Trong thời đại công nghệ số hiện nay, sự bùng nổ dữ liệu đã mở ra nhiều cơ hội và tháchthức mới cho các doanh nghiệp trong việc hiểu và phục vụ khách hàng tốt hơn Với lượngdữ liệu khổng lồ được tạo ra hàng ngày từ các hoạt động trực tuyến và mạng xã hội, việctận dụng những dữ liệu này để đưa ra các gợi ý sản phẩm phù hợp cho người dùng đã trởthành một yếu tố then chốt trong chiến lược kinh doanh của nhiều công ty

Dự án phân tích dữ liệu lớn nhằm đề xuất gợi ý sản phẩm cho người dùng được triển khaivới mục tiêu tối ưu hóa trải nghiệm mua sắm của khách hàng và tăng cường doanh số bánhàng Hệ thống gợi ý này sử dụng các kỹ thuật phân tích dữ liệu lớn, kết hợp với cácthuật toán máy học để phân tích hành vi và sở thích của người dùng, từ đó đưa ra các đềxuất sản phẩm cá nhân hóa và phù hợp với nhu cầu của từng khách hàng

Dự án này sẽ tập trung vào việc áp dụng các phương pháp phân tích và mô hình học máyđể xây dựng một hệ thống gợi ý phim thông minh Kết quả mong đợi là một hệ thống cókhả năng học hỏi liên tục từ dữ liệu mới, cải thiện độ chính xác của các gợi ý và mang lạigiá trị thực tiễn

Báo cáo này bao gồm:Chương 1: Tổng quan về dữ liệu lớnChương 2: Xây dựng hệ thống với thuật toán gợi ý sản phẩmChương 3: Thực nghiệm và đánh giá

Chương 4: Kết luận và hướng phát triển

Trang 3

MỤC LỤC

MỞ ĐẦU 2

MỤC LỤC 3

CHƯƠNG 1: TỔNG QUAN VỀ DỮ LIỆU LỚN 5

Giới thiệu Big Data 5

1 Định nghĩa: 5

2 Đặc trưng của Big Data 5

Giới thiệu về Hadoop 7

PySpark 8

1 Giới thiệu 8

2 Kiến trúc và thành phần của PySpark: 8

2.1 Kiến trúc của Apache Spark 8

3 Sử dụng MapReduce cho Content-Based Filtering: 14

Thuật toán Collaborative Filtering 14

1 Giới thiệu: 14

2 Quy trình thực hiện: 14

3 Sử dụng MapReduce cho Content-Based Filtering: 15

4 Sử dụng thuật toán ALS cho Collaborative Filtering: 16

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 21

Trang 4

4.2 Hướng phát triển: 27

Tài liệu tham khảo 29

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ DỮ LIỆU LỚN Giới thiệu Big Data

1 Định nghĩa:

Big Data là thuật ngữ mô tả khối lượng dữ liệu lớn và phức tạp, mà các công cụtruyền thống không thể xử lý hiệu quả Big Data không chỉ đề cập đến khối lượngdữ liệu mà còn bao gồm sự đa dạng, tốc độ, và giá trị của dữ liệu Có thể nói, Dữliệu lớn là khối lượng lớn, tốc độ cao và/hoặc loại hình thông tin rất đa dạng màyêu cầu phương thức xử lý mới để cho phép tăng cường ra quyết định, khám phábên trong và xử lý tối ưu

2 Đặc trưng của Big DataVolume (Khối lượng): Khối lượng dữ liệu lớn cần phải xử lý, ở đây ta nói đến

những bộ dữ liệu khổng lồ, có thể đạt đến hàng terabyte (TB)

Velocity (Tốc độ): Dữ liệu được tạo ra và xử lý với tốc độ cao, thường là trong

thời gian thực

Variety (Đa dạng): Dữ liệu có nhiều dạng khác nhau, từ văn bản, hình ảnh, video

đến các dạng dữ liệu phi cấu trúc

Veracity (Độ tin cậy): Đảm bảo tính chính xác và tin cậy của dữ liệu, đòi hỏi các

phương pháp để làm sạch và xác minh dữ liệu.Có thể nói cả 4 đặc trưng trên của Big Data cốt để hướng đến đặc trưng số 5:

Value (Giá trị): Dữ liệu lớn gồm những giá trị kinh tế tiềm ẩn mà ta cần phải tìm

cách khai thác đúng cách từ đó mang lại những thông tin quý báu và lợi ích kinhdoanh

Toàn bộ các đặc điểm chính của Big Data được trình bày trong hình 1.1

Trang 6

Hình 1.1: 5 đặc điểm chính của Big Data

3 Các nguồn dữ liệu lớn

Dữ liệu lớn có thể đến từ nhiều nguồn khác nhau như:

● Dữ liệu trong kinh doanh ● Dữ liệu sinh ra từ các trang mạng xã hội ● Dữ liệu sinh ra từ các hệ thống ERP ● Dữ liệu sinh ra theo thời gian thực từ các cảm biến, đồ dùng điện tử như IoT

(Internet of Things)Về tổng quan các nguồn dữ liệu lớn được thể hiện ở hình 1.2

Trang 7

Hình 1.2: Các nguồn dữ liệu lớn

Giới thiệu về Hadoop

Trong các ứng dụng Big Data việc xử lý dữ liệu một cách phân tán là vô cùng quantrọng, vì lẽ đó Apache Hadoop ra đời như là một framework mã nguồn mở được sửdụng để lưu trữ và xử lý các tập dữ liệu lớn trên các cụm máy phân tán Hadoopđược thiết kế để mở rộng từ một vài máy chủ lên hàng ngàn, triệu máy chủTổng quan Hadoop gồm 4 module chính:

● Hadoop Distributed File System (HDFS): Đây là hệ thống lưu trữ file

phân tán, cung cấp khả năng lưu trữ dữ liệu lớn trên nhiều máy chủ, đảm bảotính khả dụng và độ tin cậy cao khi sao chép dữ liệu

● Hadoop Common: Bao gồm một loạt các tiện ích hỗ trợ cho các module

khác của Hadoop

● Yet Another Resource Negotiator: Đây là một hệ thống quản lý tài nguyên,

chịu trách nhiệm phân bổ tài nguyên hệ thống cho các ứng dụng chạy trêncụm Hadoop

Trang 8

● Hadoop MapReduce: Là một dạng công cụ hay mô hình lập trình cung cấp

khả năng chạy và xử lý các tác vụ song song cũng như tạo kết quả trên tậpdữ liệu lớn

Trong bối cảnh hiện nay, khi lượng dữ liệu người dùng tăng đột biến, việc sử dụngthuần Hadoop MapReduce cho các thuật toán gợi ý người dùng trở nên bất khả thi- hay nói cách khác là khó thực hiện trong thời gian ngắn, bởi vậy nhóm phát triểnsử dụng Apache Spark thay thế cho Hadoop MapReduce với thời gian chạy và tốcđộ xử lý vượt trội hơn; cụ thể, các thuật toán trong dự án đều được cài đặt bằngPySpark Dưới đây sẽ là phần giới thiệu về PySpark cũng như Apache Spark

PySpark 1 Giới thiệu

PySpark là một API của Apache Spark dành cho ngôn ngữ lập trình Python.Apache Spark là một framework mã nguồn mở mạnh mẽ dùng để xử lý và phântích dữ liệu lớn theo cách phân tán và song song PySpark cho phép các nhà pháttriển và nhà khoa học dữ liệu sử dụng Spark với Python, mang lại sự linh hoạt vàtiện lợi của Python cùng với hiệu suất cao và khả năng mở rộng của Spark

2 Kiến trúc và thành phần của PySpark:2.1 Kiến trúc của Apache Spark

Apache Spark có kiến trúc dựa trên cụm (cluster) bao gồm các thành phần chính:

● Driver Program: Điều khiển việc thực thi của ứng dụng Spark Driver tạo

ra SparkContext, xác định các RDDs (Resilient Distributed Datasets), vàthực hiện các hành động trên chúng

● Cluster Manager: Quản lý các tài nguyên trong cụm máy tính, chẳng hạn

như YARN, Mesos hoặc Kubernetes

● Workers: Các máy tính trong cụm thực hiện các tác vụ (tasks) được giao

bởi Driver

Trang 9

2.2 Thành phần của PySpark

PySpark bao gồm các thành phần chính:

1 SparkContext: Là cổng vào của Spark, dùng để kết nối với cụm Spark 2 RDD (Resilient Distributed Datasets): Cấu trúc dữ liệu cơ bản trong

Spark, giúp xử lý dữ liệu theo cách phân tán và bất biến

3 DataFrame: API cấp cao hơn của RDD, cung cấp giao diện dữ liệu dạng

bảng với các thao tác SQL và tích hợp tốt với các công cụ dữ liệu khác nhưPandas

4 Spark SQL: Cho phép thao tác và xử lý dữ liệu thông qua ngôn ngữ SQL 5 MLlib (Machine Learning Library): Thư viện học máy của Spark, cung

cấp các thuật toán và công cụ học máy phân tán

6 GraphX: Thư viện xử lý đồ thị và phân tích đồ thị 2.3 So sánh Apache Spark với Hadoop MapReduce

Do Apache Spark chạy trên trực tiếp trên bộ nhớ (in-memory processing) do đó nónhanh hơn đáng kể so với Hadoop MapReduce, điều này thể hiện trong một sốbenchmark giữa 2 framework như hình 1.3, 1.4 và 1.5

Trang 10

Hình 1.3: So sánh thời gian chạy trương trình WordCount

Trang 11

Hình 1.4: So sánh thời gian xử lý dữ liệu lớn

Hình 1.5: So sánh thời gian chạy Linear Regression

Do đó, việc chọn Apache Spark thay cho Hadoop MapReduce trong bài toán gợi ý,đề xuất sản phẩm cho người dùng là hoàn toàn hợp lý bởi có thể thấy hiện nay cáchệ thống lớn như Netflix, Spotify, Amazon, … việc gợi ý mỗi sản phẩm cho ngườidùng thường được tính bằng giây và thay đổi liên tục theo thời gian khi người dùngtương tác (rating, click chuột, xem, mua, …) với sản phẩm

2.4 Ứng dụng của PySpark

● Xử lý và Phân tích Dữ liệu Lớn: PySpark được sử dụng rộng rãi để xử lý

và phân tích dữ liệu lớn trong nhiều lĩnh vực khác nhau như thương mại điện

Trang 12

tử, tài chính, y tế và công nghiệp Các công ty như Netflix, Amazon và eBaysử dụng PySpark để phân tích hành vi người dùng, dự đoán xu hướng và tốiưu hóa dịch vụ của họ.

● Học Máy và Trí Tuệ Nhân Tạo: Với thư viện MLlib, PySpark cung cấp các

công cụ và thuật toán học máy phân tán, cho phép triển khai các mô hìnhhọc máy trên các tập dữ liệu lớn Điều này giúp cải thiện độ chính xác vàhiệu quả của các mô hình dự đoán

● Xử lý Dữ liệu Thời Gian Thực: PySpark hỗ trợ xử lý dữ liệu thời gian thực

thông qua Spark Streaming, cho phép xử lý và phân tích luồng dữ liệu liêntục từ các nguồn dữ liệu như Kafka, Flume và Kinesis

Trang 13

CHƯƠNG 2: XÂY DỰNG HỆ THỐNG VỚI THUẬT

TOÁN GỢI Ý SẢN PHẨM Thuật toán content-based filtering

1 Giới thiệu:

Thuật toán Content-based filtering cung cấp các đề xuất cho người dùng dựa trênsự phân tích nội dung của các mục đã được người dùng đánh giá cao hoặc quantâm trước đó

Content-based filtering thường được sử dụng trong các lĩnh vực như thương mạiđiện tử, dịch vụ streaming, và mạng xã hội để gợi ý sản phẩm, phim ảnh, bài viết,và nhiều loại nội dung khác

2 Quy trình thực hiện:Bước 1: Thu thập dữ liệu

- Dữ liệu sản phẩm Ví dụ: Tên sản phẩm, thể loại, mô tả sản phẩm, - Dữ liệu lịch sử tương tác của người dùng: lịch sử người dùng đánh giá sản

phẩm

Bước 2: Trích xuất đặc trưng

- Đặc trưng của sản phẩm: biểu diễn một tập các đặc trưng như thể loại, lĩnhvực, từ khóa, mô tả thành các vector đặc trưng

- Đặc trưng người dùng: Tạo vector đặc trưng người dùng dựa vào lịch sửtương tác VD trung bình đặc trưng sản phẩm yêu thích

Bước 3: Tính toán độ tương đồng

- Tính toán độ tương đồng giữa đặc trưng người dùng và đặc trưng sản phẩm.Các biện pháp có thể sử dụng như cosine similarity hoặc Euclidean distance

Trang 14

Bước 4: Đưa ra đề xuất

- Xếp hạng các sản phẩm dựa trên độ tương đồng đã tính ở bước 3- Đưa ra đề xuất sản phẩm cho người dùng

3 Sử dụng MapReduce cho Content-Based Filtering:3.1 Giai đoạn Map:

Đặc trưng sản phẩm: Tạo các cặp khóa - giá trị, trong đó khóa là ID sản phẩm, giátrị là các vector đặc trưng của sản phẩm

Xử lý dữ liệu lịch sử tương tác người dùng: Tạo ra các cặp khóa - giá trị, trong đókhóa là ID người dùng, giá trị là (vector đặc trưng sản phẩm, đánh giá)

3.2 Giai đoạn Shuffle và Sort: Sắp xếp các cặp khóa - giá trị và nhóm lại dựa

2 Quy trình thực hiện:Bước 1: Thu thập dữ liệu

Trang 15

- Dữ liệu lịch sử tương tác của người dùng: lịch sử người dùng đánh giá sảnphẩm.

Bước 2: Trích xuất đặc trưng

- Xây dựng ma trận đánh giá người dùng và sản phẩm

Bước 3: Tính toán độ tương đồng

- Tính toán độ tương đồng giữa các người dùng Các biện pháp có thể sử dụngnhư cosine similarity hoặc correlation coefficient

Bước 4: Đưa ra đề xuất

- Tính điểm đề xuất sản phẩm cho mỗi người dùng: dựa trên độ tương đồng

giữa các người dùng- Xếp hạng sản phẩm tương đồng dựa trên điểm đánh giá sản phẩm- Đưa ra đề xuất sản phẩm cho người dùng

3 Sử dụng MapReduce cho Content-Based Filtering:3.1 Giai đoạn Map:

Xử lý dữ liệu lịch sử tương tác người dùng: Tạo ra các cặp khóa - giá trị, trong đókhóa là ID người dùng, giá trị là (ID sản phẩm, đánh giá)

3.2 Giai đoạn Shuffle và Sort: Sắp xếp các cặp khóa - giá trị và nhóm lại dựa

trên khóa

3.3: Giai đoạn Reduce:

Xây dựng ma trận đánh giá người dùng - sản phẩmTính toán độ tương đồng giữa các người dùngTính toán điểm các sản phẩm cho mỗi người dùngXếp hạng sản phẩm

Xuất cặp khóa - giá trị : user_id - danh sách gợi ý

Trang 16

4 Sử dụng thuật toán ALS cho Collaborative Filtering:4.1 Giới thiệu:

Alternating Least Squares (ALS) là một kỹ thuật phân rã ma trận hiệu quả, đượcdùng trong collaborative filtering để tạo ra các hệ thống gợi ý cá nhân hóa.Thuậttoán này phân rã ma trận đánh giá của người dùng đối với các mục thành hai matrận nhỏ hơn để tìm ra các yếu tố tiềm ẩn (latent factors) đại diện cho người dùngvà các mục ALS được ưa chuộng nhờ khả năng mở rộng và tính hiệu quả khi xử lýcác tập dữ liệu lớn

4.2 Nguyên lý hoạt động:

Ma trận đánh giá𝑅 có kích thước𝑚 × 𝑛(với𝑚là số người dùng,𝑛là số mục)được phân ra thành ma trận𝑈(ma trận người dùng) và𝑉(ma trận sản phẩm) vớikích thước𝑚 × 𝑘và𝑘 × 𝑛, trong đó𝑘là yếu tố tiềm ẩn Mục tiêu là tìm các matrận𝑈 𝑉và sao cho tích chúng gần ma trận gốc𝑅nhất:𝑅 ≈ 𝑈𝑉 𝑇

4.3 Quy trình thực hiện: Bước 1: Khởi tạo ma trận𝑈 𝑉và

Bước 2: Tối ưu hóa luân phiên

Cập nhật ma trận người dùng:𝑈 = arg min𝑈

{(𝑖,𝑗)} ∈ 𝑅}∑ (𝑅𝑖𝑗− 𝑈 𝑉 ) + λ||𝑈 ||𝑖 𝑗𝑇 2 𝑖 2Cập nhật ma trận sản phẩm:𝑉 = arg min𝑉

{(𝑖,𝑗)} ∈ 𝑅}∑ (𝑅𝑖𝑗− 𝑈 𝑉 ) + λ||𝑉 ||𝑖 𝑗𝑇 2 𝑖 2

Bước 3: Lặp lại bước 2 đến khi hội tụ hoặc đạt số lần lặp tối đa 4.4 Sơ đồ ALS hoạt động:

Trang 17

Hình 2.2: Luồng hoạt động của thuật toán ALS

Trang 18

Hình 2.3: Luồng hoạt động của thuật toán ALS trên PySpark

Trang 19

Xây dựng ETL pipeline cho hệ thống

Nhóm phát triển đề xuất hệ thống tổng quan như sau:

Hình 2.2: Tổng quan luồng ETL của hệ thống

Môi trường cài đặt nhóm phát triển dự kiến sẽ nằm trên GCP (Google CloudPlatform)

Ở đây, đi từ Data source chúng ta sẽ thu thập dữ liệu từ Netflix hoặc IMDb, dữ liệubao gồm UserId, MoviesID và rating Sau đó dữ liệu được đi qua ETL với cácbước như sau:

Bước 1: Dữ liệu từ Data source được Extract và Transform bằng dịch vụ Cloud

Scheduler/Composer trên GCP (Google Cloud Platform) - có thể được viết bằngAirflows đồng thời Scheduler và Composer cũng có nhiệm vụ điều hướngcrawler.py script crawl lượng dữ liệu về vào lúc nào và khi nào

Bước 2a: Dữ liệu có thể được lưu vào Google BigQuery để phục vụ cho việc truy

vấn, join các bảng biểu phức tạp

Bước 2b: Dữ liệu luôn được lưu vào (load) Google Cloud Storage dưới dạng Data

Warehouse

Bước 3: Thực hiện một số thử nghiệm với data trích xuất ra từ Data Warehouse,

nếu mô hình gợi ý đem lại kết quả tốt (RMSE 0.8 - 0.9), tiến hành sang bước 4

Trang 20

Bước 4: Ta thực hiện huấn luyện mô hình bằng thuật toán ALS (Do thuật toán này

mang lại kết quả tốt nhất và nhanh nhất - Được trình bày ở chương 3) sử dụng dịch

vụ Vertex AI với PySpark

Bước 5: Sau khi huấn luyện thành công model ta chuyển model thành một API sử

dụng Fast API như một dịch vụ (service) để thử nghiệm với môi trường bên ngoài

Trang 21

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ3.1 Bộ dữ liệu:

Sử dụng 2 bộ dữ liệu để thử nghiệm là MovieLens 2M gồm chứa 2.204.506 dữ liệuvới các cột là User_Id, Movie_Name, Rating, Genre và Year và Large MoviesDataset với 200000 movies và 25 triệu ratings khác nhau trên Kaggle

3.2 Thuật toán Content-based Filtering: 3.2.1 Kết quả

Hình 3.1: Kết quả chạy thuật toán Content-based filtering

Trang 22

3.2.2 Phân tích và đánh giá: Thuật toán cho ra kết quả khá thấp vì có nhiều hạn chế:

● Giới hạn về feature matrix: Thuật toán yêu cầu các item được mô tả chi

tiết và cụ thể Nếu thông tin mô tả của các item không đầy đủ hoặc thiếuchính xác, hệ thống sẽ gặp khó khăn trong việc gợi ý chính xác

Ở đây, bộ dữ liệu thử nghiệm chỉ trích xuất thông tin thể loại phim mà khôngcó các đặc trưng khác như đạo diễn, diễn viên… dẫn đến thiếu thông tin,thuật toán hoạt động không hiệu quả

● Thiếu khả năng khám phá: Hệ thống chỉ dựa trên các sản phẩm mà người

dùng đã tương tác từ trước Điều này dẫn đến việc đưa ra gợi ý các sản phẩmmới mà người dùng chưa từng khám phá là rất khó Hay nói cách khác,người dùng có thể bỏ lỡ các sản phẩm tiềm năng hoặc các sản phẩm mới ramắt mà họ có thể quan tâm nhưng chưa từng tương tác trước đó

● Vấn đề cold start của người dùng: Đối với người dùng mới hoặc người

dùng chưa từng đánh giá bất kỳ sản phẩm nào, hệ thống sẽ ở tình trạngkhông có dữ liệu lịch sử tương tác của người dùng Lúc này, Hệ thống khôngcó đủ thông tin xây dựng hồ sơ sở thích dẫn đến việc gợi ý không chính xáchoặc không có gợi ý

Mặc dù có nhiều hạn chế, thuật toán vẫn được sử dụng rộng rãi vì các ưu điểm sau:

● Không phụ thuộc vào dữ liệu người dùng khác, cần ít dữ liệu huấn

luyện: Thuật toán chỉ dựa trên thông tin về sản phẩm và sở thích cá nhân

của người dùng mà không cần thông tin của những người dùng khác

● Khả năng đề xuất cá nhân hóa: Thuật toán có thể tạo ra các đề xuất cá

nhân hóa dựa trên sở thích và hành vi của từng người dùng cụ thể

Ngày đăng: 25/09/2024, 16:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w