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