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

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim

69 0 0
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 đề Xây dựng Data Platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Tác giả Lê Hoàng Khang, Lê Phước Yên
Người hướng dẫn ThS. Nguyễn Văn Thành
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 10,23 MB

Cấu trúc

  • Chương 1. MỞ ĐẦU (17)
    • 1.1. Tính cấp thiết của đề tài (6)
    • 1.2. Mục đích và nhiệm vụ nghiên cứu (17)
    • 1.3. Đối tượng nghiên cứu (6)
    • 1.4. Phạm vi nghiên cứu (6)
    • 1.5. Phương pháp nghiên cứu (6)
    • 1.6. Bố cục khóa luận (6)
  • Chương 2. CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) (19)
    • 2.1. Data Platform (6)
      • 2.1.1. Định nghĩa (6)
      • 2.1.2. Thành phần chính của Data Platform (19)
      • 2.1.3. Lợi ích của Data Platform (6)
      • 2.1.4. Một vài Data Platform tiêu biểu (20)
    • 2.2. Các công nghệ sử dụng (7)
      • 2.2.1. Docker (24)
      • 2.2.2. Apache Spark (26)
      • 2.2.3. Minio (27)
      • 2.2.4. Apache Iceberg (28)
      • 2.2.5. Flask (29)
      • 2.2.6. Apache Superset (31)
      • 2.2.7. Dagster (32)
    • 2.3. Mô hình gợi ý và bài toán phân tích cảm xúc (33)
      • 2.3.1. Vấn đề chung của bài toán (33)
      • 2.3.2. Mô hình gợi ý Content – Based Filtering (7)
      • 2.3.3. Bài toán phân tích cảm xúc (37)
  • Chương 3. GIẢI PHÁP ĐỀ XUẤT (39)
    • 3.1. Dữ liệu (7)
    • 3.2. Mô tả nội dung nghiên cứu, phương pháp nghiên cứu (7)
    • 3.3. Tổng thể giải pháp đề xuất (7)
    • 3.4. Quy trình hoạt động (7)
  • Chương 4. THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ (50)
    • 4.1. Data Lineage (7)
    • 4.2. Thiết kế Data Lakehouse (7)
    • 4.3. Xây dựng báo cáo (7)
    • 4.4. Xây dựng mô hình (7)
    • 4.5. Xây dựng ứng dụng (7)
  • Chương 5. KẾT LUẬN (18)
    • 5.1. Kết quả đạt được (7)
    • 5.2. Hạn chế (7)
    • 5.3. Hướng phát triển (7)
  • TÀI LIỆU THAM KHẢO (7)

Nội dung

Mục đích và nhiệm vụ nghiên cứu Mục tiêu của khóa luận hướng đến là hiện thực vận dụng các kiến trúc Data Platform cho bài toán lưu trữ dữ liệu phim ảnh qua các công việc như sau: • T

CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN)

Data Platform

2.1.1 Định nghĩa 2.1.2 Thành phần chính của Data Platform 2.1.3 Lợi ích của Data Platform

Các công nghệ sử dụng

2.3 Mô hình gợi ý và bài toán phân tích cảm xúc

2.3.1 Vấn đề chung của bài toán 2.3.2 Mô hình gợi ý Content – Based Filtering 2.3.3 Bài toán phân tích cảm xúc

Chương 3 GIẢI PHÁP ĐỀ XUẤT

3.2 Mô tả nội dung nghiên cứu, phương pháp nghiên cứu

3.3 Tổng thể giải pháp đề xuất

Chương 4 THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ

[1] MongoDB (2023) What Is a Data Platform? | MongoDB

[2] Guru99 (2023) What is Data Warehouse? Types, Definition & Example

[3] INDA - Insight Data (2022, tháng 7 4) Kiến trúc DWH: Data Warehouse

[4] Virtasant Research Team (2020, tháng 1 28) Data Lake Architecture: A Comprehensive Guide Virtasant

[6] MinIO (2023) Enterprise Grade, High Performance Object Storage

[9] Docker Documentation (no date) Docker overview Docker Documentation

[10] Nghĩa Ngọc Phi (2020, tháng 3 22) Tìm hiểu về Apache Spark Viblo

[11] Apache Spark (no date) Apache Spark

[12] Dremio (no date) Apache Iceberg Guide - Dremio Resources | Dremio

[13] Nguyễn Hiệp (no date) Dagster Là Gì? Dagster Cơ Bản Cho Người Mới

[14] Apache Software Foundation (no date) Introduction In Apache Superset

[15] Stackable (2023) data-lakehouse-iceberg-trino-spark :: demos :: Stackable

[16] Dương Phạm (2016) TF-IDF ( term frequency – inverse document frequency) Viblo

[17] Google Developers (n.d.) Ưu điểm & nhược điểm của tính năng lọc dựa trên nội dung Machine Learning

[18] Viblo (2021) Tìm hiểu về Content-based Filtering - Phương pháp gợi ý dựa theo nội dung (Phần 1)

[19] Viblo (2021) Xây dựng Content-based Filtering - Recommender System [Recommender System cơ bản - Phần 2]

[20] Machine Learning cơ bản (2017) Xây dựng Content-based Recommender System

[21] Viblo (2019) Chức năng tự động suggest tag sử dụng Cosine similarity

[22] Viblo (2019) Logistic Regression - Bài toán cơ bản trong Machine Learning

[23] Machine Learning cơ bản (2017) Logistic Regression

- Lên kế hoạch tìm hiểu và hướng phát triển cho đề tài cũ

- Xác định và tìm hiểu về tập dữ liệu

- Xác định các công cụ sẽ sử dụng và lý thuyết

- Thiết kế, tinh chỉnh lại kiến trúc của hệ thống

- Nghiên cứu và tìm hiểu cách triển khai hệ thống lên môi trường Docker

- Nghiên cứu, áp dụng đặc tính của Data Lakehouse vào quản lí dữ liệu

- Tích hợp notebook vào hệ thống

- Nghiên cứu về các phương pháp gợi ý và thuật toán phân loại

- Tìm hiểu các phương pháp về vector hóa văn bản

- Kiểm tra và cài đặt các phương pháp trên notebook

- Trực quan hóa dữ liệu

- Thực hiện cài đặt phương pháp gợi ý trên notebook

- Thực hiện cài đặt thuật toán phân loại trên notebook

- Đánh giá, hiệu chỉnh tham số cho mô hình

- Cài đặt, tích hợp luồng pipeline vào hệ thống

- Thiết kế trang web đơn giản sử dụng Flask

- Tích hợp phương pháp gợi ý và thuật toán phân loại vào hệ thống

- Tiến hành tích hợp hệ thống, từ việc ghép dữ liệu nguồn, Data Lakehouse, bảng báo cáo, trang web

- Tích hợp trang web gợi ý phim và đánh giá cảm xúc dựa trên bình luận của người xem vào hệ thống

- Kiểm thử và đảm bảo hệ thống ổn định

- Chuẩn bị báo cáo, slide thuyết trình

LỜI CẢM ƠN 1 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 2

1.1 Tính cấp thiết của đề tài 13

1.2 Mục đích và nhiệm vụ nghiên cứu 13

Chương 2 CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) 15

2.1.2 Thành phần chính của Data Platform 15

2.1.3 Lợi ích của Data Platform 16

2.1.4 Một vài Data Platform tiêu biểu 16

2.2 Các công nghệ sử dụng 20

2.3 Mô hình gợi ý và bài toán phân tích cảm xúc 29

2.3.1 Vấn đề chung của bài toán 29

2.3.2 Mô hình gợi ý Content – Based Filtering 29

2.3.3 Bài toán phân tích cảm xúc 33

Chương 3 GIẢI PHÁP ĐỀ XUẤT 35

3.2 Mô tả nội dung nghiên cứu, phương pháp nghiên cứu 38

3.3 Tổng thể giải pháp đề xuất 39

Chương 4 THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ 46

Hình 1 Tổng quan về Data Platform 15

Hình 2 Tổng quan về Data Warehouse 16

Hình 3 Tổng quan về Data Lake 17

Hình 4 Tổng quan về Data Lakehouse 18

Hình 5 Kiến trúc Data Lakehouse 19

Hình 7 Kiến trúc của Docker 21

Hình 8 Logo của Apache Spark 22

Hình 9 Các điểm nổi bật của Apache Spark 22

Hình 11 Kiến trúc của Minio 23

Hình 12 Logo của Apache Iceberg 24

Hình 13 Kiến trúc của Apache Iceberg 24

Hình 15 Kiến trúc của Flask 26

Hình 16 Logo của Apache Superset 27

Hình 17 Kiến trúc của Apache Superset 27

Hình 19 Data pipeline cơ bản của Dagster 28

Hình 20 Ví dụ về kỹ thuật Regex Tokenizer 31

Hình 21 Ví dụ về kỹ thuật Stopwords Remover 31

Hình 22 Ví dụ về kỹ thuật Word2Vec 32

Hình 23 Công thức tính khoảng cách giữa 2 vector 32

Hình 24 Dữ liệu tệp movies_metadata.csv 35

Hình 25 Dữ liệu tệp credits.csv 35

Hình 26 Dữ liêu tệp links.csv 36

Hình 27 Dữ liệu tệp keyword.csv 36

Hình 28 Dữ liệu tệp ratings.csv 37

Hình 29 Tổng thể giải pháp 39

Hình 30 Chức năng lớp Bronze 40

Hình 31 Chức năng lớp Silver 41

Hình 32 Cấu trúc của file trong table format dạng parquet 42

Hình 33 Cấu trúc bên trong metadata của table format 42

Hình 34 Cấu trúc của File metadata 42

Hình 35 Select 5 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 36 Select record theo id được chỉ định trong bảng cleaned_movies sử dụng Trino 43

Hình 37 Update 1 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 38 Update 1 record trong bảng cleaned_movies sử dụng Trino 44

Hình 39 Select xem tất cả có bao nhiêu record trong bảng cleaned_ratings 44

Hình 42 Bảng metadata TABLE_PARAMS 45

Hình 43 Tổng quan Data Lineage của nhóm 46

Hình 44 Kiến trúc của Data Lakehouse do nhóm thiết kế 46

Hình 45 Các layer trong Data Lakehouse 47

Hình 47, Dữ liệu ở Bronze Layer 48

Hình 48 Dữ liệu ở Silver Layer 48

Hình 49 Chi tiết dữ liệu trong Silver Layer 49

Hình 50 Dữ liệu ở Silver Layer truy cập xuất thông qua DBeaver 49

Hình 51 Dữ liệu ở Gold Layer 50

Hình 52 Chi tiết dữ liệu ở Gold Layer 50

Hình 53 Tổng quan về số lượng đối tượng trong tập dữ liệu 50

Hình 54 Phân bố của các bộ phim theo quốc gia 51

Hình 55 Sự tăng trưởng của sản xuất phim theo thời gian (1897-2017) 51

Hình 56 Top những bộ phim được đánh giá cao 52

Hình 57 Các bộ phim có danh thu cao nhất 52

Hình 58 Các bộ phim có ngân sách sản xuất cao nhất 53

Hình 59 Mô hình được lưu trữ vào Data Lake 54

Hình 60 Chi tiết các bước của mô hình 54

Hình 61 Ma trận đặc trưng 55

Hình 63 Đánh giá mô hình sử dụng classification report 57

Hình 64 Các tham số của mô hình 57

Hình 66 Trang chủ web tìm kiếm phim 58

Hình 67 Kết quả trả về khi tìm kiếm một bộ phim 59

Hình 68 Kết quả dự đoán cảm xúc của comment (Good, Bad) 59

Hình 69 Kết quả trả về của các bộ phim có liên quan (Hệ thống gợi ý) 60

Hình 70 Cài đặt của đoạn mã để tính toán độ tương đồng 60

Hình 71 Danh sách mã của các bộ phim có độ tương đồng cao nhất 61

Hình 72 Danh sách tên của các bộ phim đề xuất 61

Bảng 1 Bảng so sánh Data Warehouse, Data Lake, Data Lakehouse 18

Chương 1 MỞ ĐẦU 1.1 Tính cấp thiết của đề tài

Dữ liệu đang ngày càng trở nên quan trọng trong việc xây dựng các hệ thống gợi ý phim Việc thu thập, lưu trữ và xử lý dữ liệu phim, người dùng và tương tác để tạo ra những giá trị gia tăng là một xu hướng phát triển chung Đặc biệt trong lĩnh vực gợi ý phim, việc phân tích dữ liệu để dự đoán sở thích và hành vi của người dùng có ý nghĩa quan trọng

Khoá luận sẽ tìm hiểu về một số giải pháp Data Platform phổ biến dựa trên nền tảng mã nguồn mở như Hadoop/HDFS, Spark Sau đó sẽ trình bày quá trình xây dựng một hệ thống gợi ý phim dựa trên dữ liệu thực tế sử dụng các công nghệ này Việc nghiên cứu này hướng tới giải quyết bài toán khai thác hiệu quả dữ liệu để đưa ra những gợi ý chính xác, góp phần nâng cao trải nghiệm người dùng trong lĩnh vực xem phim

Hy vọng qua khoá luận sẽ cung cấp cho bạn đọc những hiểu biết cơ bản về Data Platform cũng như cách xây dựng ứng dụng gợi ý phim cơ bản dựa trên công nghệ mã nguồn mở

1.2 Mục đích và nhiệm vụ nghiên cứu

Mục tiêu của khóa luận hướng đến là hiện thực vận dụng các kiến trúc Data Platform cho bài toán lưu trữ dữ liệu phim ảnh qua các công việc như sau:

• Tìm hiểu về Data Platform và các công cụ có liên quan

• Đề xuất các kiến trúc hạ tầng Data Warehouse, Data Lake, Data

• Xây dựng Data Platform từ các mã nguồn mở

• Xây dựng các thuật toán gợi ý phim cơ bản và bài toán phân tích cảm xúc (thông qua đánh giá người dùng)

• Tạo ra các báo cáo, report và xây dựng các mô hình gợi ý phim cơ bản

Dữ liệu thông tin về các bộ phim trên các nền tảng xem phim trực tuyến

Các kiến trúc Data Platform

Các mã nguồn mở để xây dựng lên một Data Platform

Các mô hình học máy cơ bản cho bài toán gợi ý và bài toán phân tích cảm xúc

Tìm hiểu lý thuyết về các kiến trúc của Data Lakehouse

Tìm hiểu công nghệ lưu trữ dữ liệu lớn

Tìm hiểu giải thuật Logistic Regression và mô hình Content – Based Filtering Xây dựng và triển khai kiến trúc Data Lakehouse trên môi trường Docker Đánh giá thực nghiệm dựa trên dữ liệu thực

Phương pháp thu thập dữ liệu

Phương pháp phân tích và thiết kế

Phương pháp cài đặt và triển khai

Phương pháp thực nghiệm và đánh giá

Bố cục của tiểu luận bao gồm:

CHƯƠNG 1: MỞ ĐẦU Giới thiệu ngắn gọn về đề tài, mục đích nghiên cứu Ý nghĩa lý luận và thực tiễn của việc nghiên cứu đề tài

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) Tìm hiểu các khái niệm và kiến trúc trong quá trình nghiên cứu và xây dựng hệ thống

CHƯƠNG 3: GIẢI PHÁP ĐỀ XUẤT Đưa ra giải pháp và trình bày phần cài đặt hệ thống

CHƯƠNG 4: THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ Trình bày phần thử nghiệm Phân tích kết quả thực nghiệm thu được

CHƯƠNG 5: KẾT LUẬN Tổng kết nội dung đã trình bày

Chương 2 CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) 2.1 Data Platform

Nền tảng dữ liệu (Data Platform) là một giải pháp toàn diện cho phép thu thập, phân tích và trực quan hoá dữ liệu bởi các hệ thống, công cụ, quy trình công nghệ tiên tiến Đây thường là nơi dữ liệu được tập hợp từ nhiều nguồn và nó sẽ cung cấp cho người dùng là những nhà khoa học dữ liệu, những nhà phân tích, nhóm kinh doanh,…những người này sau đó có thể trích xuất, xử lý chuyên sâu từ dữ liệu để đưa ra quyết định hoặc tạo ra các sản phẩm dựa trên dữ liệu

Nói một cách đơn giản, Data Platform là hệ thống trung tâm giúp tổ chức quản lý dữ liệu một cách hiệu quả, từ việc thu thập, lưu trữ, xử lý đến phân tích và chia sẻ

Hình 1 Tổng quan về Data Platform

2.1.2 Thành phần chính của Data Platform

Lưu trữ dữ liệu: Data Platform bao gồm các hệ thống lưu trữ dữ liệu như kho dữ liệu (Amazon Redshift, Google BigQuery hoặc Snowflake), hồ dữ liệu (Amazon S3, Azure Data Lake Store hoặc Google Cloud Storage) và cơ sở dữ liệu (MySQL, PostgreSQL hoặc MongoDB)

Xử lý dữ liệu: Đây là hành động chuyển đổi và làm sạch dữ liệu thô thành dạng có thể được sử dụng để phân tích Nó có thể liên quan đến việc chuẩn hóa, tổng hợp dữ liệu và các loại chuyển đổi dữ liệu khác (Extract, Transform, Load,…)

Phân tích dữ liệu: Thuộc các công cụ phân tích dữ liệu như BI (Business

Intelligence), Machine Learning và Data Visualization (Tableau, Looker, PowerBI,…)

Quản trị dữ liệu: Nó bao gồm các công cụ quản trị dữ liệu như Data Governance, Data Security và Data Quality

2.1.3 Lợi ích của Data Platform

Cải thiện hiệu quả hoạt động: Giúp tự động các quy trình xử lý dữ liệu, giải phóng thời gian thao tác của nhân viên để tập trung vào các công việc giá trị cao hơn

Tăng cường khả năng ra quyết định: Cung cấp cho các nhà quản lý và nhân viên thông tin chi tiết về dữ liệu, giúp họ đưa ra quyết định sáng suốt hơn

Thúc đẩy đổi mới: Nó cung cấp nền tảng cho các ứng dụng dữ liệu mới, giúp doanh nghiệp đổi mới và cạnh tranh tốt hơn

2.1.4 Một vài Data Platform tiêu biểu

2.1.4.1 Data Warehosue Đây là một kiến trúc khá phổ biến, được các doanh nghiệp áp dụng rất nhiều để lưu trữ và phân tích lượng dữ liệu lớn Data Warehouse hoạt động như một kho chứa trung tâm, nơi lưu trữ và tổng hợp dữ liệu từ các hệ thống giao dịch và cơ sở dữ liệu liên quan Nó cung cấp cho các nhà phân tích và quản lý dữ liệu một cái nhìn tổng quan về toàn bộ hoạt động kinh doanh của họ, từ đó có thể đưa ra quyết định sáng suốt hơn

Hình 2 Tổng quan về Data Warehouse

Các điểm đáng chú ý của Data Warehouse:

• Tính tích hợp: Tích hợp dữ liệu từ nhiều nguồn khác nhau, bao gồm các hệ thống giao dịch, hệ thống kinh doanh và các nguồn dữ liệu bên ngoài

• Tính chủ đề: Dữ liệu trong Data Warehouse được thiết kế theo chủ đề, chẳng hạn như bán hàng, khách hàng, sản phẩm,…

• Tính thời gian: Dữ liệu của Data Warehouse thường là dữ liệu lịch sử, được lưu trữ theo thời gian

• Tính không thay đổi: Dữ liệu khi tải vào Data Warehouse sẽ không được thay đổi

Data Lake (hồ dữ liệu) là một nơi lưu trữ tập trung được thiết kế để lưu trữ, xử lý và bảo mật lượng rất lớn dữ liệu đa dạng, bao gồm dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc Nó sẽ lưu trữ dữ liệu ở dạng nguyên bản, không cần phải định dạng hoặc xử lý trước khi lưu trữ

Hình 3 Tổng quan về Data Lake

Mục tiêu của Data Lake là cung cấp một nguồn tổng hợp và linh hoạt bao gồm dữ liệu thô cho các quy trình phân tích dữ liệu, khám phá dữ liệu và xây dựng ứng dụng AI/ML Nó tạo ra một môi trường cho các nhà phân tích dữ liệu và nhà khoa học dữ liệu có thể tiếp cận và khai thác dữ liệu một cách linh động, tùy chỉnh để phục vụ nhu cầu của họ

Mô hình gợi ý và bài toán phân tích cảm xúc

2.3.1 Vấn đề chung của bài toán

Các cửa hàng thường có hai khu vực, một là khu trưng bày, hai là kho Nguyên tắc dễ nhất để đạt doanh thu cao là trưng bày các sản phẩm phổ biến nhất ở những nơi dễ nhìn thấy và những sản phẩm ít phổ biến hơn được cất trong kho Cách làm này có một hạn chế: Những sản phẩm được trưng bày mang tính phổ biến nhưng chưa chắc đã phù hợp với một khách hàng cụ thể Một cửa hàng có thể có món hàng một khách hàng tìm kiếm nhưng có thể không bán được vì khách hàng không nhìn thấy sản phẩm đó trên kệ Việc này dẫn đến việc khách hàng không tiếp cận được sản phẩm ngay cả khi chúng đã được trưng bày ra Ngoài ra, vì không gian có hạn cửa hàng không thể trưng ra tất cả các sản phẩm mà mỗi loại chỉ đưa ra một số lượng nhỏ Phần lớn doanh thu (80%) đến từ phần nhỏ số sản phẩm phổ biến nhất (20%) Nếu sắp xếp các sản phẩm của cửa hàng theo doanh số từ cao đến thấp, ta sẽ nhận thấy có thể phần nhỏ các sản phẩm tạo ra phần lớn doanh số và một danh sách dài phía sau chỉ tạo ra một lượng nhỏ đóng góp Hiện tượng này còn được gọi là Long Tail Phenomenon tức phần đuôi dài của những sản phẩm ít phổ biến

Với các cửa hàng online, nhược điểm trên hoàn toàn có thể tránh được Vì gian trưng bày của các cửa hàng online gần như là vô tận, mọi sản phẩm đều có thể được trưng ra Hơn nữa, việc sắp xếp online là linh hoạt, tiện lợi với chi phí chuyển đổi gần như bằng 0 khiến việc mang đúng sản phẩm tới khách hàng trở nên thuận tiện hơn Doanh thu, vì thế có thể được tăng lên

2.3.2 Mô hình gợi ý Content – Based Filtering

Recommendation Systems là 1 mảng khá rộng của Machine Learning và có tuổi đời ít hơn so với Classification Hai thực thể chính trong Recommendation Systems là users và items (users là người dùng, items là sản phẩm) Mục đích chính của các Recommender Systems là dự đoán mức độ quan tâm của 1 user tới 1 item nào đó, qua đó sẽ đưa ra 1 recommend phù hợp Content based là phương pháp gợi ý dựa theo nội dung, ý tưởng của phương pháp này người dùng sẽ xem được những bài cùng các chủ đề mà mình yêu thích Trong content-based chúng ta cần xây dựng 1 bộ hồ sơ cho từng item được gọi profile item Mỗi profile item sẽ được biểu diễn dưới dạng là 1 vector Chúng ta sẽ sử dụng kỹ thuật TF-IDF để tạo các feature vector cho từng item

• Netflix tự động gợi ý phim cho người dùng

• Khi mua một món hàng trên Amazon, hệ thống sẽ tự động gợi ý

“Frequently bought together”, hoặc nó biết ta có thể thích món hàng nào dựa trên lịch sử mua hàng

2.3.2.1 Các kỹ thuật thường được sử dụng trong mô hình gợi ý a Regex Tokenizer Đây là 1 kỹ thuật của quỳ trình xử lý ngôn ngữ tự nhiên (NLP) trong Spark và được sử dụng để tiền xử lý dữ liệu văn bản trước khi áp dụng các thuật toán học máy

Nó là một phương pháp sử dụng biểu thức chính quy (Regular Expression – Regex) để mà phân tách văn bản thành các token (token là các đơn vị nhỏ nhất có ý nghĩa) trước khi đưa nó vào mô hình Recommendation

Kỹ thuật này thường được sử dụng để:

• Loại bỏ nhiễu: Regex có thể được sử dụng để loại bỏ các ký tự đặc biệt, dấu chấm câu, HTML tag, … ra khỏi văn bản

• Chuẩn hóa văn bản: Regex có thể được sử dụng để chuyển đổi tất cả các chữ cái thành chữ thường, loại bỏ dấu cách thừa, …

• Phân tách văn bản thành các token: Regex có thể được sử dụng để phân tách văn bản thành các token dựa trên các quy tắc cụ thể, chẳng hạn như phân tách văn bản theo dấu cách, dấu chấm phẩy, …

Lợi ích của Regex Tokenizer mang lại cho mô hình Recommendation:

• Cải thiện độ chính xác của mô hình: Do việc loại bỏ các nhiễu và chuẩn hoá dữ liệu văn bản của kỹ thuật đã làm giảm bớt các yếu tố không liên quan nên đã làm tăng tính chính xác của mô hình Recommendation

• Tăng hiệu quả của mô hình: Việc áp dụng kỹ thuật phân tách văn bản thành các token giúp mô hình Recommendation có khả năng xử lý văn bản nhanh hơn

31 Đây là một ví dụ để hình dung rõ hơn về kỹ thuật Regex Tokenizer:

Giả sử chúng ta có một tập dữ liệu gồm các đánh giá phim Mỗi đánh giá phim bao gồm tiêu đề phim, nội dung đánh giá và xếp hạng của người dùng Chúng ta có thể áp dụng kỹ thuật này để phân tách nội dung đánh giá thành các token dựa trên dấu cách Sau đó, chúng ta có thể sử dụng các token này cho việc huấn luyện mô hình Recommendation dự đoán xếp hạng của người dùng cho các bộ phim mới có liên quan

Hình 20 Ví dụ về kỹ thuật Regex Tokenizer b Stopwords Remover

Thường thì các từ được gọi Stop Words sẽ là các từ xuất hiện nhiều lần và không có đóng góp ý nghĩa của câu (chúng đóng vai trò như là gây nhiễu trong tập dữ liệu) trong tiếng Anh các từ này có thể kể đến như: the, is, a, an, at, on, … hoặc là trong tiếng Việt là các từ như: cái, các, cả, … Các từ này sẽ được loại bỏ để giảm kích thước cho tập dữ liệu từ đó đẩy nhanh hiệu suất xử lý và chất lượng như mong muốn Đầu vào của StopWordsRemover là một cột chứa các token hoặc từ trong văn bản StopWordsRemover sử dụng một tập hợp các từ dừng được định nghĩa trước (stop words) để loại bỏ các từ này khỏi cột đầu vào Các từ còn lại sau khi loại bỏ từ dừng được trả về dưới dạng một cột mới trong DataFrame

Hình 21 Ví dụ về kỹ thuật Stopwords Remover

Sử dụng để biểu diễn từng từ trong văn bản thành một vectơ số Đầu vào của Word2Vec là một cột chứa các token hoặc từ trong văn bản Word2Vec xây dựng một mô hình Word2Vec bằng cách áp dụng thuật toán CBOW (Continuous Bag-of-Words) hoặc Skip-gram trên tập dữ liệu huấn luyện Mô hình này học các biểu diễn từ vựng thông qua việc dự đoán từ hiện tại dựa trên ngữ cảnh xung quanh của các từ trong văn bản Sau khi huấn luyện xong, mô hình Word2Vec tạo ra một bộ biểu diễn từ vựng, trong đó mỗi từ được biểu diễn bằng một vectơ số có chiều thường là 100, 200 hoặc

Hình 22 Ví dụ về kỹ thuật Word2Vec d Cosine Similarity Độ tương tự cosine (Cosine similarity) là thước đo độ tương tự giữa hai vector khác 0 Thường được sử dụng trong việc truy xuất thông tin và khai thác văn bản để xác định mức độ giống nhau giữa hai tài liệu Độ tương tự cosine dựa trên góc cosin giữa hai vector khác 0 a và b Độ tương tự cosin giữa hai vectơ là biểu diễn bằng số cho độ tương tự của chúng Việc tính toán độ tương tự cosine như sau:

|a| và |b| là độ lớn của a và b a ã b là tớch vụ hướng của a và b

Hình 23 Công thức tính khoảng cách giữa 2 vector

2.3.2.2 Ưu điểm và nhược điểm của mô hình Ưu điểm:

• Mô hình này không cần bất kỳ dữ liệu nào về những người dùng khác vì các đề xuất chỉ dành riêng cho người dùng này Điều này giúp dễ dàng mở rộng quy mô cho nhiều người dùng

• Mô hình này có thể nắm bắt các mối quan tâm cụ thể của người dùng, đồng thời có thể đề xuất các mục thích hợp mà rất ít người dùng khác quan tâm

• Mô hình này chỉ có thể đưa ra đề xuất dựa trên mối quan tâm hiện có của người dùng Nói cách khác, mô hình có khả năng hạn chế trong việc mở rộng mối quan tâm hiện tại của người dùng

2.3.3 Bài toán phân tích cảm xúc

2.3.3.1 Giới thiệu về Logistic Regression

Logistic Regression là 1 thuật toán phân loại được dùng để gán các đối tượng cho

GIẢI PHÁP ĐỀ XUẤT

Quy trình hoạt động

Chương 4 THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ

[1] MongoDB (2023) What Is a Data Platform? | MongoDB

[2] Guru99 (2023) What is Data Warehouse? Types, Definition & Example

[3] INDA - Insight Data (2022, tháng 7 4) Kiến trúc DWH: Data Warehouse

[4] Virtasant Research Team (2020, tháng 1 28) Data Lake Architecture: A Comprehensive Guide Virtasant

[6] MinIO (2023) Enterprise Grade, High Performance Object Storage

[9] Docker Documentation (no date) Docker overview Docker Documentation

[10] Nghĩa Ngọc Phi (2020, tháng 3 22) Tìm hiểu về Apache Spark Viblo

[11] Apache Spark (no date) Apache Spark

[12] Dremio (no date) Apache Iceberg Guide - Dremio Resources | Dremio

[13] Nguyễn Hiệp (no date) Dagster Là Gì? Dagster Cơ Bản Cho Người Mới

[14] Apache Software Foundation (no date) Introduction In Apache Superset

[15] Stackable (2023) data-lakehouse-iceberg-trino-spark :: demos :: Stackable

[16] Dương Phạm (2016) TF-IDF ( term frequency – inverse document frequency) Viblo

[17] Google Developers (n.d.) Ưu điểm & nhược điểm của tính năng lọc dựa trên nội dung Machine Learning

[18] Viblo (2021) Tìm hiểu về Content-based Filtering - Phương pháp gợi ý dựa theo nội dung (Phần 1)

[19] Viblo (2021) Xây dựng Content-based Filtering - Recommender System [Recommender System cơ bản - Phần 2]

[20] Machine Learning cơ bản (2017) Xây dựng Content-based Recommender System

[21] Viblo (2019) Chức năng tự động suggest tag sử dụng Cosine similarity

[22] Viblo (2019) Logistic Regression - Bài toán cơ bản trong Machine Learning

[23] Machine Learning cơ bản (2017) Logistic Regression

- Lên kế hoạch tìm hiểu và hướng phát triển cho đề tài cũ

- Xác định và tìm hiểu về tập dữ liệu

- Xác định các công cụ sẽ sử dụng và lý thuyết

- Thiết kế, tinh chỉnh lại kiến trúc của hệ thống

- Nghiên cứu và tìm hiểu cách triển khai hệ thống lên môi trường Docker

- Nghiên cứu, áp dụng đặc tính của Data Lakehouse vào quản lí dữ liệu

- Tích hợp notebook vào hệ thống

- Nghiên cứu về các phương pháp gợi ý và thuật toán phân loại

- Tìm hiểu các phương pháp về vector hóa văn bản

- Kiểm tra và cài đặt các phương pháp trên notebook

- Trực quan hóa dữ liệu

- Thực hiện cài đặt phương pháp gợi ý trên notebook

- Thực hiện cài đặt thuật toán phân loại trên notebook

- Đánh giá, hiệu chỉnh tham số cho mô hình

- Cài đặt, tích hợp luồng pipeline vào hệ thống

- Thiết kế trang web đơn giản sử dụng Flask

- Tích hợp phương pháp gợi ý và thuật toán phân loại vào hệ thống

- Tiến hành tích hợp hệ thống, từ việc ghép dữ liệu nguồn, Data Lakehouse, bảng báo cáo, trang web

- Tích hợp trang web gợi ý phim và đánh giá cảm xúc dựa trên bình luận của người xem vào hệ thống

- Kiểm thử và đảm bảo hệ thống ổn định

- Chuẩn bị báo cáo, slide thuyết trình

LỜI CẢM ƠN 1 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 2

1.1 Tính cấp thiết của đề tài 13

1.2 Mục đích và nhiệm vụ nghiên cứu 13

Chương 2 CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) 15

2.1.2 Thành phần chính của Data Platform 15

2.1.3 Lợi ích của Data Platform 16

2.1.4 Một vài Data Platform tiêu biểu 16

2.2 Các công nghệ sử dụng 20

2.3 Mô hình gợi ý và bài toán phân tích cảm xúc 29

2.3.1 Vấn đề chung của bài toán 29

2.3.2 Mô hình gợi ý Content – Based Filtering 29

2.3.3 Bài toán phân tích cảm xúc 33

Chương 3 GIẢI PHÁP ĐỀ XUẤT 35

3.2 Mô tả nội dung nghiên cứu, phương pháp nghiên cứu 38

3.3 Tổng thể giải pháp đề xuất 39

Chương 4 THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ 46

Hình 1 Tổng quan về Data Platform 15

Hình 2 Tổng quan về Data Warehouse 16

Hình 3 Tổng quan về Data Lake 17

Hình 4 Tổng quan về Data Lakehouse 18

Hình 5 Kiến trúc Data Lakehouse 19

Hình 7 Kiến trúc của Docker 21

Hình 8 Logo của Apache Spark 22

Hình 9 Các điểm nổi bật của Apache Spark 22

Hình 11 Kiến trúc của Minio 23

Hình 12 Logo của Apache Iceberg 24

Hình 13 Kiến trúc của Apache Iceberg 24

Hình 15 Kiến trúc của Flask 26

Hình 16 Logo của Apache Superset 27

Hình 17 Kiến trúc của Apache Superset 27

Hình 19 Data pipeline cơ bản của Dagster 28

Hình 20 Ví dụ về kỹ thuật Regex Tokenizer 31

Hình 21 Ví dụ về kỹ thuật Stopwords Remover 31

Hình 22 Ví dụ về kỹ thuật Word2Vec 32

Hình 23 Công thức tính khoảng cách giữa 2 vector 32

Hình 24 Dữ liệu tệp movies_metadata.csv 35

Hình 25 Dữ liệu tệp credits.csv 35

Hình 26 Dữ liêu tệp links.csv 36

Hình 27 Dữ liệu tệp keyword.csv 36

Hình 28 Dữ liệu tệp ratings.csv 37

Hình 29 Tổng thể giải pháp 39

Hình 30 Chức năng lớp Bronze 40

Hình 31 Chức năng lớp Silver 41

Hình 32 Cấu trúc của file trong table format dạng parquet 42

Hình 33 Cấu trúc bên trong metadata của table format 42

Hình 34 Cấu trúc của File metadata 42

Hình 35 Select 5 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 36 Select record theo id được chỉ định trong bảng cleaned_movies sử dụng Trino 43

Hình 37 Update 1 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 38 Update 1 record trong bảng cleaned_movies sử dụng Trino 44

Hình 39 Select xem tất cả có bao nhiêu record trong bảng cleaned_ratings 44

Hình 42 Bảng metadata TABLE_PARAMS 45

Hình 43 Tổng quan Data Lineage của nhóm 46

Hình 44 Kiến trúc của Data Lakehouse do nhóm thiết kế 46

Hình 45 Các layer trong Data Lakehouse 47

Hình 47, Dữ liệu ở Bronze Layer 48

Hình 48 Dữ liệu ở Silver Layer 48

Hình 49 Chi tiết dữ liệu trong Silver Layer 49

Hình 50 Dữ liệu ở Silver Layer truy cập xuất thông qua DBeaver 49

Hình 51 Dữ liệu ở Gold Layer 50

Hình 52 Chi tiết dữ liệu ở Gold Layer 50

Hình 53 Tổng quan về số lượng đối tượng trong tập dữ liệu 50

Hình 54 Phân bố của các bộ phim theo quốc gia 51

Hình 55 Sự tăng trưởng của sản xuất phim theo thời gian (1897-2017) 51

Hình 56 Top những bộ phim được đánh giá cao 52

Hình 57 Các bộ phim có danh thu cao nhất 52

Hình 58 Các bộ phim có ngân sách sản xuất cao nhất 53

Hình 59 Mô hình được lưu trữ vào Data Lake 54

Hình 60 Chi tiết các bước của mô hình 54

Hình 61 Ma trận đặc trưng 55

Hình 63 Đánh giá mô hình sử dụng classification report 57

Hình 64 Các tham số của mô hình 57

Hình 66 Trang chủ web tìm kiếm phim 58

Hình 67 Kết quả trả về khi tìm kiếm một bộ phim 59

Hình 68 Kết quả dự đoán cảm xúc của comment (Good, Bad) 59

Hình 69 Kết quả trả về của các bộ phim có liên quan (Hệ thống gợi ý) 60

Hình 70 Cài đặt của đoạn mã để tính toán độ tương đồng 60

Hình 71 Danh sách mã của các bộ phim có độ tương đồng cao nhất 61

Hình 72 Danh sách tên của các bộ phim đề xuất 61

Bảng 1 Bảng so sánh Data Warehouse, Data Lake, Data Lakehouse 18

Chương 1 MỞ ĐẦU 1.1 Tính cấp thiết của đề tài

Dữ liệu đang ngày càng trở nên quan trọng trong việc xây dựng các hệ thống gợi ý phim Việc thu thập, lưu trữ và xử lý dữ liệu phim, người dùng và tương tác để tạo ra những giá trị gia tăng là một xu hướng phát triển chung Đặc biệt trong lĩnh vực gợi ý phim, việc phân tích dữ liệu để dự đoán sở thích và hành vi của người dùng có ý nghĩa quan trọng

Khoá luận sẽ tìm hiểu về một số giải pháp Data Platform phổ biến dựa trên nền tảng mã nguồn mở như Hadoop/HDFS, Spark Sau đó sẽ trình bày quá trình xây dựng một hệ thống gợi ý phim dựa trên dữ liệu thực tế sử dụng các công nghệ này Việc nghiên cứu này hướng tới giải quyết bài toán khai thác hiệu quả dữ liệu để đưa ra những gợi ý chính xác, góp phần nâng cao trải nghiệm người dùng trong lĩnh vực xem phim

Hy vọng qua khoá luận sẽ cung cấp cho bạn đọc những hiểu biết cơ bản về Data Platform cũng như cách xây dựng ứng dụng gợi ý phim cơ bản dựa trên công nghệ mã nguồn mở

1.2 Mục đích và nhiệm vụ nghiên cứu

Mục tiêu của khóa luận hướng đến là hiện thực vận dụng các kiến trúc Data Platform cho bài toán lưu trữ dữ liệu phim ảnh qua các công việc như sau:

• Tìm hiểu về Data Platform và các công cụ có liên quan

• Đề xuất các kiến trúc hạ tầng Data Warehouse, Data Lake, Data

• Xây dựng Data Platform từ các mã nguồn mở

• Xây dựng các thuật toán gợi ý phim cơ bản và bài toán phân tích cảm xúc (thông qua đánh giá người dùng)

• Tạo ra các báo cáo, report và xây dựng các mô hình gợi ý phim cơ bản

Dữ liệu thông tin về các bộ phim trên các nền tảng xem phim trực tuyến

Các kiến trúc Data Platform

Các mã nguồn mở để xây dựng lên một Data Platform

Các mô hình học máy cơ bản cho bài toán gợi ý và bài toán phân tích cảm xúc

Tìm hiểu lý thuyết về các kiến trúc của Data Lakehouse

Tìm hiểu công nghệ lưu trữ dữ liệu lớn

Tìm hiểu giải thuật Logistic Regression và mô hình Content – Based Filtering Xây dựng và triển khai kiến trúc Data Lakehouse trên môi trường Docker Đánh giá thực nghiệm dựa trên dữ liệu thực

Phương pháp thu thập dữ liệu

Phương pháp phân tích và thiết kế

Phương pháp cài đặt và triển khai

Phương pháp thực nghiệm và đánh giá

Bố cục của tiểu luận bao gồm:

CHƯƠNG 1: MỞ ĐẦU Giới thiệu ngắn gọn về đề tài, mục đích nghiên cứu Ý nghĩa lý luận và thực tiễn của việc nghiên cứu đề tài

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) Tìm hiểu các khái niệm và kiến trúc trong quá trình nghiên cứu và xây dựng hệ thống

CHƯƠNG 3: GIẢI PHÁP ĐỀ XUẤT Đưa ra giải pháp và trình bày phần cài đặt hệ thống

CHƯƠNG 4: THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ Trình bày phần thử nghiệm Phân tích kết quả thực nghiệm thu được

CHƯƠNG 5: KẾT LUẬN Tổng kết nội dung đã trình bày

Chương 2 CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) 2.1 Data Platform

Nền tảng dữ liệu (Data Platform) là một giải pháp toàn diện cho phép thu thập, phân tích và trực quan hoá dữ liệu bởi các hệ thống, công cụ, quy trình công nghệ tiên tiến Đây thường là nơi dữ liệu được tập hợp từ nhiều nguồn và nó sẽ cung cấp cho người dùng là những nhà khoa học dữ liệu, những nhà phân tích, nhóm kinh doanh,…những người này sau đó có thể trích xuất, xử lý chuyên sâu từ dữ liệu để đưa ra quyết định hoặc tạo ra các sản phẩm dựa trên dữ liệu

Nói một cách đơn giản, Data Platform là hệ thống trung tâm giúp tổ chức quản lý dữ liệu một cách hiệu quả, từ việc thu thập, lưu trữ, xử lý đến phân tích và chia sẻ

Hình 1 Tổng quan về Data Platform

2.1.2 Thành phần chính của Data Platform

Lưu trữ dữ liệu: Data Platform bao gồm các hệ thống lưu trữ dữ liệu như kho dữ liệu (Amazon Redshift, Google BigQuery hoặc Snowflake), hồ dữ liệu (Amazon S3, Azure Data Lake Store hoặc Google Cloud Storage) và cơ sở dữ liệu (MySQL, PostgreSQL hoặc MongoDB)

Xử lý dữ liệu: Đây là hành động chuyển đổi và làm sạch dữ liệu thô thành dạng có thể được sử dụng để phân tích Nó có thể liên quan đến việc chuẩn hóa, tổng hợp dữ liệu và các loại chuyển đổi dữ liệu khác (Extract, Transform, Load,…)

Phân tích dữ liệu: Thuộc các công cụ phân tích dữ liệu như BI (Business

Intelligence), Machine Learning và Data Visualization (Tableau, Looker, PowerBI,…)

Quản trị dữ liệu: Nó bao gồm các công cụ quản trị dữ liệu như Data Governance, Data Security và Data Quality

2.1.3 Lợi ích của Data Platform

Cải thiện hiệu quả hoạt động: Giúp tự động các quy trình xử lý dữ liệu, giải phóng thời gian thao tác của nhân viên để tập trung vào các công việc giá trị cao hơn

Tăng cường khả năng ra quyết định: Cung cấp cho các nhà quản lý và nhân viên thông tin chi tiết về dữ liệu, giúp họ đưa ra quyết định sáng suốt hơn

Thúc đẩy đổi mới: Nó cung cấp nền tảng cho các ứng dụng dữ liệu mới, giúp doanh nghiệp đổi mới và cạnh tranh tốt hơn

2.1.4 Một vài Data Platform tiêu biểu

2.1.4.1 Data Warehosue Đây là một kiến trúc khá phổ biến, được các doanh nghiệp áp dụng rất nhiều để lưu trữ và phân tích lượng dữ liệu lớn Data Warehouse hoạt động như một kho chứa trung tâm, nơi lưu trữ và tổng hợp dữ liệu từ các hệ thống giao dịch và cơ sở dữ liệu liên quan Nó cung cấp cho các nhà phân tích và quản lý dữ liệu một cái nhìn tổng quan về toàn bộ hoạt động kinh doanh của họ, từ đó có thể đưa ra quyết định sáng suốt hơn

Hình 2 Tổng quan về Data Warehouse

Các điểm đáng chú ý của Data Warehouse:

• Tính tích hợp: Tích hợp dữ liệu từ nhiều nguồn khác nhau, bao gồm các hệ thống giao dịch, hệ thống kinh doanh và các nguồn dữ liệu bên ngoài

• Tính chủ đề: Dữ liệu trong Data Warehouse được thiết kế theo chủ đề, chẳng hạn như bán hàng, khách hàng, sản phẩm,…

• Tính thời gian: Dữ liệu của Data Warehouse thường là dữ liệu lịch sử, được lưu trữ theo thời gian

• Tính không thay đổi: Dữ liệu khi tải vào Data Warehouse sẽ không được thay đổi

Data Lake (hồ dữ liệu) là một nơi lưu trữ tập trung được thiết kế để lưu trữ, xử lý và bảo mật lượng rất lớn dữ liệu đa dạng, bao gồm dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc Nó sẽ lưu trữ dữ liệu ở dạng nguyên bản, không cần phải định dạng hoặc xử lý trước khi lưu trữ

Hình 3 Tổng quan về Data Lake

Mục tiêu của Data Lake là cung cấp một nguồn tổng hợp và linh hoạt bao gồm dữ liệu thô cho các quy trình phân tích dữ liệu, khám phá dữ liệu và xây dựng ứng dụng AI/ML Nó tạo ra một môi trường cho các nhà phân tích dữ liệu và nhà khoa học dữ liệu có thể tiếp cận và khai thác dữ liệu một cách linh động, tùy chỉnh để phục vụ nhu cầu của họ

THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ

Xây dựng ứng dụng

[1] MongoDB (2023) What Is a Data Platform? | MongoDB

[2] Guru99 (2023) What is Data Warehouse? Types, Definition & Example

[3] INDA - Insight Data (2022, tháng 7 4) Kiến trúc DWH: Data Warehouse

[4] Virtasant Research Team (2020, tháng 1 28) Data Lake Architecture: A Comprehensive Guide Virtasant

[6] MinIO (2023) Enterprise Grade, High Performance Object Storage

[9] Docker Documentation (no date) Docker overview Docker Documentation

[10] Nghĩa Ngọc Phi (2020, tháng 3 22) Tìm hiểu về Apache Spark Viblo

[11] Apache Spark (no date) Apache Spark

[12] Dremio (no date) Apache Iceberg Guide - Dremio Resources | Dremio

[13] Nguyễn Hiệp (no date) Dagster Là Gì? Dagster Cơ Bản Cho Người Mới

[14] Apache Software Foundation (no date) Introduction In Apache Superset

[15] Stackable (2023) data-lakehouse-iceberg-trino-spark :: demos :: Stackable

[16] Dương Phạm (2016) TF-IDF ( term frequency – inverse document frequency) Viblo

[17] Google Developers (n.d.) Ưu điểm & nhược điểm của tính năng lọc dựa trên nội dung Machine Learning

[18] Viblo (2021) Tìm hiểu về Content-based Filtering - Phương pháp gợi ý dựa theo nội dung (Phần 1)

[19] Viblo (2021) Xây dựng Content-based Filtering - Recommender System [Recommender System cơ bản - Phần 2]

[20] Machine Learning cơ bản (2017) Xây dựng Content-based Recommender System

[21] Viblo (2019) Chức năng tự động suggest tag sử dụng Cosine similarity

[22] Viblo (2019) Logistic Regression - Bài toán cơ bản trong Machine Learning

[23] Machine Learning cơ bản (2017) Logistic Regression

- Lên kế hoạch tìm hiểu và hướng phát triển cho đề tài cũ

- Xác định và tìm hiểu về tập dữ liệu

- Xác định các công cụ sẽ sử dụng và lý thuyết

- Thiết kế, tinh chỉnh lại kiến trúc của hệ thống

- Nghiên cứu và tìm hiểu cách triển khai hệ thống lên môi trường Docker

- Nghiên cứu, áp dụng đặc tính của Data Lakehouse vào quản lí dữ liệu

- Tích hợp notebook vào hệ thống

- Nghiên cứu về các phương pháp gợi ý và thuật toán phân loại

- Tìm hiểu các phương pháp về vector hóa văn bản

- Kiểm tra và cài đặt các phương pháp trên notebook

- Trực quan hóa dữ liệu

- Thực hiện cài đặt phương pháp gợi ý trên notebook

- Thực hiện cài đặt thuật toán phân loại trên notebook

- Đánh giá, hiệu chỉnh tham số cho mô hình

- Cài đặt, tích hợp luồng pipeline vào hệ thống

- Thiết kế trang web đơn giản sử dụng Flask

- Tích hợp phương pháp gợi ý và thuật toán phân loại vào hệ thống

- Tiến hành tích hợp hệ thống, từ việc ghép dữ liệu nguồn, Data Lakehouse, bảng báo cáo, trang web

- Tích hợp trang web gợi ý phim và đánh giá cảm xúc dựa trên bình luận của người xem vào hệ thống

- Kiểm thử và đảm bảo hệ thống ổn định

- Chuẩn bị báo cáo, slide thuyết trình

LỜI CẢM ƠN 1 ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 2

1.1 Tính cấp thiết của đề tài 13

1.2 Mục đích và nhiệm vụ nghiên cứu 13

Chương 2 CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) 15

2.1.2 Thành phần chính của Data Platform 15

2.1.3 Lợi ích của Data Platform 16

2.1.4 Một vài Data Platform tiêu biểu 16

2.2 Các công nghệ sử dụng 20

2.3 Mô hình gợi ý và bài toán phân tích cảm xúc 29

2.3.1 Vấn đề chung của bài toán 29

2.3.2 Mô hình gợi ý Content – Based Filtering 29

2.3.3 Bài toán phân tích cảm xúc 33

Chương 3 GIẢI PHÁP ĐỀ XUẤT 35

3.2 Mô tả nội dung nghiên cứu, phương pháp nghiên cứu 38

3.3 Tổng thể giải pháp đề xuất 39

Chương 4 THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ 46

Hình 1 Tổng quan về Data Platform 15

Hình 2 Tổng quan về Data Warehouse 16

Hình 3 Tổng quan về Data Lake 17

Hình 4 Tổng quan về Data Lakehouse 18

Hình 5 Kiến trúc Data Lakehouse 19

Hình 7 Kiến trúc của Docker 21

Hình 8 Logo của Apache Spark 22

Hình 9 Các điểm nổi bật của Apache Spark 22

Hình 11 Kiến trúc của Minio 23

Hình 12 Logo của Apache Iceberg 24

Hình 13 Kiến trúc của Apache Iceberg 24

Hình 15 Kiến trúc của Flask 26

Hình 16 Logo của Apache Superset 27

Hình 17 Kiến trúc của Apache Superset 27

Hình 19 Data pipeline cơ bản của Dagster 28

Hình 20 Ví dụ về kỹ thuật Regex Tokenizer 31

Hình 21 Ví dụ về kỹ thuật Stopwords Remover 31

Hình 22 Ví dụ về kỹ thuật Word2Vec 32

Hình 23 Công thức tính khoảng cách giữa 2 vector 32

Hình 24 Dữ liệu tệp movies_metadata.csv 35

Hình 25 Dữ liệu tệp credits.csv 35

Hình 26 Dữ liêu tệp links.csv 36

Hình 27 Dữ liệu tệp keyword.csv 36

Hình 28 Dữ liệu tệp ratings.csv 37

Hình 29 Tổng thể giải pháp 39

Hình 30 Chức năng lớp Bronze 40

Hình 31 Chức năng lớp Silver 41

Hình 32 Cấu trúc của file trong table format dạng parquet 42

Hình 33 Cấu trúc bên trong metadata của table format 42

Hình 34 Cấu trúc của File metadata 42

Hình 35 Select 5 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 36 Select record theo id được chỉ định trong bảng cleaned_movies sử dụng Trino 43

Hình 37 Update 1 record trong bảng cleaned_movies sử dụng SparkSQL 43

Hình 38 Update 1 record trong bảng cleaned_movies sử dụng Trino 44

Hình 39 Select xem tất cả có bao nhiêu record trong bảng cleaned_ratings 44

Hình 42 Bảng metadata TABLE_PARAMS 45

Hình 43 Tổng quan Data Lineage của nhóm 46

Hình 44 Kiến trúc của Data Lakehouse do nhóm thiết kế 46

Hình 45 Các layer trong Data Lakehouse 47

Hình 47, Dữ liệu ở Bronze Layer 48

Hình 48 Dữ liệu ở Silver Layer 48

Hình 49 Chi tiết dữ liệu trong Silver Layer 49

Hình 50 Dữ liệu ở Silver Layer truy cập xuất thông qua DBeaver 49

Hình 51 Dữ liệu ở Gold Layer 50

Hình 52 Chi tiết dữ liệu ở Gold Layer 50

Hình 53 Tổng quan về số lượng đối tượng trong tập dữ liệu 50

Hình 54 Phân bố của các bộ phim theo quốc gia 51

Hình 55 Sự tăng trưởng của sản xuất phim theo thời gian (1897-2017) 51

Hình 56 Top những bộ phim được đánh giá cao 52

Hình 57 Các bộ phim có danh thu cao nhất 52

Hình 58 Các bộ phim có ngân sách sản xuất cao nhất 53

Hình 59 Mô hình được lưu trữ vào Data Lake 54

Hình 60 Chi tiết các bước của mô hình 54

Hình 61 Ma trận đặc trưng 55

Hình 63 Đánh giá mô hình sử dụng classification report 57

Hình 64 Các tham số của mô hình 57

Hình 66 Trang chủ web tìm kiếm phim 58

Hình 67 Kết quả trả về khi tìm kiếm một bộ phim 59

Hình 68 Kết quả dự đoán cảm xúc của comment (Good, Bad) 59

Hình 69 Kết quả trả về của các bộ phim có liên quan (Hệ thống gợi ý) 60

Hình 70 Cài đặt của đoạn mã để tính toán độ tương đồng 60

Hình 71 Danh sách mã của các bộ phim có độ tương đồng cao nhất 61

Hình 72 Danh sách tên của các bộ phim đề xuất 61

Bảng 1 Bảng so sánh Data Warehouse, Data Lake, Data Lakehouse 18

Chương 1 MỞ ĐẦU 1.1 Tính cấp thiết của đề tài

Dữ liệu đang ngày càng trở nên quan trọng trong việc xây dựng các hệ thống gợi ý phim Việc thu thập, lưu trữ và xử lý dữ liệu phim, người dùng và tương tác để tạo ra những giá trị gia tăng là một xu hướng phát triển chung Đặc biệt trong lĩnh vực gợi ý phim, việc phân tích dữ liệu để dự đoán sở thích và hành vi của người dùng có ý nghĩa quan trọng

Khoá luận sẽ tìm hiểu về một số giải pháp Data Platform phổ biến dựa trên nền tảng mã nguồn mở như Hadoop/HDFS, Spark Sau đó sẽ trình bày quá trình xây dựng một hệ thống gợi ý phim dựa trên dữ liệu thực tế sử dụng các công nghệ này Việc nghiên cứu này hướng tới giải quyết bài toán khai thác hiệu quả dữ liệu để đưa ra những gợi ý chính xác, góp phần nâng cao trải nghiệm người dùng trong lĩnh vực xem phim

Hy vọng qua khoá luận sẽ cung cấp cho bạn đọc những hiểu biết cơ bản về Data Platform cũng như cách xây dựng ứng dụng gợi ý phim cơ bản dựa trên công nghệ mã nguồn mở

1.2 Mục đích và nhiệm vụ nghiên cứu

Mục tiêu của khóa luận hướng đến là hiện thực vận dụng các kiến trúc Data Platform cho bài toán lưu trữ dữ liệu phim ảnh qua các công việc như sau:

• Tìm hiểu về Data Platform và các công cụ có liên quan

• Đề xuất các kiến trúc hạ tầng Data Warehouse, Data Lake, Data

• Xây dựng Data Platform từ các mã nguồn mở

• Xây dựng các thuật toán gợi ý phim cơ bản và bài toán phân tích cảm xúc (thông qua đánh giá người dùng)

• Tạo ra các báo cáo, report và xây dựng các mô hình gợi ý phim cơ bản

Dữ liệu thông tin về các bộ phim trên các nền tảng xem phim trực tuyến

Các kiến trúc Data Platform

Các mã nguồn mở để xây dựng lên một Data Platform

Các mô hình học máy cơ bản cho bài toán gợi ý và bài toán phân tích cảm xúc

Tìm hiểu lý thuyết về các kiến trúc của Data Lakehouse

Tìm hiểu công nghệ lưu trữ dữ liệu lớn

Tìm hiểu giải thuật Logistic Regression và mô hình Content – Based Filtering Xây dựng và triển khai kiến trúc Data Lakehouse trên môi trường Docker Đánh giá thực nghiệm dựa trên dữ liệu thực

Phương pháp thu thập dữ liệu

Phương pháp phân tích và thiết kế

Phương pháp cài đặt và triển khai

Phương pháp thực nghiệm và đánh giá

Bố cục của tiểu luận bao gồm:

CHƯƠNG 1: MỞ ĐẦU Giới thiệu ngắn gọn về đề tài, mục đích nghiên cứu Ý nghĩa lý luận và thực tiễn của việc nghiên cứu đề tài

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (CƠ SỞ LUẬN) Tìm hiểu các khái niệm và kiến trúc trong quá trình nghiên cứu và xây dựng hệ thống

CHƯƠNG 3: GIẢI PHÁP ĐỀ XUẤT Đưa ra giải pháp và trình bày phần cài đặt hệ thống

CHƯƠNG 4: THỰC NGHIỆM, PHÂN TÍCH KẾT QUẢ Trình bày phần thử nghiệm Phân tích kết quả thực nghiệm thu được

KẾT LUẬN

Ngày đăng: 19/11/2024, 08:53

HÌNH ẢNH LIÊN QUAN

Hình 5. Kiến trúc Data Lakehouse - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 5. Kiến trúc Data Lakehouse (Trang 23)
Hình 7. Kiến trúc của Docker - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 7. Kiến trúc của Docker (Trang 25)
Hình 12. Logo của Apache Iceberg - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 12. Logo của Apache Iceberg (Trang 28)
Hình 19. Data pipeline cơ bản của Dagster - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 19. Data pipeline cơ bản của Dagster (Trang 32)
Hình 29. Tổng thể giải pháp - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 29. Tổng thể giải pháp (Trang 43)
Hình 41. Bảng metadata SDS - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 41. Bảng metadata SDS (Trang 49)
Hình 44. Kiến trúc của Data Lakehouse do nhóm thiết kế - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 44. Kiến trúc của Data Lakehouse do nhóm thiết kế (Trang 50)
Hình 45. Các layer trong Data Lakehouse - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 45. Các layer trong Data Lakehouse (Trang 51)
Hình 58. Các bộ phim có ngân sách sản xuất cao nhất - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 58. Các bộ phim có ngân sách sản xuất cao nhất (Trang 57)
Hình 59. Mô hình được lưu trữ vào Data Lake - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 59. Mô hình được lưu trữ vào Data Lake (Trang 58)
Hình 61. Ma trận đặc trưng - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 61. Ma trận đặc trưng (Trang 59)
Hình 62. Hàm sigmoid. - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 62. Hàm sigmoid (Trang 60)
Hình 66. Trang chủ web tìm kiếm phim - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 66. Trang chủ web tìm kiếm phim (Trang 62)
Hình 69. Kết quả trả về của các bộ phim có liên quan (Hệ thống gợi ý) - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng data platform sử dụng mã nguồn mở phục vụ hệ thống gợi ý phim
Hình 69. Kết quả trả về của các bộ phim có liên quan (Hệ thống gợi ý) (Trang 64)