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ọ.. 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
Trang 1HỌ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ênSinh 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 2024
Sinh 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 5MỤC LỤCDANH MỤC HINH ẢNH - G52 2 E1 12111111111 11111121 1111k 3
1.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 242.4.2 Kiến trúc mô hình: -.:-+22+++2E2Y+t22EEttSEEtEErtttrrrttrrrrrrrrrrrrrrire 252.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 84PHU 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 90 3.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 42Hì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 76Hì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 4.2: Bảng PrOdUCC (c0 221111211111 1111 1111111111 111 H11 TH 1 ng kg kh 81 Hình 4.3: Bang ProductBrand - - - + 112111121113 1131111111811 1 1111811111181 re 82 Hình 4.4: Bảng S1zePrOdUC - 2G SG 11199 21 111v TT nh ng He 82 Hình 4.5: Bảng OrderProduCt - - 232332111211 123 1191155115115 1 111111111111 xrrr 82 Hình 4.6: Bảng Orr c 11121111 1111111118 1111111 01111111 1k nnn vn kết 82 Hình 4.7: Bảng OrderPayIm€nI c1 1321113221135 11 111111811111 18111111 1k xe 82 Hình 4.8: Bảng OrderShIpping - - - - + 3112111311911 1 1 nh ng ng ng 83 Hinh 5800 ốốố 83 Hinh 0108575161-402 83 Hình 4.11: Bảng RỌ€ - 0 1 011221111211 11111111111 11 111011111011 1111 1H ng kiến 83 Hình 4.12: Bang WordVeCO G1199 1 1v TH TH nh nh HH nếp 83
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 91 Giao 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 94Giao 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 95 Giao diện thêm mới hãng - 5 2c + ***‡++ssvvex+sseeeesxses 96 Giao diện chỉnh sửa hang cc ccesceeeseccesseeesesseeeeessteeeeensneeeees 96 Giao 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 95Giao 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+ 46Bang 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 52Bang 3.14: Scenario cho Use Case đổi trang thai đơn hàng -2- 2-5552 52Bang 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+++ 55 Bảng 3.19: Scenario cho Use Case dat hang eceeeceeceesceeceeeceeeeeeeeneeeeneeeeeneeees 56 Bả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ẫnkhá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ớidoanh nghiệp, thương mại điện tử giúp cải thiện quy trình kinh doanh, tôi ưu hóahiệ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 tronglự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ữngcủ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íchhợ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àocô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 ứng dụ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át triể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 samtrự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ôi trườ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.
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
Thêm
Sửa Sửa
Trang 16| Hang Giay
' Footer || PIL
Trang chu Tim Kiém
(Header ml eH = G Header Loài |
Trang 17la eze 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
trên phiên
Ứng dụng Website Admin Ứng dụng Website End User
Cập nhật CSDL Dang nhập/ Đăng ky 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
NextJs
Hiển thị danh sách quyền nhân viên
Cập nhật quyền nhân viên
NextJs
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ứcnă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à Serverbở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ác
vớ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 đun là một phần quan trọng của kiến trúc
mô 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ừu tượ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à an toà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ôngcâ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ết cá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ạp
và đò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ọc má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
từ.
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ìmkiế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ựngtrong 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ạng
dữ 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ột cộ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ông
cụ 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 lo lắ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
này.
- 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ảng
bá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ềntả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ảnphẩ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
PHIEN
_ 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 ra giả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ảnphẩ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ườidù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ệntạ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ụcphứ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ột lượ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ạng một tập hợp con nhỏ cua cơ sở dữ liệu tông thé Vì vậy, ngay cả những mặ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ậpvà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ụ: đốivớ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ếp cậ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ương phá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ợpchú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ànhmộ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ác thuầ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út thắ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
nhât.
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ững
ngườ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ớicá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ủangườ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ácgiữa người dùng và mục trên một nhóm người dùng để đưa ra đề xuất cho mộtngườ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ặthà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ụngnhữ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 cc in phẩm in phẩm in phẩm iên kết 5 phién két hop
hoc may dé tao
mô 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 mong muố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
phiê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 baogồ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ốicù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ên
và 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ền qua 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ántiế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ệncù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ácmụ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ẩm trong 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ùng củ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ệt web 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ấnluyệ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 neural network 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
w(t-2)
wit-1)
SUM
wit) w(t+1)
w(t+2)
CBOW
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 nhanhhơ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ác trọ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ảm thiể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ấn luyện Mô hình Skip-gram sử dụng mạng nơ-ron chuyền tiếp với một lớp ân duy nhấ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ìnhSkip-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ácphầ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ạo bă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ừ
Sử dụng trong ứng dụng
thực tê
Dự đoán các từ lan cận (context) dựa trên từ hiện tai.
Thích hợp khi có ít dữ
liệu huấn luyện va muốntạ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ô
biên.
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ấnluyện và cần tạo ra biểudiễn tổng quát cho toan
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
phiê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ó xuhướ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
Word2Vec:
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 đolườ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 Cosinesimilarity 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é đàotạ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 Gradient Descent (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.
we
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 đượcmộ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 đồng Cosine 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ác phiên tại địa chỉ:
https://trainsuggest.pythonanywhere.com/ Khi truy cập vào link hệ thống sẽ trả về idphiê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]
# Tạo bộ Xac nhan @
purchases_val = []
# điền vào danh sách các mã sản phẩm Cái này dành cho tập validation không phải tập train
for i in validation_df:
purchases_val.append(i[ '11stCodeProduct" ]) print('Val:', purchases_val)
Train: [['PMT7', 'PMT3', 'ADDS', 'PMT5', 'ADT4', 'NKD1Ø', 'PMT4', 'CVT2', 'PMT18', 'ADT1', ‘PMT190", ‘ADT7
Val: [['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.
model.train(purchases train, total_examples = model.corpus_count,
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ẩmtrung 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ến dà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ìnhWord2Vec (Đ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ảm chiê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ứa cá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