Đang tải... (xem toàn văn)
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
DE TÀI: NGHIÊN CỨU XÂY DUNG HE THONG THƯƠNG MẠI ĐIỆN TỬ TÍCH HỢP CO CHE TU VAN SAN PHAM DUA TREN PHIÊN
Giảng viên hướng dan: TS Đỗ Thị Liên Sinh viên : Trần Văn Thân
Mã sinh viên : BI9DCCN665
Lớp : DI9HTTT3
Hà Nội - 2024
Trang 2LỜI CẢM ƠN
Trước hết, em xin gửi lời cảm ơn chân thành nhất đến tất cả các thầy cô giáo
trong Khoa Công Nghệ Thông Tin - Học Viện Công Nghệ Bưu Chính Viễn Thông,
và cả thầy cô trong toàn trường, với lòng nhiệt huyết không ngừng, thầy cô đã truyềnđạt cho em không chỉ kiến thức về chuyên ngành mà còn là những trải nghiệm quýbáu từ thực tế.
Và em xin bay to long biết ơn sâu sắc tới cô Đỗ Thị Liên, người đã dành tâm
huyết và thời gian hướng dẫn em trong suốt quá trình thực hiện đồ án này Nếu
không có sự hướng dẫn, sự động viên của cô, em tin rằng em sẽ không thể vượt qua
những khó khăn và hoàn thành đồ án một cách xuất sắc như ngày hôm nay Cô lànguồn động viên lớn nhất của em, và em xin chân thành cảm ơn cô.
Đồ án của em thực hiện trong khoảng thời gian 9 tuần, một khoảng thời gian
đầy cống hiến và học hỏi Đây là bước khởi đầu của em trong hành trình tìm hiểu,
nghiên cứu và áp dụng kiến thức vào một đề tài thuộc lĩnh vực công nghệ thông tin
về việc tích hợp học máy vào hệ thống thương mại điện tử Do vậy sẽ còn hạn chế và không tránh khỏi những thiếu sót, em rất mong nhận được những ý kiến đóng góp
quý báu của quý thầy cô dé kiến thức của em trong lĩnh vực này được hoàn thiện hơnđồng thời có điều kiện bổ sung, nâng cao kiến thức và kỹ năng nghề nghiệp của em.Em xin chân thành cảm on!
Hà Nội, Ngày thang 1 năm 2024Sinh viên thực hiện
Trần Văn Thân
Trang 3NHAN XÉT ĐÁNH GIA CHO DIEM
(Của giảng viên hướng dẫn)
Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng cham tốt nghiệp.
Hà Nội, Ngày tháng 1 năm 2024.
CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
Trang 4NHAN XÉT ĐÁNH GIA CHO DIEM
(Cua giang vién phan bién)
Diem: (0 1 ằ ) Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng cham tốt nghiệp.
Hà Nội, Ngày tháng | năm 2024.
CAN BỘ - GIANG VIÊN PHAN BIEN
Trang 51.1.3 Yêu cầu hoạt động của ứng AUN? ececceseeseseeseeseesessessessesetesesseessseeseseeees 9
1.3 Xác định phương pháp tiếp cận và giải quyết vấn đề -cs- s+cssce¿ 13
CHUONG 2: CÔNG NGHỆ TƯ VAN SAN PHAM DỰA TREN PHIÊN 19
2.1 Bài toán về tư van sản phami cceccecsccsccssessessessessessessesssessesessesessesssseseeseeeees 19
2.2.1 § uc án 19
2.2.2 Lọc dựa trên nội dung - ¿+2 +22 1333131155251 EErkrre 20
2.2.3 Hệ thống gợi ý lai ¿5c St E2 12112112112111111111111 111111 Errre 21
2.3.2 Một số phương pháp phô biến của hệ thống sản phẩm tư vấn dựa trên
2.4.1 Sơ lược về mô hình Word2VeC c.cccccccsssssesesssecsesesesesesucecsesesesvsueueecsesceeeees 24 2.4.2 Kiến trúc mô hình: -.:-+22+++2E2Y+t22EEttSEEtEErtttrrrttrrrrrrrrrrrrrrire 25 2.4.3 Áp dụng mô hình Word2Vec vào hệ thống tư vấn sản phẩm dựa trên
01522755 28
2.5 Thực nghiệm Word2V€C:, v1 11H 111 1111011111111 111111 1H kg ket 33
Trang 6CHUONG 3: PHAN TÍCH THIẾT KE HE THÓNG 2- 222222 40
3.1 Phân tích hệ thong c ccccsccsscsscssessessessessessessessesssssssusssscsessessessssesassesassesseaes 40
3.2.3 Biểu đỒ gói: -c- c2 212122122111 11 11 1 1012121212211 ro 76
4.1 Cơ sở dit liệu quan hỆ: - - c2 2221 122111111111 1121311111131 1811 18111811181 Egkep 79
4.3 Kết luận chương 4: - 25c SE EEE12112112112112111111111111111 211 tre 84 PHU LUC: CAI DAT VA TRIEN KHAL 0 cccccccccscscsseseesseseseestsstesesseeesteeeeees 85
1 Cai đặt môi tring? eee ccccccceeceecceseeeseesseeeseeeseeeseeesseeeeseesenseeeseeeessseeeeaees 85
1.1 Cài đặt Node.js Va IDI: - - 2c 2319112119 119119 1 11 9v ng ng Hư 85
2 Cấu trúc thu ImỤC: - ¿2 +¿22+2E£2EE+2EE2EE22E122112711221221127112711211211211 22c xe 86 2.1 Phan End Usett c.cccccccccsscsssessessssssessessesssessessecssessessssusssessessssssessessessnssseeesaes 86
2.2 Phần Admin va BackEnd Services: cccccscssssssssssesssseseseceesesucsesesscecsneecseenees 88
3 KẾT Quả: 5c c1 1211211211211211211211 211221111 1 11 1211121112111 E1 11tr 90
Ea 08 2n 903.2 Phía AÌmI1i: ¿ ¿21011111111 1123301 1111111111935 10 1011011 và 93
Trang 7DANH MỤC HÌNH ẢNH
Hình 1.1: Giao diện và tương tac các chức năng dành cho người quan trỊ 11
Hình 1.2: Giao diện va tương tác các chức nang dành cho khách hàng 12
Hình 2.2: Khái niệm Center Word và Context Word c c2 xy 25
Hình 2.6: Quá trình xử lý của hệ thống tư van sản phẩm dựa trên phiên sử dụng
)Z0x/À 32
Hình 2.8: Training đafa c5 22c 1221112111211 111 1111118111811 1 8 118 11111 E11 1H ng Hiệp 34
Hình 2.9: Kết quả trực quan hóa dữ liệu của bộ gợi ý sau khi train - 36
Hình 2.10: Kết quả tìm đề xuất với sản phẩm có mã ADT5 - - 2+s+s+s+ 37
Hình 3.3: Biểu đồ Use case quan lý quyền nhân Vié0 ccccecssessessessesseseeeseeseeees 42
Hình 3.4: Biểu đồ Use case quản lý nhân viên - - 2 s+s+x+E++EE2E+2EE+Eerxxees 42 Hình 3.5: Biểu đồ Use case quan lý sản phâm 2 2 2+S+x+£E2E+zEzxerxee 42
Hình 3.9: Biểu đồ tuần tự đăng nhập - 2: sSsệEEEEEE2E12E121121121121 1111 cyee 59
Trang 8Hình 3.17: Biéu đồ tuần tự cập nhật sản phẩm " — 66
Hình 3.25: Biéu đồ tuần tự đặt 0 73
Hình 3.27: Biểu đồ lớp thiết kẾ ¿2 - S99 ÉEEEEEEEEEEEEE121E1121111111 11111 c1x 76 Hình 3.28: Biểu đồ gói 2-52 ST TE 2112112112111 1111111211111 re 77
Hình 4.1: Lược đồ cơ sở đữ liệu hệ thống thương mại điện tỬ - 81
Hình phụ lục 1.1: Kiểm tra môi trường Node c.ccccccccscessessessessesessesesesesesessesesseaee 85Hình phụ lục 1.2: Kiểm tra môi trường Python - 22 2 +S++E+E+E++EeEszEererez 85
Hinh phu luc 2.1: Cấu trúc thư mục End Uset cccceccccsscscescssssessessesesesvsvsesessvseseeeeees 86 Hinh phu luc 2.2: Cau trúc thư mục Admin va Backend Services - 5: 88
Hình phụ lục 2.3: Cấu trúc thư mục ứng dụng học máy -+++c c2 89
Trang 9Giao diện trang Chủ - - ¿25 22c 3311135111151 115511 81111 ray 90
Giao điện gợi ý sản phẩm và sản phẩm mới ở trang chủ 90
Giao diện chi tiết sản phẩm 2-5 SE E2 EEEE2EEErrerxes 91
Giao diện giỏ hàằng c1 1112111211111 1115111111111 xe 9]
Giao diện thanh toán - ‹ - <2 111111 111122311 1111111192555 1 11 ke 91Giao diện danh sách đơn hàng - - 5+ +25 +++>++s++e+ssess 92
Giao diện chỉ tiết đơn hàng 5c s secxeEeEeEEEEExrErrreree 92
Giao diện Đăng nhập - 5 c1 E SE vEsEEskirssrersrkrrrke 93
: Giao diện danh sách sản phẩm 2 52+EeE2EcEzEerxzxez 94 Giao diện thêm sản phẩm -2- 2-5252 +E#E‡E£E2EEE2Eerxrree 94
Giao diện danh sách hãng 5S 2322 * +2 SsEEsrrseererres 95Giao diện thêm mới hãng - 5 2c + ***‡++ssvvex+sseeeesxses 96Giao diện chỉnh sửa hang cc ccesceeeseccesseeesesseeeeessteeeeensneeeees 96Giao diện danh sách don hảng - 5+5 ++s*s+csexssx2 97
Giao diện Danh sách quyền 2- 2 t+StEt+Et2E£EeErxerered 95 Giao diện thêm quyÊhn - 2-5 eEềEEEEEEEEEE2EE2EE2E2EExrree 98
Giao diện quản lý S€T - 5c 22323 E+vEEseEseerseeeesrkrs 99
Trang 10Bang 1.1:
DANH MUC BANG
So sánh ưu nhược điểm của 3 trang thương mại điện tử Lazada, Shoppe,
V0 TT 4 8
Bang 2.1: So sánh hai mô hình Skip-gram và CBOW :ccccccessccesseeeeteeeeteeeeeaeees 28
Bang 2.2: Kết quả thực nghiệm với ba phương pháp tim vector tương tự 29
Bảng 3.1: Scenario cho Use Case đăng Ký - - SH He, 43
Bang 3.3: Scenario cho Use Case xem thống kê - 2-52 2+S++E£E+E£EeErxerxez 45
Bảng 3.5: Scenario cho Use Case thêm mới quyền - 2-2 2 £+S++E++EzEerxze+ 46 Bang 3.6: Scenario cho Use Case cập nhật quyền - 2 ¿5c se EeExeEzEzEzrxzee 46
Bảng 3.11: Scenario cho Use Case cập nhật sản phẩm 25-52525225: 50
Bang 3.13: Scenario cho Use Case xem chi tiết đơn hang ccccccceccessesseseeseeeeeees 52 Bang 3.14: Scenario cho Use Case đổi trang thai đơn hàng -2- 2-5552 52 Bang 3.15: Scenario cho Use Case xem chi tiết sản phẩm - 2-2 25252 53
Bang 3.17: Scenario cho Use Case tìm kiếm sản phẩm - 2-5 2+sec++Ezzx+2 54
Bang 3.18: Scenario cho Use Case chỉnh sửa gid hàng 5c s‡‡++<scss+++ 55Bảng 3.19: Scenario cho Use Case dat hang eceeeceeceesceeceeeceeeeeeeeneeeeneeeeeneeees 56Bảng 3.20: Scenario cho Use Case xem đơn hàng đã dat eccssccesessteeeeenteees 56
Trang 11ĐẶT VAN DE
Thương mai điện tử đang mang lại nhiều lợi ích cho cả doanh nghiệp lẫn khách hàng và có vai trò quan trọng trong cả hai khía cạnh kinh tế và xã hội Đối với doanh nghiệp, thương mại điện tử giúp cải thiện quy trình kinh doanh, tôi ưu hóa hiệu quả và mở rộng phạm vi tiếp cận khách hàng trên phạm vi toàn cầu Còn đối
với khách hàng thương mại điện tử tạo ra sự thuận tiện thông qua trải nghiệm mua
sắm trực tuyến, giúp khách hàng tiết kiệm thời gian và tăng cường sự linh hoạt trong lựa chọn sản phẩm và dịch vụ.
Hệ thống thương mại điện tử tích hợp cơ chế tư van sản phâm dựa trên phiên
giúp cải thiện trải nghiệm mua sắm trực tuyến Nhờ vào khả năng phân tích lịch sử mua sắm và sở thích cá nhân, hệ thống này mang lại lợi ích lớn cho cả khách hàng
và doanh nghiệp Khách hàng nhận được sự tư vấn chính xác và cá nhân hóa, giúp
họ tiết kiệm thời gian trong việc tìm kiếm sản phẩm phù hợp Đồng thời, doanh
nghiệp cũng tận dụng được cơ hội tương tác chủ động, xây dựng mối quan hệ vững
chắc với khách hàng và thúc đây doanh số bán hàng Hệ thống này không chỉ là công nghệ mới mẻ mà còn là yếu tố quan trọng đóng góp vào sự phát triển bền vững của thương mại điện tử trong thời đại SỐ.
Trong đồ án này em sẽ nghiên cứu xây dựng hệ thống thương mại điện tử tích hợp cơ chế tư van sản pham dựa trên phiên Với chương 1 là giới thiệu tổng quan về hệ thống thương mại điện tử giày dép, bao gồm xác định yêu cầu hệ thống, thiết kế tương tác, phương pháp tiếp cận và giải quyết vấn đề Chương 2 sẽ tập trung vào công nghệ tư van sản pham dựa trên phiên, bao gồm bai toán tư van sản phẩm, các
phương pháp xây dựng hệ thống cơ bản, hệ thống tư vấn sản phẩm dựa trên phiên,
mô hình Word2Vec và thực nghiệm liên quan Chương 3 tập trung vào phân tích và
thiết kế hệ thống, bao gồm các biểu đồ va Scenario cho các Use case Chương 4 dé cập đến thiết kế cơ sở dit liệu, chỉ tiết các bảng Sau đó đến phụ lục là quá trình cai
đặt, triển khai và xem kết quả hệ thống Cuối cùng, phần kết luận chung tóm tắt kết
quả đạt được và hướng phát triển trong tương lai.
Trang 12CHƯƠNG 1: TONG QUAN VE HE THONG THUONG MẠI ĐIỆN
TU GIAY DEP
Chương nay em sẽ tập trung vào việc xác định yêu cầu cho hệ thống thương
mại điện tử giày dép Chúng ta sẽ băt đâu băng việc năm rõ mục đích của hệ thông,khảo sát thị trường sản phâm tương tự, và chi tiệt hóa yêu câu hoạt động của ứngdụng dành cho cả người dùng cuôi va người quản trị.
Tiếp theo, em sẽ tạo hình sản phẩm thông qua thiết kế tương tác, tập trung
vào trải nghiệm người dùng Cuối cùng, chúng ta sẽ đề cập đến phương pháp tiếp
cận và giải quyết van đề, từ mô hình tổng quát hệ thống đến kiến trúc phần mềm và
công nghệ, triển khai Mục tiêu là xây dựng nền móng vững chắc cho quá trình pháttriển hệ thống.
1.1 Xác định yêu cầu hệ thống thương mại điện tử về web bán giày dép 1.1.1 Mục đích của hệ thống:
Cung cấp một nền tảng để mua sắm trực tuyến, cho phép khách hàng chọn và mua giày dé dang thông qua giao diện trực tuyén Tạo ra một trải nghiệm mua sam trực tuyến tốt cho khách hàng, bao gồm tìm kiếm dé dàng, gợi ý các sản phẩm phù
hợp, hiển thị sản phẩm chat lượng và thông tin chỉ tiết Bên cạnh đó tạo ra một môitrường giúp quản trị viên có thé quản lý sản phẩm, don hàng, người dùng, bao mật,thống kê, đảm bảo hoạt động suôn sẻ và tối ưu hóa kết quả kinh doanh.
1.1.2 Khảo sát các sản phẩm tương tự:
Sau khi tham khảo 3 trang web thương mại điện tử nổi tiếng: Lazada, Shoppe,Adidas em có các nhận xét về ưu nhược điểm của 3 trang web như sau:
Bảng 1.1: So sánh ưu nhược điểm của 3 trang thương mại điện tử Lazada, Shoppe,
Trang 131.1.3 Yêu cầu hoạt động của ứng dụng:
1.1.3.1 Yêu cầu dành cho người quản trị:
Người quản trị đăng nhập vào hệ thống với quyền truy cập cao.
Có thể có nhiều quản trị với các quyên khác nhau.
Có quyền quản lý sản phẩm, bao gồm thêm, sửa, xóa sản phẩm, va cập nhật
thông tin về sản phẩm như giá cả, mô tả, hình ảnh.
Người quản trị có thể quản lý đơn hàng, xác nhận và cập nhật trạng thái đơn
hàng (đang xử lý, đã giao hàng, đã hủy, v.v.).
Quản tri CÓ quyền cao nhất (admin) sẽ có thể thêm, sửa, xóa và cập nhật
quyền, và cung cấp các quyền cho các quản trị khác.
Người quản trị cũng có quyền xem và quản lý dữ liệu về doanh số bán hàng,lượt truy cập trang web, và dữ liệu khách hàng.
1.1.3.2 Yêu cầu dành cho khách hàng:
Có thé tìm kiếm sản phẩm giày theo tiêu chí như loại giày và thương hiệu.
Người dùng truy cập ứng dụng trên trình duyệt web hoặc ứng dụng di động.
Trang 14e Người dung được hệ thống gợi ý các sản phẩm phù hợp với mong muốn mà
mình đang tìm kiếm.
e Người dùng có khả năng xem thông tin chỉ tiết của sản phẩm, bao gồm hình
ảnh, giá cả, đánh giá của người dùng khác, và mô tả sản phẩm.
e Sau khi chon sản pham, họ có thé thêm vào giỏ hàng và tiễn hành thanh toán băng cách cung cấp thông tin thanh toán và địa chỉ giao hàng.
e Ung dụng phải cung cấp các phương thức thanh toán an toàn và xác nhận đơn hàng sau khi thanh toán thành công.
e Người dùng có thé theo dõi trạng thái đơn hang và nhận thông báo về tình trạng đơn hàng (đang xử lý, đã giao hàng, đã hủy, ).
1.2 Thiết kế tương tác:
© Thiết kế giao diện và tương tác các chức năng cho người quản trị và khách
hàng được thê hiện bởi hai hình dưới đây:
- Hình | là thiệt kê giao diện và tương tác các chức năng cho người quản tri.- Hinh 2 là thiệt kê giao diện và tương tác các chức năng cho khách hang.
10
Trang 15Quản Lý Quyền User
Thêm/ sửa quyền
Thêm Quyền User
Thêm Quyền User
Danh Sach Hang
Quan Ly Don Hang
Trang 16| Hang Giay
'Footer|| PIL
Trang chu Tim Kiém
(Header ml eH = G Header Loài |
Trang 17laeze A
1.3 Xác định phương pháp tiếp cận và giải quyết van dé 1.3.1 Mô hình tổng quát hệ thống
Trình duyệt Web Admin Trình duyệt Web End User
‘asuodsey d11H Tư vấn sản phẩm dựa esuodsey d11H
Hiển thị danh sách sản phẩm tưvấn dựa trên phiên tới người
dùngXem thống kê
Hiển thị danh sách sản phẩm
Thêm, sửa, xóa sản phấm Xem sản phẩm theo hãng
Hiển thị danh sách hãng Xem chỉ tiết sản phẩm
Thêm, sửa, xóa hãng Thêm sản phẩm vào giỏ hang
Hiển thị danh sách đơn hàng Xem danh sách SP trong giỏ hàng
Cập nhật đơn hàng Sửa sản phẩm trong giỏ hàng.Cập nhật bộ gợi ý Đặt hàng
Hiển thị danh sách quyền Nhập địa chỉ giao hàng
â " 4 " Hiển thị chỉ tiết đơn hàng
Thêm, sửa, xóa quyền
Hiển thị danh sách đơn hàng đã đặt
Hiển thị danh sách quyền nhân viên
Cập nhật quyền nhân viên
Backend Service
REST request
REST request Truy vấn cơ sở dữ liệu Màu
GET/POST/PUT/DELETE method GET/POST/PUT/DELETE method
Cập nhật dữ liệu
Nhận yêu cầu, xử lý và trả dữ
REST response liệu Json cho Website End User REST response
JSON format JSON format
; Dựa vào mô hình tổng quát của hệ thống em lựa chọn phát triển toàn bộ hệ
thông theo một phương pháp chung là phương pháp hướng dịch vụ Ở đây các
module Web End User, Web Admin, Backend Services, Tư vân sản phâm dựa trên
13
Trang 18phiên sẽ được phát triển độc lập Module Web End User và Web Admin có chức năng hién thị và xử lý tương tác của người dùng Module Backend Service, Tư van
sản phẩm dựa trên phiên sẽ có chức năng xử lý logic, truy xuất với database và trả về dữ liệu cho module Web End User và Web Admin thông qua giao thức HTTP.
1.3.3 Kiến trúc phần mềm
Dựa theo mô hình tổng quát và phương pháp xây dựng phần mềm em lựa
chọn xây dung và phát triển toàn bộ hệ thống theo kiến trúc hướng dịch vu (SOA):
e Module Web Client và Web Admin sẽ được coi là Service requester (Người
yéu cau dich vu).
e Module Tư vấn san phẩm dựa trên phiên, và Backend Service sẽ được gọi là Service Provider (Nhà cung cấp dịch vụ).
1.3.4 Công nghệ triển khai hệ thống:
1.3.4.1 NextJs kết hợp TypeScript cho module Web Admin, Web End User và
Backend Service:
NextJS là một framework mã nguồn mở được xây dựng dựa trên nền tảng
React cho phép xây dựng các website tĩnh và ứng dụng web React với tốc độ nhanh
và trải nghiệm người dùng tuyệt vời Em lựa chọn NextJs kết hợp với TypeScript dé phát triển các module: Trình duyệt Web client, trình duyệt Web Admin và Server
bởi vì một số yếu tố sau:
- _ Tích Hợp Dễ Dang với API và Backend:
® TypeScript cung cấp thông tin kiểu cho API, giúp dễ dàng tương tácvới các dịch vụ backend va API Điều này có thê giảm thiểu lỗi liên
quan đến kiểu dữ liệu khi giao tiếp giữa frontend và backend.
- Hiéu Năng Cao:
@ Next.js được thiết kế để cung cấp hiệu năng cao với việc tải trang
nhanh chóng và hỗ trợ rendering ở cả phía client và server TypeScript
có thé giúp viết mã hiệu qua và dé bảo trì, làm tăng khả năng mở rộng
của dự án.
- Tích Hợp Mô-đun va Component:
® TypeScript cung câp khả năng tương tác tốt với module và component,
giúp quan lý và tai sử dụng mã nguồn một cách hiệu quả Điều nay đặc
biệt quan trọng khi phát triển trên nền tảng Next.js, nơi tích hợp mô-đun là một phần quan trọng của kiến trúc.
- Quan lý Trang Thái Ung Dung:
® TypeScript có thé giúp quản lý trạng thái ứng dụng một cách hiệu quả
với tính năng kiểm soát kiêu Điều này làm giảm rủi ro lỗi và tăng khả
năng duy trì của mã nguồn.
14
Trang 191.3.4.2 Prisma cho module Backend Service:
Prisma là một thư viện ORM cho TypeScript cho phép tao ra một lớp trừutượng (abstraction layer) giữa ứng dụng và cơ sở dữ liệu Prisma cung cấp một API
đơn giản và mạnh mẽ đề thao tác với cơ sở đữ liệu mà không cần viết câu lệnh SQL Em sử dụng thêm thư viện Prisma dành cho server bởi vì một số các lợi ích sau:
- Quản lý Cơ sở dit liệu dé dàng:
e Prisma cung cấp một ORM (Object-Relational Mapping) mạnh mẽ,
giúp quản ly cơ sở dữ liệu một cách dé dang bằng cách sử dụng các mô hình dữ liệu và truy van dựa trên ngôn ngữ JavaScript/TypeScript.
- Tự động tạo mã TypeScript:
e Prisma có thé tự động tạo mã TypeScript cho mô hình cơ sở dữ liệu,giúp giảm thiểu lỗi và cung cấp trải nghiệm lập trình mạnh mẽ và antoàn.
- Tich hợp tốt với TypeScript:
® Prisma có sự hỗ trợ tốt cho TypeScript, giúp xây dựng ứng dụng với mã nguồn dé doc, dé bảo trì và kiểm soát kiểu tốt hơn.
- Hiệu suất tôi ưu hóa:
e Prisma tối ưu hóa truy vấn cơ sở đữ liệu và sử dụng các khái nệm như
lazy loading để giảm thiểu lượng dữ liệu được truy vấn khi nó không cân thiết.
- Quản ly Migrations:
e Prisma hỗ trợ quan lý phiên bản cơ sở dữ liệu thông qua migrations,
giúp duy trì và mở rộng cơ sở dữ liệu một cách an toàn.
- Dễ đàng kiểm soát và theo dõi cơ sở dit liệu:
® Prisma cung cấp các công cụ giúp theo dõi và kiểm soat các truy vẫn cơ
sở dit liệu, điều này làm cho quá trình phát triển và bao trì dé dang hơn.
1.3.4.3 Flask cho module Tư vấn sản phẩm dựa trên phiên:
Em lựa chon Flask dé phát triển module: Ung dụng tư van sản phẩm dựa trên
phiên bởi vì Flask là một framework web cho ngôn ngữ lập trình Python, được thiết
kế dé giúp xây dựng ứng dụng web va API (Interface Lập trình ứng dụng) một cách dễ dàng Bên cạnh đó Python là một ngôn ngữ lập trình vô cùng mạnh mẽ đối với
lĩnh vực học máy:
- Tinh đơn giản và nhất quán:
e Python cung cấp mã ngắn gọn và dễ đọc Trong khi các thuật toán của
AI và Machine learning là hết sức phức tạp, sự đơn giản của Python
cho phép các nhà phát triển tạo nên các hệ thống rất chính xác và đáng
tin cậy Thay vì tập trung thời gian vào kỹ thuật viết mã, giờ đây với sự
15
Trang 20đơn giản của Python các nhà phát triển chỉ cần tập trung vào giải quyếtcác vân đề học máy thay vì technique (kỹ thuật) Nhiều lập trình viên
nói rằng Python trực quan hơn các ngôn ngữ lập trình khác.
Python có nhiều thư viện phù hợp:
e Việc triển khai các thuật toán AI va Machine learning có thể phức tạpvà đòi hỏi nhiều thời gian Điều quan trọng là phải có một môi trường
có cau trúc tốt và dễ kiểm tra cho phép các nhà phát triển đưa ra các
giải pháp mã hóa tốt nhất.
e Để giảm thời gian coding, các lập trình viên chuyển sang một số thưviện Python Với kho thư viện phong phú dành cho trí tuệ nhân tạo va
máy học sẽ là trợ thủ đắc lực cho các nhà phát triển như là: Keras,
TensorFlow, và Scikit-learn sẽ dành cho học may (machine learning),NumPy dành cho phân tích dữ liệu, Pandas dành cho phân tích dt liệu
cơ bản, Seaborn đề làm trực quan hóa dir liệu.
1.3.4.4 Thư viện Gensim cho module Tư vấn sản phẩm dựa trên phiên:
Gensim là một thư viện Python được thiết kế dé xử lý và phân tích các dit liệu
văn bản, đặc biệt là trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) và mô hình họcmáy Thư viện này cung cấp các công cụ mạnh mẽ dé xây dựng, huấn luyện và sửdụng các mô hình phân tích văn bản như mô hình chủ đề và mô hình nhúng từ Vànó có các chức năng chính như là:
Tạo mô hình chủ đề: Gensim cho phép xây dựng mô hình chủ đề từ tập văn
bản, giúp phát hiện và mô tả các chủ đề chính trong đữ liệu văn bản.
Nhúng từ: Gensim cung cấp các công cụ để tạo và sử dụng các vectơ nhúng
Xây dựng mô hình tương đồng tài liệu: Gensim cho phép xây dựng mô hình
đo lường sự tương đồng giữa các văn bản Điều này hữu ích trong việc tìm kiếm và phân loại tai liệu dựa trên sự tương đồng văn bản.
Xây dựng mô hình Word2Vec: Gensim hỗ trợ xây dựng mô hình Word2Vec,
một loại mô hình nhúng từ phổ biến Mô hình này giúp biểu diễn từ vựng trong không gian nhiều chiều, bao gồm ý nghĩa ngữ cảnh và mối quan hệ
tương đồng giữa các từ.
Xử lý văn bản lớn: Gensim có khả năng xử lý các bộ dữ liệu văn bản lớn một
cách hiệu quả, giúp tăng tốc quá trình xử lý và huấn luyện mô hình trên đữ
liệu lớn.
Tích hợp với các định dạng dữ liệu phổ biến: Gensim hỗ trợ nhiều định dạngdữ liệu phổ biến, bao gồm các định dạng dữ liệu văn bản thông thường nhưTXT và các định dang dir liệu đặc biệt như các tập tin đặc trưng Word2Vec.
16
Trang 211.3.4.5 PostgreSQL/ Supabase:
PostgreSQL (viết tắt là "Postgres") là một hệ quản tri cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) mã nguồn mở pho biến PostgreSQL được thiết kế dé lưu trữ và quan ly dit liệu trong một mô hình quan hệ,
dựa trên SQL (Structured Query Language), và được phát triển và bảo trì bởi mộtcộng đồng lớn các nhà phát triên trên toàn thé giới.
Supabase là một nền tảng phát triển ứng dụng web và di động, cung cấp Các
dich vụ cơ sở dit liệu và xử lý serverless Nó được thiết kế dé giúp các nhà phát triển
xây dựng ứng dụng nhanh chóng và hiệu quả băng cách cung cấp một loạt các côngcụ và dịch vụ mà họ có thê tích hợp vào ứng dụng của mình mà không cần phải lolắng về quản lý cơ sở dữ liệu và các tác vụ server backend.
Em lựa chọn Supabase làm nơi lưu trữ dữ liệu bởi vì nó có các tính năng vô cùng
mạnh mẽ sau:
- Cơ sở dit liệu PostgreSQL:
e Supabase sử dụng co sở dữ liệu PostgreSQL mạnh mẽ dé lưu trữ dit
liệu.- Realtime:
e Hỗ trợ cập nhật dữ liệu theo thời gian thực, giúp ứng dung của bạn duy
trì trạng thái tức thì và đồng bộ hóa dữ liệu giữa các người dùng.
- Authentication:
e Supabase cung cấp các dịch vụ xác thực dé quan lý người dùng và đăng nhập an toản.
- RESTful API và GraphQL:
© Cho phép truy van va gửi đữ liệu thông qua cả hai phương tiện truy van
- Storage:
e Lut trữ và quan lý các tệp tin tinh hoặc đa phương tiện.
- Serverless Functions:
e Cho phép triển khai các hàm serverless để xử lý logic backend màkhông cần quản lý cơ sở hạ tầng.
1.4 Kết luận chương 1:
Sau khi phân tích yêu cầu và xác định các giải pháp cho hệ thống web bán giày dép:
- Chương này đã xác định rõ mục tiêu của hệ thống là xây dựng một nền tảngbán giày trực tuyến tối ưu trải nghiệm người dùng và cung cấp công cụ quản
ly hiệu quả cho người quan tri.
17
Trang 22- Cac yêu cầu chức năng đã được mô tả cụ thé cho cả người dùng và người
quan tri.
- Thiét kế giao diện tương tác giúp nắm bắt nhanh các tính năng chính.
- Kiến trúc theo mô hình hướng dịch vụ với NextJS-TypeScript cho front-end
và back-end, Flask cho module Tu van sản phâm dựa trên phiên,
Prisma-PostgreSQL cho back-end sẽ đảm bảo hiệu năng và mở rộng.
- Các giải pháp công nghệ được lựa chọn phù hợp với từng module sẽ hỗ trợ hiệu quả quá trình phát triển và vận hành hệ thống trong tương lai.
Nhìn chung, chương 1 đã đáp ứng đầy đủ yêu cầu đặt ra, đó là xây dựng nền tảng vững chắc cho quá trình phát triển hệ thống thương mại điện tử web bán giày
dép Bên cạnh đó em cũng đã đề cập về việc hệ thống sẽ có tính năng gợi ý sản phẩm dành cho khách hàng dựa vào công nghệ tư van sản phẩm dựa trên phiên Ở
chương tiếp theo, em sẽ tìm hiểu sâu hơn về công nghệ này.
18
Trang 23CHƯƠNG 2: CÔNG NGHỆ TƯ VAN SAN PHAM DUA TREN
_ Trong Chương 1, em đã giới thiệu về việc kết hợp các tính năng gợi ý sản
phẩm phù hợp với hoạt động của khách hàng trên trang web Điều này không chỉ
nâng cao trải nghiệm người dùng mà còn giúp doanh nghiệp tối đa hóa doanh thu.
Trong chương này, chúng ta sẽ đi sâu vào van đề giới thiệu sản phẩm cho người
dùng dựa trên dữ liệu phiên của họ Cụ thé chúng ta sẽ tập trung mô tả bài toán cân
giải quyết, trình bày các phương pháp xây dựng hệ thống tư vấn phổ biến và đưa ragiải pháp áp dụng phủ hợp cho hệ thông thương mại điện tử web bán giày dép.
2.1 Bài toán về tư vần sản phâm:
Một hệ thống tư vấn sản phẩm sẽ hoạt động theo nguyên tắc sau:
e Đầu vào: Dữ liệu vê sản phẩm, thông tin cá nhân người dùng, dữ liệu lịch sử
giao dịch/mua sắm của người dùng.
e Đầu ra: Danh sách các gợi ý, khuyến nghị sản phẩm dựa trên nhu cầu và thói
quen của từng người dùng cụ thé Giúp người dùng tiết kiệm thời gian tìm
kiếm sản phẩm phù hợp.
e Quá trình xử lý: Hệ thong sẽ lưu lại các đữ liệu đầu vào, từ các dữ liệu đó sẽ xây dựng mô hình học máy dé phân tích mối quan hệ giữa các yếu tố như sản phẩm, người dùng, thời gian, Và dựa trên mô hình đã xây dựng hệ thống sẽ
triển khai dự đoán các sản phẩm phù hợp dành cho từng khách hàng.
2.2 Các phương pháp xây dựng hệ thống tư vấn cơ bản:
2.2.1 Lọc cộng tác
Một cách tiếp cận để xây dựng các hệ thống tư vấn được sử dụng rộng rãi là
lọc cộng tác Lọc cộng tác dựa trên giả định rằng những người đã đồng ý trong quá
khứ sẽ đồng ý trong tương lai và rằng họ sẽ thích những loại mặt hàng tương tự nhự
họ đã thích trong quá khứ Hệ thống tạo ra các đề xuất chỉ sử dụng thông tin về hồ
sơ xếp hạng cho những người dùng hoặc mục khác nhau Băng cách định vị người dùng/mục ngang hàng có lịch sử xếp hạng tương tự với người dùng hoặc mục hiện tại, họ sẽ tạo ra các đề xuất bằng cách sử dụng vùng lân cận này Các phương pháp
lọc cộng tác được phân loại là dựa trên bộ nhớ và dựa trên mô hình.
Ưu điểm chính của phương pháp lọc cộng tác là nó không dựa vào nội dung
có thể phân tích được của máy và do đó nó có khả năng đề xuất chính xác các mục phức tạp như phim mà không yêu cầu "hiểu" về chính mục đó Nhiều thuật toán đã được sử dụng dé do lường mức độ tương tự của người dùng hoặc mức độ tương tự
19
Trang 24của mặt hàng trong hệ thống gợi ý Vi dụ: cách tiếp cận k-láng giềng gần nhất
(k-NN) va Pearson Correlation lần đầu tiên được Allen triển khai.
Các phương pháp lọc cộng tác thường gặp phải ba vấn đề: khởi đầu nguội,
khả năng mở rộng và độ thưa thớt.
e Khởi đầu nguội: Đối với người dùng hoặc mặt hàng mới, không có đủ dữ
liệu dé đưa ra đề xuất chính xác.
e Kha năng mở rộng: Có hàng triệu người dùng va sản phẩm trong nhiều
môi trường mà các hệ thống này đưa ra đề xuất Vì vậy, thường cần mộtlượng lớn sức mạnh tính toán đề tính toán các khuyến nghị.
e Sự thưa thớt: Số lượng mặt hàng được bán trên các trang thương mại điện
tử lớn là vô cùng lớn Những người dùng tích cực nhất sẽ chỉ xếp hạngmột tập hợp con nhỏ cua cơ sở dữ liệu tông thé Vì vậy, ngay cả nhữngmặt hàng phô biến nhất cũng có rất ít xếp hạng.
2.2.2 Lọc dựa trên nội dung
Trong hệ thống tư vấn dựa trên nội dung, tất cả các mục dữ liệu được thu thập vào các hồ sơ mục khác nhau dựa trên mô tả hoặc tính năng của chúng Ví dụ: đối với một cuốn sách, các đặc điểm sẽ là tác giả, nhà xuất bản, Trong trường hợp một bộ phim, các đặc điểm sẽ là đạo diễn phim, diễn viên Khi người dùng đánh giá
tích cực cho một mục, sau đó các mục khác có trong hồ sơ mục đó sẽ được tổng hợp
lại với nhau dé xây dựng hồ sơ người dùng Hồ sơ người dùng này kết hợp tat cả các
hồ sơ mặt hàng có mặt hang được người dùng đánh giá tích cực.
Một nhược điểm của phương pháp này là nó đòi hỏi kiến thức chuyên sâu về
các tính năng của mặt hàng dé đưa ra đề xuất chính xác Kiến thức hoặc thông tin
này có thé không phải lúc nào cũng có sẵn cho tat cả các mục Ngoài ra, cách tiếpcận này có khả năng hạn chế trong việc mở rộng các lựa chọn hoặc sở thích hiện cócủa người dùng Tuy nhiên, cách tiếp cận này có nhiều ưu điểm Vì sở thích của
người dùng có xu hướng thay đổi theo thời gian nên phương pháp này có khả năng
tự động thích ứng nhanh chóng với những sở thích đang thay đôi của người dùng.Vì một hồ sơ người dùng chỉ dành riêng cho người dùng đó nên thuật toán này
không yêu cầu chi tiết hồ sơ của bắt kỳ người dùng nào khác vì chúng không gây
ảnh hưởng gì đến quá trình đề xuất Điêu này đảm bảo tính bảo mật và quyền riêng
tư của dữ liệu người dùng Nếu, các mục mới có đủ mô tả, các kỹ thuật dựa trên nội
dung có thé khắc phục được vấn dé khởi đầu nguội, tức là kỹ thuật này có thê đềxuất một mục ngay cả khi mục đó chưa được bất ky người dùng nào đánh giá trước
đó Phương pháp loc dựa trên nội dung phổ biến hơn trong các hệ thống như hệ
thống dé xuất tin tức được cá nhân hóa, an phẩm, hệ thống đề xuất trang web,
20
Trang 252.2.3 Hệ thống gợi ý lai
Hầu hết các hệ thống tư vấn hiện nay đều sử dụng phương pháp kết hợp, kết
hợp lọc cộng tác, lọc dựa trên nội dung và các phương pháp khác Không có lý do gìmà một sô kỹ thuật khác nhau cùng loại lại không thé kết hợp được Các phươngpháp tiếp cận kết hợp có thé được triển khai theo nhiều cách: bang cách đưa ra các
dự đoán dựa trên nội dung và dựa trên cộng tác một cách riêng biệt, sau đó kết hợp chúng; bằng cách bé sung các khả năng dựa trên nội dung vào cách tiếp cận dựa trên
cộng tác (và ngược lại); hoặc bang cách thống nhất các phương pháp tiếp cận thành một mô hình (xem dé xem xét đầy đủ các hệ thống tư vấn) Một số nghiên cứu so
sánh thực nghiệm hiệu suất của phương pháp kết hợp với các phương pháp cộng tácthuần túy và dựa trên nội dung, đồng thời chứng minh rằng các phương pháp kết
hợp có thé đưa ra khuyến nghị chính xác hơn các phương pháp tiếp cận thuần túy.
Những phương pháp này cũng có thé được sử dụng dé khắc phục một số van đề phổ
biến trong hệ thống tư van như khởi động nguội và van đề thưa thớt, cũng như nútthắt kỹ thuật tri thức trong các phương pháp tiếp cận dựa trên tri thức.
Một số kỹ thuật lai tạo bao gồm:
e Có trọng số: Kết hợp số điểm của các thành phần đề xuất khác nhau.
e Chuyển đôi: Lựa chọn trong số các thành phan đề xuất va áp dụng
thành phần đã chọn.
e Hỗn hợp: Các khuyến nghị từ những người giới thiệu khác nhau được
trình bay cùng nhau dé đưa ra khuyến nghi.
e Kết hop tính năng: Các tinh năng bắt nguồn từ các nguồn kiến thức
khác nhau được kết hợp với nhau và đưa ra một thuật toán đề xuất duy
e Tang cường tinh năng: Tính toán một tính năng hoặc tập hợp các tính
năng, sau đó là một phần đầu vào của kỹ thuật tiếp theo.
e Xếp tang: Người giới thiệu được ưu tiên nghiêm ngặt, trong đó nhữngngười có mức độ ưu tiên thấp hơn sẽ phá vỡ mối quan hệ trong việc
chấm điểm những người có mức độ ưu tiên cao hơn.
e Cap độ meta: Một kỹ thuật đề xuất được áp dụng và tạo ra một số loại mô hình, sau đó là đầu vào được sử dụng cho kỹ thuật tiếp theo.
2.2.4 Hệ thống đề xuất dựa trên phiên:
Lọc dựa trên nội dung đưa ra đề xuất dựa trên sở thích của người dùng đối với các tính năng của sản phẩm, như được xác định thông qua hành động trước đó của người dùng hoặc phản hồi rõ ràng Mặt khác, lọc cộng tác sử dụng các tương tác giữa người dùng và mục trên một nhóm người dùng để đưa ra đề xuất cho một người dùng cụ thể, dựa trên sở thích của những người dùng khác, những người dùng
21
Trang 26rất giống nhau (trong đó những người dùng tương tự được xác định bởi các mục họ thích, đọc, mua, xem, v.v.) Các hệ thống này thường có xu hướng sử dụng các
tương tác giữa người dùng và mục trong lịch sử (tức là các mục mà người dùng đã
nhấp vào trước đây) dé tìm hiéu sở thích lâu dài của người dùng.
Giả định cơ bản trong cả hai hệ thống này là tất cả các tương tác lịch SỬ đều quan
trọng như nhau đối với sở thích hiện tại của người dùng nhưng trên thực tế, điều này
có thể không đúng Sự lựa chọn các mặt hàng của người dùng không chỉ phụ thuộc
vào sở thích lịch sử lâu dài mà còn phụ thuộc vào sở thích ngắn hạn và gần đây hơn.
Các lựa chọn hầu như luôn có bối cảnh nhạy cảm về thời gian; ví dụ: các mặt hàng "được xem gần đây" hoặc "mua gần đây" thực sự có thể phù hợp hơn các mặt
hàng khác Những tùy chọn ngăn hạn này được nhúng vào các tương tác gần đây
nhất của người dùng nhưng có thê chỉ chiếm một tỷ lệ nhỏ trong các tương tác lịch
sử Ngoài ra, sở thích của người dùng đối với một số mặt hàng nhất định có thé có
xu hướng động hơn là tĩnh; nó thường phát triển theo thời gian.
Những cân nhắc này đã thúc day việc khám pha va phát triển một loại hệ
thống đề xuat mới: được gọi là hệ thống đề xuất dựa trên phiên, hệ thống sử dụng những thuật toán phụ thuộc nhiều vào các tương tác gần đây nhất của người dùng, thay vì tùy chọn lịch sử của người dùng Ngoài ra, cách tiếp cận này đặc biệt thuận
lợi vì người dùng có thê xuất hiện ân danh-tức là người dùng có thé chưa đăng nhập
hoặc có thé duyệt web ở chế độ ân danh.
2.3 Hệ thống tư vấn sản phẩm dựa trên phiên 2.3.1 Bài toán tư vấn sản phẩm dựa trên phiên:
Phiên hiện tại của người dùng
Sản phẩm Sản phẩm Sản phẩm
Các phiên lịch sử được thu thập |
Sản phẩm | | Sảnphẩm | | Sảnphẩm | | Sảnphẩm
Sản phat Sản phẩi Sản phat ko cing ccin phẩm in phẩm in phẩm iên kết5 phién két hop
hoc may dé taomô hình chung
—% Công cụ đề xuất — | sảnphám | | sảnphám | ~~ | sảnphẩm | | sảnphám
Sản phẩm Sản phẩm | | Sản phẩm | | Sản phẩm
Sản phẩm Sản phẩm | | Sản phẩm
Hình 2.1: Mô hình hệ thống đề xuất sản phẩm dựa trên phiên
Một hệ thống đề xuất dựa trên phiên sẽ hoạt động theo nguyên tắc sau:
e Đầu vào: Dữ liệu hành vi của người dùng trong phiên truy cập hiện tại của họ
(các sản phẩm xem, tìm kiếm, thảo luận, mua sắm )
e Đầu ra: Danh sách các đề xuất sản phâm/nội dung liên quan đến người dùng
22
Trang 27dựa trên hành vi của họ trong phiên truy cập hiện tại.
e Quá trình xử lý: Đầu tiên hệ thống sẽ xây dựng mô huấn luyện chung từ việc
học các phiên mà hệ thống thu thập qua các lần truy cập của người dùng qua
các phương pháp huấn luyện Mô hình này sau đó được áp dụng vao phiên
hiện tại của người dùng để tạo ra các đề xuất sản phâm phù hợp với mongmuốn và sở thích của họ.
Hiện tại, có nhiều phương pháp học máy được ứng dụng trong hệ thống đề xuất dựa trên phiên Dưới đây, em sẽ giới thiệu một số phương pháp phô biến trong
lĩnh vực này đặc biệt là phương pháp sử dụng mô hình Word2Vec nôi bật với khả
năng biểu diễn từ vựng dưới dạng vectơ số, mang lại sự hiểu biết sâu sắc về ngữ
cảnh và mối quan hệ giữa các mục và phiên.
2.3.2 Một số phương pháp phố biến của hệ thống sản phẩm tư vấn dựa trên
$% Dé xuất dựa trên phiên với mạng thần kinh đồ thi (Graph Neural
Networks /GNN)
Trong phương pháp đề xuất dựa trên phiên với mạng thần kinh đồ thị(GNN) hệ thống nhận dữ liệu đầu vào là các phiên (session) của người dung Mỗi phiên bao gồm danh sách các mục/sản phẩm mà người dùng đã tương tác trong một khoảng
thời gian nhất định, được sắp xếp theo thứ tự thời gian Sau đó hệ thống sẽ xây dựng
một đồ thi từ mỗi phiên, trong đó mỗi nút là một mục/sản phẩm, cạnh giữa các nút
biểu thị sự chuyền tiếp giữa các mục trong phiên Sau đó hệ thống sử dụng mạng
thần kinh đồ thị (Graph Neural Network) dé huấn luyện và lay vector biểu diễn ân
của mỗi nút Qua đó nắm bắt được môi quan hệ phức tạp giữa các mục Dựa trên
vector của các nút, hệ thống tổng hợp ra vector biểu diễn cho toàn bộ phiên Cuối cùng dựa trên vector biểu diễn phiên, hệ thống sẽ dự đoán xác suất của từng mục sẽ được người dùng tương tác tiếp theo, và dua ra danh sách gợi ý.
¢ Đề xuất dựa trên phiên với mạng thần kinh định kỳ (Recurrent Neural
Networks / RNN)
Trong phương pháp đề xuất dựa trên phiên với mạng thần kinh định ky(RNN)
hệ thống nhận đữ liệu đầu vào là các phiên (session) của người dùng Mỗi phiên bao
gồm danh sách các mục/sản phẩm mà người dùng đã tương tác trong một khoảng
thời gian nhất định, được sắp xếp theo thứ tự thời gian Hệ thống sẽ phân tích phiênvà mã hóa thành vector dữ liệu đầu vào dạng one-hot Dữ liệu đầu vào sau đó sẽ
được chuyên qua lớp RNN dùng kiến trúc GRU để xử lý với khả năng ghi nhớ ngắn
và dài hạn Đầu ra của lớp GRU sẽ là trạng thái â an của mạng, đại diện cho toàn bộlịch sử của phiên cho đến thời điểm hiện tại Sau đó trạng thái an sẽ được chuyềnqua các lớp fully-connected và softmax dé tính toán xác suất dự đoán của từng mục
23
Trang 28hàng trong kho dữ liệu Sau khi học, mạng RNN sẽ có khả năng hiểu và dự đoán tiếp theo trong phiên dựa trên lịch sử xem/mua hàng trước đó.
$% Đề xuất dựa trên phiên với mô hình Word2vec:
Word2Vec là một mô hình học máy được phát triển dé chuyển đổi từ vung.
Nền tang của nó dựa trên quan niệm hap dan rằng những từ thường xuyên xuất hiện cùng nhau trong các ngữ cảnh khác nhau đều có ý nghĩa giống nhau hoặc nam trong
cùng một lĩnh vực từ vựng khi so sánh với những từ ít có sự đồng hành hơn Khi áp
dụng vào hệ thống gợi ý chúng ta có thể coi mỗi phiên bao gồm danh sách các mục/sản phẩm mà người dùng đã tương tác trong một khoảng thời gian nhất định,
được sắp xếp theo thứ tự thời gian là một câu, trong đó mỗi mục hoặc sản phẩmtrong phiên đại diện cho một “từ” Bộ sưu tập lịch sử trình duyệt của người dùngcủa một trang web sẽ đóng vai trò là kho dữ liệu Word2vec sẽ nghiên cứu toàn bộkho dir liệu, tìm hiểu mối quan hệ giữa các sản pham trong bối cảnh hành vi duyệtweb của người dùng Kết quả sẽ là một tập hợp các phần nhúng: một phần cho mỗi
sản phẩm Các phần nhúng sản phâm đã học này sẽ chứa nhiều thông tin hơn là một
phương pháp phỏng đoán đơn giản Từ đó hệ thống đề xuất sử dụng thông tin ngữcảnh và ngữ nghĩa dé đưa ra các đề xuất chất lượng cao.
Sử dụng mô hình Word2Vec cho hệ thống đề xuất dựa trên phiên không chỉ là một phương pháp dễ hiểu mà còn là một hướng tiếp cận lý tưởng Việc chuyền đôi
sản phâm thành các từ giúp tạo ra các đề xuất có chất lượng cao và đáng tin cậy Vì
vậy em quyết định tích hợp cơ chế tư vấn sản phẩm dựa trên phiên sử dụng mô hình
Word2Vec vào trang web bán giày dép của em.2.4 Mô hình Word2vec
2.4.1 Sơ lược về mô hình Word2Vec
Word Embedding là việc biểu diễn các từ đưới dạng các vector số thực với số chiều xác định Word2Vec là một trong những mô hình đầu tiên về Word
Embedding sử dụng mạng neural, có khả năng vector hóa từng từ dựa trên tập các từ
chính và các từ văn cảnh, Về mặt toán học, Word2Vec là việc ánh xạ từ từ 1 tập
các từ (vocabulary) sang 1 không gian vector, mỗi vector được biểu diễn bởi n số
thực Mỗi từ ứng với 1 vector cô định Sau quá trình huấn luyện mô hình bằng thuật
toán backpropagation, trọng số các vector của từng từ được cập nhật liên tục Từ đó,
ta có thé thực hiện tính toán bằng các khoảng cách quen thuộc như euclide, cosine,
manhattan, Những từ càng "gan" nhau vê mặt khoảng cách thường là các từ hay
xuất hiện cùng nhau trong văn cảnh, các từ đồng nghĩa, các từ thuộc cùng 1 trường
từ vùng, [5]
Đặc trưng chính của Word2Vec là sô chiêu của vectơ từ vựng, mà sô lượng
24
Trang 29này thường là một tham số cần được xác định trước khi bắt đầu quá trình huấn luyện Trong thực tế, việc chọn số chiềunay thường là một quyết định quan trọng và
thường được thực hiện dựa trên yêu cầu cụ thể của ứng dụng Thông thường, sé
chiều được lựa chọn nằm trong khoảng từ vài chục đến vài trăm để đảm bảo răng
mô hình có thể biéu diễn mối quan hệ ngữ nghĩa và ngữ cảnh một cách hiệu quả.
Word2Vec bao gồm 2 mô hình tiếp cận chính là CBOW và Skip-gram Môhình chung của Word2Vec (cả CBOW và Skip-gram) đêu dựa trên 1 mang neuralnetwork khá đơn giản.
Dé có thé huấn luyện được mô hình Word2Vec ta cần biết thêm 2 khái niệm
quan trọng đó là: target word (center word) và context words Trong đó target word(center word) là từ ở giữa va context words là các từ xung quanh target word (center
word) Mô hình sẽ thông qua hai khái niệm này để tiến hành huấn luyện Bên cạnh đó cũng có thêm một khái niệm nữa đó là tham số c hay window thể hiện số từ xung
quanh bên trái và bên phải của target word.
Vi dụ: c = 2 nghĩa là thé hiện bên trái của target word có 2 từ và bên phải của
target word có 2 từ.
) : Center Word
_ : Context Word
c=0 The cute Gat jumps over the lazy dog.
c=l The cute Gat jumps over the lazy dog.
c=2 |The cute Gat jumps over the lazy dog.
Hinh 2.2: Khai niém Center Word va Context Word
2.4.2 Kiến trúc mô hình:
Như em đã trình bày ở trên có 2 mô hình tiếp cận chính là: Mô hình từ ngữ
liên tục (CBOW) và mô hình Skip-Gram
25
Trang 30“ Mô hình từ ngữ liên tục (CBOW)
Input Projection Output
Hình 2.4: Kiến trúc mô hình CROW
CBOW là mô hình dựa vào các context word (hay các từ xung quanh) dé dự đoán center word (từ ở giữa) CBOW có điểm thuận lợi là training mô hình nhanh hơn so với mô hình skip-gram, thường cho kết quả tốt hơn với frequency words (hay
các từ thường xuất hiện trong văn cảnh).
Kiến trúc của mô hình CBOW bao gồm lớp đầu vào, lớp đầu ra và lớp ẩn.
Lớp dau vao là các từ ngữ cảnh (context words), và lớp đâu ra là từ cân dự đoán
(target word) Lớp ân vân thê hiện sự nhúng từ đã học trong quá trình huân luyện.
26
Trang 31Các lớp đầu vào và đầu ra của CBOW được kết nối với lớp an thông qua cáctrọng số, và các trọng số này được điều chỉnh trong quá trình huấn luyện dé giảmthiểu lỗi dự đoán Mô hình CBOW sử dụng hàm mục tiêu dé tối ưu hóa trọng số.
% Mô hình Skip-gram liên tục
Input Projection Output
Hình 2.5: Kiến trúc mô hình Skip-gram.
Khác với mô hình CBOW, Skip-gram sử dung từ mục tiêu (target word) dé
dự đoán các từ xung quanh Skip-gram huấn luyện chậm hơn CBOW do phải dự
đoán nhiều từ xung quanh hơn Tuy nhiên, nó thường hoạt động tốt hơn với các tập dữ liệu nhỏ hơn Bởi vì mỗi từ mục tiêu được sử dụng để dự đoán nhiều từ xung
quanh, skip-gram có khả năng vector hóa tốt hơn cho các từ xuất hiện ít trong tập dữliệu Điều này giúp nó xử lý các từ mới hoặc hiếm hơn.
Kiến trúc của mô hình Skip-gram bao gồm lớp đầu vào, lớp dau ra và lớp an Lớp đầu vào là từ cần dự đoán (target word) và lớp đầu ra là các từ ngữ cảnh
(context words) Lớp ấn thé hiện việc nhúng từ đầu vào đã học trong quá trình huấnluyện Mô hình Skip-gram sử dụng mạng nơ-ron chuyền tiếp với một lớp ân duynhất.
Các lớp đầu vào va đầu ra được kết nối với lớp an thông qua các trọng số,
được điều chỉnh trong quá trình huấn luyện để giảm thiểu lỗi dự đoán Mô hình Skip-gram sử dung hàm mục tiêu lay mau âm dé tối ưu hóa trọng số và tìm hiểu các phần nhúng.
Mô hình Skip-gram là một phương pháp học cách nhúng từ nhằm nam bắt
27
Trang 32ngữ cảnh và sự tương đồng về ngữ nghĩa giữa các từ trong từ vựng Nó được đảo tạobăng cách sử dụng mạng nơ-ron tiếp liệu với một lớp ân duy nhất và được sử dụng
rộng rãi trong các tac vu NLP.
¢ So sánh hai mô hình:
Bảng 2.1: So sánh hai mô hình Skip-gram và CBOW.
Mục tiêu huân luyện
Hiệu suât
Đôi với từ hiêm
Toc độ huân luyện
Kích thước của vectơ từ
liệu huấn luyện va muốn tạo ra biéu dién vector tốt
cho từng từ.
Tích hợp tôt với việc biêu
diễn các từ hiêm và phô
Thường mat nhiều thời
gian hơn để huấn luyện so với CBOW vì cần dự đoán nhiều từ.
Dự đoán từ hiện tại dựa
trên các từ lân cận.
Thường hiệu quả hơn khi
có nhiều dữ liệu huấn luyện và cần tạo ra biểu diễn tổng quát cho toan
Các vectơ từ có sô chiêu tùy chọn, thường năm trongkhoảng từ vài chục đên vải trăm.
Thường được sử dụng
trong các bối cảnh khi
cần tạo ra biểu diễn toàn
cục cho ngữ cảnh, chăng
hạn như trong các mô
hình ngôn ngữ tong quát.
28
Trang 332.4.3 Áp dụng mô hình Word2Vec vào hệ thống tư van sản phẩm dựa trên
2.4.3.1 Lựa chọn mô hình huấn luyện và phương pháp tìm vector tương tự với
vector đầu vào cho Word2Vec:
s* Lựa chọn mô hình:
Ở đây em sử dụng là Skip-gram model, thay vì CBOW bởi một vài lý do sau:
® Skip-gram sẽ làm việc tốt hơn với các item ít xuất hiện mặc dù việc huấn
luyện mô hình sẽ chậm hơn so với CBOW.
e CBOW sử dụng trung bình các vector của các từ xung quanh đề dự đoán từ ở
giữa, trong khi Skip-gram không làm như vậy Điều này khiến CBOW có xu hướng mô tả kém hơn cho các từ xuất hiện ít so với Skip-gram.
e Ngoài ra, Skip-gram còn sử dụng thêm kỹ thuật negative sampling giúp dao
tạo mô hình hiệu quả hơn.
¢ Lựa chọn phương pháp tìm vector tương tự với vector đầu vào cho
Có 3 phương pháp tim vector tương tự phô biến là Manhattan distance, Euclidean
distance va Cosine similarity Trong đó:
e Manhattan distance đo lường khoảng cách băng cách tính tổng trị số tuyệt đối
của sự chênh lệch giữa từng cặp thành phan của hai vector.
e Euclidean distance đo lường khoảng cách bằng cách lấy căn bậc hai của tổng bình phương của sự chênh lệch giữa từng cặp thành phần của hai vector.
e Cosine similarity đo lường khoảng cách băng cách sử dụng công thức tích vô
hướng của hai vector chia cho tích độ dài của hai vector.
Từ đó có thé thấy khoảng cach Euclidean distance va Manhattan distance phụ
thuộc vào độ lớn cua vectơ trong khi độ tương tự Cosine similarity phụ thuộc vào
goc giữa các vectơ Bên cạnh đó, thước đo góc có khả năng phục hồi tốt hơn đối với
các biến thể về số lần xuất hiện giữa các thuật ngữ giông nhau về mặt ngữ nghĩa,trong khi độ lớn của vectơ bị ảnh hưởng bởi số lần xuất hiện và tính không đồng
nhất của vùng lân cận từ Do đó sử dụng Cosine similarity thích hợp cho việc đo lường tương đồng ngữ nghĩa giữa các từ trong mô hình Word2Vec.
Em thực nghiệm ba phương pháp với 6 phiên và có bảng thời gian và độ chính xác
như sau dự đoán như sau:
Bảng 2.2: Kết quả thực nghiệm với ba phương pháp tìm vector tương tự.
Phiên Cosine similarity Manhattan Distance Euclidean Distance
29
Trang 34Độ chính | Thời gian Độ chính Thời gian | Độ chính xác Thời gian
xác (/4sp) chay(s) xac (/4sp) chay(s) (/4sp) chay(s)
Ở đây độ chính xác được tinh bằng cách: Em lay ra 4 san phẩm cuối cùng làm
sản phẩm dự đoán trong phiên, mô hình sẽ đọc các sản phẩm trước trong phiên đó và dự đoán 12 sản phẩm gợi ý Các sản phẩm gợi ý trùng với 4 sản phâm dự đoán được gọi là sản phẩm dự đoán đúng Và độ chính xác sẽ bằng: Tống số sản phẩm dự
đoán đúng chia cho tông số sản phâm dự đoán (4 sản phẩm).
Từ các kết quả trên ta có thế thấy các trường hợp đều trả về độ chính xác và thời gian chạy cũng khá tương đồng với nhau Tuy nhiên việc sử dụng Cosine
similarity tích hợp san trả nhinh hơn một chút về thời gian chạy và độ chính xác Vì vậy trong đồ án này em lựa chọn phương pháp tìm vector tương tự cho vector đầu
vào bằng phương pháp Cosine similarity.
2.4.3.2 Giải thích về kỹ thuật negative sampling của skip-gram:
Trong quá trình đào tạo mô hình Skip-gram, chúng ta cần xác định xác suất để một từ xuất hiện trong ngữ cảnh của một từ khác Đối với mỗi cặp từ (từ gốc và từ ngữ cảnh), chúng ta cần xác định xem liệu đó là một cặp tích cực (positive pair)
hay tiêu cực (negative pair).
30
Trang 35Kỹ thuật negative sampling giảm đáng kê số lượng tính toán cần thiết dé đào tạo mô hình Thay vì chọn ngẫu nhiên một số lượng lớn các từ không phải là từ ngữ cảnh làm tiêu cực, negative sampling chỉ chọn một sé lượng nhỏ các từ tiêu cực Cụ thể, quá trình negative sampling trong mô hình Skip-gram có thể được thực hiện
theo các bước sau:
e Xác định từ gốc và từ ngữ cảnh.
e Chọn một số lượng nhỏ các từ tiêu cực (negative samples) từ từ điển Số
lượng từ tiêu cực thường được chọn là một sô nhỏ, ví dụ như 5-20 từ.
e Tính toán xác suất đồng thời của các từ tích cực và các từ tiêu cực Xác suất
đồng thời được tính bằng cách sử dụng hàm sigmoid của tích vô hướng giữa
biểu diễn từ gốc và từ ngữ cảnh liên quan đến từ tích cực hoặc từ tiêu cực
tương ứng.
e Cập nhật trọng sỐ của mạng neural dựa trên sự khác biệt giữa các xác suất
tích cực và tiêu cực theo một thuật toán dao tạo như Stochastic GradientDescent (SGD).
Bang cách chi chọn một sỐ lượng nhỏ các từ tiêu cực, kỹ thuật negative
sampling giúp giảm đáng kê chi phí tính toán và cải thiện toc độ dao tạo của môhình Skip-gram.
2.4.3.3 Quá trình xử lý:
31
Trang 36Phiên hiện tại của người dùng
vector | [ vector | -= | vector | | Vector
Kết quả huấn luyện
Từ Sản phẩm.
Từ Sản phẩm
+ Tim vector trung bình cộng của phiên
+ Tiến hành so sánh với các vector kết quả | chuyểnve
Quy trình xử ly của hệ thống tu van sản phẩm dựa trên phiên sử dụng Word2Vec
được hoạt động như sau:
e Đầu tiên hệ thống sẽ lưu lại danh sách các sản phẩm mà người dùng đã tương
tác trong phiên đó.
e Sau đó hệ thống sẽ chuyển các sản phẩm sang dạng các từ riêng biệt thông
qua các cách như sử dụng mã của sản phẩm, id của sản phẩm Từ đó ta được một danh sách các từ tương ứng với các sản phẩm trong phiên đó Và hệ thống sẽ tiến hành hai việc với danh sách:
$ Việc thứ nhất là sẽ lưu danh sách vào CSDL dé tối ưu hóa mối quan hệ
giữa các từ cho lầm huấn luyện tiếp theo:
- Hệ thống huấn luyện bằng phương pháp Skip-gram.
32
Trang 37- Két quả trả về sẽ là các vertor tương ứng với từng từ.
$ Việc thứ hai là tìm ra các từ gợi ý bằng danh sách các từ đó:
- Pau tiên hệ thống sẽ tìm các vector kết quả huấn luyện tương ứng với các từ có trong danh sách rồi tính trung bình cộng của các vector đó.
- Tiếp theo hệ thống sẽ so sánh độ tương đồng của vector trung bình đó
với tat cả các vector ở trong kết quả huan luyện bang do độ tương đồngCosine similarity.
- Tiếp theo hệ thống sẽ tổng hợp các vector có độ tương đồng cao nhất, rồi trả về danh sách các từ tương ứng với vector đó Và các từ đó chính
là các từ gợi ý.
e Sau khi có kết qua các từ gợi ý Hệ thống sẽ chuyền lại các từ đó sang dạng sản phẩm tương ứng và hiện gợi ý sản phẩm cho người dùng.
2.5 Thực nghiệm Word2Vec: $% Về dữ liệu thực nghiệm:
Sau khi thu thập dữ liệu từ các phiên của khách hàng xem sản phẩm trên web
bán giày dép của em, thì em đã lưu vào Database và được deploy danh sách cácphiên tại địa chỉ:
https://trainsuggest.pythonanywhere.com/ Khi truy cập vào link hệ thống sẽ trả về id phiên và danh sách các mã sản phẩm Hiên tại bộ dữ liệu đang lưu hơn 900 phiên,
mỗi phiên có trung bình từ 10 đến 15 mã sản phẩm và bộ dữ liệu này đang có 100
mã sản phẩm khác nhau tương ứng với 100 sản phẩm Và trang web này cũng là nơi
chứa hệ thống tư van sản pham.
$ Xứ lý dữ liệu dé tiến hành thực nghiệm:
- Sau khi đã có dữ liệu thực nghiệm em sẽ chia bộ dữ liệu thành hai phần là: Bộ
dữ liệu huấn luyện và bộ dữ liệu xác nhận.
- Bộ dữ liệu huấn luyện sẽ được sử dụng cho việc huấn luyện mô hình.
- _ Bộ dit liệu xác nhận được sử dụng dé kiểm tra độ chính xác của mô hình sau
khi đã huấn luyện.
33
Trang 38session_train_ids = random.sample(session_id, round(8.9*len(session_1d)))# Chia dữ liệu thành tập huãn luyện va tập xác nhận
train_df = [item for item in session train if item[ 'id'] in session_train_ids]
validation_df = [item for item in session_train if item[ 'id'] not in session_train_ids]
Train: [['PMT7', 'PMT3', 'ADDS', 'PMT5', 'ADT4', 'NKD1Ø', 'PMT4', 'CVT2', 'PMT18', 'ADT1', ‘PMT190", ‘ADT7Val: [['ADD2', 'ADT3', 'ADT7', 'ADT1', 'ADD9', 'ADD8', 'ADD5', "ADT9', 'ADT18', 'ADD3'], ['ADD7', 'ADT2',
Hình 2.7: Lấy dit liệu, tạo bộ huấn luyện và xác nhận
- Ở đây em lay ngẫu nhiên 90% dữ liệu để làm bộ dữ liệu huấn luyện và 10%
còn lại được sử dụng đê làm bộ dữ liệu xác nhận.
Trang 39- O đây em sử dụng Word2Vec của thư viện Gensim.
- Dòng dau tiên tạo đôi tượng Word2Vec với các tham sô câu hình sau:
window = 10: Kích thước cửa số xung quanh từ hiện tại khi xây dựng các
cặp từ (đối với thuật toán Skip-gram) Vì các có số lượng mã sản phẩm trung bình từ 10 đến 15 nên em chọn window = 10 sẽ có thể bao quát hết
các mã sản pham.
sg = 1: Chọn thuật toán huấn luyện là Skip-gram Nếu sg được đặt thành 0,
sẽ sử dụng thuật toán CBOW.
hs = 0: Chon negative sampling Nếu hs được đặt thành 1, mô hình sẽ sử dụng hierarchical softmax dé huấn luyện.
negative = 10: Số lượng mẫu âm tính được lấy cho negative sampling Em
đặt là 10 vì đa số mẫu âm tính sẽ được lựa chọn từ 5 — 20 nếu lớn hơn thìtốn thời gian và chỉ phí tính toán Nên em chọn là 10 sẽ phù với số lượng
sản pham hién tai.
alpha=0.03 va min_alpha=0.0007: Tốc độ hoc (learning rate) sẽ giảm dan
từ alpha xuống min_alpha trong quá trình huấn luyện Em sử dung
alpha=0.03 và min_alpha=0.0007 vì hai giá trị này là hai giá trị pho biếndành cho huấn luyện Word2Vec Các giá trị này đã được thử nghiệm vàcho hiệu quả tốt trong nhiều trường hợp Cho kết quả ôn định và tránh
trường hop underfit hoặc overfit.
seed = 14 được sử dụng để thiết lập giá trị khởi tạo ngẫu nhiên cho mô hình Word2Vec (Điều này đảm bảo tính nhất quán của kết quả huấn luyện và
cho phép tái tạo lại các kết quả).
- Dòng thứ hai sử dụng phương thức build_vocab đề xây dựng từ vựng từ dữ
liệu huấn luyện progress_per=200 chỉ định tần suất in ra báo cáo tiến trình là
epochs=10: Số lượng epoch (vong lap) dé huấn luyện Em dat epochs=10 làvì từ 10-15 epochs thường đủ dé Word2Vec học được các mối quan hệ ngữnghĩa giữa từ trong dữ liệu cho dù khối lượng dữ liệu lớn nhỏ khác nhau.
Chạy nhiều epochs hơn sẽ không cải thiện đáng kế chất lượng mô hình
nhưng lại tốn nhiều thời gian huấn luyện hơn.
report_delay=1: Thời gian (tính băng giây) giữa các báo cáo tiến trình.
Trực quan hóa dữ liệu:
Bộ dữ liệu của em có các Embedding 100 chiều, không thể trực quan
35
Trang 40được vi vậy em sẽ giảm số chiều của Embedding sản phẩm từ 100 xuống 2
băng cách sử dụng thuật toán UMAP, một thuật toán được sử dụng đê giảmchiêu dir liệu.
Co import umap.umap_ as umap
Hình 2.9: Kết quả trực quan hóa dữ liệu của bộ gợi ý sau khi train
Moi dâu châm trong biêu đô nay là một sản phâm, có một sô cụm nhỏ chứacác diém dữ liệu này Day là những nhóm sản phâm tương tự.
Tạo và xác thực các dé xuât:
36