ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỖ THÀNH ĐẠT - 20521163
KIỀU BÁ DƯƠNG – 20520990
ĐỒ ÁN 1
NGHIÊN CỨU CÁC GIẢI THUẬT KHUYẾN NGHỊ VÀ
XÂY DỰNG ỨNG DỤNG MINH HOẠ
Researching Recommendation Algorithms and developing
Illustrative Applications
Lớp SE121.N21
GIẢNG VIÊN HƯỚNG DẪN
Th.S Nguyễn Tấn Tồn
TP. HỒ CHÍ MINH, 2023
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỖ THÀNH ĐẠT - 20521163
KIỀU BÁ DƯƠNG – 20520990
ĐỒ ÁN 1
NGHIÊN CỨU CÁC GIẢI THUẬT KHUYẾN NGHỊ VÀ
XÂY DỰNG ỨNG DỤNG MINH HOẠ
Researching Recommendation Algorithms and developing
Illustrative Applications
Lớp: SE121.N21
GIẢNG VIÊN HƯỚNG DẪN
Th.S Nguyễn Tấn Tồn
TP. HỒ CHÍ MINH, 2023
LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến thầy Nguyễn
Tấn Tồn đã hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành đồ án mơn Đồ án 1.
Trong vòng 16 tuần, qua các buổi học, nhờ sự chỉ dẫn nhiệt tình của thầy, chúng em
đã tiếp thu được những kiến thức quan trọng, bổ ích cùng những góp ý chân thành để có thể
làm được một đồ án hoàn chỉnh. Trong khoảng thời gian thực hiện đồ án, chúng em đã học
hỏi thêm được nhiều kiến thức, kinh nghiệm, biết được các bước để nghiên cứu một vấn đề,
tự nghiên cứu về
Bên cạnh đó, chúng em xin cảm ơn các bạn bè trong lớp đã động viên, thảo luận và
góp ý cho nhóm đồng thời đã khơi thêm nguồn động lực cho nhóm trong suốt q trình đầy
khó khăn.
Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song báo cáo của nhóm chúng em
chắc chắn khơng tránh khỏi những thiếu sót, chúng em rất mong nhận được sự thơng cảm
và góp ý chân thành từ thầy.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng
hành cùng mọi người.
Thành phố Hồ Chí Minh, 13 tháng 07 năm 2023
Sinh viên
Đỗ Thành Đạt
Kiều Bá Dương
MỤC LỤC
LỜI CẢM ƠN....................................................................................................................... 1
MỤC LỤC ............................................................................................................................ 2
DANH MỤC TỪ VIẾT TẮT .............................................................................................. 7
TÓM TẮT ĐỒ ÁN ............................................................................................................... 8
ĐỀ CƯƠNG CHI TIẾT..................................................................................................... 10
NỘI DUNG ĐỒ ÁN ........................................................................................................... 17
CHƯƠNG 1: MỞ ĐẦU ................................................................................................. 17
1.1. Lý do chọn đề tài .................................................................................................. 17
1.1.1. Nhu cầu ngày càng tăng về gợi ý cá nhân .................................................... 17
1.1.2. Tiềm năng kinh doanh và trải nghiệm người dùng tốt hơn........................... 17
1.1.3. Sự phát triển nhanh chóng của dữ liệu và công nghệ ................................... 17
1.1.4. Nghiên cứu và phát triển liên quan ............................................................... 17
1.1.5. Mục tiêu của báo cáo .................................................................................... 18
1.2. Mục tiêu ............................................................................................................... 18
1.2.1. Tìm hiểu về Hệ thống gợi ý .......................................................................... 18
1.2.2. Phân tích và so sánh các phương pháp gợi ý ................................................ 18
1.2.3. Nghiên cứu và áp dụng các kỹ thuật mới...................................................... 18
1.2.4. Đánh giá và so sánh hiệu suất ....................................................................... 18
1.2.5. Đề xuất và hướng phát triển .......................................................................... 19
1.3. Phạm vi................................................................................................................. 19
1.4. Đối tượng nghiên cứu........................................................................................... 20
1.4.1. Các công nghệ nghiên cứu: ........................................................................... 20
1.4.2. Đối tượng sử dụng đề tài hướng đến: ........................................................... 20
1.5. Phạm vi nghiên cứu .............................................................................................. 20
1.5.1. Phạm vi môi trường: ..................................................................................... 20
1.5.2. Phạm vi chức năng: ....................................................................................... 20
CHƯƠNG 2: Định nghĩa và khái niệm cơ bản ........................................................... 22
2.1. Hệ thống gợi ý: ..................................................................................................... 22
2.2. Người dùng: ......................................................................................................... 22
2.3. Mục tiêu gợi ý: ..................................................................................................... 22
2.4. Phương pháp gợi ý: .............................................................................................. 22
2.5. Đánh giá hiệu suất gợi ý:...................................................................................... 22
2.6. Phân loại các phương pháp gợi ý ......................................................................... 23
2.6.1. Gợi ý dựa trên nội dung (Content-based recommendation): ........................ 23
2.6.2. Gợi ý dựa trên người dùng (Collaborative filtering): ................................... 23
2.7. Các ứng dụng của hệ thống gợi ý ......................................................................... 23
2.7.1. Ứng dụng trong thương mại điện tử: ............................................................ 23
2.7.2. Ứng dụng trong nền tảng phương tiện truyền thông:.................................... 24
2.7.3. Ứng dụng trong dịch vụ trực tuyến: .............................................................. 24
CHƯƠNG 3: Các phương pháp gợi ý.......................................................................... 24
3.1. Gợi ý dựa trên nội dung (Content-based recommendation) ................................. 24
3.1.1. Nguyên lý hoạt động ..................................................................................... 24
3.1.2. Ưu điểm và hạn chế ...................................................................................... 25
3.1.3. Ví dụ và ứng dụng......................................................................................... 26
3.2. Gợi ý dựa trên người dùng (Collaborative filtering) ............................................ 27
3.2.1. Nguyên lý hoạt động ..................................................................................... 27
3.2.2. Ưu điểm và hạn chế ...................................................................................... 28
3.2.3. Ví dụ và ứng dụng......................................................................................... 29
3.3. Phương pháp gợi ý kết hợp (Hybrid recommendation) ....................................... 29
3.3.1. Nguyên lý hoạt động ..................................................................................... 29
3.3.2. Ưu điểm và hạn chế ...................................................................................... 30
3.3.3. Ví dụ và ứng dụng......................................................................................... 31
CHƯƠNG 4: Tiền xử lý dữ liệu (Data Preprocessing): ............................................. 33
4.1. Data Cleaning (Làm sạch dữ liệu)........................................................................ 33
4.2. Data Transformation (Chuyển đổi dữ liệu) .......................................................... 34
4.3. Data Integration (Tích hợp dữ liệu) ..................................................................... 35
CHƯƠNG 5: Các thuật tốn trong hệ thống gợi ý ..................................................... 37
5.1. Thuật toán K-nearest neighbors (KNN) ............................................................... 37
5.2. Thuật toán Singular Value Decomposition (SVD) .............................................. 38
5.3. Thuật toán Matrix Factorization ........................................................................... 39
5.4. Kmeans ................................................................................................................. 41
5.5. Consine similarity ................................................................................................ 43
5.5.1. Giới thiệu ...................................................................................................... 44
5.5.2. Tính toán Cosine Similarity: ......................................................................... 44
5.5.3. Ưu điểm: ....................................................................................................... 44
5.5.4. Hạn chế: ........................................................................................................ 44
5.5.5. Phương pháp mở rộng và cải tiến: ................................................................ 45
5.6. Bert algorithm ...................................................................................................... 45
5.6.1. Giới thiệu ...................................................................................................... 45
5.6.2. Mơ hình Bert ................................................................................................. 45
5.6.3. Huấn luyện Bert ............................................................................................ 46
5.6.4. Biểu diễn từ (Word Embeddings) ................................................................. 46
5.6.5. Tính khả diễn giải của Bert ........................................................................... 46
5.6.6. Ứng dụng trong hệ thống gợi ý ..................................................................... 46
5.6.7. Kết luận ......................................................................................................... 46
5.7. Deep Learning Models ......................................................................................... 47
5.7.1. Giới thiệu ...................................................................................................... 47
5.7.2. Kiến trúc mạng Deep Learning trong hệ thống gợi ý ................................... 47
5.7.3. Mạng nơ-ron nhân tạo (Artificial Neural Networks) .................................... 47
5.7.4. Mạng nơ-ron tích chập (Convolutional Neural Networks) ........................... 47
5.7.5. Mơ hình kết hợp Deep Learning và lọc cộng tác (Collaborative Filtering) .. 47
5.7.6. Kết luận ......................................................................................................... 48
CHƯƠNG 6: Đánh giá Và Các chỉ số hiệu suất ......................................................... 49
6.1. Precision, Recall và F1-Score .............................................................................. 49
6.2. Root Mean Square Error ...................................................................................... 50
6.3. Mean Average Precision (MAP) .......................................................................... 51
6.4. Normalized Discounted Cumulative Gain (NDCG) ............................................ 51
6.5. Coverage and Diversity (Phạm vi và Đa dạng) .................................................... 53
6.6. A/B Testing (Kiểm thử A/B) ................................................................................ 53
CHƯƠNG 7: Triển khai một hệ thống đề xuất .......................................................... 54
7.1. Cơ sở lý thuyết ..................................................................................................... 54
7.1.1. Thu thập và chuẩn bị dữ liệu (Data Collection and Preparation) ................. 54
7.1.2. Lựa chọn và huấn luyện mơ hình (Model Selection and Training) .............. 55
7.1.3. Đánh giá và phân tích (Evaluation and Analysis)........................................ 56
7.1.4. Triển khai và khả năng mở rộng (Deployment and Scalability) .................. 56
7.2. Xây dựng ứng dụng minh hoạ .............................................................................. 56
7.2.1. Mô tả ứng dụng ............................................................................................. 56
7.2.2. Thu thập và chuẩn bị dữ liệu......................................................................... 60
7.2.3. Lựa chọn và huấn luyện mơ hình .................................................................. 63
CHƯƠNG 8: Các trường hợp nghiên cứu .................................................................. 71
8.1. Hệ thống đề xuất của Netflix ............................................................................... 71
8.1.1. Giới thiệu ...................................................................................................... 71
8.1.2. Thuật toán đề xuất......................................................................................... 71
8.1.3. Xây dựng hồ sơ người dùng và thu thập dữ liệu........................................... 71
8.1.4. Quá trình tạo ra đề xuất cá nhân hóa ............................................................ 72
8.1.5. Đánh giá và cải tiến ...................................................................................... 72
8.1.6. Tác động đến sự tương tác của người dùng và giữ chân khách hàng ........... 72
8.1.7. Thách thức và hướng phát triển trong tương lai ........................................... 72
8.1.8. Kết luận ......................................................................................................... 73
8.2. Hệ thống đề xuất của Amazon ............................................................................. 73
8.2.1. Giới thiệu ...................................................................................................... 73
8.2.2. Mục tiêu và đặt vấn đề .................................................................................. 76
8.2.3. Phương pháp nghiên cứu .............................................................................. 76
8.2.4. Kết quả và kinh nghiệm ................................................................................ 76
8.2.5. Kết luận và đề xuất ....................................................................................... 76
CHƯƠNG 9: Thách thức và hướng phát triển trong tương lai ................................ 77
9.1. Vấn đề khởi đầu lạnh (Cold Start Problem) ......................................................... 77
9.1.1. Định nghĩa vấn đề: ........................................................................................ 77
9.1.2. Nguyên nhân gây ra vấn đề: ......................................................................... 77
9.1.3. Các giải pháp và hướng phát triển: ............................................................... 77
9.1.4. Tầm quan trọng và ứng dụng: ....................................................................... 78
9.2. Khả năng mở rộng và Đề xuất thời gian thực ...................................................... 78
9.2.1. Định nghĩa vấn đề: ........................................................................................ 78
9.2.2. Thách thức mở rộng: ..................................................................................... 78
9.2.3. Thách thức đề xuất thời gian thực: ............................................................... 79
9.2.4. Các giải pháp và hướng phát triển: ............................................................... 79
9.2.5. Tầm quan trọng và ứng dụng: ....................................................................... 79
9.3. Hướng phát triển tương lai ................................................................................... 80
CHƯƠNG 10: TỔNG KẾT .......................................................................................... 82
10.1. Tóm tắt lại các kết quả nghiên cứu .................................................................... 82
10.2. Kết quả đạt được ................................................................................................ 83
10.3. Hạn chế............................................................................................................... 84
TÀI LIỆU THAM KHẢO ................................................................................................. 86
DANH MỤC TỪ VIẾT TẮT
#
Từ viết tắt
1
RS
1
CRUD
Từ đầy đủ
Recommendation
System
Ý nghĩa
Hệ thống khuyến nghị
Create/Read/Update/De Là tập hợp bốn chức năng cơ bản của lưu
lete
trữ liên tục
Sai số bình phương là một chỉ số đánh giá
2
RMSE/RMS
Root mean square
deviation
đo lường sự khác biệt trung bình giữa các
giá trị dự đốn và giá trị thực tế. Giá trị
càng thấp, chứng tỏ mơ hình gợi ý có độc
chính xác và độ tin cậy cao hơn.
Hệ số xác định là tỷ lệ sự thay đổi trong
3
RSquared
R2
biến phụ thuộc có thể dữ đốn từ biến độc
lập. Chỉ số cho biết mục độ phù hợp (fit)
của dữ liệu đối với mơ hình.
TÓM TẮT ĐỒ ÁN
Đồ án với đề tài “Nghiên cứu các giải thuật khuyến nghị và xây dựng ứng dụng
minh hoạ” tập trung vào phân tích thực trạng và ứng dụng các cơng nghệ để từ đó xây dụng
ứng dụng di động có thể sử dụng mà khơng u cầu quá nhiều về phần cứng, phần mềm.
Đáp ứng được nhu cầu cơ bản về việc xem phim giải trí cá nhân.
Đề tài được bắt đầu từ việc tìm hiểu thực trạng, đưa ra các vấn đề cịn tồn đọng hoặc
có thể cải thiện. Xác định mục tiêu, phạm vi của đề tài cũng như các chức năng cần có của
hệ thống. Ngoài việc xử lý các nghiệp vụ cho hệ thống, nhóm cũng đã tìm hiểu, so sánh và
lựa chọn được các công nghệ mới và phù hợp giúp nâng cao trải nghiệm người dùng, tối ưu
chi phí phát triển và triển khai.
Nhờ việc phân tích các yêu cầu rõ ràng, thời gian phát triển ngắn và các yêu cầu, tính năng
ít thay đổi, trong q trình phát triển đề tài đã sử dụng mơ hình Thác nước cải tiến cho việc
xây dựng hệ thống.
Báo cáo này tập trung vào nghiên cứu và phát triển Recommender System trong ứng
dụng đọc và rating sách. Mục tiêu của chúng tôi là tạo ra một ứng dụng đọc sách được tích
hợp Recommender System, giúp người dùng khám phá và tìm kiếm các quyển sách phù hợp
với sở thích của họ.
Trong ứng dụng của chúng tôi, chúng tôi sử dụng phương pháp Content-based
Filtering để hiển thị các sách tương tự đến sách đang được xem. Phương pháp này dựa trên
các đặc điểm của sách như thể loại, tác giả, từ khóa để đề xuất các quyển sách có nội dung
tương tự.
Ngồi ra, chúng tơi cũng áp dụng phương pháp Item-based Filtering để hiển thị danh mục
các sách có liên quan tới sách đang xem. Phương pháp này dựa vào rating của người dùng
và sách để tìm ra những quyển sách có sự tương đồng trong sở thích và đánh giá.
Màn hình trang chủ của ứng dụng sẽ hiển thị danh sách các sách được đề xuất dựa trên lịch
sử rating của người dùng. Chúng tôi sử dụng phương pháp User-based Collaborative
Filtering để xác định những quyển sách phù hợp với sở thích cá nhân của từng người dùng.
Mục tiêu của chúng em là tạo ra một ứng dụng đọc sách tương tác và cá nhân hóa,
giúp người dùng khám phá và tìm kiếm các quyển sách phù hợp với sở thích của họ. Báo
cáo này sẽ giới thiệu chi tiết về quy trình phát triển ứng dụng, các phương pháp
8
Recommender System được áp dụng, cũng như đánh giá và phân tích hiệu suất của hệ thống
đề xuất trong ứng dụng.
Với việc tích hợp Recommender System vào ứng dụng đọc và rating sách, chúng tôi hy vọng
rằng người dùng sẽ có trải nghiệm tốt hơn và dễ dàng tìm kiếm những quyển sách phù hợp
với sở thích và nhu cầu của họ.
Phần cuối cùng của khố luận là trình bày kết quả đã thực hiện lên cuốn báo cáo, đưa ra kết
luận và hướng phát triển cho hệ thống trong tương lai.
Nội dung khố luận được trình bày trong 10 chương:
-
Chương 01: Mở đầu
Trình bày về lý do chọn đề tài, mục đích nghiên cứu. Xác định mục tiêu và phạm vi đề tài.
-
Chương 02: Định nghĩa và khái niệm cơ bản
Giới thiệu, trình bày các khái niệm liên quan tới hệ thống gợi ý
-
Chương 03: Các phương pháp gợi ý
Trình bày, phân tích lý thuyết về hệ thống khuyến nghị mà nhóm sử dụng.
-
Chương 04: Tiền Xử lý dữ liệu
Trình bày về quá trình làm sạch dữ liệu, chuyển đổi dữ liệu, tích hợp dữ liệu
-
Chương 5: Các thuật tốn trong hệ thống gợi ý
Trình bày chi tiết nội dung các thuật toán trong hệ thống gợi ý
-
Chương 6: Đánh giá và các chỉ số hiệu suất
Trình bày chi tiết nội dung đánh giá và các chỉ số hiệu suất liên quan tới thuật toán
-
Chương 7: Triển khai hệ thống đề xuất
Trình bày về quy trình xây dựng ứng dụng áp dụng hệ thống khuyến nghị và ứng dụng
minh hoạ
-
Chương 8 : Các trường hợp nghiên cứu
Trình bày về nghiên cứu các giải thuật khuyến nghị của các ứng dụng phổ biến
-
Chương 9: Thách thức và hướng phát triển tương lai
Trình bày về các thách thức và hướng phát triển
-
Chương 10: Tổng kết
Tổng kết quá trình nghiên cứu, nêu ra những hạn chế của nghiên cứu
Những kết quả đạt được sau khi kết thúc đồ án. Những hạn chế, khó khăn trong q trình
phát triển đồ án và nêu ra hướng phát triển trong tương lai.
9
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Nghiên cứu các giải thuật khuyến nghị và xây dựng ứng dụng minh hoạ
Cán bộ hướng dẫn:
- ThS. Nguyễn Tấn Toàn
Thời gian thực hiện: Từ ngày 3/3/2023 đến ngày 30/6/2023 (kết thúc Đồ án 1)
Sinh viên thực hiện:
Đỗ Thành Đạt – 20521163
Kiều Bá Dương – 20520990
Nội dung đề tài
1. Lý do chọn đề tài:
Trong xã hội phát triển ngày nay, khi nhu cầu giải trí của con người ngày càng tăng cao
thì việc lựa chọn hình thức giải trí phù hợp với từng người cũng rất đa dạng. Trong đó
việc xem phim được xem như là lựa chọn phổ biến nhất để giải stress sau những giờ làm
việc căng thẳng. Tuy nhiên, khơng ít trong chúng ta đã trải qua việc bỏ ra hàng giờ để tìm
được bộ phim ưng ý nhưng kết quả lại là sự chán nản và bỏ cuộc. Vì vậy, việc có cho mình
một bộ sưu tập phim được cá nhân hóa là vơ cùng thiết yếu, tăng chất lượng cuộc sống và
tiết kiệm thời gian.
Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng ứng dụng xem phim
hỗ trợ gợi ý phim, mục đích để đề xuất nội dung phim phù hợp với người dùng dựa trên
lịch sử xem phim của họ, từ đó là tăng trải nghiệm người dùng, tiết kiệm thời gian và phù
hợp với thị hiếu xem phim của người dùng.
2. Mục tiêu: bao gồm 2 mục tiêu chính:
Xây dựng Model đề xuất phim dựa trên lịch sử những phim đã xem:
- Đề xuất nhanh, phù hợp với sở thích của người xem.
Xây dựng ứng dụng:
- Ứng dụng có thể chạy trên mobile với giao diện thân thiện
- Chạy được đa nền tảng Android
- Xác thực người dùng
- Tra cứu thông tin về phim, tiểu sử của các diễn viên.
- Xem phim
- Tìm kiếm phim theo thể loại, diễn viên, theo năm công chiếu, …
10
- Tích hợp gợi ý phim
- Thơng báo cho người dùng khi phù hợp sắp được công chiếu.
- Lưu phim u thích
- Chia sẻ phim (tìm hiểu thêm)
- Tải phim
- Đánh giá/review phim
3. Phạm vi:
Phạm vi môi trường: Android, Window, Linux, MacOS
Phạm vi chức năng:
Đối với Model:
- Có khả năng đưa ra đề xuất dựa vào lịch sử phim đã xem, thể loại phim mà người
xem quan tâm.
Đối với ứng dụng:
- Cung cấp giao diện thân thiện, tiện dụng người dùng, cung cấp đầy đủ, hỗ trợ tìm
kiếm thơng tin về phim, diễn viên, đạo diễn và cho phép xem phim trên thiết bị.
- Cung cấp chức năng đề xuất phim phim người dùng đang tìm phim để xem hoặc
kết thúc việc xem phim nào đó.
4. Đối tượng sử dụng:
Tất cả mọi người có nhu cầu xem phim với sự cá nhân hóa về sở thích.
5. Phương pháp thực hiện:
Phương pháp làm việc:
-
Làm việc nhóm 2 thành viên thơng qua cả 2 phương thức online và offline dưới sự
hướng dẫn của giảng viên hướng dẫn.
Phương pháp nghiên cứu:
-
Phân tích nhu cầu sử dụng của đối tượng người dùng.
-
Nghiên cứu tài liệu các cơng nghệ liên quan.
Phương pháp cơng nghệ:
-
Tìm hiểu tích hợp khuyến nghị trên ứng dụng mobile
-
Xây dựng giao diện mobile để người dùng có thể tương tác với ứng dụng
-
Tìm hiểu về hệ thống khuyến nghị
11
-
Quản lý source code thông qua Github
-
Sử dụng Google doc, Office 365 Word… để quản lý tiến trình và tài liệu
6. Nền tảng công nghệ:
-
Front-end: Kotlin Android
-
Back-end: Ruby on Rails, Python
-
Database: MySQL
-
Visual Studio Code
-
Android Studio
7. Kết quả mong đợi:
-
Model có khả năng đề xuất nhanh, chính xác và phù hợp với từng cá nhân.
-
Ứng dụng di động hoạt động ổn định, có thể xử lý thơng tin nhanh chóng…
8. Hướng phát triển của đề tài:
-
Thêm các tính năng chọn phim dựa vào cảm xúc hiện tại, sở thích của người xem.
-
Mở rộng phạm vi, khơng chỉ phim mà cịn nhạc,..
9. Kế hoạch làm việc:
Thời gian thực hiện từ ngày 3/3/2023 đến ngày kết thúc mơn Đồ án 1.
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Tìm hiểu về các hướng tiếp cận Recommendation system và hoàn thiện
model. Xây dựng giao diện người dùng cơ bản. Gồm 3 sprint với thời gian mỗi sprint kéo
dài 2 tuần:
Thời gian: 3/3/2023 – 22/4/2023
Sprint 1: Đăng ký đề tài, soạn đề cương chi tiết
Sprint 2: Khâu chuẩn bị, chuẩn bị tài liệu, tìm hiểu cơng nghệ
Sprint 3: Xây dựng ứng dụng, tập trung vào các phần liên kết (liên kết Database, liên kết
model)
Sprint
Thời gian
Sprint
7/3/2023 –
1
21/3/2023
Cơng việc dự kiến
• Tìm kiếm tài liệu tham khảo trên mạng hoặc từ các
sách báo về machine learning, recommendation
system để tìm hiểu về các khái niệm cơ bản, các loại
giải thuật khuyến nghị và cách chúng hoạt
12
động.Nghiên cứu một số khái niệm cơ bản cần nắm
rõ bao gồm: Collaborative filtering, Content-based
filtering, Hybrid filtering, Matrix factorization,
Neighborhood-based filtering,...
• Tìm hiểu content-based filtering
• Tìm hiểu Collaborative filtering (
• Trong quá trình tìm hiểu các giải thuật của
Recommender System thì tiếp xúc với Machine
Learning nên cần tìm hiểu về Machine Learning
Sprint
22/3/2023
2
– 7/4/2023
•
Nắm được kiến thức cơ bản về 2 hướng tiếp cận cơ bản
của Recommender System: content-based filtering và
Collaborative filtering
•
Chọn chủ đề cho minh họa áp dụng recommender system:
ứng dụng bán hàng có gợi ý sản phẩm dựa trên thơng tin
người dùng, đánh giá, lịch sử mua hàng, ...
•
Tìm hiểu các công nghệ, framework, library phù hợp để
xây dựng Recommender System như Python, Flask,
Django,
Pandas,
NumPy,
SciPy,
Scikit-learn,
TensorFlow, PyTorch.
Sprint
8/4/2023 – Sau thời gian nghiên cứu, với ứng dụng minh họa, tụi em
3
22/4/2023
thu nhỏ phạm vi đề tài thành Ứng dụng bán sách để thuận
lợi cho việc tìm data xử lí và phát triển đề tài
-
Tìm được bộ data về sách và đã preprocessing data
Sau preprocessing tụi em sẽ có 2 hướng để recommend
+ Content based sử dụng NLP (CountVectorizer or TF) để
tính khoảng cách cosine với cosine_similarity tìm ra được
những quyển sách tương đồng dựa vào các thuộc tính của
sách. Nhưng khi tìm hiểu kĩ về hướng này thì thấy sẽ có 1
số hạn chế về việc chỉ recommend được những có thể loại,
13
tác giả tương đồng với sách đọc không thể recommend
được những cuốn sách khác lạ về tác giả hoặc thể loại. Nên
từ đó sẽ cần thêm hướng collaborative filtering.
+ Collaborative filtering: item-based hoặc user-based
dựa vào rating để tìm ra sách u thích của user và từ đó
sẽ tùy vào item-based và user-based sẽ có cách phát triển
khác nhau.
+ Lập các chức năng cần làm cho ứng dụng minh họa:
• Xác thực người dùng
• Trang hiển thị danh sách sách, tìm kiếm, filter sách
• Trang chi tiết sách
• u thích sách
• Rating sách
• Trong các trang hiển thị sẽ lồng thêm các mục gợi
ý
Giai đoạn 2: Hồn thiện các tính năng của ứng dụng, tích hợp khuyến nghị vào ứng dụng,
triển khai và kiểm thử ứng dụng, viết báo cáo.... Gồm 4 sprint với thời gian mỗi sprint kéo
dài 2 tuần:
Thời gian: 14/04/2023 – 30/06/2023 – kết thúc Đồ án 1
Sprint 4: Xây dựng ứng dụng, nghiên cứu cách tích hợp Recommendation System vào ứng
dụng
Sprint 5: Tiếp tục hoàn thiện và kiểm thử ứng dụng.
Sprint 6: Hồn thiện tính năng, kiểm thử và triển khai ứng dụng
Sprint 7: Tổng kiểm thử và viết báo cáo
Sprint
Thời gian
Sprint 4 14/04/2023 –
28/04/2023
Công việc dự kiến
• Triển khai ứng dụng có 3 phần: 1 mobile app, 1
backend api, 1 recommender system dùng python để
recommend books
14
• Tìm hiểu cách tích hợp recommendation system vào
ứng dung
• Chuẩn bị dữ liệu
• Tiền xử lý dữ liệu
• Lựa chọn và huấn luyện mơ hình
Sprint 5 29/04/2023 –
12/05/2023
• Xây dựng thuật tốn Phát triển phương gáp gợi ý
content-based recommendation
• Phát triển Ứng dụng bán sách: tiến độ 60%
Sprint 6 13/05/2023 –
27/05/2023
• Tiếp tục hồn thiện các tính năng của ứng dụng
• Xây dựng thuật tốn Phát triển phương gáp gợi ý
content-based recommendation
• Kiểm thử ứng dụng
• Triển khai ứng dụng
Sprint 7 27/05/2023 –
12/06/2023
• Đánh
giá
hiệu
suất
của
thuật
tốn
Recommendation
• Nghiên cứu cách tối ưu thuật tốn
• Viết báo cáo
Sprint 8 12/06/2023 –
30/06/2023
• Khắc phục một số vấn đề
• Nghiên cứu các kỹ thuật
• Hồn thiện báo cáo
10. Phân công công việc:
Công việc
Mô tả công việc
Cơng việc chung
Tìm hiểu Recommendation System
Nghiên cứu Recommendation System của các hệ
thống
Tìm hiểu cơng nghệ liên quan tới RS để
Phân tích yêu cầu và lựa chọn đề tài
Thu thập và chuẩn bị dữ liệu
15
Lựa chọn và huấn luyện mơ hình
Kiểm thử ứng dụng
Triển khai ứng dụng
Chuẩn bị tài liệu, viết báo cáo
Công việc cá nhân
Đỗ Thành Đạt
Kiều Bá Dương
Lập trình Back-end
Lập trình Front-end.
Xây dựng CSDL
Kết nối APIs
Quản lý tiến độ
Tp.Hồ Chí Minh, ngày 17 tháng 3 năm 2023
16
NỘI DUNG ĐỒ ÁN
CHƯƠNG 1: MỞ ĐẦU
1.1. Lý do chọn đề tài
1.1.1. Nhu cầu ngày càng tăng về gợi ý cá nhân
Trong thời đại số hóa hiện nay, người dùng tiếp xúc với lượng thông tin ngày càng lớn
từ các nguồn dữ liệu khác nhau như trang web, ứng dụng di động, mạng xã hội và cửa
hàng trực tuyến. Điều này tạo ra một thách thức lớn cho người dùng trong việc tìm kiếm
thơng tin, sản phẩm hoặc nội dung phù hợp với sở thích và nhu cầu cá nhân. Hệ thống gợi
ý ra đời nhằm giải quyết vấn đề này bằng cách cung cấp các đề xuất cá nhân hóa dựa trên
hành vi người dùng và phân tích dữ liệu.
1.1.2. Tiềm năng kinh doanh và trải nghiệm người dùng tốt hơn
Hệ thống gợi ý không chỉ mang lại lợi ích cho người dùng cuối mà cịn đóng vai trị
quan trọng trong việc tăng cường trải nghiệm người dùng và tạo ra cơ hội kinh doanh.
Bằng cách cung cấp các đề xuất chính xác và phù hợp, các doanh nghiệp có thể thúc đẩy sự
tương tác của người dùng, tăng doanh số bán hàng, nâng cao sự hài lòng của khách hàng
và xây dựng mối quan hệ lâu dài.
1.1.3. Sự phát triển nhanh chóng của dữ liệu và cơng nghệ
Cùng với sự phát triển của internet, mạng xã hội, điện thoại di động và các công nghệ
mới khác, lượng dữ liệu được tạo ra hàng ngày là rất lớn. Việc sử dụng và phân tích dữ liệu
đó để tạo ra các gợi ý cá nhân đã trở thành một thách thức lớn. Tuy nhiên, với sự tiến bộ
của khoa học dữ liệu, học máy và trí tuệ nhân tạo, các phương pháp và công nghệ mới
đang được phát triển để xử lý và khai thác triệt để khối lượng dữ liệu khổng lồ này.
1.1.4. Nghiên cứu và phát triển liên quan
Lĩnh vực Hệ thống gợi ý đang thu hút sự quan tâm nghiên cứu và phát triển rất lớn từ cả
cộng đồng học thuật và doanh nghiệp. Các cơng trình nghiên cứu mới và ứng dụng thực tế
liên quan đến các phương pháp, thuật tốn và cơng nghệ gợi ý đang ngày càng được cơng
bố. Việc tìm hiểu và cập nhật các xu hướng mới trong lĩnh vực này là rất quan trọng để có
thể áp dụng và tận dụng tốt nhất các tiến bộ trong lĩnh vực Hệ thống gợi ý.
17
1.1.5. Mục tiêu của báo cáo
Báo cáo này nhằm đề xuất, nghiên cứu và phân tích các phương pháp và công nghệ
trong lĩnh vực Hệ thống gợi ý. Chúng tôi mong muốn cung cấp một cái nhìn tổng quan về
các khái niệm, phương pháp và ứng dụng trong lĩnh vực này. Ngồi ra, chúng tơi cũng
muốn tiếp cận và đánh giá các thách thức, tiềm năng và hướng phát triển trong tương lai
của Hệ thống gợi ý.
1.2. Mục tiêu
Báo cáo này nhằm mục đích nghiên cứu và đề xuất các phương pháp, thuật tốn và
cơng nghệ trong lĩnh vực Hệ thống gợi ý. Chúng tôi đặt ra các mục tiêu cụ thể sau đây:
1.2.1. Tìm hiểu về Hệ thống gợi ý
Đầu tiên, chúng tơi nhằm tìm hiểu về khái niệm, nguyên tắc hoạt động và các thành
phần cơ bản của Hệ thống gợi ý. Chúng tôi sẽ khám phá các phương pháp tiếp cận phổ
biến trong việc xây dựng hệ thống gợi ý, bao gồm cả phương pháp dựa trên nội dung và
phương pháp dựa trên lọc cộng tác.
1.2.2. Phân tích và so sánh các phương pháp gợi ý
Chúng tơi sẽ tiến hành phân tích và đánh giá các phương pháp và thuật toán quan
trọng trong lĩnh vực Hệ thống gợi ý. Chúng tơi sẽ tìm hiểu về các thuật toán cơ bản như
Collaborative Filtering, Content-based Filtering, và Hybrid Recommender Systems. Chúng
tôi cũng sẽ điều tra các phương pháp tiên tiến như Matrix Factorization, Deep Learningbased Recommenders và Reinforcement Learning trong việc cải thiện chất lượng gợi ý.
1.2.3. Nghiên cứu và áp dụng các kỹ thuật mới
Chúng tơi sẽ tìm hiểu về các kỹ thuật mới nhất và tiên tiến trong lĩnh vực Hệ thống
gợi ý. Điều này bao gồm các phương pháp sử dụng học máy sâu, mạng nơ-ron học sâu, học
tăng cường và học máy tăng cường. Chúng tôi sẽ nghiên cứu cách áp dụng những kỹ thuật
này vào việc xây dựng hệ thống gợi ý để cải thiện hiệu suất và chất lượng gợi ý.
1.2.4. Đánh giá và so sánh hiệu suất
Chúng tôi sẽ tiến hành các thí nghiệm và đánh giá hiệu suất của các phương pháp
gợi ý được đề xuất. Chúng tôi sẽ sử dụng các tập dữ liệu phù hợp và các phương pháp đánh
giá chất lượng gợi ý như Precision, Recall, và Mean Average Precision (MAP). Chúng tôi
18
sẽ so sánh hiệu suất của các phương pháp khác nhau để đưa ra nhận xét và kết luận về sự
hiệu quả của từng phương pháp.
1.2.5. Đề xuất và hướng phát triển
Dựa trên những kết quả và phân tích thu được, chúng tôi sẽ đề xuất các hướng phát
triển tiếp theo trong lĩnh vực Hệ thống gợi ý. Chúng tôi sẽ đưa ra những gợi ý và đề xuất
để cải thiện hiệu suất, khả năng mở rộng và trải nghiệm người dùng của Hệ thống gợi ý.
1.3. Phạm vi
Mô tả rõ ràng về những khía cạnh cụ thể mà báo cáo tập trung vào và những khía
cạnh mà nó khơng đề cập đến. Dưới đây là các yếu tố phạm vi cụ thể được xác định:
-
Bối cảnh: Báo cáo tập trung vào việc nghiên cứu và phân tích các phương pháp và thuật
tốn trong hệ thống gợi ý. Nó khơng đi sâu vào các khía cạnh về triển khai thực tế của
hệ thống trong môi trường sản xuất.
-
Loại hệ thống gợi ý: Báo cáo tập trung vào các hệ thống gợi ý dựa trên lọc hợp tác
(collaborative filtering) và lọc dựa trên nội dung (content-based filtering). Các phương
pháp khác như lọc dựa trên nhóm (group-based filtering) hoặc lọc dựa trên tiếp thị xã
hội (social marketing-based filtering) không được xem xét trong phạm vi của báo cáo
này.
-
Thuật tốn và mơ hình: Báo cáo sẽ tập trung vào các thuật toán phổ biến và các mơ hình
được sử dụng trong hệ thống gợi ý, bao gồm phân rã giá trị đơn (SVD), phân rã ma trận
(matrix factorization), và mạng thần kinh (neural networks). Các phương pháp tiên tiến
như học sâu (deep learning) hoặc học tăng cường (reinforcement learning) không được
đề cập trong phạm vi của báo cáo này.
-
Đánh giá hiệu năng: Báo cáo sẽ xem xét các phương pháp đánh giá và các chỉ số hiệu
năng phổ biến trong hệ thống gợi ý, bao gồm chính xác (precision), phục hồi (recall), và
độ đo F1. Tuy nhiên, các phương pháp đánh giá tiên tiến hơn như độ tin cậy (trust) hoặc
độ tin tưởng (reputation) không được xem xét trong phạm vi của báo cáo này.
-
Ngôn ngữ và công nghệ: Báo cáo tập trung vào các phương pháp và công nghệ sử dụng
trong hệ thống gợi ý sử dụng ngơn ngữ lập trình Python và các thư viện phổ biến như
NumPy, Pandas và scikit-learn. Các ngôn ngữ và công nghệ khác không được bàn luận
trong phạm vi của báo cáo này.
19
1.4. Đối tượng nghiên cứu
1.4.1. Các công nghệ nghiên cứu:
-
Đối với thiết kế hệ thống:
▫ Repository patten – BloC pattern
▫ Kết nối và trao đổi giữa client và server thông qua RESTfull API
-
Đối với Database: MSSQL Server
-
Đối với Application:
▫ Flutter
▫ Dart
-
Đối với Recommender System:
▫ Microsoft Recommenders
▫ C# và .NET
-
Khác
▫ Dữ liệu phim lấy từ TMDB
▫ Cấu hình ứng dụng bằng Firebase
1.4.2. Đối tượng sử dụng đề tài hướng đến:
Tất cả mọi người có nhu cầu xem phim giải trí trực tuyến.
1.5. Phạm vi nghiên cứu
1.5.1. Phạm vi môi trường:
Ứng dụng di động chạy trên 2 nền tảng Android và IOS.
1.5.2. Phạm vi chức năng:
-
Đối với hệ thống gợi ý:
▫ Có khả năng đưa ra kết quả gợi ý chuẩn xác dựa trên hành vi người dùng như
đánh giá phim, lịch sử xem phim.
-
Đối với ứng dụng:
▫ Cung cấp chức năng tra cứu phim và diễn viên.
▫ Cung cấp các chức năng quản lí tài khoản bao gồm thơng tin cá nhân, lịch sử
xem phim, đánh giá, yêu thích phim.
▫ Cung cấp chức năng xác thực người dùng.
▫ Cung cấp một trình xem phim trực tiếp trên ứng dụng
20
21
CHƯƠNG 2: ĐỊNH NGHĨA VÀ KHÁI NIỆM CƠ BẢN
2.1. Hệ thống gợi ý:
Định nghĩa: Hệ thống gợi ý là một loại phần mềm hoặc cơng nghệ, có khả năng đề xuất,
đưa ra các gợi ý hoặc reommendation cho người dùng về các mục, sản phẩm, nội dung
hoặc thơng tin có thể phù hợp và hữu ích cho họ.
Vai trị: Hệ thống gợi ý giúp cung cấp trải nghiệm cá nhân hóa, tăng tương tác và tiện ích
cho người dùng thơng qua việc đưa ra các gợi ý chính xác và phù hợp với sở thích, nhu cầu
của họ.
2.2. Người dùng:
Định nghĩa: Người dùng là những cá nhân, khách hàng hoặc đối tượng sử dụng hệ thống
gợi ý để tìm kiếm, khám phá hoặc tiêu dùng nội dung, sản phẩm hoặc dịch vụ.
Thông tin người dùng: Để xây dựng các gợi ý cá nhân hóa, hệ thống gợi ý thu thập thơng
tin về sở thích, lịch sử hoạt động và các dữ liệu liên quan của người dùng.
2.3. Mục tiêu gợi ý:
Định nghĩa: Mục tiêu gợi ý là những mục, sản phẩm, nội dung hoặc thông tin mà hệ thống
gợi ý cố gắng đưa ra cho người dùng.
Tính chất mục tiêu: Mục tiêu gợi ý có thể là các mục mới, sản phẩm phổ biến, nội dung
liên quan hoặc thông tin tương tự với những mục mà người dùng đã thích hoặc tiêu dùng
trước đây.
2.4. Phương pháp gợi ý:
Định nghĩa: Phương pháp gợi ý là các kỹ thuật, thuật toán hoặc cách tiếp cận được sử dụng
để tạo ra các gợi ý trong hệ thống gợi ý.
Các phương pháp phổ biến: Bao gồm gợi ý dựa trên nội dung (content-based
recommendation), gợi ý dựa trên người dùng (collaborative filtering), gợi ý dựa trên lọc
nội dung xã hội (social filtering) và nhiều phương pháp khác.
2.5. Đánh giá hiệu suất gợi ý:
Định nghĩa: Đánh giá hiệu suất gợi ý là quá trình đo lường và đánh giá độ chính xác, độ
phù hợp và hiệu quả của các gợi ý được tạo ra bởi hệ thống gợi ý.
22
Các độ đo hiệu suất: Bao gồm độ chính xác, độ phủ, độ đa dạng và các độ đo khác để đánh
giá khía cạnh khác nhau của gợi ý.
2.6. Phân loại các phương pháp gợi ý
2.6.1. Gợi ý dựa trên nội dung (Content-based recommendation):
Đặc điểm: Phương pháp này dựa trên việc đánh giá và so sánh các đặc trưng nội dung
của các mục để tạo ra gợi ý. Ví dụ: gợi ý các bài viết tương tự dựa trên từ khóa, thể loại
hoặc chủ đề của bài viết.
2.6.2. Gợi ý dựa trên người dùng (Collaborative filtering):
Đặc điểm: Phương pháp này dựa trên thông tin về sự tương tác giữa người dùng và các
mục để tạo ra gợi ý. Nó xác định sự tương đồng giữa người dùng dựa trên các mục mà họ
đã thích hoặc tiêu dùng và dựa trên đó đề xuất các mục tương tự cho người dùng khác.
Ưu điểm: Xem xét thông tin về sự tương tác và phản hồi của người dùng. Phù hợp cho
việc gợi ý các mục mà người dùng có khả năng thích dựa trên hành vi tiêu dùng trước đó.
Hạn chế: Phụ thuộc vào số lượng và chất lượng thông tin về sự tương tác giữa người
dùng và các mục. Gặp vấn đề khi gợi ý cho người dùng mới hoặc ít tương tác.
2.7. Các ứng dụng của hệ thống gợi ý
2.7.1. Ứng dụng trong thương mại điện tử:
Hệ thống gợi ý đã trở thành một yếu tố quan trọng trong thương mại điện tử, đóng
vai trị quan trọng trong việc cung cấp trải nghiệm mua sắm cá nhân hóa. Các ứng dụng gợi
ý trong thương mại điện tử bao gồm:
-
Gợi ý sản phẩm tương tự: Hệ thống gợi ý có thể đề xuất cho người dùng các sản
phẩm tương tự với những mục họ đã xem hoặc mua trước đây.
-
Gợi ý sản phẩm phù hợp: Hệ thống gợi ý có thể đề xuất các sản phẩm phù hợp với
sở thích, nhu cầu và hành vi tiêu dùng của người dùng.
-
Gợi ý theo nhóm người dùng: Hệ thống gợi ý có thể tạo ra các gợi ý dựa trên sự
tương đồng giữa người dùng để đề xuất các sản phẩm phổ biến trong cùng nhóm
người dùng.
-
Gợi ý bổ sung và tương tự: Hệ thống gợi ý có thể đề xuất các sản phẩm bổ sung hoặc
tương tự để tăng khả năng khám phá và lựa chọn của người dùng.
23