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

Luận văn thạc sĩ Kỹ thuật viễn thông: Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học

83 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

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN TẤN LỘC

XÂY DỰNG HỆ THỐNG KHUYẾN NGHỊ SẢN PHẨM SỬ DỤNG MÁY HỌC

BUILDING A PRODUCT RECOMMENDATION SYSTEM USING MACHINE LEARNING

Chuyên ngành: KỸ THUẬT VIỄN THÔNG Mã số: 8520208

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 7 năm 2023

Trang 2

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: PGS.TS Hồ Văn Khương ……….……… Cán bộ chấm nhận xét 1: PGS.TS Hoàng Hà Kha ……….………

Cán bộ chấm nhận xét 2: TS Huỳnh Thế Thiện ………….………

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 06 tháng 07 năm 2023

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 GS.TS Lê Tiến Thường (Chủ tịch hội đồng) 2 TS Huỳnh Phú Minh Cường (Thư Ký)

3 PGS.TS Hoàng Hà Kha (Phản biện 1) 4 TS Huỳnh Thế Thiện (Phản biện 2) 5 TS Nguyễn Đình Long (Ủy viên)

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: NGUYỄN TẤN LỘC MSHV: 1970279 Ngày, tháng, năm sinh: 16/08/1992 Nơi sinh: Vĩnh Long Chuyên ngành: Kỹ thuật Viễn thông Mã số : 8520208

I TÊN ĐỀ TÀI (Tiếng Việt và Tiếng Anh):

Tên Tiếng Việt: Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học

Tên Tiếng Anh: Building a product recommendation system using Machine Learning

II NHIỆM VỤ VÀ NỘI DUNG:

- Tìm hiểu máy học, cơ sở dữ liệu sản phẩm, phân khúc khách hàng, phản hồi của người tiêu dùng

- Thực hiện công tác thu thập, xử lý, khai phá và mô hình hóa dữ liệu

- Xây dựng hệ thống khuyến nghị sản phẩm dự trên thông tin sản phẩm, phân khúc khách hàng và phản hồi của người tiêu dùng

- Xây dựng web app sử dụng Streamlit và báo cáo kết quả

III NGÀY GIAO NHIỆM VỤ : 06/02/2023

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 11/06/2023

V CÁN BỘ HƯỚNG DẪN : PGS TS HỒ VĂN KHƯƠNG

PGS.TS Hồ Văn Khương PGS.TS Hà Hoàng Kha

TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

(Họ tên và chữ ký)

Trang 4

Học tập, tiếp thu kiến thức tại Trường Đại học Bách Khoa là một trong những điều tuyệt với nhất với tôi trong cuộc đời này Thạc sĩ là ước mơ mà khi còn thơ bé tôi đã luôn nghĩ về và mong muốn điều đó trở thành hiện thực Khoảng thời gian học tập và nghiên cứu tại trường sẽ luôn mãi là kỷ niệm đẹp, niềm hạnh phúc và kiến thức có được khi học tập tại nơi đây sẽ luôn là nền tảng vững chắc để tôi có thể bước tiếp trên con đường tương lai phía trước

Tôi xin phép gửi lời cảm ơn chân thành và sâu sắc nhất đến các thầy trong Bộ Môn Viễn Thông, Thầy PGS.TS Hồ Văn Khương, Thầy TS Võ Tuấn Kiệt đã chỉ bảo tận tâm và hướng dẫn tôi trong suốt quá trình thực hiện luận văn thạc sĩ này, cũng như trong quá trình học tập bô môn Máy học tại trường Đại học Bách Khoa TP.HCM Các thầy đã giúp đỡ, dạy bảo không chỉ về mặt kiến thức, mà còn là những kỹ năng để học tập, làm việc và nghiên cứu Đó là những bài học kinh nghiệm quý báu sẽ đồng hành cùng tôi trên suốt chặng đường học tập, nghiên cứu và làm việc sau này Con cũng xin cảm ơn Ba – người đã luôn bên cạnh con trong mọi hoàn cảnh, tạo cho con những điều kiện tốt nhất để con có thể phát huy, tìm hiểu những đam mê, sở thích của mình Và cuối cùng, tôi cũng xin cảm ơn nhưng người bạn đã đồng hành cùng tôi trong suốt thời gian thạc sĩ này đã cùng nhau chia sẻ những khó khăn trong quá trình thực hiện luận văn

Tôi không biết rằng sau chặng đường Thạc sĩ này, con đường tiếp theo của tôi là gì vì hiện tại bản thân rất mơ hồ về định hướng trong tương lai, xu hướng công nghệ hiện nay đã và đang phát triển quá nhanh, cần phải trau dồi và học tập không ngừng Nhưng tôi tin rằng, thạc sĩ là một bước tiến quan trọng trong con đường tri thức của tôi, và đó là động lực để tôi đủ hành trang để tiếp tục với những đam mê của mình Tôi sẽ luôn trau dồi những kiến thức mới cho bản thân để có thể đóng góp một phần nào đó sức lực của mình cho xã hội này Cám ơn vì tất cả!

Trang 5

Hệ thống khuyến nghị sản phẩm rất tiện ích, không thể thiếu đối với các trang thương mại điện tử hiện nay Gợi ý sản phẩm giúp tìm ra những sản phẩm phù hợp cho khách hàng, cũng như đem lại những trải nghiệm tốt nhất cho khách hàng, qua đó đáp ứng nhu cầu mua sắm So với quảng cáo truyền thống phải chi trả những chi phí rất cao thì hệ thống gợi ý sản phẩm sẽ tiết kiệm chi phí hơn, được cá nhân hóa nhiều hơn nên khách hàng sẽ dễ dàng tìm được sản phẩm khác nhau phù hợp với nhu cầu và sở thích, qua đó tạo ra được khoản thu nhập khổng lồ và cũng là cách nổi bật đáng kể với các đối thủ cạnh tranh Từ những nhu cầu thực tiễn như vậy, đề tài này đề xuất phương pháp xây dựng một hệ thống khuyến nghị sản phẩm sử dụng máy học dựa trên hai nhóm thuật toán là Hệ thống dựa trên nội dung (content-based systems) và Lọc cộng tác (collaborative filtering), trong đó các thuật toán được sử dụng là Consine, Gensim và ALS (Alternating Least Square) để huấn luyện mô hình, các thông số số như Mức độ tương đồng (Similarity) và Căn bậc hai của trung bình bình phương sai số (RMSE) được xem xét để đánh giá mô hình, cũng như triển khai sản phẩm ứng dụng

ABSTRACT

A product recommendation system is an indispensable utility for e-commerce sites The product recommendation system recommends right products to customers, as well as brings the best experiences to customers, thereby satisfying shopping needs Compared with traditional advertising, which has to pay very high costs, the product recommendation system will save costs, be more personalized, so customers will easily find other products, thereby generating huge income and also significantly standing out from competitors From such practical needs, this thesis proposes a method to build the product recommendation system using Machine Learning based on two groups of algorithms, content-based systems and collaborative filtering, where algorithms use Consine, Gensim and ALS (Alternating Least Square) to train models and parameters such as Similarity and Root Mean Square Error (RMSE) are considered for model evaluation as well as for application product deployment.

Trang 6

LỜI CAM ĐOAN CỦA TÁC GIẢ LUẬN VĂN

Tôi xin cam đoan đề tài: “Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học” là một công trình nghiên cứu và xây dựng độc lập dưới sự hướng dẫn của giáo viên hướng dẫn: PGS - TS Hồ Văn Khương Ngoài ra không có bất cứ sự sao chép của người khác Đề tài, nội dung báo cáo này là sản phẩm mà tôi đã nỗ lực nghiên cứu trong quá trình nghiên cứu và học tập tại Trường Đại Học Bách Khoa TP.HCM Dữ liệu thương mại điện tử thu thập được chỉ phục vụ vào mục đích học tập và tốt nghiệp, không có mục đích riêng hay kinh doanh cá nhân với bất kỳ hình thức nào Các số liệu được sử dụng, kết quả được trình bày trong báo cáo là hoàn toàn khách quan, trung thực và tôi xin chịu hoàn toàn trách nhiệm, kỷ luật của bộ môn và nhà trường nếu như có vấn đề xảy ra

Học viên/ tác giả

Nguyễn Tấn Lộc

Trang 7

3 Đối tượng và phạm vi nghiên cứu 2

4 Phương pháp nghiên cứu 3

5 Ý nghĩa khoa học và thực tiễn 3

5.1 Ý nghĩa khoa học 3

5.2 Ý nghĩa thực tiễn 4

CHƯƠNG 2: TỔNG QUAN 5

1 Cơ sở lý thuyết 5

1.1 Giới thiệu về ngôn ngữ python 5

1.2 Khái niệm về dữ liệu 5

1.3 Khái niệm và quy trình thực hiện khoa học dữ liệu 5

1.4 Các tiêu chí đánh giá mô hình thuật toán 6

1.5 Các thuật toán áp dụng để xây dựng mô hình 8

2 Tình trạng nghiên cứu 8

2.1 Nhìn chung 8

2.2 Business Understanding – Xác định vấn đề kinh doanh 8

2.3 Data Requirements – Phân tích yêu cầu dữ liệu 8

2.4 Data collection – Thu thập dữ liệu 9

Trang 8

2.6 Modeling, Algorithms – Thuật toán và mô hình hoá 20

2.7 Data product - Sản phẩm dữ liệu 21

2.8 Communication – Giao tiếp với môi trường 21

CHƯƠNG 3: NỘI DUNG THỰC HIỆN 22

1 Công cụ thu thập tập dữ liệu 22

1.1 Selenium 22

1.2 BeautifulSoup 23

1.3 Trích xuất dữ liệu từ Web Api 23

2 Tìm hiểu, phân tích và xử lý dữ liệu 24

2.1 Đọc và tìm hiểu dữ liệu 24

2.2 Phân tích, xử lý dữ liệu trùng, dữ liệu thiếu, dữ liệu ngoại lai 25

2.3 Xử lý dữ liệu văn bản ngôn ngữ tự nhiên tiếng việt 27

3.3 Mô hình máy học sử dụng trong luận văn 37

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

5 Thực hiện mô hình hóa, thông số của mô hình và nhận xét 41

5.1 Gensim 41

5.2 Cosine 42

5.3 ALS 43

5.4 SVD 49

5.5 SVD với thư viện Surprise 50

6 Thực hiện xây dựng GUI - web ứng dụng 52

6.1 Streamlit 52

6.2 Triển khai ứng dụng Streamlit 53

7 Trình bày đánh giá và bàn luận về kết quả 60

Trang 9

7.2 So sánh RMSE và MAE của 2 thuật toán ALS và SVD - Surprise 607.3 So sánh kết quả với công trình khác 617.4 So sánh 2 nhóm thuật toán Content-based system và Collaborative Filtering 61 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 62TÀI LIỆU THAM KHẢO 63PHỤ LỤC HÌNH 66

Trang 10

DANH SÁCH HÌNH VẼ

Hình 1.1: Các nhóm thuật toán thực hiện khuyến nghị sản phẩm 4

Hình 2.1: Các bước thực hiện một dự án khoa học dữ liệu 6

Hình 2.2: Quy trình thu thập dữ liệu web (Web Scraping) 10

Hình 2.3: Khám phá – làm sạch dữ liệu 12

Hình 2.4: Kiểu dữ dữ liệu của các biến 13

Hình 2.5: Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến 15

Hình 3.1: Tổng quan về bộ dữ liệu content-base 24

Hình 3.2: Biểu đồ thể hiện sự tương quan giữa các thuộc tính 25

Hình 3.3: Tổng quan về bộ dữ liệu user-base 25

Hình 3.4: Phân tích dữ liệu trùng, dữ liệu thiếu 26

Hình 3.5: Sơ đồ bài toán Content-based system 28

Hình 3.6: Norn 2 của vector trong không gian 2 chiều và 3 chiều 29

Hình 3.7: Tích vô hướng của 2 vector 29

Hình 3.8: Góc hợp biểu diễn sự tương đồng của 2 vector 30

Hình 3.9: Hàm của thuật toán Gensim 31

Hình 3.10: Sơ đồ bài toán Content-based system 33

Hình 3.11: Ví dụ về sơ đồ dự đoán theo phương thức user-user 34

Hình 3.12: Phân rã ma trận theo ALS 36

Hình 3.13: Phân rã ma trận theo SVD 36

Hình 3.14: Ví dụ về rating còn thiếu khi tối ưu hàm mất mát 37

Hình 3.15: Trực quan với biểu đồ Hisplot 38

Hình 3.16: Trực quan với biểu đồ Barplot 39

Hình 3.17: Biểu đó Boxplot sự phân bố về giá cả 40

Hình 3.18: Biểu đó Boxplot sự phân bố về giá cả theo hãng 40

Hình 3.19: Biểu đó Boxplot sự phân bố về giá cả theo danh mục sản phẩm 41

Hình 3.20: Word Cloud tần suất của các từ có ý nghĩa 41

Hình 3.21: Chỉ số tương đồng với khuyến nghị Gensim 42

Hình 3.22: Chỉ số tương đồng với khuyến nghị Cosine 43

Hình 3.23: Mô hình ALS ví dụ 1 44

Hình 3.24: RMSE mô hình ALS ví dụ 1 44

Hình 3.25: MAE mô hình ALS ví dụ 1 45

Hình 3.26: Mô hình ALS ví dụ 2 45

Hình 3.27: RMSE mô hình ALS ví dụ 2 46

Hình 3.28: MAE mô hình ALS ví dụ 2 46

Hình 3.29: Mô hình ALS ví dụ 3 47

Hình 3.30: RMSE mô hình ALS ví dụ 3 47

Hình 3.31: MAE mô hình ALS ví dụ 3 47

Hình 3.32: Khuyến nghị 5 sản phẩm có điểm cao nhất theo ALS 48

Hình 3.33: Khuyến nghị 5 khách hàng cụ thể theo ALS 49

Hình 3.34: Tạo ma trận thưa thớt những khách hàng đánh giá 49

Trang 11

Hình 3.36: Khuyến nghị theo SVD cho một sản phẩm

Hình 3.37: Thuật toán SVD với thư viện Surprise 51

Hình 3.38: MAE, RMSE của SVD với thư viện Surprise 51

Hình 3.39: Khuyến nghị theo SVD với thư viện Surprise 52

Hình 3.40: Giao diện web app với thuật toán Gensim 54

Hình 3.41: Sản phẩm được chọn ví dụ 1 55

Hình 3.42: Các sản phẩm được đề xuất theo ví dụ 1 55

Hình 3.43: Giao diện web app với thuật toán Cosine 56

Hình 3.44: Sản phẩm được chọn ví dụ 2 57

Hình 3.45: Các sản phẩm được đề xuất theo ví dụ 2 57

Hình 3.46: Giao diện web app với thuật toán ALS 58

Hình 3.47: Các sản phẩm đề xuất cho khách hàng theo thuật toán ALS 59

Hình 3.48: So sánh các chỉ số tương đồng của Gensim và Cosine 60

Hình 1: Thực hiện Tokenization (tách từ) 66

Hình 2: Label token’s value (đánh nhãn từ) 66

Hình 3: Thực hiện Tokenization với Gensim 67

Hình 4: Vector hóa TF-IDF với thư viện Gensim 67

Hình 5: Xét chỉ số tương đồng với khuyến nghị Gensim 68

Hình 6: Vector hóa TF-IDF với thư viện sklearn cho Cosine 68

Hình 7: Chỉ số tương đồng với khuyến nghị Cosine 69

Hình 8: Độ thưa thớt của dữ liệu chuẩn bị cho thuật toán ALS 69

Trang 12

Bảng 2.1: Các phương pháp trực quan số liệu thống kê 14

Bảng 3.1: Các bước thực hiện đánh trọng số cho từ trong văn bản 32

Bảng 3.2: So sánh RMSE và MAE của 2 thuật toán ALS và SVD – Surprise 60

Bảng 3.3: So sánh kết quả với công trình khác 61

Trang 13

Ký hiệu Tiếng Anh Ý nghĩa Tiếng việt

ALS Alternating Least Squares Bình phương nhỏ nhất luân phiên MAE Mean Absolute Error Trung bình của sai số tuyệt đối RMSE Root Mean Square Error Căn bậc hai của sai số bình phương

SVD Singular Value Decomposition Phân tích trị riêng

SEO Search Engine Optimization Tối ưu hóa công cụ tìm kiếm

KPIs Key Performance Indicators Chỉ số đo lường hiệu quả công việc NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên

ANOVA Analysis of Variance Phân tích phương sai

HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn bản XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng UTF-8 8-bit Unicode Transformation

Format

Định dạng chuyển đổi Unicode 8-bit

TF-IDF Term Frequency – Inverse Document Frequency

Tần suất xuất hiện - Nghịch đảo tần suất văn bản

KNN K-Nearest Neighbors K lân cận gần nhất ML Machine Learning Máy học

Dot Product Scalar Product Tích vô hướng

GUI Graphical User Interface Giao diện đồ họa người dùng

Trang 14

CHƯƠNG 1: MỞ ĐẦU

1 Lý do chọn đề tài

Hiện nay, hầu hết các doanh nghiệp đều có dữ liệu và có nhu cầu phân tích để tìm ra lợi thế cạnh tranh trong kỷ nguyên số hóa Nhận thấy những lợi thế khổng lồ từ việc sử dụng phân tích dữ liệu, nhiều doanh nghiệp trong nước đã bắt đầu ứng dụng dữ liệu lớn vào phục vụ hoạt động sản xuất kinh doanh Việc phân tích dữ liệu giúp cho doanh nghiệp tăng doanh thu nhờ tăng sản lượng và loại hình dịch vụ cung cấp, cắt giảm chi phí vận hành [1]

Một khi các doanh nghiệp đã làm chủ được dữ liệu thì họ sẽ có cơ hội thành công lớn, tạo ra vị thế cạnh tranh cao nhờ hưởng lợi từ việc quản lý, phân tích dữ liệu một cách chính xác hơn, hữu ích hơn với chi phí thấp hơn [2]

Chính vì thế, trên bước đường làm chủ và phát huy mạnh mẽ giá trị của hệ thống dữ liệu, không thể thiếu lĩnh vực Thương mại điện tử và đây cũng là cơ hội và thách thức đối với lĩnh vực này Theo Cục Thương Mai Điện Tử và Kinh tế số, năm 2020, tốc độ tăng trưởng của thương mại điện tử (TMĐT) đạt mức 18% và quy mô đạt 11,8 tỷ USD và là nước duy nhất ở Đông Nam Á có tăng trưởng TMĐT 2 con số bất chấp dịch bệnh Covid-19 Báo cáo Kinh tế số Đông Nam Á 2020 của Google, Temasek và Bain & Company cho thấy thị trường TMĐT Việt Nam đứng thứ 3 Đông Nam Á năm 2020, với quy mô 7 tỷ USD, xếp sau Indonesia (32 tỷ USD) và Thái Lan (9 tỷ USD) Với tốc độ phát triển mạnh mẽ của TMĐT Việt Nam như hiện nay và trong thời gian tới, nhu cầu về nhân lực đang trở nên vô cùng cấp bách Chính vì thế, các doanh nghiệp thương mại điện tử đang kì vọng sẽ có nhiều nguồn nhân lực được đào tạo bài bản, chính quy những kiến thức căn bản về Công nghệ thông tin và truyền thông để đáp ứng được các xu hướng phát triển [3]

Thế nhưng, hiện nay ở Việt Nam có rất ít những nghiên cứu chuyên sâu về việc ứng dụng Trí tuệ nhân tạo và Máy học vào lĩnh vực này và chưa đủ để đáp ứng được cho các doanh nghiệp, trong đó có Công ty Trách Nhiệm Hữu Hạn (TNHH) Tiki Hiện trên thế giới, nhiều công ty Thương mại Điện tử khác nhau đã đưa ra các giải pháp máy học và thành công rất lớn như Amazon, JD.com, Alibaba, eBay,… Chính vì những điều kiện như thế, Chính phủ Việt Nam ngày càng quan tâm và tạo điều kiện những dự án giải pháp trí tuệ nhân tạo cho lĩnh vực thương mại điện tử Ngày 1-10-2021, Vườn ươm doanh nghiệp công nghệ cao thuộc Khu công nghệ cao Hồ Chí Minh, phối hợp Hiệp hội Thương mại điện tử Việt Nam tổ chức buổi lễ công bố chương trình AI-Hack Bootcamp AI-Hack Bootcamp hướng đến ươm tạo những dự án trí tuệ nhân tạo và máy học trong lĩnh vực Thương mại Điện tử Ông Nguyễn Ngọc Dũng - phó chủ tịch Hiệp hội Thương

Trang 15

thương mại điện tử đang là hình thức kinh doanh tiềm năng được nhiều doanh nghiệp, nhà bán lẻ hướng tới Dịch COVID-19 khiến mọi người phải hạn chế đi lại, nhiều khu vực bị phong tỏa trong thời gian dài lại là cơ hội để thương mại điện tử phát triển mạnh mẽ, khi người dân ở trong nhà chỉ cần cầm chiếc smartphone lên là đã có thể mua sắm, đi chợ” Vì vậy, Hiệp hội Thương mại điện tử Việt Nam mong muốn trong những năm tới sẽ có càng nhiều các dự án ứng dụng để phát triển được những mô hình sáng tạo đưa Trí tuệ nhân tạo, máy học vào xử lý dữ liệu thương mại điện tử, không chỉ thành công tại Việt Nam mà còn có thể cạnh tranh với các đối thủ trong khu vực [4] Qua sự kiện này càng cho thấy tầm quan trọng của việc ứng dụng máy học vào phân tích và xử lý dữ liệu, xây dựng hệ thống khuyến nghị sản phẩm trong lĩnh vực thương mại điện tử Đây cũng là lý do tôi chọn đề tài này

2 Mục đích nghiên cứu

Mục đích của đề tài là thực hiện Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học Thương mại điện tử, thuộc quản lý bởi Công ty TNHH Tiki Cụ thể là xây dựng hệ thống gợi ý sản phẩm cho khách hàng Hệ thống hoàn thiện gồm thu thập, phân tích và xử lý dữ liệu, phân tích và xử lý ngôn ngữ tự nhiên, thực hiện trực quan, xây dựng mô hình, đưa ra kết luận và xây dựng trang web ứng dụng

3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của luận văn thạc sĩ là những dữ liệu về sản phẩm và những dữ liệu đánh giá, bình luận của khách hàng về những sản phẩm mà khách hàng đã trải nghệm sau khi mua sản phẩm tại mục Thiết bị số - Phụ kiện số của trang thương mại điện tử Tiki.vn

Đề tài này nghiên cứu dựa theo nhu cầu thực tế của trang thương mại điện tử Cụ thể, hệ thống gợi ý sản phẩm giúp khuyến nghị những sản phẩm phù hợp cho khách hàng, cũng như mang lại những trải nghiệm tốt nhất cho khách hàng, qua đó đáp ứng nhu cầu mua sắm So với việc quảng cáo truyền thống phải chi trả những chi phí rất cao, thì việc xây dụng hệ thống gợi ý sản phẩm sẽ tiết kiệm chi phí hơn, được cá nhân hoá nhiều hơn nên khách hàng sẽ dễ dàng tìm được sản phẩm khác nhau phù hợp với nhu cầu và sở thích Đề tài tiến hành ứng dụng kiến thức và kỹ năng máy học vào các bộ dữ liệu chi tiết sản phẩm, dữ liệu phản ánh của khách hàng đến các sản phẩm của Tiki, sau khi được thu thập và xử lý, thực hiện phép thử nhiều thuật toán như Content Based Filtering (thuật toán Cosine và Gensim) và Collaborative Filtering (thuật toán ALS) Tiến hành nhận xét thuật toán áp dụng cho bộ dữ liệu thông qua các thông số Mức độ tương đồng (Similarity) và Căn bậc hai của trung bình bình phương sai số (RMSE) Sau đó tiến hành xây dựng ứng dụng web trực quan cho dữ liệu

Trang 16

Phương pháp nghiên cứu của đề tài là dựa vào các cơ sở lý thuyết, toán học, các thuật toán, sau đó, dùng ngôn ngữ python và Jupyter Notebook (ứng dụng web cho phép người dùng viết code và các phần tử văn bản đa dạng thức) để thu thập, xử lý dữ liệu, xây dựng và ứng dụng mô hình, xét đến thông số Mức độ tương đồng (Similarity) và Căn bậc hai của trung bình bình phương sai số (RMSE) để nhận xét đánh giá, sử dụng Streamlit, Github, Streamlit.io và Render để xây dựng website ứng dụng Các bước nghiên cứu sau sẽ lần lượt được thực hiện:

✓ Tìm hiểu cơ sở lý thuyết

✓ Tìm hiểu các phương pháp thu thập, phân tích và xử lý dữ liệu ✓ Tìm hiểu các thuật toán, phương pháp mô hình hoá

✓ Tìm hiểu các tiêu chí để so sánh các thuật toán sau khi xây dựng mô hình ✓ Tìm hiểu phương pháp so sánh, đánh giá các phương pháp lựa chọn thuật

toán dựa trên các tiêu chí đã chọn, thực hiện đề xuất

✓ Thực hiện trực quan hóa dữ liệu, xây dựng website ứng dụng và báo cáo

5 Ý nghĩa khoa học và thực tiễn

5.1 Ý nghĩa khoa học

Việc xây dựng hệ thống khuyến nghị sản phẩm được bắt đầu bằng việc nghiên cứu và áp dụng công nghệ lõi bên trong, gồm các quy trình thực hiện trong việc thu thập, tìm hiểu, phân tích và xử lý bộ dữ liệu Luận văn lần này đề xuất 2 nhóm thuật toán để khuyến nghị sản phẩm là Hệ thống dựa trên nội dung (content-based systems) và Lọc cộng tác (collaborative filtering)

Hệ thống dựa trên nội dung (content-based systems) tập trung vào thuộc tính của các sản phẩm và cung cấp cho khách hàng dựa trên sự tương tự của chúng Phương pháp được đánh giá dựa trên mức độ tương đồng giữa các sản phẩm (Similarity_level)

Lọc cộng tác (collaborative filtering) tạo ra đề xuất dựa trên kiến thức của khách hàng về thái độ đối với sản phẩm, nó dựa vào dữ liệu, kiến thức, đánh giá của số đông để đề xuất các sản phẩm Từ đó tiến hành xây dụng mô hình huấn luyện và kiểm tra Mô hình được đánh giá dựa trên thông số Căn bậc hai của trung bình bình phương sai số (RMSE)

Trang 17

Hình 1.1: Các nhóm thuật toán thực hiện khuyến nghị sản phẩm

5.2 Ý nghĩa thực tiễn

Kết quả nghiên cứu cung cấp các phương pháp xây dựng hế thống khuyến nghị sản phẩm thương mại điện tử, giúp tiết kiện chi phí hơn so với các phương pháp quảng cáo truyền thống, nâng cao doanh thu và tạo vị thế cạnh tranh với các đối thủ trong lĩnh vực thương mại điện tử

Một mặt khác, luận văn lần này cũng tập trung vào việc làm chủ công nghệ, áp dụng các thuật toán lõi của hệ thống khuyến nghị sản phẩm, giúp dễ dàng cho việc phát triển và ứng dụng với các mục đích khác nhau sau này, làm cho việc phát triển trở nên bền vững hơn

Trang 18

• Python là một ngôn ngữ lập trình mã nguồn mở, hoàn toàn miễn phí và có đủ các tính chất tương tự như những ngôn ngữ lập trình khác

• Python có khoảng 72,000 thư viện hỗ trợ cho việc tính toán và ứng dụng máy học

• Python cho phép thực hiện phân tích dữ liệu, thao tác dữ liệu, và ảo hóa dữ liệu

1.2 Khái niệm về dữ liệu

Dữ liệu [7] là cách nói khác của thông tin, là tập hợp các dữ kiện, ví dụ như ngôn ngữ, hình ảnh, với mục đích đo lường, quan sát hoặc mô tả về sự việc, sự vật Cùng với sự phát triển ngày càng nhanh của công nghệ thông minh như hiện nay, dữ liệu ngày càng nhiều và được đưa vào cũng với các trang thương mại điện tử để phục vụ việc sản xuất kinh doanh Hầu như dữ liệu hiện nay đa phần là sắp xếp ngẫu nhiên và không có cấu trúc

1.3 Khái niệm và quy trình thực hiện khoa học dữ liệu

Các bước thực hiện một dự án khoa học dữ liệu bao gồm [8]: ✓ Xác định vấn đề kinh doanh cần giải quyết

✓ Xác định yêu cầu dữ liệu ✓ Thu thập thu thập dữ liệu ✓ Phân tích và xử lý dữ liệu thô

Trang 19

✓ Phân tích và trực quan dữ liệu sau khi xử lý ✓ Lựa chọn thuật toán và xây dựng mô hình

✓ Lập trình đưa ra các thông số, tiêu chí và lựa chọn mô hình phù hợp, tối ưu nhất cho từng yêu cầu của dự án

Hình 2.1: Các bước thực hiện một dự án khoa học dữ liệu

1.4 Các tiêu chí đánh giá mô hình thuật toán

Luận văn có các thông số tính toán, nhằm giúp cho việc định lường đo lường chất lượng của mô hình như MAE, RMSE và Similarity Level

MAE

MAE (Mean Absolute Error) [9]: là trung bình của sai số tuyệt đối

MAE đo lường mức độ trung bình của các lỗi trong một tập hợp các dự đoán, mà

Trang 20

không xem xét hướng của chúng Lấy giá trị trung bình của các phần dư của giá trị thực tế và giá trị dự đoán, lấy các giá trị tuyệt đối của mỗi phần dư, vì vậy phần dư dương và phần dư âm không triệt tiêu lẫn nhau

Vấn đề của MAE là không được mở rộng theo nhu cầu: 𝑀𝐴𝐸 = 1

𝑛∑𝑛𝑖=1(|𝑌𝑖− 𝑌̂ |)𝑖 (2.1) Trong đó: MAE là trung bình của sai số tuyệt đối

Yi là giá trị thực tế Ŷ là giá trị dự đoán i

RMSE

RMSE (Root Mean Square Error) [10]: là căn bậc hai của sai số bình phương trung bình Cũng như đối với MAE, RMSE không được mở rộng theo nhu cầu So với MAE, RMSE không xử lý từng lỗi như nhau Nó mang lại tầm quan trọng hơn cho các lỗi quan trọng nhất Điều đó có nghĩa là một lỗi lớn đủ để nhận được một RMSE rất tệ

RMSE = √1

n∑n (|Yi − Ŷ |)i 2i=1

similarity_level = cos(𝜃) = A ∗ B||A||||B|| =

∑ni=1Ai Bi

√∑ni=1A2i √∑ni=1Bi2 (2.3) Trong đó: Similarity_level là mức độ tương đồng

A và B là 2 vector đang xét

Ai và Bi là các phần tử mang giá trị đang xét trên 2 vector A và B

Trang 21

1.5 Các thuật toán áp dụng để xây dựng mô hình

Xây dựng hệ thống gợi ý sản phẩm (Recommendation system): sử dụng Content Based Filtering (thuật toán Cosine và Gensim) và Collaborative Filtering (thuật toán ALS và SVD-Surprise) Trong đó, bài toán Content Based Filtering cần kết hợp kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) để đưa ra các thông số về điểm tương đồng

2 Tình trạng nghiên cứu

2.1 Nhìn chung

Trong khoảng thời gian 2017-2022, đã có nhiều đề tài thực hiện ứng dụng máy học và đã sử dụng các thuật toán khác nhau [12] Qua đó, nhiều đề tài đã áp dụng thực tế, góp phần thúc đẩy sự phát triển ngày càng lớn mạnh của các trang thương mại điện tử và đáp ứng các nhu cầu ngày càng cao của khách hàng Bài viết này tham khảo luận văn đã thực hiện trước đó [13], đồng thời đưa đến cái nhìn tổng quan hơn về toàn bộ quy trình thực hiện của lĩnh vực khoa học dữ liệu thương mại điện tử Qua đó có thể ứng dụng vào thực tế ở thời điểm hiện nay

2.2 Business Understanding – Xác định vấn đề kinh doanh

Trước khi cố gắng rút ra thông tin chi tiết hữu ích từ dữ liệu, điều cần thiết là xác định vấn đề kinh doanh cần giải quyết, cố gắng hiểu rõ về những gì doanh nghiệp cần trích xuất từ dữ liệu

Xác định vấn đề (problem definition) là động lực để thực hiện kế hoạch phân tích dữ liệu Các nhiệm vụ chính là xác định mục tiêu của phân tích, xác định các công việc, vạch ra vai trò và trách nhiệm, thu thập trạng thái hiện tại của dữ liệu, xác định thời gian biểu và thực hiện phân tích chi phí lợi nhuận Từ đó, một kế hoạch thực thi có thể được tạo ra

2.3 Data Requirements – Phân tích yêu cầu dữ liệu

Dữ liệu là cần thiết để làm đầu vào cho phân tích, được chỉ định dựa trên yêu cầu của người chỉ đạo phân tích hoặc khách hàng (những người sẽ sử dụng thành phẩm của phân tích) Mẫu mà dữ liệu sẽ được thu thập được gọi là một đơn vị thử nghiệm Các biến cụ thể liên quan đến người có thể được chị định và thu được Dữ liệu có thể là ở dạng số hay dạng phân loại

Trang 22

2.4 Data collection – Thu thập dữ liệu

2.4.1 Đặt vấn đề - Tại sao cần thu thập dữ liệu

Đối với doanh nghiệp hiện nay, việc thu thập dữ liệu có nhiều mục đích như: để so sánh giá cả, biết được sự hài lòng của khách hàng, so sánh khách hàng tiềm năng Đối với người làm khoa học dữ liệu (Data Scientist) hay với các cá nhân, việc thu thập dữ liệu có các mục đích như: tìm kiếm các thông tin yêu thích trên các trang web, nhận thông tin việc làm – tiền lương từ các trang web tuyển dụng, tìm kiếm các chủ đề nóng trên các trang web xã hội, lướt các trang blog ẩm thực để tìm kiếm các công thức nấu ăn cụ thể hay các bài đánh giá khác nhau

2.4.2 Giới thiệu về Web Scraping

Web Scraping, còn gọi là Data Mining (khai thác dữ liệu web) hoặc Web Harvesting (thu thập web), là quá trình xây dựng một ứng dụng có thể trích xuất, phân tích cú pháp, tải và sắp xếp thông tin hữu ích từ web một cách tự động Dữ liệu (data): là thứ không thể thiếu đối với bất kỳ ai làm việc với dữ liệu; yêu cầu cơ bản của mọi dự án Khoa học Dữ liệu hay mọi ứng dụng là số lượng lớn dữ liệu hữu ích

Phương pháp thu thập dữ liệu [14]:

✓ Sử dụng tính năng web scraping để có được lượng lớn dữ liệu có sẵn trực tuyến

✓ Phần mềm web scraping sẽ tự động tải và trích xuất dữ liệu từ nhiều trang web

✓ Trang web thương mại điện tử (E-commerce Websites) – thu thập dữ liệu liên quan đặc biệt đến giá cả của một sản phẩm cụ thể từ các trang web thương mại điện tử khác nhau để so sánh

✓ Công cụ tổng hợp nội dung (Content Aggregators) – được sử dụng rộng rãi bởi các công ty tổng hợp nội dung như tổng hợp tin tức và tổng hợp việc làm để cung cấp dữ liệu cập nhật cho khách hàng của họ

✓ Chiến dịch tiếp thị và bán hàng (Marketing & Sales Campaigns): có thể sử dụng để lấy dữ liệu như email, số điện thoại cho các chiến dịch bán hàng và tiếp thị

✓ Tối ưu hóa công cụ tìm kiếm (Search Engine Optimization – SEO): được sử dụng rộng rãi cho các cộng cụ SEO để doanh nghiệp biết cách họ xếp hạng cho các từ khóa tìm kiếm quan trọng

✓ Dữ liệu cho các dự án máy học (Data for Machine Learning Projects): việc

Trang 23

truy xuất dữ liệu cho các dự án máy học phụ thuộc vào việc tìm kiếm trên web

Trang 24

✓ Đọc dữ liệu thô online

✓ Định dạng dữ liệu này để có thể sử dụng được

✓ Sử dụng Selenium hoặc Beautiful Soup thông qua Python để thu thập dữ liệu ✓ Processing – Xử lý dữ liệu, có nhiều lựa chọn công việc

2.5 Data preprocessing and analysis – Tiền xử lý và phân tích dữ liệu 2.5.1 Data Visualization – Trực quan hoá dữ liệu

Trực quan hoá dữ liệu là việc sử dụng các biểu diễn trực quan của dữ liệu trừu tượng thông qua sự hỗ trợ của máy tính để mở rộng nhận thức Trực quan dữ liệu nhằm khai thác sức mạnh đáng kinh ngạc của hệ thống trực quan, phát hiện các mối quan hệ và xu huống, giúp người xem thấy trực quan và dễ hiểu, qua đó giúp giải quyết các vấn đề đã đặt ra Biểu đồ tương tác trực tiếp với hệ thống thi giác, giúp chúng ta xử lý thông tin nhanh hơn, giải thích khối lượng lớn dữ liệu ngay lập tức hay kể câu chuyện về dữ liệu trong thời gian rất ngắn

2.5.2 Data exploration – Khám phá, làm sạch dữ liệu

Khám phá dữ liệu là một bước thực hiện trong quá trình làm sạch dữ liệu (Data cleaning) Không có lối tắt để khám phá dữ liệu Khi làm việc với máy học, chúng ta sẽ nhận ra rằng chúng ta luôn phải vật lộn để cải thiện độ chính xác của mô hình Trong những tình huống như vậy, các kỹ thuật khám phá dữ liệu sẽ rất hữu ích Chất lượng input sẽ quyết định đến chất lượng output Thường việc khám phá dữ liệu, làm sạch và chuẩn hoá dữ liệu chiếm phần lớn thời gian của dự án (70% ~ 80%)

Trang 25

Hình 2.3: Khám phá – làm sạch dữ liệu Các công việc cần làm trước tiên:

a Xác định thuộc tính - biến (Variable – Identification)

Để đảm bảo kết quả tốt cho một dự án, chúng ta cần hiểu rõ về phạm vi của dữ liệu Để làm điều đó, chúng ra không chỉ cần biết về loại dữ liệu chúng ra có mà còn cần biết mối quan hệ giữa các thuộc tính, thuộc tính nào hữu ích và cách chúng thay đổi trong dữ liệu được cung cấp Chúng ra cần thực hiện một số thử nghiệm khám phá ban đầu trên dữ liệu

Chúng ta cần tìm hiểu các kỹ thuật để khám phá và phân tích dữ liệu bằng cách xác định thuộc tính hữu ích cho kinh tế, tiếp thị, phân tích các chỉ số hiệu suất chính (KPIs – key performance indicators) Đầu tiên, xác định các biến đầu vào (Predictor/Input) và biến đầu ra (Target/Output) Tiếp theo, xác định kiểu dữ liệu của các biến (Numberical Data, Categorical Data, Time Series Data, Text…)

Trang 26

Hình 2.4: Kiểu dữ dữ liệu của các biến b Phân tích đơn biến (Univariate Analysis)

Phân tích dữ liệu đơn biến có nghĩa là chúng ta khám phá từng biến một Phương pháp để thực hiện phân tích đơn biến sẽ phụ thuộc vào loại biến là phân loại (categorical) hay liên tục (continuous) Continuous Variales: trong trường hợp các biến liên tục, các ta cần tìm hiểu xu hướng trung tâm và sự lây lan của các biến

Trang 27

Bảng 2.1: Các phương pháp trực quan số liệu thống kê

Central Tendency Measure of Dispersion Visualization Mathods

Max Standard Deviation Skewness and Kurtosis

Chú ý: Phân tích đơn biến cũng được sử dụng để làm nổi bật các giá trị bị thiếu và ngoại lệ Categorical Variales: đối với các biến phân loại, chúng ta sử dụng bảng tần số để hiểu phân phối của từng loại, cũng có thể đọc theo tỷ lệ phần trăm của các giá trị theo từng danh mục Biến có thể được đếnm bằng value_counts() theo từng Category Bar chart được dùng để trực quan dữ liệu

c Phân tích hai biến (Bi-variate Analysis)

Phân tích hai biến tìm ra mối quan hệ của hai biến: tìm kiếm sự liên kết (association) và không liên kết (disassociation) giữa các biến ở mức ý nghĩa được xác định trước Chúng ta có thể thực hiện phân tích hai biến cho bất kỳ sự kết hợp nào của các biến phân loại và liên tục Sự kết hợp có thể là: Phân loại và phân loại, phân loại và liên tục, liên tục và liên tục Các phương pháp khác nhau được sử dụng để giải quyết các kết hợp này trong quá trình phân tích

Liên tục và liên tục: khi phân tích hai biến liên tục, chúng ta nên xem xét biểu đồ

phân tán Đó là một cách phù hợp để tìm ra mối quan hệ của hai biến Mẫu biểu đồ phân tán biểu thị mối quan hệ giữa các biến Mối quan hệ có thể là tuyến tính hay phi tuyến tính

Trang 28

Hình 2.5: Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến

Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến nhưng không chỉ ra sức mạnh của mối quan hệ giữa chúng Để tìm ra sức mạnh của mối quan hệ, cần dùng Correlation function Tương quan khác nhau giữa -1 và +1

✓ -1: Tương quan tuyến tính âm hoàn hảo ✓ +1: Tương quan tuyến tính dương hoàn hảo ✓ 0 : Không tương quan

Phân loại và phân loại: để tìm mối quan hệ giữa hai biến phân loại, chúng ta có

thể sử dụng các phương pháp: Two-way table, Stacked Column Chart, Chi-Square Test, Two-way table: Bắt đầu phân tích mối quan hệ bằng cách tạo bảng hai chiều Count Các dòng đại diện cho category của một biến và các cột đại diện cho các loại của biến khác Hiển thị Count của cá mẫu có sẵn trong mỗi kết hợp của các loại dòng và cột

Stacked Column Chart: Biểu đồ xếp cột chồng là biểu đồ trực quan hoá dữ liệu của bảng 2 chiều

Chi-Square Test: Thử nghiệm này được sử dụng để rút ra ý nghĩa thống kê của mối quan hệ giữa các biến Kiểm định chi bình phương được sử dụng được sử dụng khi chúng

Trang 29

ta mối xem liệu có mối quan hệ giữa hai biến phân loại (categorical variables) trong một tổng thể hay không Nó thường được sử dụng với dữ liệu phân loại như trình độ học vấn, màu sắc hoặc giới tính Ngoài ra, nó kiểm tra xem bằng chứng trong mẫu có đủ mạnh để khái quát mối quan hệ của một quần thể lớn hay không

Ví dụ, chúng ta quan tâm liệu có mối quan hệ giữa giới tính (gender) và loại hình doanh nghiệp (section) mà người lao động them giá làm việc hay không? Khi đó, giải thuyết của Chi-squared test được phát biểu như sau:

✓ ({H_0}): Biến gender và biến section là hai biến độc lập

✓ ({H_1}): Biến gender và biến section không phải là hai biến độc lập

Chúng ta có thể giải thích test statisgic trong bối cảnh Chi-squared distribution với số lượng degress of freedom (dof) như sau:

✓ Nếu Statistic ≥ Critical Value: bác bỏ giải thuyết null (H0) => hai biến không độc lập

✓ Nếu Statistic < Critical Value: không bác bỏ giải thuyết null (H0) => hai biến độc lập

✓ Degrees of freedom của Chi-squared distribution được tính dựa trên kích thước của contingency table: degrees of freedom: (row-1)*(cols-1)

Về mặt p-value và mức ý nghĩa được chọn (chosen significance level- alpha), thử nghiệm có thể được hiểu như sau:

✓ Nếu p-value ≤ alpha: bác bỏ null hypothesis (H0) => hai biến không độc lập ✓ Nếu p-value > alpha: không bác bỏ null hypothesis (H0) => hai biến độc lập Để thử nghiệm có hiệu quả, ít nhất năm mẫu được yêu cầu trong mỗi ô của contingency table

Phân loại và liên tục: Trong tìm hiểu mối quan hệ giữa các biến phân loại và biên

liên tục, chúng ta có thể vẽ boxplot cho từng level của các categorical variable Nếu level có số lượng nhỏ, nó sẽ không hiển thị ý nghĩa thống kê Để xem xét ý nghĩa thống kê, chúng ta thực hiện ANOVA

ANOVA (Analysis of Variance): đánh giá trung bình của nhiều nhóm (2+) có khác

nhau về mặt thống kê hay không

d Phân tích dữ liệu thiếu (Missing Values)

Trang 30

mạnh, sự phù hợp của mô hình hoặc có thể dẫn tới một mô hình sai lệch vì chúng ta chưa phân tích hành vi và mối quan hệ với các biến khác một cách chính xác Nó có thể dẫn đến dự đoán hay phân loại sai

Lý do xuất hiện các giá trị bị thiếu có thể xảy ra ở 2 giai đoạn:

✓ Khai thác dữ liệu (Data Extraction): Có thể có vấn đề với quá trình trích xuất Trong những trường hợp như vậy, chúng ta nên kiểm tra kỹ lại dữ liệu chính xác với người quản trị dữ liệu Lỗi ở giai đoạn trích xuất dữ liệu thường dễ tìm và có thể được sửa một cách dễ dàng

✓ Thu thập dữ liệu (Data collection): Những lỗi xảy ra tại thời điểm thu thập dữ liệu khó sửa hơn Ví dụ: Thiếu do không thu thập được thông tin (người dùng không cung cấp thông tin thu thập, tuổi,…)

Các cách dùng để xử lý dữ liệu thiếu bao gồm:

✓ Xoá: chúng ta xoá các mẫu trong đó có bất kỳ biến nào bị thiếu Sự đơn giản là một trong những lợi thế của phương pháp này, nhưng nó làm giảm đi sức mạnh của mô hình do làm giảm kích thước mẫu

✓ Phương pháp Mean/Mode/ Median Imputation: là phương pháp điền vào chỗ các giá trị còn thiếu với các giá trị ước tính Mục tiêu là sử dụng các mối quan hệ đã biết có thể được xác định trong các giá trị hợp lệ của tập dữ liệu để hỗ trợ ước tính các giá trị còn thiếu Đây là phương pháp được sử dụng thường xuyên nhất Việc thay thế dữ liệu bị thiếu cho một thuộc tính nhất định bằng mean hoặc median (thuộc tính định lượng – quanlitative attribute) hoặc mode (thuộc tính định tính – qualitative attribute) của tất cả các giá trị đã biết của biến đó

✓ Prediction Model: mô hình dự đoán là một trong những phương pháp tinh vi để xử lý dữ liệu bị thiếu Ở đây, chúng ta tạo ra một mô hình dự đoán để ước tính các giá trị sẽ thay thế dữ liệu bị thiếu

Trong trường hợp này, chúng ta chia dữ liệu thành hai bộ: một bộ không có giá trị bị thiếu cho biến và bộ khác có giá trị bị thiếu Tập dữ liệu đầu tiên trở thành tập huấn luyện của mô hình, trong khi tập dữ liệu thứ hai có giá trị bị thiếu là tập dữ liệu thử nghiệm và biến có giá trị thiếu được gọi là biến đích

Tiếp theo chúng ta tạo một mô hình để dự đoán biến đích dự trên các thuộc tính khác của tập dữ liệu huấn luyện và điền các giá trị thiếu của tập dữ liệu kiểm tra Chúng ta có thể sử dụng regression, logistic regression và các kỹ thuật mô hình hoá khác nhau để thực hiện việc này

Trang 31

Nhược điểm của của phương pháp này là các giá trị ước tính của mô hình thường được xử lý tốt hơn các giá trị thực Nếu không có mối quan hệ giữa các thuộc tính trong tập dữ liệu và thuộc tính có các giá trị bị thiếu thì mô hình sẽ không chính xác khi ước tính các giá trị bị thiếu

e Xử lý dữ liệu ngoại lệ (Outlier Values)

Outlier là một thuật ngữ thường được sử dụng bởi các nhà phân tích và nhà khoa học dữ liệu vì nó cần được chú ý tới, nó có thể dẫn đến ước tính sai lầm lớn

Outlier là một mẫu xuất hiện ở xa và tách khỏi tổng thể

Ngoại thể có thể có 2 loại: đơn biến (Univariate) và đa biến (Mutivariate)

✓ Ngoại lệ đơn biến: Các ngoại lệ này này có thể được tìm thấy khi chúng ta xem xét phân phối của một biến duy nhất

✓ Ngoại lệ đa biến: là các ngoại lệ trong một không gian n chiều Để tìm thấy chúng, chúng ta phải xem xét các bản phân phối theo nhiều chiều

Nguyên nhân gây ra ngoại lệ phân ra làm 2 loại chính: Nhân tạo và tự nhiên ✓ Lỗi nhập liệu: Lỗi do con người gây ra trong quá trình thu thập, ghi hoặc nhập

dữ liệu có thể gây ra các ngoại lệ trong dữ liệu

✓ Lỗi đo lường: đây là nguồn phổ biến nhất của các ngoại lệ Điều này được gây ra khi dụng cụ đo được sử dụng bị lỗi

✓ Lỗi lấy mẫu, sai lệch dữ liệu lấy mẫu

Tác động của các ngoại lệ lên tập dữ liệu có thể làm thay đổi mạnh mẽ kết quả phân tích dữ liệu và mô hình thống kê Phương pháp để phát hiện ra ngoại lệ phổ biến nhất là trực quan hoá: dùng boxplot, histogram, scatter plot Hầu hết các loại bỏ ngoại lệ tương tự như đối phó với thiếu giá trị như xoá các mẫu, biến đổi chúng, binning, coi chúng như một nhóm riêng biệt, đưa ra các giá trị và các phương pháp thống kê khác,

Tuy nhiên, outlier có thể là những mẫu hợp pháp và đôi khi lại là những điều thú vị

Trang 32

nhất Nên việc điều tra bản chất của ngoại lệ là rất quan trọng trước khi được ra quyết định

2.5.3 Data Standardization - Chuẩn hoá dữ liệu

Chuẩn hoá dữ liệu là một quy trình xử lý dữ liệu thực hiện việc chuyển đổi cấu trúc của các bộ dữ liệu khác nhau thành định dạng dữ liệu chung (Common Data Format) Chuẩn hoá dữ liệu là một phần của việc chuẩn bị dữ liệu, chuẩn hoá dữ liệu liên quan đến việc chuyển đổi các bộ dữ liệu sau khi dữ liệu được lấy từ các hệ thống nguồn và trước khi nó được tải vào hệ thống đích

Chuẩn hoá dữ liệu cho phép người dùng phân tích và sử dụng dữ liệu một cách nhất quán Thông thường, khi dữ liệu được tạo và lưu trữ trong hệ thống nguồn, nó được cấu trúc theo một cách cụ thể mà người dùng không biết Hơn nữa, các bộ dữ liệu có thể được lưu trữ và trình báy khác nhau, do đó gây khó khăn cho người dùng khi tổng hợp hoặc so sánh các bộ dữ liệu Các bộ dữ liệu trong thế giới thực chứa các tính năng rất khác nhau về cường độ, đơn vị và phạm vi Chuẩn hoá dữ liệu nên được thực hiện khi thang đo của một tính năng không liên quan hoặc gây hiểu lầm và không nên chuẩn hoá khi thang đo có ý nghĩa

Chuẩn hoá là cách làm cho dữ liệu của chúng ta phù hợp với các giả định và cải thiện hiệu suất của thuật toán Đảm bảo dữ liệu phù hợp nghĩa là mỗi loại dữ liệu đều có cùng nội dung và định dạng Chuẩn hoá dữ liệu là một phần quan trọng của nghiên cứu và là thứ mà người sử dụng dữ liệu nên cân nhắc trước khi thu thập, dọn dẹp hoặc phân tích dữ liệu của họ Có nhiều phương pháp được sử dụng để chuẩn hoá dữ liệu như logarithmic, scaling based on distribution, binning,…

Khi nào cần chuẩn hoá dữ liệu?

✓ Khi xây dựng mô hình: Mô hình không gian tuyến tính (Linear space), các tính năng dữ liệu có phương sai cao, các tính năng dữ liệu liên tục và trên các đơn vị đo (scale) khác nhau

✓ Nhu cầu chuyển đổi dữ liệu có thể phụ thuộc vào phương pháp mô hình hoá mà chúng ta dự định sử dụng

2.5.4 Data Analysis – Phân tích dữ liệu

Phân tích dữ liệu [16] là quá trình kiểm tra, làm sạch, chuyển đổi và mô hình hoá dữ liệu với mục tiêu khám phá thông tin hữu ích, thông báo, và hỗ trợ ra quyết định Phân tích dữ liệu có nhiều khía cạnh và cách tiếp cận, bao gồm các kỹ thuật đa dạng dưới nhiều tên khác nhau và được sử dụng trong các lĩnh vực kinh doanh, khoa học và khoa học xã hội… Trong kinh doanh, phân tích dữ liệu giúp doanh nghiệp hoạt động

Trang 33

hiệu quả hơn Mục tiêu của bất kỳ việc phân tích dữ liệu là để có được thông tin hành động liên quan đến công việc doanh nghiệp Đối với nhà quản lý làm việc trên miền dữ liệu, để hỗ trợ các quyết định và hành động kinh doanh, việc hiểu các lý thuyết và kỹ thuật trong các lĩnh vực phân tích dữ liệu như thống kê, khai thác dữ liệu và phân tích dự đoán (statistics, data mining, predictive analytics) là rất quan trọng

Một số kỹ thuật phân tích dữ liệu:

✓ Phân tích tương quan (Correlation Analysis) là một kỹ thuật thống kê có thể cho thấy mối quan hệ giữa hai biến

✓ Phân tích hồi quy (Regression Analysis): Đây là một trong những kỹ thuật phân tích dữ liệu thống kê điều tra mối quan hệ giữa các biến khác nhau Nó được sử dụng khi nghi ngờ rằng một trong các biến có thể ảnh hưởng đến các biến khác Phân tích hồi quy có thể được sử dụng khi cố gắng tạo dự báo hơajc phân tích mối quan hệ giữa các biến

✓ Trực quan hoá dữ liệu (Data Visualization) giúp mọi người hiểu được thông tin quan trọng của dữ liệu bằng cách hiện thị nó trong bối cảnh trực quan Đây là một trong những kỹ thuật quan trọng nhất hiện nay khi thế giới vô vàn dữ liệu Nó đặc biệt hữu ích khi chúng ta tìm cách nắm bắt những hiểu biết sâu sắc từ một khối lượng lớn dữ liệu một cách nhanh chóng

✓ Phân tích tình huống, kịch bản (Scenario Analysis) ✓ Khai thác dữ liệu (Data mining)

✓ Mạng Neuron (Neural Networks)

✓ A/B Test: còn gọi là thử nghiệm phân tách Đây là phương pháp so sánh hai phiên bản của một trang web hoặc ứng dụng với nhau để xác định phiên bản nào hoạt động tốt hơn Kỹ thuật A/B Testing thường được sử dụng trong tiếp thị kỹ thuật số để kiểm tra phản ứng của người dùng đối với một tin nhắn và xem cái nào hoạt động tốt nhất, kiểm tra các giả thuyết trong việc ra mắt một sản phẩm mới, một chiến dịch quảng cáo hoặc một thông điệp quảng cáo

2.6 Modeling, Algorithms – Thuật toán và mô hình hoá

Các công thức hoặc mô hình toán học được gọi là thuật toán có thể được áp dụng cho dữ liệu để xác định mối quan hệ giữa các biến, chẳng hạn như tương quan hay quan hệ nhân quả Nói chung, các mô hình có thể được phát triển để đánh giá một biến cụ thể dựa trên các biến khác trong dữ liệu, với một số lỗi còn lại tuỳ thuộc vào độ chính xác của mô hình (Data = Model + Error) Thống kê suy luận bao gồm các kỹ thuật để đo

Trang 34

lường mối quan hệ giữa các biến cụ thể Các nhà phân tích có thể cố gắng xây dụng các mô hình mô tả dữ liệu để đơn giản hoá phân tích và truyền đạt kết quả

2.7 Data product - Sản phẩm dữ liệu

Một sản phẩm dữ liệu là một ứng dụng máy tính nhận dữ liệu đầu vào và tạo đầu ra, đưa chúng trở lại môi trường Nó có thể dựa trên mô hình hoặc thuật toán Một ví dụ là một ứng dụng phân tích dữ liệu về lịch sử mua hàng của khách hàng và khuyến nghị các giao dịch mua khác mà khác hàng có thể được hưởng

2.8 Communication – Giao tiếp với môi trường

Sau khi dữ liệu được phân tích, nó có thể được báo cáo theo nhiều định dạng cho người dùng để hỗ trợ các yêu cầu của họ Người dùng có thể có phản hồi, dẫn đến phân tích bổ sung Như vậy phần lớn chu trình phân tích là lặp lại Khi xác định cách truyền đạt kết quả, nhà phân tích có thể xem xét các kỹ thuật trực quan hoá dữ liệu để giúp truyền đạt thông điệp rõ rang và hiệu quả Trực quan hoá sử dụng hiện thị thông tin (biểu đồ, bảng) để giúp truyền đạt các thông điệp chính có trong dữ liệu Các bảng hữu ích cho người dùng có thể tra cứu các số cụ thể, trong khi các biểu đồ có thể giúp giải thích ác thông điệp định lượng (quantitative messages) có trong dữ liệu

Trang 35

CHƯƠNG 3: NỘI DUNG THỰC HIỆN

1 Công cụ thu thập tập dữ liệu

1.1 Selenium

Selenium [17] là một framework dùng để thử nghiệm các ứng dụng web

Selenium cung cấp playback tool để tạo các kiểm tra chức năng Nó cũng cung cấp một ngôn ngữ dành riêng cho việc kiểm thử ứng dụng (Selenese) để tester viết thử nghiệm bằng một số ngôn ngữ lập trình phổ biến như C#, Groovy, Java, Perl, PHP, Python, Ruby và Scala Sau đó, các công việc kiểm tra có thể chạy trên hầu hết các trình duyệt web hiện đại Selenium là phần mễm mã nguồn mở được phát hành theo Apache License 2.0 Selenium được sử dụng để tự động hóa trình duyệt

API Selenium sử dụng giao thức WebDriver để điều khiển trình duyệt web, như Chrome, Firefox hay Safari Chúng ta có thể dễ dàng chạy các trình duyệt này ở bất kỳ hệ điều hành nào, Windows, Mac hay Linux Khi bắt đầu từ năm 2004, Selenium chủ yếu được sử dụng để kiểm thử ứng dụng Hiện nay Selenium vẫn được sử dụng để kiểm thử ứng dụng, nhưng cũng được sử dụng như một nền tảng tự động hóa trình duyệt chung, và chúng ta có thể sử dụng Selenium để thu thập dữ liệu web

Đặc điểm Selenium WebDriver:

✓ Thân thiện, dễ sử dụng, câu lệnh dễ nhớ, có nhiều tài liệu hướng dẫn, công đồng người dùng lớn

✓ Tốc độ thực thi nhanh, tận dụng khá tốt khả năng hỗ trợ tự động hóa của các trình duyệt web Mỗi trình duyệt web khác nhau sẽ có một công cụ hỗ trợ khác nhau dành cho nó như ChromeDriver của Chrome hay FirefoxDriver của Firefox

✓ Selenium hữu ích khi chúng ta phải thực hiện một hành động trên một trang web như: click và button, điền vào form, cuộn trang, chụp ảnh màn hình (screenshot)

Cài đặt package Selenium: pip install selenium

Xác định và thu thập nhiều phần tử (find_elements) với nhiều function khác nhau Có nhiều cách khác nhau trên cấu trúc dữ liệu web thường được sử dụng như: thu thập với ‘Id’, thu thập với ‘name’, thu thập với đường dẫn ‘Xpath’, thu thập đường dẫn với ‘Link Text’, thu thập với ‘class name’, thu thập với ‘tag name’, thu thập với tên thẻ và tên class của thẻ đó ‘CSS Selectors’ WebElement là một đối tượng Selenium đại diện

Trang 36

tử HTML: truy nhật văn bản của phần tử (element.text), chọn nhấn vào phân tử (element.click), truy cập thuộc tính phần tử (element.get_attribute),…

1.2 BeautifulSoup

BeautifulSoup [18] là một package Python để phân tích tài liệu có cấu trúc HTML và XML (bao gồm cả cấu trúc, các thẻ không đúng, các thẻ không đóng, ) BeautifulSoup tạo ra cây phân tích cú pháp cho các trang phân tích cú pháp có thể được sử dụng để trích xuất dữ liệu từ HTML

Các tính năng đặt trưng của BeautifulSoup:

✓ Cung cấp một số phương pháp đơn giản và cách thức để điều hướng, tìm kiếm, sửa đổi cây phân tích cú pháp, có một bộ công cụ để phân tích tài liệu và trích xuất những gì chúng ta cần, không phải viết nhiều câu lệnh khi thực hiện ✓ Tự động giải mã dữ liệu đến sang Unicode và dữ liệu đi sang UTF-8 Không

cần tính đến việc mã hóa - giải mã, trừ trường hợp có những mã hóa quá đặc biệt

✓ Package chứa các trình phân tích cú pháp Python phổ biến như lxml và html5lib, cho phép chúng ta sử dụng linh hoạt

Package cài đặt: beautifulsoup4, lxml, webbrowser, requests, urllib3

Xác định và thu thập nhiều phần tử (page_contents) với nhiều function khác nhau Có nhiều cách khác nhau trên cấu trúc dữ liệu web thường được sử dụng như: thu thập với tag name/attrs, thu thập với đường dẫn ‘Xpath’, thu thập class_name bên trong thẻ,…

1.3 Trích xuất dữ liệu từ Web Api

Trích xuất dữ liệu từ Web Api [19] là thực hiện lấy data hiện hữu từ bất kỳ một trang web thương mại điện tử bằng cách sử dụng thư viện request và json trong Python (nếu có sẵn API từ Web) Sử dụng công cụ Developer trên trình duyệt Chrome Chúng ta vào XHR để lọc response hiện lên khi load xong trang web, kiểm tra các response tìm reponse có chứa dữ liệu sản phẩm cần thu thập Từ đó ta có API trả về đầy đủ dữ liệu id sản phẩm chúng ta cần (ở đây api sản phẩm và bình luận là: “https://tiki.vn/api/v2/products/{}” và “https://tiki.vn/api/v2/reviews/{}”) Thực hiện 3 bước để lấy dữ liệu cần thiết:

✓ Thực hiện vòng lặp lấy toàn bộ id sản phẩm có API trên

✓ Thực hiện vòng lặp trên từng id sản phẩm thu thập được để lấy dữ liệu của từng id sản phẩm đó: tên, giá cả chưa giảm, giá cả đã giảm, hình ảnh sản phẩm,

Trang 37

loại mặt hàng, nhà sản xuất, đường dẫn sản phẩm,

✓ Thực hiện vòng lặp trên từng id sản phẩm thu thập được để lấy dữ liệu bình luận nhận xét của khách hàng đã mua sản phẩm đó gồm: id khách hàng, tên khách hàng, điểm đánh giá, nội dung đánh giá,…

Kết quả thu thu thập được dữ liệu thô (chưa qua xử lý và làm sạch) gồm 2 tệp dữ liệu: ProductRaw.csv (giải quyết bài toán content-based systems) và ReviewRaw.csv (giải quyết bài toán collaborative filtering)

2 Tìm hiểu, phân tích và xử lý dữ liệu

2.1 Đọc và tìm hiểu dữ liệu

Dữ liệu đến thường có thể từ nhiều nguồn khác nhau và được định dạng khác nhau (.csv, xls, txt, json) Luận văn sử dụng định đạng csv vì loại tập tin nhẹ, dễ sử dụng và nhanh chóng Sau khi đọc dữ liệu cần xem chi tiết dữ liệu gồm shape (chiều dữ liệu), info (thông tin kiểu dữ liệu), head, tail (mục đầu - cuối trang), dtypes (kiểu dữ liệu của từng thuộc tính), describle (kiểm tra sự phân bố dữ liệu), kiểm tra dữ liệu phân loại, kiểm tra sự tương quan của các thuộc tính và lựa chọn các thuộc tính cần thiết dữ liệu đã đọc vào

Hình 3.1: Tổng quan về bộ dữ liệu content-base

Trang 38

Hình 3.2: Biểu đồ thể hiện sự tương quan giữa các thuộc tính

Hình 3.3: Tổng quan về bộ dữ liệu user-base

2.2 Phân tích, xử lý dữ liệu trùng, dữ liệu thiếu, dữ liệu ngoại lai

Thực hiện kiểm tra dữ liệu thiếu (missing value), dữ liệu bị trùng: Dữ liệu thiếu có thể làm sai lệch mô hình và đưa ra những kết luận không chính xác Do đó cần xử lý dữ liệu thiếu và dữ liệu bị trùng lặp Trường hợp luận văn có dữ liệu thiếu và dữ liệu trùng

Trang 39

rất nhỏ (dưới 1%) nên dùng phương pháp xóa hàng của những dữ liệu này Bên cạnh đó, chúng ta dùng biểu đồ boxplot để kiểm tra sự phân bố của dữ liệu và dữ liệu ngoại lai của các thuộc tính cần thiết

Hình 3.4: Phân tích dữ liệu trùng, dữ liệu thiếu

Trang 40

2.3 Xử lý dữ liệu văn bản ngôn ngữ tự nhiên tiếng việt

Thực hiện cài đặt và khai báo thư viện Underthesea Đây là thư viện mã nguồn mỡ dành cho ngôn ngữ Python, nhằm hỗ trợ việc nghiên cứu, hướng dẫn và phát triển công nghệ xử lí ngôn ngữ tự nhiên Việt Nam Thực hiện chuẩn hóa lại kiểu chữ (chuyển sang chữ thường), loại bỏ các từ không hoặc ít mang ý nghĩa văn bản nhưng lại xuất hiện quá nhiều lần trong câu (stop words) Thực hiện lưu dữ liệu sau khi đã làm sạch Dữ liệu liệu làm sạch sẽ gồm 2 file như sau: df_cleaned_contentbase.csv (giải quyết bài toán content-based systems) và df_cleaned_userbase.csv (giải quyết bài toán collaborative filtering)

2.4 Mã hóa tách từ

Tokenization (tách từ) là một trong những bước quan trọng nhất trong quá trình tiền xử lý văn bản, đó là công việc tách văn bản, đoạn văn, câu, từ thành các đơn vị nhỏ hơn, tạo thành kho từ vựng được đánh nhãn, mã số nhằm phục vụ cho các kỹ thuật như xử lý tần suất xuất hiện của từ - nghịch đảo tần suất của văn bản TF-IDF, chuẩn hóa Sau khi chia nhỏ cần thực hiện đánh nhãn cho các từ bởi dictionary

2.5 TF-IDF

Thực hiện kỹ thuật xử lý tần suất xuất hiện của từ - nghịch đảo tần suất của văn bản TF-IDF (Term frequency - inverse document frequency) [20] nhằm hạn chế những từ phổ biến trong văn bản áp đảo mô hình, dẫn đến kết quả không mong muốn TF-IDF đưa ra trọng số của các từ trong văn bản thông qua thống kê nhằm thể hiện sự quan từ của 1 từ trong văn bản, một văn bản đăng xét với tập hợp nhiều văn bản

Ví dụ từ x trong văn bản y:

𝑤𝑥,𝑦 = 𝑡𝑓𝑥,𝑦∗ 𝑙𝑜𝑔 ( 𝑁

𝑑𝑓𝑥) (3.1) Trong đó: wx, y là trọng số TF-IDF từ x trong văn bản y

df x là số văn bản có chứa x N là tổng số văn bản

tfx là tần suất xuất hiện của x dựa trên tổng số từ được chia trên một độ dài của văn bản

TF (Tern-Frequencty): ước lượng tần suất xuất hiện của từ Tuy vậy độ dài của văn bản là khác nhau nên tần suất của từ có thể nhiều hơn Do đó TF sẽ được chia trên đô dài văn bản (số lượng từ của văn bản)

Ngày đăng: 30/07/2024, 17:08

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN