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ư vấn sản phẩm dựa trên phiên

105 0 0
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ư vấn sản phẩm dựa trên phiên

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

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 2

LỜ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 3

NHAN 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 4

NHAN 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 5

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 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 6

CHUONG 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 7

DANH 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 8

Hì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 9

Giao 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 10

Bang 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 12

CHƯƠ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 13

1.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 14

e 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 15

Quả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 17

laeze 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 18

phiê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 19

1.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 21

1.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 23

CHƯƠ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 24

củ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 25

2.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 26

rấ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 27

dự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 28

hà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 29

nà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 31

Cá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 32

ngữ 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 33

2.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 35

Kỹ 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 36

Phiê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 38

session_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

Ngày đăng: 28/03/2024, 10:21

Tài liệu cùng người dùng

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

Tài liệu liên quan