Tải bản đầy đủ (.pdf) (105 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (19.54 MB, 105 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="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

<small>Giảng viên hướng dan: TS. Đỗ Thị Liên</small> Sinh viên : Trần Văn Thân

<small>Mã sinh viên : BI9DCCN665</small>

<small>Lớp : DI9HTTT3</small>

<small>Hà Nội - 2024</small>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="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

<small>trong Khoa Công Nghệ Thông Tin - Học Viện Cơng Nghệ Bưu Chính Viễn Thơng,</small>

<small>và cả thầy cơ trong tồ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ế.</small>

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

<small>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</small>

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

<small>những khó khăn và hồ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ô.</small>

Đồ án của em thực hiện trong khoảng thời gian 9 tuần, một khoảng thời gian

<small>đầ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,</small>

<small>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</small>

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

<small>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 hồ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!</small>

<small>Hà Nội, Ngày.... thang 1 năm 2024Sinh viên thực hiện</small>

Trần Văn Thân

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

NHAN XÉT ĐÁNH GIA CHO DIEM

<small>(Của giảng viên hướng dẫn)</small>

Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng cham tốt nghiệp.

<small>Hà Nội, Ngày.... tháng 1 năm 2024.</small>

CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

NHAN XÉT ĐÁNH GIA CHO DIEM

<small>(Cua giang vién phan bién)</small>

Diem: ... (0 1 ằ . ) Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng cham tốt nghiệp.

<small>Hà Nội, Ngày.... tháng | năm 2024.</small>

CAN BỘ - GIANG VIÊN PHAN BIEN

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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

<small>2.2.1. § uc án ... 19</small>

<small>2.2.2. Lọc dựa trên nội dung...-- - -- ¿+2 +22 1333131155251 EErkrre 20</small>

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

<small>01522755... 28</small>

<small>2.5. Thực nghiệm Word2V€C:,... . v1 11H 111 1111011111111 111111 1H kg ket 33</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="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

<small>4.1. Cơ sở dit liệu quan hỆ:... - --- c2. 2221 122111111111 1121311111131 1811 18111811181 Egkep 79</small>

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

<small>1. Cai đặt môi tring? eee ccccccceeceecceseeeseesseeeseeeseeeseeesseeeeseesenseeeseeeessseeeeaees 85</small>

<small>1.1. Cài đặt Node.js Va IDI:...- --- 2c 2319112119 119119 1 11 9v ng ng Hư 85</small>

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

<small>Ea 08 2n... 903.2. Phía mI1i:...--¿ ¿21011111111 1123301 1111111111935 10 1011011 và 93</small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

DANH MỤC HÌNH ẢNH

<small>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</small>

<small>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</small>

<small>Hình 2.2: Khái niệm Center Word và Context Word...--c c2 xy 25</small>

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

<small>)Z0x/À... 32</small>

<small>Hình 2.8: Training đafa... .-- c5 22c 1221112111211 111 1111118111811 1 8 118 11111 E11 1H ng Hiệp 34</small>

Hình 2.9: Kết quả trực quan hóa dữ liệu của bộ gợi ý sau khi train...--- 36

<small>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</small>

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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

<small>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</small>

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

<small>Hình phụ lục 2.3: Cấu trúc thư mục ứng dụng học máy ... -- ---+++c c2 89</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>Giao diện trang Chủ... ...- - ¿25 22c 3311135111151 115511 81111 ray 90</small>

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

<small>Giao diện giỏ hàằng... ... -- c1 1112111211111 1115111111111 xe 9]</small>

<small>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</small>

Giao diện chỉ tiết đơn hàng... -- 5c s secxeEeEeEEEEExrErrreree 92

<small>Giao diện Đăng nhập... - -- 5 c1 E SE vEsEEskirssrersrkrrrke 93</small>

: 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

<small>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</small>

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

<small>Giao diện quản lý S€T... ..- 5c 22323 E+vEEseEseerseeeesrkrs 99</small>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<small>Bang 1.1:</small>

DANH MUC BANG

So sánh ưu nhược điểm của 3 trang thương mại điện tử Lazada, Shoppe,

<small>V0 TT... ...4... 8</small>

<small>Bang 2.1: So sánh hai mơ hình Skip-gram và CBOW...:ccccccessccesseeeeteeeeteeeeeaeees 28</small>

Bang 2.2: Kết quả thực nghiệm với ba phương pháp tim vector tương tự... 29

<small>Bảng 3.1: Scenario cho Use Case đăng Ký...- --- -- SH He, 43</small>

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

<small>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</small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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

<small>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</small>

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,

<small>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à</small>

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à q 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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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

<small>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ị.</small>

<small>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</small>

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à

<small>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.</small>

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ù

<small>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.</small>

1.1.2. Khảo sát các sản phẩm tương tự:

<small>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:</small>

<small>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,</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.

<small>Có thể có nhiều quản trị với các quyên khác nhau.</small>

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

<small>hàng (đang xử lý, đã giao hàng, đã hủy, v.v.).</small>

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.

<small>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.</small>

1.1.3.2. 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.

<small>Người dùng truy cập ứng dụng trên trình duyệt web hoặc ứng dụng di động.</small>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<small>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à</small>

mình đang tìm kiếm.

<small>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</small>

ả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 tố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 tốn an tồn và xác nhận đơn <small>hàng sau khi thanh tốn thành cơng.</small>

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 <small>trạng đơn hàng (đang xử lý, đã giao hàng, đã hủy,...).</small>

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

<small>hàng được thê hiện bởi hai hình dưới đây:</small>

<small>- 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.</small>

<small>10</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Quản Lý Quyền User</small>

Thêm/ sửa quyền

<small>Thêm Quyền User</small>

<small>Thêm Quyền User</small>

<small>Danh Sach Hang</small>

<small>Quan Ly Don Hang</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

|

<small>Hang Giay</small>

<small>'Footer||</small>

PIL

<small>Trang chu Tim Kiém</small>

<small>(Header ml eH = G Header Loài |</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>laeze A</small>

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 qt hệ thống

<small>Trình duyệt Web Admin Trình duyệt Web End User</small>

‘asuodsey d11H

<small>Tư vấn sản phẩm dựa</small>

<sub>esuodsey d11H</sub>

<small>Hiển thị danh sách sản phẩm tưvấn dựa trên phiên tới người</small>

<small>dùngXem thống kê</small>

<small>Hiển thị danh sách sản phẩm</small>

<small>Thêm, sửa, xóa sản phấm Xem sản phẩm theo hãng</small>

<small>Hiển thị danh sách hãng Xem chỉ tiết sản phẩm</small>

<small>Thêm, sửa, xóa hãng Thêm sản phẩm vào giỏ hang</small>

<small>Hiển thị danh sách đơn hàng Xem danh sách SP trong giỏ hàng</small>

<small>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</small>

<small>Hiển thị danh sách quyền Nhập địa chỉ giao hàng</small>

<small>â " 4 " Hiển thị chỉ tiết đơn hàng</small>

<small>Thêm, sửa, xóa quyền</small>

<small>Hiển thị danh sách đơn hàng đã đặt</small>

<small>Hiển thị danh sách quyền nhân viên</small>

<small>Cập nhật quyền nhân viên</small>

<small>Backend Service</small>

<small>REST request</small>

<small>REST request Truy vấn cơ sở dữ liệu. Màu</small>

<small>GET/POST/PUT/DELETE method GET/POST/PUT/DELETE method</small>

<small>Cập nhật dữ liệu</small>

<small>Nhận yêu cầu, xử lý và trả dữ</small>

<small>REST response liệu Json cho Website End User REST response</small>

<small>JSON format JSON format</small>

; 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 tồn bộ hệ

<small>thơng theo một phương pháp chung là phương pháp hướng dịch vụ. Ở đây các</small>

<small>module Web End User, Web Admin, Backend Services, Tư vân sản phâm dựa trên</small>

<small>13</small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 qt và phương pháp xây dựng phần mềm em lựa

<small>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):</small>

<small>e Module Web Client và Web Admin sẽ được coi là Service requester (Người</small>

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à

<small>Backend Service:</small>

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:

<small>- _ Tích Hợp Dễ Dang với API và Backend:</small>

<small>® 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</small>

<small>quan đến kiểu dữ liệu khi giao tiếp giữa frontend và backend.</small>

<small>- Hiéu Năng Cao:</small>

@ Next.js được thiết kế để cung cấp hiệu năng cao với việc tải trang

<small>nhanh chóng và hỗ trợ rendering ở cả phía client và server. TypeScript</small>

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

<small>của dự án.</small>

<small>- Tích Hợp Mơ-đun va Component:</small>

<small>® TypeScript cung câp khả năng tương tác tốt với module và component,</small>

<small>giúp quan lý và tai sử dụng mã nguồn một cách hiệu quả. Điều nay đặc</small>

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:

<small>® TypeScript có thé giúp quản lý trạng thái ứng dụng một cách hiệu quả</small>

với tính năng kiểm sốt kiêu. Điều này làm giảm rủi ro lỗi và tăng khả

<small>năng duy trì của mã nguồn.</small>

<small>14</small>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<small>1.3.4.2. Prisma cho module Backend Service:</small>

<small>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</small>

đơ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. <small>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:</small>

<small>- Quản lý Cơ sở dit liệu dé dàng:</small>

<small>e Prisma cung cấp một ORM (Object-Relational Mapping) mạnh mẽ,</small>

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.

<small>- Tự động tạo mã TypeScript:</small>

<small>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à antồn.</small>

- Tich hợp tốt với TypeScript:

<small>® Prisma có sự hỗ trợ tốt cho TypeScript, giúp xây dựng ứng dụng với</small> mã nguồn dé doc, dé bảo trì và kiểm sốt kiểu tốt hơn.

<small>- Hiệu suất tơi ưu hóa:</small>

<small>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ư</small>

lazy loading để giảm thiểu lượng dữ liệu được truy vấn khi nó khơng cân thiết.

<small>- Quản ly Migrations:</small>

<small>e Prisma hỗ trợ quan lý phiên bản cơ sở dữ liệu thông qua migrations,</small>

<small>giúp duy trì và mở rộng cơ sở dữ liệu một cách an tồn.</small>

<small>- Dễ đàng kiểm sốt và theo dõi cơ sở dit liệu:</small>

<small>® Prisma cung cấp các cơng cụ giúp theo dõi và kiểm soat các truy vẫn cơ</small>

<small>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.</small>

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

<small>lĩnh vực học máy:</small>

- Tinh đơn giản và nhất quán:

<small>e Python cung cấp mã ngắn gọn và dễ đọc. Trong khi các thuật toán của</small>

<small>AI và Machine learning là hết sức phức tạp, sự đơn giản của Python</small>

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

<small>tin cậy. Thay vì tập trung thời gian vào kỹ thuật viết mã, giờ đây với sự</small>

<small>15</small>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<small>đơ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</small>

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:

<small>e Việc triển khai các thuật tố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</small>

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

<small>giải pháp mã hóa tốt nhất.</small>

<small>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</small>

máy học sẽ là trợ thủ đắc lực cho các nhà phát triển như là: Keras,

<small>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</small>

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

<small>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à:</small>

Tạo mơ hình chủ đề: Gensim cho phép xây dựng mơ hình chủ đề từ tập văn

<small>bản, giúp phát hiện và mô tả các chủ đề chính trong đữ liệu văn bản.</small>

<small>Nhúng từ: Gensim cung cấp các công cụ để tạo và sử dụng các vectơ nhúng</small>

<small>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</small>

đ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.

<small>Xây dựng mơ hình Word2Vec: Gensim hỗ trợ xây dựng mơ hình Word2Vec,</small>

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ừ.

<small>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</small>

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 đữ

<small>liệu lớn.</small>

<small>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.</small>

<small>16</small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<small>1.3.4.5. PostgreSQL/ Supabase:</small>

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ệ,

<small>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.</small>

<small>Supabase là một nền tảng phát triển ứng dụng web và di động, cung cấp Các</small>

<small>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</small>

<small>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.</small>

<small>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</small>

<small>mạnh mẽ sau:</small>

<small>- Cơ sở dit liệu PostgreSQL:</small>

e Supabase sử dụng co sở dữ liệu PostgreSQL mạnh mẽ dé lưu trữ dit

<small>liệu.- Realtime:</small>

<small>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</small>

trì trạng thái tức thì và đồng bộ hóa dữ liệu giữa các người dùng.

<small>- Authentication:</small>

e Supabase cung cấp các dịch vụ xác thực dé quan lý người dùng và đăng <small>nhập an toản.</small>

<small>- RESTful API và GraphQL:</small>

<small>© Cho phép truy van va gửi đữ liệu thông qua cả hai phương tiện truy van</small>

<small>- Storage:</small>

<small>e Lut trữ và quan lý các tệp tin tinh hoặc đa phương tiện.</small>

<small>- Serverless Functions:</small>

<small>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.</small>

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:

<small>- 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</small>

<small>ly hiệu quả cho người quan tri.</small>

<small>17</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

- Cac yêu cầu chức năng đã được mô tả cụ thé cho cả người dùng và người

<small>quan tri.</small>

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

<small>Prisma-PostgreSQL cho back-end sẽ đảm bảo hiệu năng và mở rộng.</small>

<small>- 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ợ</small> 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. Ở

<small>chương tiếp theo, em sẽ tìm hiểu sâu hơn về công nghệ này.</small>

<small>18</small>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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ỉ

<small>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.</small>

<small>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</small>

<small>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 tốn cân</small>

<small>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.</small>

<small>2.1. Bài toán về tư vần sản phâm:</small>

Một hệ thống tư vấn sản phẩm sẽ hoạt động theo nguyên tắc sau:

<small>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ử</small>

<small>giao dịch/mua sắm của người dùng.</small>

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

<small>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</small>

<small>kiếm sản phẩm phù hợp.</small>

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:

<small>2.2.1. Lọc cộng tác</small>

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à

<small>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á</small>

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ự

<small>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ồ</small>

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

<small>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.</small>

Ư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 tố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ự

<small>19</small>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="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

<small>(k-NN) va Pearson Correlation lần đầu tiên được Allen triển khai.</small>

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,

<small>khả năng mở rộng và độ thưa thớt.</small>

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.

<small>e Kha năng mở rộng: Có hàng triệu người dùng va sản phẩm trong nhiều</small>

<small>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 tốn đề tính tốn các khuyến nghị.</small>

<small>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</small>

<small>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.</small>

<small>2.2.2. Lọc dựa trên nội dung</small>

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

<small>này có thé khơng phải lúc nào cũng có sẵn cho tat cả các mục. Ngồ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</small>

<small>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</small>

<small>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 tốn này</small>

khơng 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

<small>ảnh hưởng gì đến q trình đề xuất. Điêu này đảm bảo tính bảo mật và quyền riêng</small>

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

<small>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</small>

<small>đó. 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ệ</small>

thống dé xuất tin tức được cá nhân hóa, an phẩm, hệ thống đề xuất trang web, ...

<small>20</small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="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

<small>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</small>

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

<small>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</small>

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ổ

<small>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.</small>

<small>Một số kỹ thuật lai tạo bao gồm:</small>

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.

<small>e Chuyển đôi: Lựa chọn trong số các thành phan đề xuất va áp dụng</small>

<small>thành phần đã chọn.</small>

e Hỗn hợp: Các khuyến nghị từ những người giới thiệu khác nhau được

<small>trình bay cùng nhau dé đưa ra khuyến nghi.</small>

<small>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</small>

khác nhau được kết hợp với nhau và đưa ra một thuật tốn đề xuất duy

<small>e Tang cường tinh năng: Tính tốn một tính năng hoặc tập hợp các tính</small>

<small>năng, sau đó là một phần đầu vào của kỹ thuật tiếp theo.</small>

<small>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</small>

<small>chấm điểm những người có mức độ ưu tiên cao hơn.</small>

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

<small>21</small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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

<small>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 đã</small>

<small>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.</small>

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

<small>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</small>

<small>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</small>

<small>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.</small>

Các lựa chọn hầu như ln 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

<small>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</small>

sử. Ngồ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:

<small>Phiên hiện tại của người dùng</small>

<small>Sản phẩm Sản phẩm Sản phẩm</small>

<small>Các phiên lịch sử được thu thập. |</small>

<small>Sản phẩm | | Sảnphẩm | | Sảnphẩm | | Sảnphẩm</small>

<small>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</small>

<small>hoc may dé taomơ hình chung</small>

<small>—% Cơng cụ đề xuất — | sảnphám | | sảnphám | ~~ | sảnphẩm | | sảnphám</small>

<small>Sản phẩm Sản phẩm | | Sản phẩm | | Sản phẩm</small>

<small>Sản phẩm Sản phẩm | | Sản phẩm</small>

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:

<small>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ọ</small>

<small>(các sản phẩm xem, tìm kiếm, thảo luận, mua sắm...)</small>

<small>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</small>

<small>22</small>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<small>dựa trên hành vi của họ trong phiên truy cập hiện tại.</small>

<small>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</small>

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

<small>các phương pháp huấn luyện. Mơ hình này sau đó được áp dụng vao phiên</small>

<small>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ọ.</small>

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

<small>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ả</small>

<small>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ữ</small>

<small>cảnh và mối quan hệ giữa các mục và phiên.</small>

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

<small>Networks /GNN)</small>

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

<small>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</small>

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

<small>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</small>

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

<small>Networks / RNN)</small>

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

<small>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ẽ</small>

đượ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

<small>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 tốn xác suất dự đốn của từng mục</small>

<small>23</small>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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

<small>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</small>

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,

<small>đượ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 tồ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</small>

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

<small>phương pháp phỏng đố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.</small>

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

<small>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ì</small>

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

<small>Word2Vec vào trang web bán giày dép của em.2.4. Mơ hình Word2vec</small>

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

<small>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ừ</small>

chính và các từ văn cảnh,... Về mặt tốn học, Word2Vec là việc ánh xạ từ từ 1 tập

<small>các từ (vocabulary) sang 1 không gian vector, mỗi vector được biểu diễn bởi n số</small>

<small>thực. Mỗi từ ứng với 1 vector cơ định. Sau q trình huấn luyện mơ hình bằng thuật</small>

<small>toán backpropagation, trọng số các vector của từng từ được cập nhật liên tục. Từ đó,</small>

ta có thé thực hiện tính tốn bằng các khoảng cách quen thuộc như euclide, cosine,

<small>manhattan,... Những từ càng "gan" nhau vê mặt khoảng cách thường là các từ hay</small>

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

<small>từ vùng,... [5]</small>

<small>Đặc trưng chính của Word2Vec là sơ chiêu của vectơ từ vựng, mà sô lượng</small>

<small>24</small>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="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é

<small>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</small>

<small>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ả.</small>

<small>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.</small>

Dé có thé huấn luyện được mơ hình Word2Vec ta cần biết thêm 2 khái niệm

<small>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</small>

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

<small>quanh bên trái và bên phải của target word.</small>

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

<small>target word có 2 từ.</small>

) : 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.

<small>Hinh 2.2: Khai niém Center Word va Context Word</small>

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ữ

<small>liên tục (CBOW) và mơ hình Skip-Gram</small>

<small>25</small>

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<small>“ Mơ hình từ ngữ liên tục (CBOW)</small>

<small>Input Projection Output</small>

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.

<small>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</small>

<small>(target word). Lớp ân vân thê hiện sự nhúng từ đã học trong quá trình huân luyện.</small>

<small>26</small>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<small>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ự đốn. Mơ hình CBOW sử dụng hàm mục tiêu dé tối ưu hóa trọng số.</small>

<small>% Mơ hình Skip-gram liên tục</small>

<small>Input Projection Output</small>

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

<small>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.</small>

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

<small>(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.</small>

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ự đố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

<small>27</small>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<small>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</small>

<small>rộng rãi trong các tac vu NLP.</small>

<small>¢ So sánh hai mơ hình:</small>

<small>Bảng 2.1: So sánh hai mơ hình Skip-gram và CBOW.</small>

<small>Mục tiêu hn luyện</small>

<small>Hiệu st</small>

<small>Đơi với từ hiêm</small>

<small>Toc độ hn luyện</small>

<small>Kích thước của vectơ từ</small>

liệu huấn luyện va muốn tạo ra biéu dién vector tốt

<small>cho từng từ.</small>

<small>Tích hợp tơt với việc biêu</small>

<small>diễn các từ hiêm và phô</small>

Thường mat nhiều thời

gian hơn để huấn luyện so với CBOW vì cần dự đốn nhiều từ.

<small>Dự đoán từ hiện tại dựa</small>

<small>trên các từ lân cận.</small>

<small>Thường hiệu quả hơn khi</small>

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

<small>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.</small>

<small>Thường được sử dụng</small>

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

<small>hạn như trong các mơ</small>

hình ngơn ngữ tong qt.

<small>28</small>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="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:

<small>s* Lựa chọn mơ hình:</small>

Ở đâ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

<small>luyện mơ hình sẽ chậm hơn so với CBOW.</small>

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.

<small>e Ngồi ra, Skip-gram cịn sử dụng thêm kỹ thuật negative sampling giúp dao</small>

<small>tạo mơ hình hiệu quả hơn.</small>

¢ 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

<small>distance va Cosine similarity. Trong đó:</small>

<small>e Manhattan distance đo lường khoảng cách băng cách tính tổng trị số tuyệt đối</small>

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ơ

<small>hướng của hai vector chia cho tích độ dài của hai vector.</small>

Từ đó có thé thấy khoảng cach Euclidean distance va Manhattan distance phụ

<small>thuộc vào độ lớn cua vectơ trong khi độ tương tự Cosine similarity phụ thuộc vào</small>

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

<small>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</small>

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.

<small>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</small>

<small>như sau dự đốn như sau:</small>

Bảng 2.2: Kết quả thực nghiệm với ba phương pháp tìm vector tương tự.

<small>Phiên Cosine similarity Manhattan Distance Euclidean Distance</small>

<small>29</small>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>Độ chính | Thời gian Độ chính Thời gian | Độ chính xác Thời gian</small>

<small>xác (/4sp) chay(s) xac (/4sp) chay(s) (/4sp) chay(s)</small>

Ở đâ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ự đốn trong phiên, mơ hình sẽ đọc các sản phẩm trước trong phiên đó và dự đố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ự đốn đúng. Và độ chính xác sẽ bằng: Tống số sản phẩm dự

đố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)

<small>hay tiêu cực (negative pair).</small>

<small>30</small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Kỹ thuật negative sampling giảm đáng kê số lượng tính tố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ể, q trình negative sampling trong mơ hình Skip-gram có thể được thực hiện

<small>theo các bước sau:</small>

e Xác định từ gốc và từ ngữ cảnh.

<small>e Chọn một số lượng nhỏ các từ tiêu cực (negative samples) từ từ điển. Số</small>

<small>lượng từ tiêu cực thường được chọn là một sơ nhỏ, ví dụ như 5-20 từ.</small>

<small>e Tính tố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</small>

đồ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

<small>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</small>

<small>tương ứng.</small>

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

<small>tích cực và tiêu cực theo một thuật toán dao tạo như Stochastic GradientDescent (SGD).</small>

Bang cách chi chọn một sỐ lượng nhỏ các từ tiêu cực, kỹ thuật negative

<small>sampling giúp giảm đáng kê chi phí tính tốn và cải thiện toc độ dao tạo của mơhình Skip-gram.</small>

<small>2.4.3.3. Q trình xử lý:</small>

<small>31</small>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<small>Phiên hiện tại của người dùng</small>

<small>vector | [ vector | -= | vector | | Vector</small>

<small>Kết quả huấn luyện</small>

<small>Từ. Sản phẩm.</small>

<small>Từ. Sản phẩm</small>

<small>+ Tim vector trung bình cộng của phiên</small>

<small>+ Tiến hành so sánh với các vector kết quả | chuyểnve</small>

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

<small>được hoạt động như sau:</small>

<small>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</small>

<small>tác trong phiên đó.</small>

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.

<small>32</small>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="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 đó.

<small>- Tiếp theo hệ thống sẽ so sánh độ tương đồng của vector trung bình đó</small>

<small>với tat cả các vector ở trong kết quả huan luyện bang do độ tương đồngCosine similarity.</small>

- 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

<small>là các từ gợi ý.</small>

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.

<small>2.5. Thực nghiệm Word2Vec:</small> $% 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

<small>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ỉ:</small>

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,

<small>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</small>

<small>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</small>

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ộ

<small>dữ liệu huấn luyện và bộ dữ liệu xác nhận.</small>

<small>- Bộ dữ liệu huấn luyện sẽ được sử dụng cho việc huấn luyện mơ hình.</small>

<small>- _ 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</small>

<small>khi đã huấn luyện.</small>

<small>33</small>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>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</small>

<small>train_df = [item for item in session train if item[ 'id'] in session_train_ids]</small>

<small>validation_df = [item for item in session_train if item[ 'id'] not in session_train_ids]</small>

<small>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',</small>

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%

<small>còn lại được sử dụng đê làm bộ dữ liệu xác nhận.</small>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

- O đây em sử dụng Word2Vec của thư viện Gensim.

<small>- Dòng dau tiên tạo đơi tượng Word2Vec với các tham sơ câu hình sau:</small>

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 <small>trung bình từ 10 đến 15 nên em chọn window = 10 sẽ có thể bao quát hết</small>

<small>các mã sản pham.</small>

sg = 1: Chọn thuật toán huấn luyện là Skip-gram. Nếu sg được đặt thành 0,

<small>sẽ sử dụng thuật toán CBOW.</small>

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

<small>đặ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</small>

sản pham hién tai.

alpha=0.03 va min_alpha=0.0007: Tốc độ hoc (learning rate) sẽ giảm dan

<small>từ alpha xuống min_alpha trong quá trình huấn luyện. Em sử dung</small>

<small>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</small>

<small>trường hop underfit hoặc overfit.</small>

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ữ

<small>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à</small>

<small>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.</small>

Chạy nhiều epochs hơn sẽ khơng cải thiện đáng kế chất lượng mơ hình

<small>nhưng lại tốn nhiều thời gian huấn luyện hơn.</small>

report_delay=1: Thời gian (tính băng giây) giữa các báo cáo tiến trình.

<small>Trực quan hóa dữ liệu:</small>

Bộ dữ liệu của em có các Embedding 100 chiều, không thể trực quan

<small>35</small>

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

được vi vậy em sẽ giảm số chiều của Embedding sản phẩm từ 100 xuống 2

<small>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.</small>

<small>Co import umap.umap_ as umap</small>

Hình 2.9: Kết quả trực quan hóa dữ liệu của bộ gợi ý sau khi train

<small>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ự.</small>

<small>Tạo và xác thực các dé xuât:</small>

<small>36</small>

</div>

×