Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia1.6 Ý nghĩa thực tiễn - Tao được một nên tang nơi mọi người có thê tìm kiêm dễ dàng những trải nghiệm mới và thậ
Trang 1ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HE THONG THONG TIN
TRAN MINH PHAT - 17520882
XAY DUNG NEN TANG UNG DUNG WEB
GIUP KET NOI NGUOI TO CHUC
HOAT DONG TRAI NGHIEM
VOI KHACH THAM GIA
BUILDING A WEB APPLICATION HELP CONNECTING THE
HOST OF EXPERIENCE ACTIVITIES WITH THE GUEST
KY SU NGANH HE THONG THONG TIN
TP HO CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HE THONG THONG TIN
TRAN MINH PHAT - 17520882
KHOA LUAN TOT NGHIEP
XAY DUNG NEN TANG UNG DUNG WEB
GIUP KET NOI NGUOI TO CHUC
HOAT DONG TRAI NGHIEM
VOI KHACH THAM GIA
BUILDING A WEB APPLICATION HELP CONNECTING THE
HOST OF EXPERIENCE ACTIVITIES WITH THE GUEST
KY SU NGANH HE THONG THONG TIN
GIANG VIEN HUONG DAN
THS NGUYEN DINH LOAN PHUONG
TP HO CHÍ MINH, 2021
Trang 3DANH SÁCH HỘI ĐÒNG BẢO VỆ KHÓA LUẬN
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số ngầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
| — Chủ tịch.
P eececcc ne ec eee nenene neta edeneeeee eee eneeeenenes — Thu ky.
Bo elec cece eee e eee e cnet cnet eens eeeateeneeenaeennes — Ủy viên.
Trang 4LỜI CẢM ƠN
Sau hơn 4 năm học tập và rèn luyện tại Trường Dai học Công nghệ Thông tin, được sựtận tình giảng dạy và giúp đỡ của quý thầy cô, đặc biệt là quý thầy cô của khoa Hệ thốngThông tin, em đã gặt hái được rất nhiều kiến thức nền tảng bồ ích, có thé áp dụng vàoluận văn cũng như áp dụng trong những chặng đường tiếp theo sau này
Em xin chân thành cảm ơn quý thầy cô của trường Đại học Công nghệ Thông tin nóichung, quý thầy cô của khoa Hệ thống Thông tin nói riêng, và đặc biệt là cô NguyễnĐình Loan Phương đã tận tình hướng dẫn và đóng góp ý kiến để em có thể hoàn thànhkhóa luận này một cách tốt nhất
Bên cạnh đó, em xin gửi lời cảm ơn đến các bạn cùng lớp đã có những lời góp ý, độngviên dé em có thêm động lực thực hiện khóa luận trong khoảng thời gian khó khăn nay
Trong suôt quá trình em tìm hiéu và thực hiện khóa luận, do đê tai sử dụng công nghệ còn khá mới, thời gian và kha năng có giới hạn nên em van còn nhiêu thiêu sót Do đó,
em rât mong nhận được sự thông cảm và những ý kiên đóng góp chân thành từ quý thây
cô và các bạn Một lân nữa, em xin chân thành cảm ơn mọi người.
Thành phố Hồ Chí Minh, tháng 03 năm 2021
Trần Minh Phát
Trang 5Danh mục hình ảnh: - c2 12211113261 113231 133911111811 11 1111811111811 1g 111g ng re 8Danh mục từ viét tắt - 5c St 3 E321 2EE212151111E11171115111115111111111111E11 E11 EEe re 14Tóm tắt khóa luận - -2+-©©++++2£E++21272112122E111 T TT |Chương 1 TONG QUAN DE TÀII - 2-2 <+SE+SE+EE£EE£EEEEEEEEEEEEEEEEEEEEEEEEEEErkerkee 2
1.2 Lý do chọn đề tài ©-sS+2EkE2x221E21121121127121127121111211 11 1x cxcre 3
PA 03: an aIInInInInInInI la sa 3 1.4 Pham vi d8 2277 h cciieeecose 4 1.5 Phuong phap thurc hi6n 41.6 Ý nghĩa thực tid oes ceccccscecsecssessesssecsesssecsesssecsusssessusssecsusssecsusssessusssessueesessseeseeees 6
Chương2 CO SỞ LÝ THUYYÊT 2© £+S£+EE+EE+EE£EESEEEEEEEEEEEEEEEEEErrerrrrrkee 9
2.1 Hệ thống dé xuất va các cơ chế đỀ Xuất - ¿+ ©z++z+x++zz+x+rxrrxerxee 9
2.1.1 Tổng quan về hệ thống đề xuất - 2-2 + ++£+x£+E+Ex++Evrxezrxerxesred 92.1.2 Tổng quan về các cơ chế dé xuất 2 + ©£+x+E£+Ex+Etrxzrxerxesred 9
2.1.3 Áp dụng và xây dựng chức năng đề xuất trải nghiệm - II
2.1.4 Cơ chế Collaborative Eiltering - 2 2 2 s+E+£k+rkerterrerrerreces 12
2.1.5 Cơ chế Content-based Eiltering -2:©2c+22+2c+2cxerxesrxerrsrees 22
2.2 Cơ chế game hóa trong phần mềm ứng dụng -. -2- 2 ¿s22 28
2.2.1 Tổng quan về cơ chế game hóa - ¿2 2 2 £+EE+EE+£E+£EeEEzEezEzrerrs 282.2.2 _ Kỹ thuật -S LH HH TH HH HH HH ng 29
Trang 62.2.3 Mục đích - Ăn tk TH TH TH TH TH Tu TH Tu HH TH, 29
2.2.4 Các yếu tố thiết kế trò chơi - + ©¿++++£+E++EE+EE£EEeEkerkerkerkerkerreces 302.2.6 Một số ứng dụng Game hóa trong các lĩnh vực đời sống 352.2.7 Ap dụng cơ chế Game hóa vào nền tang 2-2-5 + szxczezeecez 37Chương 3 PHAN TÍCH THIET KE HE THỒNG -2- 2 2 £££22£2£z22z+2 41
3.1 Đặt vấn đề HH ra 4I
3.1.1 Khảo sát một số nền tảng tương tự hiện nay - - 2-5555 << sex 4l
3.1.2 Thuc trang về sự nhận thức va nhu cầu tham gia hoạt động trải nghiệm tạiViệt Nam EEEEPZu VỀ 00000000 45
3.2 Hurdng dviaụŨỤ 51
3.2.1 | Xây dựng nên tảng thân thiện, dé sử dung và kết nối tai Việt Nam 51
3.2.2 _ Áp dụng cơ chế dé xuất và game hóa dé nâng cao tương tác va trải nghiệmTIBƯỜI ÙN - 2G G1 TH TH nọ TH nu HH TH HH HH nước 523.3 Xác định và phân tích yêu cầu - + ©2¿+x+E+£+E++EE££EEtzE+erxerrxerkrrreerxee 53
3.3.2 Danh sách Cac ÀCÍOT 5k vn TH TH gu ng ngư 53 3.3.2 Danh sách các S€-CaS€ - «LH TH gu ng ng ưy 533.3.3 Đặc ta một số use-case Chih c.ccccccccececsssecsssesesseseceesecersecerseseeaesecavscecavees 61
3.3.4 Sơ đồ tuần tự các use-case Chinh cccccccscscssessssesessessesesecsesecsescevsceraveecees 73
3.3.5 Sơ đồ lớp các use-case chính - ¿2 2+2++++++Ex+EEeEkerkerkerkerrerreres 793.4 Thiết kế cơ sở dữ liệu -c-+ccttEktrtrtrrirtrtiirrrriirrririrrririree 85
Trang 74.1 _ Kiến trúc hệ thống :-©2+++¿+2++EEt2EEEEE2EEEEE2EEE2E2EEEEEEEkrrkrrrrees 954.2 Giao diện của nền tảng -:- 25s St SE E21 21121121122122121 71711111 ce 96
4.2.1 _ Danh sách trang màn hình «+ + + + E*xk++kE+eeseEeeeeereeerresee 96 4.2.2 Giao diện các trang màn hình chính - «+ +s++£ssssvessesseeeses 99Chương 5 KET LUAN Lio eceeccecescssesssssssssessessessessessessessessecsecsscssssussusssessessessessesseseees 110
5.1 Kết quả dat Guo eccceccccscsssesssessesssessesssessesssessusssessuessecsuessecsuessessuessecssessesssesseeeses 110
5.1.1 _ Về giá trị kỹ thuật -:-©2< k2 E2 2112712112112 110
5.1.2 Về giá trị thực tiễn :-©-++ck++2E2Ek2EEE2EEE21211271211211 1 1 1105.2 _ Thuận lợi và khó khăn ¿z++++2E+£2EE+2EEtEEEESEEEEEEEEEEEEEkkerkkrrreerred 1115.3 Hướng phát trien oo cccccccecccsessessessssssssessesseseccsessessessessessussussussussusssesseeseeseeseeseess 111
TÀI LIEU THAM KHAO u cccsscsssessesssesssessecssessecsssesscsssesscsusesseasecsecssecsecasecseessecscesess 113
PHY LỤC fl ee TT ( 115
Phụ lục 1: Phân tích thiết kế hệ thong 2- 2 2£ ©5£2££+E£+E£2£++EE+EE+EE+rEezxezez 115
Đặc tả các use-case phụỤ - -. c1 k HT HT TH TH HH HH HH 115
Sơ đồ tuần tự các use-case PIU 125
Sơ đồ lớp các use-case phỤ ¿- 2 2 s+Sx+SE#EEEEEE2E21121121121121171 712121 re 133
Trang 8Danh mục hình ảnh
Hình 2- 1 Utility matrix dựa trên số sao một người dùng đánh giá cho một sản phẩm 12Hình 2- 2 Tính giá trị trung bình đánh gia của từng người dùng ‹ «<- 14Hình 2- 3 Ma trận hữu ích chuẩn hóa ¿- 2 E5 k‡EE£EE£EE+EeEEEEEeEEEEEEEEkrrrrkervee 15Hình 2- 4 Ma trận tương quan giữa các người đùng - - + +ssss+ssseeeseeeeresee 17
Hình 2- 5 Ma trận chuẩn hóa với đầy đủ giá trị - 2 2+-<+<+£++zxerxerxerxerrerreee 19
Hình 2- 6 Utility matrix sau khi thực hiện dự đoán 555555 << ++sx+seresess 20Hình 2- 7 Lưu đồ hoạt động của cơ chế CF trên nền r0 21Hình 2- 8 Bang thống kê tần số xuất hiện của các từ trong bài DAO . 22
Hình 2- 9 Công thức tinh term ÍreQU€'CYy - . +6 + 1E *E**kE+ssEEeseEeseesseereskee 23
Hình 2- 10 Công thức tính Weighted Term Frequency - -« -««+<s<++sex+sxes 24
Hình 2- 11 Bảng sau khi tính trọng số của các từ vựng - 2 scsecx+zxerxezzeee 24Hình 2- 12 Công thức tinh inverse document frequency -««+-s<++<sx+ss+2 25 Hình 2- 13 Giá tri IDF của từng từ Vung oe eee eeeeeeseeneeeeeeececeeseceeeeaececeaeeseeeaeeneeees 25
Hình 2- 14 Bảng giá trị trọng số được chuẩn hóa :-2- ++©2+2cxzz+zrxzzxsrxez 26
Hình 2- 15 Lưu đồ hoạt động của thuật toán Content-based Filtering trên nền tảng 27Hình 2- 16 Tổng quan về cơ chế game hóa + 2 2 £+5££E£2£E2£E+£E+£Ee£E£zE+2zze2 28Hình 2- 17 Các yếu tố thiết kế trò chơi :- ¿5£ + £+E£+E++EE£EE+EE£EEeEEerEerkerkerreee 31Hình 2- 18 Trang thiết lập trải nghiệm - 2£ 2+S£+£+E££EE2EE+EEeEEeEEerEerrerreee 37Hình 2- 19 Pop-up cộng điểm tích lũy 2 + 5¿+x+2E££EEtEEEEEEtEEEEEkrrrkerkerrrerkee 38Hình 2- 20 Pop-up trao tặng danh hiỆu 5 G5 11 23191 211181 1 111 rệt 39Hình 2- 21 Trang cá nhân của người dùng trên nền tảng - 2-2 5z +22: 40
Trang 9Hình 3- I Trang chủ của 'TTIDA(CÏVISOT - s11 1 1v KH Hkt 4l Hình 3- 2 Trang chủ của Expedia - c1 k1 11kg HH 43 Hình 3- 3 Biểu đồ độ tuôi của người tham gia khảo sát -2- 555 525225: 45 Hình 3- 4 Biểu đồ công việc của người tham gia khảo sát -5+5z©5z252<: 46
Hình 3- 5 Biểu đồ tình trang hôn nhân của người tham gia khảo sát - 41
Hình 3- 6 Biểu đồ khảo sát thú vui giải trí của người tham gia vào ngày nghỉ 41
Hình 3- 7 Biểu đồ khảo sát về sự phô biến của hoạt động trải nghiệm 48
Hình 3- 8 Biểu đồ khảo sát số người từng tham gia hoạt động trải nghiệm 48
Hình 3- 9 Biểu đồ khảo sát các hình thức biết đến hoạt động trải nghiệm 49
Hình 3- 10 Biéu đồ khảo sát số người cảm thay hứng thú với hoạt động trải nghiệm 49
Hình 3- 11 Use-case của người quản trị hệ thống - 2 2 52 s2 x+£++£EzEzEz+ze+z 54 Hình 3- 12 Use-case của người sử dụng nền tảng -+¿2 x+2xe+cxzxevrxrxeerxee 56 Hình 3- 13 Use-case của người tham gia trải nghiệm - - 5+ «+55 £++£+se++ees+ 57 Hình 3- 14 Use-case của người tổ chức trải nghiệm 2-22 xz2zz+cxzxssrxez 58 Hình 3- 15 Sơ đồ hoạt động của use-case Đăng kỹ - ccsxkstssiseeeireske 62 Hình 3- 16 Sơ đồ hoạt động của use-case Đăng nhập -2- 2-2 + s£x+zxezxeczze> 64 Hình 3- 17 Sơ đồ hoạt động của use-case Xem thông tin trải nghiệm - 66
Hình 3- 18 Sơ đồ hoạt động của use-case Đặt trước hoạt động trải nghiệm 68
Hình 3- 19 Sơ đồ hoạt động của use-case Hủy tham gia trải nghiệm 70
Hình 3- 20 Sơ đồ hoạt động của use-case Hoàn thành tổ chức trải nghiệm 72
Hình 3- 21 Sơ đồ tuần tự của use-case Đăng ký - 2 2+22+cx+zerxerxerkerkerkerreee 73 Hình 3- 22 Sơ đồ tuần tự của use-case Đăng nhập 2-2 2+ x+zxezxerxerxerreee 74 Hình 3- 23 Sơ đồ tuần tự của use-case Xem thông tin trải nghiệm - 75
Hình 3- 24 Sơ đồ tuần tự của use-case Đặt trước hoạt động trải nghiệm 76
Hình 3- 25 Sơ dé tuần tự của use-case Hủy tham gia hoạt động trải nghiệm 77
Hình 3- 26 Sơ đồ tuần tự của use-case Hoàn thành tổ chức hoạt động trải nghiệm 78 Hình 3- 27 Sơ đồ lớp của use-case Đăng ký ¿5222222 E2 EEEEEExerkerkrrrrreee 79
Trang 10Hình 3- 28 Sơ đồ lớp của use-case Đăng nhập - 2 2+c2+++£x+rkerEerkerkerrerreee 80Hình 3- 29 Sơ đồ lớp của use-case Xem thông tin trải nghiệm 2-2-2: 81Hinh 3- 30 So dé lớp của use-case Dat trước hoạt động trai nghiệm - 82Hình 3- 31 Sơ đồ lớp của use-case Hủy tham gia hoạt động trải nghiệm 83Hình 3- 32 Sơ dé lớp của use-case Hoàn thành tổ chức hoạt động trải nghiệm 84
Hình 4- 1 Sơ đồ kiến trúc của hệ thống -¿- 2£ ©2+++2E++Ext£E++rxtzrxerxrreerxee 95Hình 4- 2 Sơ đồ giao diện của người dùng ¿ 2- 2 x2++Ext£Eerxrrrxerxerrxerxee 96Hình 4- 3 Sơ đồ giao diện của người quan trị hệ thống - 2 52 5252252252: 97
Hình 4- 4 Trang đăng nhập - - G2222 13218931311 151 13111 111 11 11 1 111g ng nh rưệt 99
Hình 4- 5 Trang đăng ky - s6 6 su nH H Hhnnnrưếc 99 Hình 4- 6 Trang chủ (user chưa đăng nhập) 00 eee eeeeseeseeeceeneeeeeseeeeeeseeeeseneeeeeaes 100 Hình 4- 7 Trang chủ (user đã đăng nhập) - - 2 62511 E*EEssEEseksersereree 101 Hình 4- 8 Trang danh sách trải nghiỆm - 6 + E221 E2ESEESsEseErekrseesekrs 102
Hinh 4- 9 Trang ca mane eee e 103
Hình 4- 10 Trang quản lý thông tin cá nhân 5 + +++*++E+s+v+seereeeerrke 104Hình 4- 11 Trang bảng điều khiỂn -2- 22 2£ ©222E£2EE£EEtEEEEEEEEEEEkerrkerkerrxers 104Hình 4- 12 Trang quan lý trải nghiệm - 5 6 + ceeceeeeeeseesesaeeseeseeeeseeeeneeas 105 Hình 4- 13 Trang quản lý hoạt động - 5 6 2s 1x23 ng ni, 105 Hình 4- 14 Trang hoạt động - - 6 k1 HH TH TH TH TH HH nưệt 106
Hinh 4- 15 br 0ì 11 106
Hình 4- 16 Trang bảng điều khiển của người quản trị hệ thống - - 107
Hình 4- 17 Trang quản lý người đùÙng - + + xxx 9 ng net 108
Hình 4- 18 Trang quản lý quyn - 2-2-2 ©52+SE£+E£+EE£EEE£EEtEEEEEEEEEEEkrrrrrkrrrrers 108Hình 4- 19 Trang quản lý chủ dé trải nghiệm 2:¿¿2++22x++£x+zzxe+rseee 109
Trang 11Hình 6- 1 Sơ đồ hoạt động của use-case Thêm trải nghiệm - ++-«<5s«2 116
Hình 6- 2 Sơ đồ hoạt động của use-case Chỉnh sửa trải nghiệm - 117Hình 6- 3 Sơ đồ hoạt động của use-case Xóa trải nghiệm «+ +sx++s<+s+2 118Hình 6- 4 Sơ đồ hoạt động của use-case Tìm kiếm trải nghiệm ‹ -««- 119Hình 6- 5 Sơ đồ hoạt động cua use-case Cập nhật tài khoản - -«++<+++ 120Hình 6- 6 Sơ đồ hoạt động của use-case Nhận điểm tích lñy Ă Seeire 121Hình 6- 7 Sơ đồ hoạt động của use-case Yêu thích trải nghiệm - ‹- 122Hình 6- 8 Sơ đồ hoạt động của use-case Đánh giá trải nghiệm 5 124Hình 6- 9 Sơ đồ tuần tự của use-case Thêm trải nghiỆm -. -c++<<<+secesserss 125Hình 6- 10 Sơ đồ tuần tự của use-case Chỉnh sửa trải nghiỆm . -«-<-<<2 126Hình 6- 11 Sơ đồ tuần tự của use-case Xóa trải nghiỆm ¿+ +5 x++s+seeserres 127Hình 6- 12 Sơ đồ tuần tự của use-case Tra cứu trải nghiỆm «++-s<++<<x+++ 128Hình 6- 13 Sơ đồ tuần tự của use-case Cập nhật tài khoản -¿-2¿ z5: 129Hình 6- 14 Sơ đồ hoạt động của use-case Nhận điểm tích lẴY ẶẶ series 130Hình 6- 15 Sơ đồ tuần tự của use-case Yêu thích trải nghiệm -«++<<x++ 131Hình 6- 16 Sơ đồ tuần tự của use-case Đánh giá trải nghiỆm - - «++s<<s«2 132Hình 6- 17 Sơ đồ lớp của use-case Thêm trải nghiệm ¿- 2 5z 2x22: 133
Hình 6- 18 Sơ đồ lớp của use-case Cập nhật trải nghiệm - «+5 «++s£+s<++ 134 Hình 6- 19 Sơ đồ lớp của use-case Xóa trải nghiệm 2-2 ©2+£+zz+rxzzzeei 135
Hình 6- 20 Sơ đỗ lớp của use-case Tra cứu trải nghiệm 2-2 52 5 xz+xz>s2 136Hình 6- 21 Sơ đồ lớp của use-case Cập nhật tài khoản - 2-2 5+ scxczseced 137Hình 6- 22 Sơ đồ lớp của use-case Nhận điểm tích lũy - 2-22: 138Hình 6- 23 Sơ đồ lớp của use-case Yêu thích trải nghiệm - 2-2: ¿5z 139
Hình 6- 24 Sơ dé lớp của use-case Đánh giá trải nghiệm -2- 5 5555552 140
Trang 122 Mô tả use case của người quản trị hệ thống -¿- 5+ ©52 sz+sz+cse2 55
3 Use-case của người tham gia trải nghñiỆm - - 5 55 + £+s£se+seeseesse 60
4 Mô tả use-case Đăng ký - óc HH HH HH ng TH nh Hệ 61
5 Mô tả use-case Đăng nhập - - Ác 2 1S HH TH HH HH nrey 63
6 Mô tả use-case Xem thông tin trải nghiệm .- 55 5+ +s£++xe<seeess 65
7 Mô tả use-case Đặt trước hoạt động trải nghiệm 555555 <++<<+++ 67
8 Mô ta use-case Hủy tham gia hoạt động trải nghiệm ‹- ‹ 69
9 Mô tả use-case Hoàn thành tô chức hoạt động trải nghiệm - 71
10 Danh sách các thuộc tinh của collection EXperlences ««+ss S6
11 Danh sách thuộc tính của collection Activities 55 <<<<<<+++<<+ 87
12 Danh sách thuộc tính của collection Sers << + s+++++<<ssc+++<s+ 89
13 Danh sách các thuộc tính của collection Profiles -.-‹-+ s++++ 90
14 Danh sách các thuộc tính của collection ReceIpES « «<< «++s 91
15 Danh sách các thuộc tính cua collection NotIfications - 92
16 Danh sách các thuộc tính của collection RÑeVIews -<< << 93
17 Danh sách các thuộc tính của collection Roles - -+-+++<<« 94
18 Danh sách các thuộc tính của collection Themes - .-‹ s++ +: 94
Trang 13Bang 4 1 Mô tả danh sách trang của người đùng - - si sesiersee 98Bang 4 2 Mô tả danh sách trang của người quan trị hệ thống . - 98
Bảng 6 | Mô tả use-case Thêm trải nghiỆm - 55 5-55 3+** +2 E++*EEseseeeseeerse 115 Bảng 6 2 Mô tả use-case Chỉnh sửa trải nghiỆm - 5 55+ £2<£+vsseeseesrs 116 Bảng 6 3 Mô tả use-case Xóa trải ngiñiỆmH - ó5 2 1 23 E9 ng, 117 Bang 6 4 Mô tả use-case Tra cứu trải nghiỆm - - 5 5 25 + + £+vseeeseeseess 119 Bang 6 5 Mô ta use-case Cập nhật tài khoản ¿+ + x + +ssvssrerrerrrrke 120Bảng 6 6 Mô tả use-case Nhận điểm tích lũy -. -¿ 2 2©5£+S£+x+zxerxerxrxeres 121Bang 6 7 Mô tả use-case Tìm kiếm và lọc trải nghiệm 2- 2-2 52 s22 122Bang 6 8 Mô tả use-case đánh giá trải nghiỆm - - 5 5 25+ SE ++£+vseeeeeesees 123
Trang 14Danh mục từ viết tắt
STT Từ viết tắt Từ day đủ Ý nghĩa
1 API Application Giao diện lập trình
Programming ứng dụng
Interface
2 JSON JavaScript Một kiến trúc dữ
Object Notation liệu của JavaScript
3 REST Representational Một kiêu kiến trúc
State Transfer lập trình, định
nghĩa các quy tắc
để thiết kế webservice.
4 SQL Structured Một ngôn ngữ truy
Query Language van dit liệu
5 STT Số thứ tự Số thứ tự các hàng
trong bảng
Trang 15Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Tóm tắt khóa luận
Trải nghiệm là một trong những tài sản vô giá mà cuộc sống mang lại cho mỗi con người.Nhờ trải qua những trải nghiệm, con người phát triển về tư duy, cảm xúc cũng như lối
sống Tuy nhiên, trong thực trạng xã hội hiện nay, có rất nhiều người giàu kinh nghiệm
và đam mê trong các lĩnh vực cuộc sống lại không có cơ hội dé chia sẻ những trải nghiệmcủa mình và cũng có rất nhiều người muốn tìm hiểu và học hỏi những trải nghiệm mớinhưng không biết bắt đầu từ đâu Do đó, việc xây dựng một nền tảng giúp kết nối giữangười tô chức trải nghiệm và người có nhu cầu tham gia trải nghiệm là rất cần thiết
Với đề tài khóa luận này, tác giả tìm hiểu áp dụng các kiến thức nghiên cứu về việc xâydựng nên tang website dé xây dựng một nền tang ứng dụng web với các nội dung chính
sau:
- Tim hiêu công nghệ framework React.Js và các thư viện liên quan đê xây dựng
giao diện người dùng có day đủ tinh năng, thân thiện và dé sử dụng
- Tim hiêu công nghệ framework Express.Js và các thư viện liên quan dé xây dựng
hệ thông server hiệu quả, nhanh chóng, dê mở rộng và triên khai.
- Tim hiêu và sử dụng một so dịch vụ đê nâng cao các tính năng hữu ích cho hệ
thống như lưu trữ ảnh, xác thực số điện thoại, thanh toán trực tuyến và gửi email
- _ Nghiên cứu các cơ chế đề xuất thông minh, hiệu quả cho người dùng dé ứng dụng
vào đê tài.
- _ Nghiên cứu các cơ chế game hóa trong phần mềm ứng dụng dé ứng dụng vào dé
`»
tài.
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 16Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Chương 1 TỎNG QUAN ĐÈ TÀI
11 Giới thiệu dé tài
Trải nghiệm là một trong những tài sản vô giá mà cuộc sông mang lại cho mỗi con người.Như Albert Einstein đã từng nói: “Nguồn gốc duy nhất của kiến thức chính là trảinghiệm” Thật vậy, trải nghiệm mang lại cho ta kiến thức, tư duy và vốn sống, từ đó dần
định hình tư tưởng và tính cách của mỗi con người Ta thu nhận được trải nghiệm thông
qua quá trình sống và tương tác với thế giới xung quanh, tựa như câu tục ngữ dân gianViệt Nam: “Di một ngày dang, học một sang khôn”.
Tại Việt Nam, mọi người thường tìm kiếm những trải nghiệm tích cực thông qua việctham gia các hoạt động du lịch, và có hai hướng tham gia chính, đó là du lịch theo tour
và du lịch tự túc Cả hai đều có những ưu, nhược điểm riêng Với thực trạng hiện nay,
hơn 90% người Việt Nam vẫn thường có thói quen tự tổ chức tour riêng khi đi du lịchhơn là phải thông qua các công ty du lịch [1].
Tình trạng chênh lệch xảy ra vì khách du lịch thường ưu tiên sự linh hoạt về thời gian vàđịa điểm của du lịch tự túc hơn là sự khuôn khổ theo lịch trình của du lịch theo tour Tuynhiên, việc du lịch tự túc cũng đồng nghĩa với việc khách du lịch phải tự tìm kiếm cho
mình những địa điểm tham quan, những hoạt động trải nghiệm được tô chức bởi những
chuyên gia trong lĩnh vực đó.
Với thực trạng trên, cần có những giải pháp dé kết nối khách du lịch đến với những cánhân tổ chức hoạt động trải nghiệm một cách dễ dàng, đồng thời hỗ trợ những người cótrải nghiệm có thé tìm kiếm thêm thu nhập thông qua những hoạt động mà mình yêuthích, từ đó thúc day ngành du lịch Việt Nam phát triển
GVHD: ThS Nguyễn Dinh Loan Phương SV: Trần Minh Phát - 17520882
Trang 17Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
1.2 Lý do chọn đề tài
Một trong những lí do gây trở ngại trong việc tìm kiếm các hoạt động trải nghiệm củakhách du lịch đó chính là thiểu một nền tảng trung gian uy tín dong vai trò cầu nối Cácnên tang phố biến hiện nay đa phan là của nước ngoài, chủ yếu đáp ứng nhu cầu cho
khách du lịch quốc tế khi đến Việt Nam Đồng thời, các nền tảng này cũng chỉ phục vụmục tiêu chính là kết nối, thiếu đi những yếu tố giúp người dùng có thé tương tác dựa
trên chính những hoạt động trải nghiệm của mình.
Vì vậy, việc xây dựng một nền tảng hiện dai, thông minh, giúp kết nối dé dàng giữa
khách tham gia và người tổ chức trải nghiệm, đồng thời ứng dụng cơ chế Game hóa(Gamification) dé tăng sự tương tác giữa người dùng là rất cần thiết Với việc áp dụng
cơ chế Game hóa, ta có thể biến nền tảng trở thành một mạng xã hội thu nhỏ hay một thếgiới ảo, nơi mà mỗi người dùng là một nhân vật, có thé lưu lại những hoạt động trải
nghiệm của mình như một thành tích cùng những tính năng khác Từ đó góp phần tăng
cao sự tương tác và trải nghiệm người dùng.
Với những lí do trên, nhóm chọn đề tài Khóa luận Tốt nghiệp là “Xây dựng nên tang ứngdụng web giúp kết nối người tổ chức trải nghiệm với khách tham gia” (tên tiếng Anh:
“Building a web application help connecting the host of experience activities with the
Trang 18Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
z A te.
- Tim hiểu về cơ chế Game hóa trong phan mềm (Gamification in Software) dé ứng
dung vao dé tai
- Nghiên cứu về các cơ chế đề xuất (Recommendation) hoạt động trải nghiệm dành
cho khách du lịch.
- _ Nghiên cứu những cơ chế quản lý hoạt động một cách thông minh dành cho người
cung cấp hoạt động trải nghiệm
- _ Xây dựng ứng dụng thân thiện và dé sử dụng, hướng đến đối tượng người dùng
chính là người Việt Nam.
14 Pham vi
Vì thời gian thực hiện đề tài có giới hạn, nội dung đề tài được tác giả tập trung phát triểnchủ yếu nhắm vào việc xây dựng một nền tảng nhằm kết nói hai đối tượng chính sử dụngnền tảng là Người tham gia trải nghiệm và Người tô chức trải nghiệm Hơn nữa, với việc
áp dụng các thuật toán đề xuất, Người tham gia trải nghiệm có thể tìm thấy những trảinghiệm phù hợp với sở thích cá nhân một cách nhanh chóng và dễ dàng nhất Ngoài ra,nên tang còn ứng dụng một số yếu tô thiết kế trò chơi, giúp nâng cao trải nghiệm củangười dùng, từ đó hướng đến sự trung thành của người dùng đối với nên tang
1.5 Phương pháp thực hiện
Đề tài khóa luận được thực hiện theo các bước như sau:
- Phan tích dé tài
- Tham khảo các nén tang tương tự ở Việt Nam và trên thế giới
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 19Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
- Phan tích cơ bản các yêu cầu đã thu thập được
- _ Thiết kế cơ bản các yêu cầu cần có trong nên tảng
- _ Nghiên cứu về cơ chế ứng dụng Game hóa vào sản phẩm phần mềm
- _ Nghiên cứu về các cơ chế đề xuất cho người dùng.
- _ Tiến hành thiết kế và phát triển sản phẩm qua các giai đoạn
Trang 20Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
1.6 Ý nghĩa thực tiễn
- Tao được một nên tang nơi mọi người có thê tìm kiêm dễ dàng những trải nghiệm
mới và thật sự thú vị, phù hợp với sở thích của bản thân.
- Gitp những người có đam mê và giàu kinh nghiệm về một hoạt động, lĩnh vực
nào đó có thé kiếm thêm nguồn thu nhập từ việc làm mà mình yêu thích
- - Việc tham gia trải nghiệm giúp người dùng có cảm giác phát triên và vui vẻ sau
khi tham gia trải nghiệm, từ đó nâng cao sự tự tin trong cuộc sống.
- Git những người có cùng sở thích cùng đam mê trải nghiệm có thé kết nối được
với nhau, nâng cao tính cộng đông.
- Ứng dụng tập trung vào người Việt và văn hóa Việt, góp phan thúc day, phát triển
du lịch và đặc trưng của bản sắc dân tộc Việt Nam
17 Két quả dự kiến
Xây dựng và phát triển nền tảng ứng dụng web giúp kết nối người tổ chức các hoạt độngtrải nghiệm thực tế với khách tham gia, đồng thời ứng dụng cơ chế đề xuất và trò chơihóa vào nền tảng, bao gồm các chức năng sau:
o Đối với người cung cấp trải nghiệm:
= Tạo tài khoản và quản ly tài khoản dưới dang người tổ chức trải nghiệm
" Tạo, đăng tải va quản lý các hoạt động trải nghiệm một cách dễ dàng.
" Nhận thông báo mỗi khi có khách đăng ký tham gia hoạt động trải nghiệm.
= Được nên tảng giới thiệu về hoạt động nếu hoạt động trở nên phô biến
=" Được phân loại hoạt động trải nghiệm dựa trên chủ đề, từ đó thu hút được nhiều
người dùng có cùng sở thích.
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 21Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
= Một bảng điều khiển cung cấp những thống kê và phản hồi về các hoạt động trải
nghiệm, g1úp người cung cấp cải thiện hoạt động của mình
o Đối với người tham gia trải nghiệm:
= Tạo tài khoản và quản lý tài khoản dưới dạng người tham gia trải nghiệm.
=" C6 khả năng tìm kiếm các hoạt động trải nghiệm dựa trên địa điểm và thời gian
hoạt động diễn ra
= Duoc hệ thong dé xuất các hoạt động trải nghiệm có liên quan đến lịch sử tham
gia và sở thích.
=" Có khả năng tìm kiếm các hoạt động trải nghiệm dựa trên địa điểm và thời gian
hoạt động diễn ra
=" Có khả năng lọc các hoạt động trải nghiệm dựa trên các yêu tô như chủ đê, giá cả,
thời lượng, ngôn ngữ yêu cầu,
=» Đánh giá và bình luận phản hồi về các hoạt động trải nghiệm đã tham gia
“ Có khả năng lưu lại những hoạt động trải nghiệm yêu thích dé có thé tham gia
vào một thời điểm nào đó trong tương lai
“ Có thé xem lại những hoạt động đã đăng ký và hủy tham gia hoạt động trong thời
hạn cho phép, đồng thời xem lại các hoạt động đã tham gia
= Được hệ thống thông báo về lịch trình hoặc hoạt động tiếp theo của hoạt động trải
nghiệm đang diễn ra.
= Sau khi hoàn thành hoạt động trải nghiệm, hệ thống sẽ quy đổi độ khó của trải
nghiệm sang điểm thưởng, sau khi tích lty đủ số điểm thưởng tại một chủ đề hoạt
động nào đó, người dùng sẽ được trao danh hiệu theo chủ đề.
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 22Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
= Những người tham gia trải nghiệm có cùng sở thích có thé kết nối với nhau dé
tiếp tục tham gia những trải nghiệm khác
GVHD: ThS Nguyễn Dinh Loan Phương SV: Trần Minh Phát - 17520882
Trang 23Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Chương 2 CƠ SỞ LÝ THUYET
2.1 Hệ thống đề xuất và các cơ chế đề xuất
2.1.1 Tổng quan về hệ thống đề xuất
Hệ thống đề xuất (hay còn được gọi là nền tảng đề xuất, động cơ đề xuất) là một lớp concủa hệ thống lọc thông tin có nhiệm vụ tìm cách dự đoán “xếp hạng” hoặc “sự yêu thích”của người dùng về một đối tượng nội dung nào đó Có rất nhiều cơ chế đã được pháttriển để phục vụ cho mục đích dự đoán này, tùy vào ngữ cảnh và đối tượng nội dung,
mỗi cơ chế sẽ có điểm mạnh và điểm yếu khác nhau
Trong thời đại hiện nay, với sự phát triển mạnh mẽ của dich vụ web trải dai trong cáclĩnh vực của xã hội, hệ thống đề xuất đã trở nên cực kì phô biến Từ các dịch vụ thương
mại điện tử (Tiki, Lazada, Shoppee ) cho đến việc quảng cáo trên các trạng mạng xã
hội (Facebook, Zalo), tất cả đều có những nội dung đề xuất phù hợp với sự quan tâm,
thích thú của người sử dụng internet Có thê thấy, hệ thống đề xuất đã và đang là mộttiêu chuẩn không thé thiếu cho sự thành công của các nền tảng dịch vụ web trong việctìm kiêm sự hài lòng của người dùng.
Hệ thống đề xuất được đề cập lần đầu trong một bài báo cáo kỹ thuật vào năm 1990 bởiJussi Karlgren tại Dai hoc Colombia, được triển khai ở quy m6 lớn và hiệu quả hơn thôngqua các bài báo cáo kỹ thuật và ấn phẩm từ năm 1994 trở đi của Jussi Karlgren Sau đótại SICS, một nhóm nghiên cứu được dẫn đầu bởi Pattie Maes va Paul Resnick tai MIT,Will Hill tai Bellcore [4]
2.1.2 Tổng quan về các cơ chế đề xuất
Các cơ chê đê xuât là nên tảng đê xây dựng nên hệ thông đê xuât Tùy vào mục đích,
ngữ cảnh và đôi tượng đê xuât, môi cơ chê đê xuât sẽ có ưu nhược điêm khác nhau.
GVHD: ThS Nguyễn Dinh Loan Phương SV: Trần Minh Phát - 17520882
Trang 24Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
¢ Collaborative filtering: Một trong những cách tiếp cận phổ biến nhất của thiết
kế hệ thống đề xuất đó chính là Collaborative Filtering Cơ chế này dựa trên giảđịnh về những hành vi của người dùng trong quá khứ (đánh giá tốt về sản phẩm,mua sản pham nhiều lần, ) và hành vi của những người dùng khác từ đó đưa rađánh giá những sản pham mà người dùng hiện tại có thé sẽ thích và đưa ra đềxuất
e_ Content-based filtering: Không giống như Collaborative Filtering sử dung su
tương tác của người dùng và san phẩm đề tao nên đề xuất, cơ chế Content-based
sử dụng những thuộc tính và mô ta của sản phẩm dé đánh giá và đề xuất cho ngườidùng các sản phâm có nội dung tương tự
e Session-based recommender: Hệ thong dé xuất session-based hoạt động dựa
trên sự tương tác của người dùng tương ứng với mỗi session Cơ chế này hoạtđộng mạnh mẽ đối với các nền tảng cần đề xuất nội dung liên tục dựa trên sự
tương tác hiện tại của người dùng như Youtube, Amazon, Spotify,
e Mobile recommender: Cơ chế đề xuất dựa trên sự truy cập internet bằng các
thiết bị di động sử dụng các yếu tố cá nhân của người dùng (v1 trí dia lý, lịch sử
sử dụng thiết bị và các cài đặt cá nhân, ca) để tạo nên đề xuất cho người dùng.
Một trong những nền tang phổ biến sử dụng cơ chế này là Uber dé đề xuất ra mộtdanh sách các điểm đón khách doc trên tuyến đường đang chạy nhằm tối ưu hóathời gian và lợi nhuận cho tài XẾ
e Hybrid recommender: Hau hết các nền tảng hiện này đều sử dụng cơ chế Hybrid
recommender, tức là kết hợp hai hoặc nhiều các cơ chế lại với nhau Việc nàygiúp tận dụng ưu điểm của từng cơ chế, đem lại kết quả cao trong việc đề xuất
dựa trên từng ngữ cảnh khác nhau Nền tảng xem phim trực tuyến Netflix là một
trong những ví dụ tiêu biểu cho việc kết hợp này, bằng cách đề xuất cho người
dùng thói quen xem phim của các người dùng có hanh vi tương tự (collaborative
10
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 25Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
filtering) đồng thời đề xuất những bộ phim có nội dung tương tự với phim người
dùng đã xem (content-based filtering).
2.1.3 Ap dung và xây dựng chức năng đề xuất trai nghiệm
Sau khi tìm hiểu ưu nhược điểm cũng như cách sử dụng của từng cơ chế đề xuất, tác giảnhận thấy hai cơ chế đề xuất Collaborative Filtering và Content-based Filtering có những
đặc điểm và ứng dụng rat phù hợp đối với dé tài, có thé mang lại hiệu quả tích cực trongviệc đê xuât và gợi ý trải nghiệm cho người dùng.
Đối với cơ chế Collaborative Filtering, ta có thé sử dụng lịch sử tham gia trải nghiệmcủa người dùng cộng thêm những trải nghiệm được người dùng đánh giá cao hoặc yêu
thích để làm đầu vào của thuật toán, từ thông tin về trải nghiệm của những người dùng
tương tự, hệ thống sẽ tin toán và đưa ra những hoạt động được đề xuất một cách chính
xác nhât.
Đối với cơ chế Content-based Filtering, mỗi trải nghiệm trên nền tảng được tạo ra với
rất nhiều thông tin chi tiết như chủ dé của trải nghiệm, địa điểm tổ chức, nội dung của
trải nghiệm từ đó tận dụng được ưu điềm của cơ chế Content-based filering là sử dungnhững thuộc tính và mô tả của sản phẩm dé làm tham số đầu vào của thuật toán, giúpthuật toán đưa ra những đề xuất chính xác và hiệu quả nhất
Nhận thấy hiệu quả của hai cơ chế trên, tác giả quyết định tìm hiểu cơ sở lý thuyết vàthuật toán của từng cơ chế dé áp dụng vào nền tảng
II
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 26Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
2.1.4 Cơ chế Collaborative Filtering
2.1.4.1 Cơ sở lý thuyếta) Ham số tương quan
Đề phát triển được cơ chế đề xuất Collaborative Filtering, đầu tiên, ta phải xác định được
sự tương đồng trong hành vi cũng như lịch sử tương tác của các người dùng đối với nềntảng, hay nói cách khác là tìm sự giống nhau (similarity) giữa các người dùng, do đó tagọi hàm số mà chúng ta đang tìm kiếm là hàm số tương quan (similarity function) Dữliệu duy nhất mà ta có dé xác định sự giống nhau này là một ma tran hữu ích (utilitymatrix), giúp xác định quan hệ giữa người dùng và sản phẩm với sự tương tác là ngườidùng “đánh giá” sản pham [5]
Hình 2- 1 Utility matrix dựa trên số sao một người dùng đánh giá cho một sản pham
(nguồn: https://machinelearningcoban.com)
Một cách trực quan, ta thay răng hành vi của uo giông với u¡ hơn là up, us, us, Us, Us TỪ
đó ta có thê dự đoán rang uo có thê sẽ quan tâm đên sản phâm iz vì u¡ cũng quan tâm đên
sản phâm này.
12
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 27Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Gia sử có các người dùng từ uo đên us và các sản phâm từ io đên i4,trong đó các sô trong môi ô vuông thê hiện sô sao mà mỗi người dùng đã đánh giá cho sản phâm với giá trị cao hơn thê hiện mức độ quan tâm cao hơn Các dâu hỏi châm là các giá trị mà hệ thông cân phải di tìm Đặt mức độ giông nhau của hai người dùng ui, uj là sim(ui, Uj).
Theo như quan sát ở hình 2-1, ta có thé nhan thay uo, u¡ đánh gia cao io, 1ì, l2 va đánh giathấp is, iz Điều ngược lại xảy ra ở các người dùng còn lại Vì vậy, dựa trên hình 2-1, ta
có thê tạm kết luận là một hàm số tương quan tốt cần đảm bảo yếu tố:
sữm(mạ, Uy) > sữn(ug,1t¡), Vi > 1,¡ € (2,3,4)
Tuy nhiên, để xác định sự giống nhau giữa hai người dùng thường gặp khó khăn vì các
cột user thường bị thiếu rất nhiều giá trị do người dùng chỉ đánh giá một vài sản pham
chứ không đánh giá hết tat cả các sản phẩm Vì vậy trước khi tìm ra hàm số tương quan,
ta phải tìm phương pháp thay tất cả các dấu chấm hỏi trong bảng trên bằng một đại lượng
có giá trị tương quan với các giá trị đã có trong bảng, hay còn gọi là quá trình chuẩn hóa
dữ liệu Việc chuân hóa dữ liệu này chỉ phục vụ đề tìm ra hàm số tương quan, không
phải là suy luận ra giá trị cuối cùng
b) Chuẩn hóa dữ liệu
Có nhiều phương pháp dé tính toán giá trị cho những 6 còn thiếu trong ma trận hữu ích,phương pháp khả dĩ và có độ chính xác cao chính là phương pháp tính trung bình cộng của các đánh giá mà người dùng tương ứng đã thực hiện, việc này sẽ giúp tránh được
những người dùng quá khó tính hoặc quá dễ tính, tức là lúc nào cũng sẽ luôn hiện hữu
những sản phẩm mà người dùng thích hơn những sản pham còn lại
13
GVHD: ThS Nguyễn Dinh Loan Phương SV: Trần Minh Phát - 17520882
Trang 28Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Uj; ome 275] 2.» 1.33] 25 | lên |333|
Hình 2- 2 Tính giá trị trung bình đánh giá của từng người dùng
(nguồn: https://machinelearningcoban.com)
Hàng cuối cùng trong hình 2-2 chính là giá trị trung bình đánh giá của mỗi người dùng.Giá trị trung bình đánh giá càng cao thể hiện người dùng càng dễ tính và ngược lại Khixác định được giá trị trung bình đánh giá, ta lấy giá trị đánh giá ban đầu trừ đi giá trịtrung bình đánh giá và thay các giá trị còn thiếu bang 0, ta sẽ được ma trận hữu ích chuẩnhóa.
14
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 29Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
(nguồn: https://machinelearningcoban.com)
Về mặt ý nghĩa, việc lấy giá trị đánh giá ban đầu trừ đi giá trị trung bình đánh giá giúp
ma trận hữu ích được chuẩn hóa theo cách hiện hữu các giá trị âm và dương Những giá
trị dương tương ứng với việc người dùng thích sản phâm và ngược lại Những giá trị bang 0 tương ứng với việc chưa xác định được liệu người dùng có thích sản phẩm này
Trang 30Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
lưu ma trận hữu ích dưới dạng một ma trận rải rác (sparse matrix), tức là chỉ lưu những
giá trị khác 0 và vị trí của chúng Do đó, ta nên thay các giá trị còn thiếu bằng giá trị 0.
Việc này không những giúp ta tối ưu hóa tài nguyên bộ nhớ, mà còn giúp cho việc tínhtoán ma trận tương quan (similarity matrix) sau này hiệu quả hơn.
c) Ham tương quan Cô-sin
Sau khi ma trận hữu ích đã được chuân hóa, ta có thê sử dụng hàm sô tính cos của góc
giữa 2 vector u1, ua dé tính mức độ tương quan giữa 2 người dùng:
ut U2
(1)
COSsimilarity U1, U2) = cos(u,,U2) =
Trong hàm sô này, u¡, uz đại diện cho 2 người dùng đã được chuân hóa như trên.
Mức độ tương quan giữa hai vector u¡, u2 là một số nằm trong đoạn [-1, 1] Giá trị bằng
1 tức là góc giữa hai vector này bang 0, thể hiện được là hành vi của 2 người dùng là
hoàn toàn giống nhau và ngược lại Từ hàm tương quan Cô-sin, ta tính ra được ma trậntương quan như sau:
16GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 31Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Hình 2- 4 Ma trận tương quan giữa các người dùng
(nguồn: https://machinelearningcoban.com)
Ma trận tương quan S (similarity matrix S) là một ma trận đối xứng vì hàm cô-sin là mộthàm chan, tức là nêu người dùng 1 giống người dùng 2 thì điều ngược lại cũng đúng
Từ ma trận tương quan S, ta có thê quan sát và đưa ra một số nhận xét như sau:
- uo tương tự với u¡ va us: dựa trên ma trận tương quan, ta có thé thay sự tương
quan giữa uo với u¡ và us là số đương Việc tương quan cao giữa uo với u¡ là dễhiểu vì cả 2 đều có xu hướng quan tâm đến các sản phẩm io, ii, ic hơn các sảnphẩm còn lại Việc tương quan cao giữa u0 và u5 thoạt đầu có vẻ vô lý vì us đánhgiá thấp các sản pham ma uo đánh giá cao (hình 2-1) tuy nhiên sau khi nhìn vào
ma trận đã chuẩn hóa (hình 2-3), ta thấy răng điều này là hợp lí vì sản phâm duy
17
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 32Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
nhất mà hai người dùng đã cung cấp đánh giá là ¡¡ với các giá trị tương ứng đều
là tích cực.
- wy tương tự uo và ít tương tự các người dùng còn lại.
- ưa tương tự với Us, u4, Us, Us và it tương tự các người dùng còn lại.
A Yu jen (wi)* Y iu; sim(u, U;)
iota «mm (2)
- dujen (ui) | sim(u, 1 )|
Trong đó: N(u, i) là tập hop k người dùng trong neighborhood (tức có độ tương quan
cao nhất) của người dùng u mà đã đánh giá sản pham i.
Ví dụ: Tính dự đoán đánh giá của u, cho i, với số nearest neighbor là k = 2
Bước 1: Xác định các người dùng đã đánh giá cho sản pham i, => {up, U3, Us}
Bước 2: Xác định độ tương quan giữa wu, và các người dùng trên Tương ứng tai ma trận
tương quan (hình 2-4) ta nhận được các giá trị lần lượt là 0.83, —0.40, —0.23 Hai giá trị
(k =2) lớn nhất là 0.83, —0.40, tương ứng với ug và us
Bước 3: Xác định sự đánh giá đã chuẩn hóa của Ug và Us dành cho i, tại ma trận chuẩnhóa (hình 2-3), ta thu được các giá trị lần lượt là 0.75 và 0.5
18
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 33Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Bước 4: Tính dự đoán đánh giá
Lúc này, ta có thé chuyên đổi ma trận chuân hóa về thang 5 như ban đầu bằng cách cộng
vào mỗi ô giá trị trung bình đánh giá đã dược tính như trong hình 2-2.
19
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 34Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
(nguồn: https://machinelearningcoban.com)
2.1.4.2 Thư viện Akin
Akin là một phần mềm mã nguồn mở (open source software) được ứng dụng như một
thư viện cung cấp Recommendation Engine dựa trên cơ chế Collaborative Filtering Akin
được phát triển bằng Node.js, sử dụng MongoDB làm cơ sở dit liệu
Các chức năng chính mà Akin cung cấp:
- Cung cấp API dé ghi nhận hoạt động của người dùng dựa trên sản phẩm được
tham chiếu đến bằng ID
20
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 35Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
- Cac phương pháp bé sung cung cấp việc thực thi thuật toán lọc cộng tác, có thé
mở rộng, đưa ra kết quả đề xuất cho mỗi người dùng vào Mongo với từng tênriêng biệt.
- Cung cấp API giúp tính toán độ tương quan của người dùng cụ thé với các người
dùng còn lại.
- Cung cấp API giúp tính toán điểm số đánh giá từng sản phẩm và trả về kết quả dé
xuất
Áp dụng thư viện Akin vào nền tảng:
Tác giả sử dụng thư viện Akin dé áp dụng thuật toán Collaborative Filtering lên hệ thốngserver back-end được lập trình bang ngôn ngữ Node.js Lưu đồ diễn ra như sau:
Yêu thích trải nghiệm
` _Luu lại hành động 4 28 |»! Dự đoán trai nghiệm
|Ñ———]Tao danh sách đề xuất
Người dùng
Hanh gia trải nghiệm
Hình 2- 7 Lưu đồ hoạt động của cơ chế CF trên nên tang
Lưu danh sách đề xuất
vào cơ sở dữ liệu
Người dùng có thé thực hiện 2 thao tác dé thé hiện sự yêu thích đối với trải nghiệm:Thêm trải nghiệm vào danh sách yêu thích hoặc Đánh gia trải nghiệm sau khi tham gia.
Hệ thống sẽ lưu lại hành động của người dùng vảo một danh sách mảng, từ đó tính toán
mức độ tương quan giữa người dùng với các người dùng khác trên hệ thống Sau khi đã
có được mức độ tương quan hệ thống sẽ tính toán dự đoán các trải nghiệm người dùng
có thê thích và tạo danh sách đê xuât, lưu lại vào cơ sở đữ liệu.
21
GVHD: ThS Nguyén Dinh Loan Phuong SV: Tran Minh Phat - 17520882
Trang 36Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
2.1.5 Cơ chế Content-based Filtering
2.1.5.1 Cơ sở lý thuyết
a) Công thức TF-IDF
Cơ chế Content-based chỉ khác cơ chế Collaborative ở một điểm duy nhất, đó chính làthay vì tìm ra sự tương quan giữa các người dùng, ở cơ chế Content-based, câu hỏi đượcđặt ra là làm thé nào dé tìm sự tương quan giữa các sản phầm với nhau thông qua nộidung của chúng?
Công thức TF-IDF là một trong những công thức phố biến được dùng dé giải quyết câuhỏi này TF-IDF là một chủ đề nhỏ trong khối chủ đề Xử lý ngôn ngữ tự nhiên (NaturalLanguage Processing) Công thức này được sử dụng trong việc truy xuất thông tin chocác mục đích tính năng với mục đích có trích xuất [6]
Tóm lại, những gì công thức TF-IDF thực hiện là đếm số lần xuất hiện của các từ trong
một văn bản, đánh giá sự quan trọng của từng từ và đưa ra diém sô cho văn ban đó.
Giả sử, ta có một bảng thống kê như sau:
Trang 37Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Cột dau tiên chứa tên của từng văn bản, các cột tiép theo là những từ vựng và các sôtrong những ô xanh là số lần từ vựng xuất hiện trong văn bản tương ứng
Hàng DF cuối cùng thể hiện tổng số văn bản có chứa từ vựng tương ứng
Giả sử tổng số văn bản là 1 triệu (10^6)
Term Frequency
Term Frequency (TF) là tan số ma một tir vựng được lặp lại trong một văn ban chia chotổng số từ vựng có trong văn bản đó mang ý nghĩa xác định sự phố biến của từ vựngtrong văn bản và được chuân hóa băng cách chia cho tổng số từ vựng
Tfứ) = Frequency occurence of term t in document
Total number of terms in document
Hình 2- 9 Công thức tinh term frequency
Trang 38Xây dựng nền tảng kết nối giữa người tổ chức trải nghiệm và khách tham gia
O, otherwise
Hình 2- 10 Công thức tinh Weighted Term Frequency
(nguồn: https://www.analyticsvidhya.com)
Ap dụng công thức nay để tinh TF cho từng từ vựng trong hình 2-, ta có được một bảng
chứa trọng sô của từng từ vựng như sau:
——
me ae, aE IE
-†2Sploo-| 2 mMBb [rau l TT 0
(nguồn: https://www.analyticsvidhya.com)
Inverse Document Frequency
Inverse Document Frequency (IDF) là tổng số văn ban chia cho tổng số văn ban dangchứa một từ vung t Giá tri IDF thể hiện mức độ hiểm của từ vựng, nếu từ vựng xuấthiện nhiều trong các văn bản thì giá tri IDF sẽ tăng lên
24
GVHD: ThS Nguyễn Đình Loan Phương SV: Trần Minh Phát - 17520882
Trang 39Xây dựng nên tảng kết nối giữa người tô chức trải nghiệm và khách tham gia
Total Number of documents
© © 10‘ Number of documents containing term t
Hình 2- 12 Công thức tinh inverse document frequency
b) Véc-to TF-IDF và chuẩn hóa
Cũng giống như cơ chế Collaborative, ta sử dung góc giữa 2 véc-to văn bản dé tính mức
độ tương quan giữa hai văn bản này, do đó sau khi có được trọng số của TF, ta có thétính được độ dài của véc-tơ văn bản bằng cách lấy căn bậc hai của tổng các trọng số TFbình phương, lay vi dụ dé tính được độ dài của véc-to văn bản 1, ta có:
Length of vectoYrarticies = \ (2,32)? + (2,38)2 + (0)2 + (1,30)? + (1,30)? = 3.8
25
GVHD: ThS Nguyén Dinh Loan Phuong SV: Tran Minh Phat - 17520882
Trang 40Xây dựng nền tảng kết nối giữa người tổ chức trải nghiệm và khách tham gia
Sau đó, dé chuẩn hóa các giá trị trọng số bằng cách lay giá trị của trọng số chia cho độ
dài của mỗi vector tương ứng, từ đó ta có được bảng giá trị trọng số được chuẩn hóa như
Sau:
Piata L
Article 2 0.$94389962 0.691941368| 0324895184] 0249721517) =
Hình 2- 14 Bảng giá trị trọng số được chuẩn hóa
(nguồn: https://www.analyticsvidhya.com)
Sau khi chuẩn hóa các giá trị trọng số, ta áp dụng hàm tương quan cô-sin như cơ chế
Collaborative để xác định mức độ tương quan và mức độ tương quan sẽ nằm trong
khoảng [-1,1], ví dụ dé tính mức độ tương quan giữa Article | và Article 2, ta có:
cos(4¡, Az) = 0.61 x 0.59 + 0.63 * 0.69 + 0 x 0.32 + 0.34 x 0.25 + 0.34 x0
= 0.8797
2.1.5.2 Thư viện Content-based Recommender
Thư viện Content-based Recommender là một phần mềm mã nguồn mở (open sourcesoftware) được phát triển bằng ngôn ngữ JavaScript dé minh họa khái niệm Đề xuất dựatrên nội dung (content-based recommendation).
26GVHD: ThS Nguyén Dinh Loan Phuong SV: Tran Minh Phat - 17520882