Chính vì vậy mà em muốn lựa chọn đề tài “Ứng dụng CNN trong bài toánkhuyên nghị sản phẩm cho ứng dụng bán hàng điện tử” như một giải pháp dé giúp doanh nghiệp cũng như người tiêu ding có
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
DE TÀI : UNG DUNG CNN TRONG BÀI TOÁN KHUYEN
NGHI SAN PHAM CHO UNG DUNG BAN HANG DIEN TU
Giang viên hướng dẫn : ThS Nguyễn Hoàng Anh
Sinh viên : Nguyễn Quốc Khánh
D17CNPM3
2017 - 2022
Chinh quy
Hà Nội - 2022
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
DE TÀI : UNG DUNG CNN TRONG BÀI TOÁN KHUYEN
NGHI SAN PHAM CHO UNG DUNG BAN HANG DIEN TU
Giảng viên hướng din: ThS Nguyễn Hoang AnhSinh viên : Nguyễn Quốc Khánh
D17CNPM3
2017 - 2022
Chinh quy
Hà Nội — 2022
Trang 3NHAN XÉT CUA GIẢNG VIÊN HƯỚNG DAN
Điểm: (Bằng chữ: )
Hà Nội, ngày thang nam 20
Giang viên hướng dẫn
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN PHÁN BIỆN
Điểm: (Bằng chữ: )
Hà Nội, ngày tháng nam 20
Giảng viên phản biện
Trang 5Đồ án tốt nghiệp đại học
LỜI MỞ ĐẦU
Trong thời gian ở nhà giãn cách chống dịch bệnh SARS-CoV-2, bản thân em vànhững người xung quanh có thói quen mua sắm qua mạng nhiều hơn Hiện nay cáctrang thương mại điện tử như Shopee, Lazada, Amazon, đang bán rất nhiều mặt
hàng với mẫu mã đa dạng Với một người dùng phổ thông dé có thé chọn được sảnphẩm hợp với nhu cầu bản thân sẽ cần mắt rất nhiều thời gian tìm kiếm Đồng thờivới các doanh nghiệp, người bán hàng vừa và nhỏ, sản phẩm họ cung cấp sẽ cần chỉ
phí marketing lớn đến dé dàng tiếp cận đến người dùng
Chính vì vậy mà em muốn lựa chọn đề tài “Ứng dụng CNN trong bài toánkhuyên nghị sản phẩm cho ứng dụng bán hàng điện tử” như một giải pháp dé giúp
doanh nghiệp cũng như người tiêu ding có một trải nghiệm tốt hon trong quá trình
mua sắm trực tuyến.
Đồ án này gồm có 3 phần: Mở đầu, Nội dung và Kết luận Phần nội dung baogồm các chương:
CHUONG 1: Giới thiệu và tong quan đề tai
CHƯƠNG 2: Giải quyết vấn đề
CHUONG 3: Phân tích và thiết kế hệ thong
CHƯƠNG 4: Cài đặt và triển khai hệ thống
Nguyễn Quốc Khánh - DI7CNPM3 i
Trang 6Đồ án tốt nghiệp đại học
LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn khoa Công nghệ thông tin 1, Học viện
Công nghệ Bưu chính Viễn Thông đã tạo điều kiện thuận lợi cho em học tập và thựchiện đề tài tốt nghiệp này
Em xin bày tỏ lòng biết ơn sâu sắc tới thầy Nguyễn Hoàng Anh đã tận tình địnhhướng, hướng dẫn, hỗ trợ chúng em trong quá trình thực hiện đề tài Chúng em xinchân thành cảm ơn thay cô trong khoa Công nghệ thông tin, khoa Cơ bản đã tận tinhgiảng dạy, trang bị cho em những kiến thức quý báu trong những năm vừa qua
Cuối cùng, em xin cảm ơn gia đình, bạn bé và những người bên cạnh, luôn quan
tâm và động viên, giúp em có thê hoàn thành đồ án tốt nhất
Mặc dù đã có gắng hoàn thành khóa luận trong phạm vi va khả năng cho phép
nhưng cũng không thê tránh khỏi những thiếu sót Em rất mong nhận được sự thông
cảm, góp ý cũng như nhận xét của quý thây cô và các bạn.
Trang 7Đồ án tốt nghiệp đại học
MỤC LỤC
LOI CAM 0907 444A H i
0909009 iii
DANH MUC HINH, BANG c1 Ả ố Ẽ V
DANH MỤC TU VIET TẮTT ¿5< +s+S+E+E£EEEEEEEEEEEEEEEEEEEEE111121111111111111111 111111 vii
CHƯƠNG 1: GIỚI THIỆU VÀ TONG QUAN DE TÀI 2-52 +++k££E++EzEEerEezrxrres 1 1.1 Thuc trang vấn AG occ cceccccscsececsecsesecsucsesecsusecsucasucsucassucaesacsucarsucatsacsueaesussesessusatsusansasaneaene 1 1.2 Nền tảng phát triỂn - ¿2-52 22EEEE9E1EE11211211711211111711211 111111111111 111 cre 1
2.5 Thuật toán K- Láng Giéng (K- Nearest Neighbor) c.ccccscssssssessesssessesssessessesssessecsseeses 23 CHƯƠNG 3: PHAN TÍCH VÀ THIET KE HỆ THONG - 2:22 ©+z25+z>5++¿ 25 3.1 Phân tích hệ thong - 2-2 2 2 £2E£2EE+E£+E£EE£EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE1E 1.1 xe 25
3.1.1 M6 hinh ca st dung oo 25
3.1.2 Use case dang nap 25
3.1.3 Use case đăng KY - LH HH TT HH nọ TH HT Hà HT ch HH rệt 26
3.1.4 Use case xem danh sách sản phẩm -¿- 22 £++++E+++Ex++Ex++Ex++rxezrxrzrxrrred 28 3.1.5 Use case xem chỉ tiết sản phẩm 2-2 ©5£2S£+SE£EE2EEEEEEEEEEEEEEEEEEerkrrkrrrrrred 28 3.1.6 Use case thêm sản phâm vào giỏ hàng 2- 22 52©7S¿22++2Ex2Exrtzxrzrxrrrxrrred 29
3.1.7 Use case mua hàng - . - - 6 c1 x1 9T TH TH TH ng 30
3.2 Thiết kế hệ thốngg ¿- 2 2 2 £+EE2EE2E£EEEEEEEEEEEEEEEEEEEEEEEEEEE1111111111111 1.1 xe 32 3.2.1 Thành phần hệ thống: - 2: ¿ 2 E£+E£+EE+EE2EE£EEEEEEEEEEEEEEEEEEEEEEEEEEEEErrkrrrrrrei 32 3.2.2 Biểu G6 lớp + ©5c+2< 2k2 2210711 211271211211111211.11111111 1111111111111 33 k0: 0 (01900007 -‹Ả 33 3.3 Chức năng khuyến nghị sản phẩm ¿ £©E£+E£EE£EE£EE£EEEEEEEEEEEEEEEEEEEEEEErEerrerree 34
3.3.1 Chuẩn bi dữ liệu huấn luyện CNN ¿- 2-52 E+2E22EEEEEEEEEEEEEEEEEEEEerkrrrrrrei 34 3.3.2 Huan luyện model phân loại ¿- ¿2£ + +E£+E£+EE£EEE2EE£EEEEEEEEEEEEEESEkrrkerrrrred 34
3.3.3 Chuẩn bi dit liệu cho KÌNN 5c SE EEEEEEEEEEEE1E11211211211211211211 11.111 ctk 35 3.3.4 40,0 g ẽ o Ả ÔỎ 35 CHƯƠNG 4: CÀI ĐẶT, TRIEN KHHAI 2¿-©2¿25¿22++2EE+2EE2EESEEtEEErrEkerrrerkrerrree 37 Nguyễn Quốc Khánh - DI7CNPM3 1H
Trang 8Đồ án tốt nghiệp đại học
4.1 Cal đặt SCTV€T - Q0 011g ng ng TH vờ 37 4.1.1 DDOCK€T G9 TH TH HH TH HT TH HH TT HH 37
9P 37
ch in 38
cố n 38
4.2 0 089 n6 38
4.2.1 Kiến trúc ứng dụng - +: SxEE9 E9 1E 12E12112112112112111111 211111111111 1e re 38 4.3 GilaO đIỆN Án TH HH HT TH TH TT HH TH HT TH TH HT Tà Hà rung 39 4.3.1 Giao dién trang CHU % - 39
4.3.2 Giao diện chi tiết sản pham cccccecceccessesssessesssessecssessessesssessesssessessscssessessesssesseesseess 40 4.3.3 Giao (000: LììtttNaaaial¡13134 4I SN AC si 200i án 43
4.3.5 Giao dién 2Š ễ 45
CS NO vn 8i na 46
KET LUẬN - - 2-5252 E121121121121111111111.11E1111 11111111 11111111.11.11.111.1111 11a 47 1 Kết quả đạt được -cc cc+ck2t2 1 212111211 211211 2111112111211 111.11 re 47 2 Hạn chế St E111 1111111111111 1111 111111111111 1111111111 11.111 11ETxce 47 3 Hướng phát triỂn -:-©2¿©2<+Sk2EEEEEEEE21127121127171121171111211 1121.111 crrrre 47 IV.108)200957.)084 01 48
Danh sách website tham khảO - - 5 + + 1123191 91 91 90111 ng HT HH ng ng 48
Nguyễn Quốc Khánh - DI7CNPM3 iv
Trang 9Đồ án tốt nghiệp đại học
DANH MỤC HÌNH, BẢNG
Hình 1.1 Tỷ lệ người dùng Internet mua sắm online - 2-2 2 s+£+£E££E££EzE+eExzxesrxrres 1 Hình 1.2 Bảng xếp hạng số lượng người sử dụng smartphone -2- 2 2 22 s+£z+£zzse2 2 Hình 1.3 Thống kê thiết bị dùng để mua sắm online : 2 2 ©5£+£+x+£x++E++rxzxezrxeres 2 Hình 1.4 So sánh ưu nhược điểm của app Native và Hybrid -2¿©+©5++cs+ecscze: 3 Hình 1.5 Thống kê thị phần smartphone tháng 6/2020 2:22 ©+2©+22++2++£x++zx++zs+zzz 3 Hình 2.1 Hệ thống khuyến nghị bằng thừa số ma trận . 2-2-5 x££x++£++£xzxezrxrez 6
Ipiii8292)/L51-i1oiiy;18i00ề 0 7
Hình 2.4 Cấu trúc một neural nhân tạO ¿se E+E£+E£+E£*E£EEEEEEEEEEEEEEEEEEEEEEEEE1211211 1 1e 8
Hinh 2.5 Ham 0512i 00 e 9 Hinh 2.6 M6 hinh neural network 000.8 9
Hình 2.7 Mơ hình neural network với 2-3-3-1 (input layer cĩ 2 node, hidden layer 1 cĩ 3 node, hidden layer 2 cĩ 3 node, output layer cĩ 1 IO(Ả€) + +- + +++ + + + ++sEEseeseeerrseersee 10 Hình 2.8 Quá trình feedfOTWard - - c5 11 11111121111931 11931111 11118 1111011118 1118011 1g vu 11 Hình 2.9 Vi dụ ham loss funnCfiOf -. 5G c2 1222132311131 E551131181 1181111111111 1101118151015 ke 11 Hình 2.10 Quá trình backprODag8tIOII ĩc c3 19119211191 91191 9 1 91 1 ng ng rệp 11
Hình 2.11 Kiến trúc co bản của một mang neural tích chập s55 ++*+sexsserses 13
Hình 2.12 Vector, Matrix và T€TSOT - << 11 116861818 E935 1kg 1 tk errre 14 Hình 2.13 Bộ lọc kích thước 3XxỔ - «+ k1 21191 91 121v ng TH TH ng rệp 14
Hình 2.14 Tích chập một ảnh 5x5x1 với một bộ lọc 3x3xI để cĩ một hình ảnh chập 3x3xI 15
Hinh 2.15 Stride = 2, Padding 0 15 Hình 2.16 Stride = 1, Padding = 1 (Padding = Same) 00 cece eceseeeeeeceeseeeeeeeeeeeeseeeeeeeeneeaees 16 Hình 2.17 Phép tinh convolution trên ảnh màu với K=3 - 55+ + £+e£+skxserseeeeeeseres 16 Hình 2.18 Thực hiện phép tính convolution trên ảnh màu .- 55 55553 s*++s++*e++sxss+2 17
Hình 2.19 Ví đụ về Pooling layer ccsccsssessesssessessssssessesssecsesssessecsucssessecsusssessessusssecsussseesecseseses 18
Hình 2.20 Fully connected ÏaW€TS cee 2 22121 211312311 1 111 11T HH TH HH nà 19 Hình 2.21 Grdient Descenct 5 5E 3 1 9301123011930 9301191119111 1 HT nà 20 Hình 2.22 Hiện tượng Vanishing radI€ni( ĩc c2 3311831119 113113118 11111811 ke rkp 20 Hình 2.23 Mơ hình mạng XC€pfIOII - - G6121 189182119119 1 91 511911 1 1v vn ng nh n nư 21 Hình 2.24 Block Depthwise Separable ConVỌUION s5 x3 31139 111v net 22 Hình 2.25 Block R€S1đUaÌ 5 %1 1111930 93 10191019010 Họ HH ng nệp 22
Hình 2.26 Bản đồ của INN .¿ccc222 HH HH ae 24
Nguyễn Quốc Khánh - DI7CNPM3 V
Trang 10Đồ án tốt nghiệp đại học
Hình 3.2 Biểu đồ tuần tự chức năng đăng nhập 2-2 5£ 2+EE£EEE2EEEEEEEEEEEerkerrrerxee 26 Hình 3.3 Biểu đồ tuần tự chức năng đăng ký ¿- 2¿©+¿22++2EE+2EE2ExtEEErEExrrrrerrrerrree 27 Hình 3.4 Biểu đồ tuần tự chức năng xem danh sách sản phẩm :- ¿©2552 28 Hình 3.5 Biéu đồ tuần tự chức năng chỉ tiết sản phẩm - 2-2 5252 Ee£EzEEeEEzresrxee 29 Hình 3.6 Biểu đồ tuần tự chức năng thêm sản phẩm vào giỏ hàng 2-2 252555: 30 Hình 3.7 Biểu đồ tuần tự chức năng mua hang 22- 22 5222S22E22E+2EE2EE2zxerzzsrseee 31
Hình 3.8 Sơ đồ kết nối hệ thống 2-2: ©©£ EEE££EE£EESEEEEEEEEEE2112E17122111171171111 21 xe 32
Hình 3.9 Biểu đồ lớp thực thé của hệ thống 2-2 2 2 ©E£2E£2EE£EE£2EE£EEEEEEEEerErrrrsrxee 33 Hình 3.10 Biểu đồ CSDL 5-2222: v2 tt triệu 33 Hình 3.11 Biểu đồ độ chính xác trong quá trình huấn luyện -¿- ¿s2 ©++s++:s+¿ 34 Hình 3.12 Biều đồ mat mát trong quá trình huấn luyện 2-2 2 ++z£+£++£xzxz+rxeẻ 35 Hình 4.1 Cau hình CSDL trong DjangO +- 2 SE ©E+SE+EE+EE£EESEE2EE2EE2EE2E22E22E22E22E tri 37
000i À6 leo) (0vi s0 8n i 39
Hình 4.3 Giao điện chỉ tiết sản phảm 2-5252 SESEEEEEEEEEE2E12E12112111171121111 21 xe 40 Hình 4.4 Giao điện giỏ hàng khi trống 2-2 £ £SE++E£+EE£EE£2EE2EEEEEEEEEEEEEEEEEEEEEErrrrrrree 41 Hình 4.5 Giao điện giỏ hàng khi người dùng chọn sản phẩm - ¿©2552 5+25s+c5+2 42
Hình 4.6 Giao diện thông tin tài khoản khi chưa đăng nhập(trái) và đã đăng nhap(phai) 43 Hình 4.7 Giao diện trang đăng nhậẬp - G5 2 191911911 vn ng rệt 44 Hình 4.8 Giao diện đăng ký và chọn ngày sinh - c3 3 3331111311511 rrkrer 45 Hình 4.9 Giao diện đặt hằng - c1 1211211191119 111 111 111 11 1 T1 nh HH Hy 46
Bảng 3.1 Kịch bản ca sử dụng đăng nhập - - - - c1 23119112 119 119 111 1 1 ng ng rệt 26 Bảng 3.2 Kịch bản ca sử dụng đăng ký - G1 t1 HS TH nh ng ng nếp 27
Bảng 3.3 Kịch bản ca sử dung xem danh sách sản phẩm -2- 2 2 + ©5++£++£xzxz+cxez 28 Bảng 3.4 Kịch bản ca sử dụng xem chỉ tiết sản phẩm 22- ¿252 ©2+2+2+v2z+vtzzsrseee 29 Bang 3.5 Kịch ban ca sử dụng thêm sản phẩm vào giỏ hàng - 2-2 2 225z2£2xc2xze: 30
Bang 3.6 Kịch bản ca sử dụng đặt hàng - - 5 SG SH HH TH ng ng cư 31
Bảng 4.1 Cấu hình server cc.ccccccssssssessessessesssessessssssessusssessessusssecsusssessecsusssessessuessecsusssetsecaeeeees 37
Bang 4.2 Phân loại method API va view của DRF 0 cescseceeseeseeseeeeeeceeceeaeeeceeseeseereeeeeeeeaees 38
Bang 4.3 Cấu hình thiết bị kiếm thử Android o c.ccccceccececssessessessessessessessessessesseseseseseesesees 38
Nguyễn Quốc Khánh - DI7CNPM3 vi
Trang 11Đồ án tốt nghiệp đại học
DANH MỤC TỪ VIET TAT
1 CNN Convolution Neural Mang than kinh tich chap
9 Django Rest Framework
Trang 12Đồ án tốt nghiệp đại học Chương 1 Giới thiệu và tông quan đề tài
CHUONG 1: GIỚI THIỆU VA TONG QUAN DE TÀI
Ở phan mở dau em sẽ di tìm hiểu về hiện trang của ngành thương mai điện tửtại Việt Nam và sự cần thiết của hệ khuyến nghị trong các nền tảng bán hàng
trực tuyến.
1.1 Thực trạng vấn đề
Thương mại điện tử Việt Nam đã có những bước tăng trưởng phát triển mạnh
mẽ, đóng vai trò quan trọng thúc đây phát triển kinh tế cũng như tương lai của nềnkinh tế số Đặc biệt trong đại dịch COVID-19 hiện nay, thương mại điện tử đã tiếp
tục bùng nỗ và tạo ra những xu hướng tiêu dùng mới Kê từ khi dich bùng phát, nhucầu mua sắm qua các sàn thương mại điện tử đã tăng mạnh Đến nay đã có hơn 70%
dân số VN tiếp cận Internet, trong đó có gần 90% người dùng đã mua sam online,
53% người dân đã sử dụng ví điện tử và thanh toán mua hàng qua mạng.
Ô.:
Tỷ lé người dung tham gia mua
Hình 1.1 Tỷ lệ người dùng Internet mua sắm online
Các hệ thống thương mại điện tử thường có số lượng sản phẩm rat lớn Nếu déngười dùng tự tìm kiếm các sản phẩm phù hợp với bản thân sẽ khiến cho họ gặp
khó khăn và có thé sẽ chọn mua ở các nơi khác Vì vậy các sàn TMĐT cần tích hợp
các hệ thống khuyến nghị vừa dé hỗ trợ người dùng tìm ra các sản phẩm phù hop,
vừa giúp tăng trưởng doanh thu.
1.2 Nền tảng phát triển
Các ứng dụng thương mại điện tử thường được lập trình trên 2 nền tảng chính làWeb và Mobile App Tính đến hết tháng 5/2021, Việt Nam có khoảng hơn 61,37triệu người, tương đương tỷ lệ 64% dân số đang sở hữu smartphone và nằm trong
Nguyễn Quốc Khánh — DI7CNPM3 1
Trang 13Đồ án tốt nghiệp đại học Chương 1 Giới thiệu và tông quan đề tài
top 10 quốc gia có nhiều người dùng smartphone nhất, theo Statista Từ những lý dotrên em quyết định xây dựng ứng dụng bán hàng điện tử trên Mobile với tên PStore
Thiết bị di động Máy tinh để ban/
máy tinh xách tay
Hình 1.3 Thống kê thiết bị dùng để mua sắm online
Trong lập trình mobile app có 2 kiểu: Native(ứng dụng gốc) và Hybrid(ứng
dụng lai) Các ứng dụng hybrid có ưu điểm là tiết kiệm công sức khi chỉ cần lập
trình một lần là có thể cung cấp cho cả 2 hệ điều hành lớn nhất hiện tại - iOS vàAndroid Nhưng đánh đổi lại thì hiệu năng của các ứng dụng này thường không cao.Với Native app là các ứng dụng được phát triển riêng cho từng hệ điều hành với các
ngôn ngữ và công nghệ khác nhau Việc phải duy trì 2 codebase sẽ khiến chi phíphát triển và bảo trì cao hơn, song người dùng sẽ được sử dụng các ứng dụng tối ưucho hệ điều hành họ đang dùng, đồng thời tận dụng được các ưu điểm của từng nên
Nguyễn Quốc Khánh - DI7CNPM3 2
Trang 14Đồ án tốt nghiệp đại học Chương 1 Giới thiệu và tong quan dé tai
tang Với mục tiêu tập trung cung cấp trải nghiệm tốt nhất cho người sử dung, emquyết định sẽ phát triển PStore là một Native app
s easy maintenance customer experience
fast delivery comprehension
e bounded efficiency time and money
Cons © dependent on Internet consuming
connection distributed codebase
Hình 1.4 So sánh uu nhược điểm của app Native va Hybrid
Theo số liệu năm 2020, hệ điều hành Android chiếm hon 60% thi phan
smartphone tại Việt Nam Cùng với đó việc lập trình ứng dụng trên Android cũng
không bị giới hạn về công cụ và môi trường Nếu muốn lập trình ứng dụng trên iOS,
ta sẽ cần làm trên hệ điều hành Mac OS hoặc Hackintosh - phiên bản chỉnh sửa củaMacOS để có thé chạy trên các PC không phải của Apple Dé có thé sử dụngMacOS ta sẽ phải sở hữu máy Mac với giá trị không hề thấp Còn với Hackintoshcũng kén phần cứng và có nhiều lỗi Vậy nên em sẽ phát triển ứng dụng trên hệ điều
Trang 15Đồ án tốt nghiệp đại học Chương 1 Giới thiệu và tông quan đề tài
1.3 Mục tiêu
Sau khi hoàn thành đề tài nghiên cứu, em muốn xây dựng được một hệ thống bánhàng điện tử có tích hợp chức năng khuyến nghị sản phẩm
Người dùng sử dụng hệ thống có thé lướt xem sản phẩm, thêm sản phẩm vào giỏ
hàng và đặt hàng Trong quá trình xem các mặt hàng, khách hàng có thể xem và tiếpcận với nhiều sản phầm tương tự với các sản phẩm đã xem trước đó nhờ tính năngkhuyến nghị Người bán hàng cung cấp nhiều mặt hàng khi sử dụng hệ thống sẽ dễdàng giới thiệu các sản phẩm gần với nhu cầu của khách hàng mà không tốn chi phí
quảng cáo, marketing hay khảo sát thị trường.
Tính năng khuyến nghị sẽ xuất hiện trong nhiều màn hình: màn hình trang chủ, mànhình chỉ tiết sản phẩm, màn hình sau khi đặt hàng thành công
Thông qua việc khảo sát ở trên, em đã trình bày những lợi ích mà hệ khuyến nghị
mang lại cho các sàn thương mại điện tử và lựa chọn xây dựng một ứng dụng Android
để mô tả một hệ thống bán hàng điện tử có ứng dụng hệ khuyến nghị
Nguyễn Quốc Khánh — DI7CNPM3 4
Trang 16Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
CHUONG 2: GIẢI QUYẾT VAN DE
Dé có thé xây dựng được hệ khuyến nghị tích hợp vào ứng dụng bán hang diện
tử, em cần tìm hiểu về hệ khuyến nghị và các phương pháp học máy như CNN
và K-NN.
2.1 Hệ khuyến nghị
Hệ khuyến nghị, hay Recommender System là các công cụ va kỹ thuật phầnmềm cung cấp các dé xuất về các hạng mục/nội dung đề xuất cho người dùng Các
đề xuất liên quan đến các quá trình ra quyết định khác nhau tại những thời điểm bat
kỳ cho người dùng, ví dụ như mua hàng hóa nào, nghe nhạc gì hoặc đọc tin tức gì.
Rất nhiều công ty và dịch vụ đã sử dụng hệ khuyến nghị dé nang cao trải nghiệm
người dung va tăng doanh thu như Amazon, Facebook, Shopee, Netflix, Spotify,
Lý do cần có hệ thống khuyến nghị là bởi số lượng sản pham/dich vụ/nội dung
được cung cấp trực tuyến quá nhiều và người dùng khó tìm được thứ mình cần Khi
người dùng vào website cung cấp sản phẩm, hệ thống khuyến nghị sẽ trả về một
danh sách ngắn các sản phẩm mà người dùng nhiều khả năng sẽ chọn, có thé baogồm cả những thứ mà người đó không biết từ trước Như vậy, hệ thống khuyến nghịgiúp tiết kiệm thời gian, tăng tốc độ tìm kiếm và giúp người dùng truy cập tới nội
dung họ quan tâm một cách dễ dàng hơn, đồng thời, gợi ý tới người dùng những đề
xuất mới mà trước đây họ chưa từng biết đến Với khả năng của hệ thống khuyếnnghị, các doanh nghiệp sử dụng chúng để giới thiệu sản phẩm tới người tiêu dùng,giúp gia tăng doanh số nhờ các ưu đãi, sản phẩm, dịch vụ được khuyến nghị mộtcách cá nhân hóa, làm nâng cao trải nghiệm khách hàng Điều này cải thiện lợi thếcạnh tranh của doanh nghiệp và giảm thiểu tỷ lệ khách hàng rời bỏ và đến với đốithủ cạnh tranh khi họ nhận thấy doanh nghiệp hiểu nhu cầu của họ và cung cấp cho
họ những thứ họ muốn
Hệ thống khuyến nghị là thành phần không thể thiếu của các nền tảng trựctuyến cung cấp đa dạng các loại hình dịch vụ, từ các website thương mại điện tử tới
nền tang dao tạo trực tuyến Theo McKinsey, 35% doanh thu của Amazon được tạo
ra từ các tương tác với hệ thống khuyến nghị của hãng này Một thống kê khác cũng
cho thấy 75% thời lượng xem phim trên Netflix được thực hiện nhờ các khuyến
nghị được cá nhân hoá.
Nguyễn Quốc Khánh — DI7CNPM3 5
Trang 17Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Đa số hệ thống khuyến nghị hiện nay cho phép cá nhân hoá khuyến nghị tới
người dùng, tức là giới thiệu những dịch vụ, sản phẩm chỉ có một nhóm người
thích, bên cạnh các sản phẩm đại chúng Việc cá nhân hoá khuyến nghị đòi hỏi cácthuật toán khuyến nghị hoàn thiện hơn Ví dụ, thuật toán thế hệ đầu tìm kiếm những
người dùng có lịch sử mua sắm tương tự như người dùng mà hệ thống đang cần đưa
ra khuyến nghị (mua những sản phẩm tương tự trong quá khứ), sau đó giới thiệucho người dùng này những sản phẩm mà những người kia mới mua
Các thuật toán thế hệ tiếp theo ngày càng hoàn thiện và cho kết quả tốt hơn.Một phương pháp thường được nhắc đến là thừa số hoá ma trận Theo phương phápnay, mỗi người dùng sẽ được biểu diễn đưới dạng một vector các con số, trong đómỗi phan tử của vector thé hiện mức độ người đó liên quan tới một số sở thích nào
đó Chang hạn, trong trường hợp khuyến nghị sản phẩm, một người dùng có thé
biểu diễn bằng vector (công nghé/0.8, mỹ phâm/0.1, quần áo/0.2) thể hiện đó là
người thích sản phẩm công nghệ và không thích mỹ phẩm hay quan áo lắm Tương
tự, một sản pham có thé được biểu dién dưới dạng (công nghệ/0.9, mỹ pham/0.3,quan áo/0.0) Người dùng sẽ được khuyến nghị những sản phẩm có vector biểu diễntương tự vector của mình Các vector này được tính từ lịch sử xem sản phẩm vàmua hàng của người dùng nhờ một thuật toán riêng Trên thực tế, các vector biểudiễn thường có vài trăm phan tử và các phan tử không có ý nghĩa rõ rang như trong
Hình 2.1 Hệ thong khuyến nghị bằng thừa số ma trận
Các hệ thống khuyến nghị hiện nay thường sử dụng mạng nơ ron nhân tạonhiều lớp và kỹ thuật học sâu dé xây dựng biểu diễn người dùng và sản phẩm Học
Nguyễn Quốc Khánh — DI7CNPM3 6
Trang 18Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
sâu cho thấy những tiến bộ đầy hứa hẹn trong những năm gan đây trong việc cung
cấp các khuyến nghị được cá nhân hóa Hệ thống dạng này cho phép học các quan
hệ phức tạp giữa người dùng, sản phẩm và tích hợp thêm các thông tin khác nhưngữ cảnh diễn ra tương tác giữa người dùng với sản phẩm, hay tích hợp thêm cácthông tin mô tả sản phẩm Điều này thực hiện được bởi học sâu có khả năng tìm
hiểu các đại diện phân tán trong các thuộc tính của người dùng và của mặt hàngtrong không gian vecto day đặc chiều thấp và kết hợp chúng dé giới thiệu các mặt
hàng phù hợp cho người dùng Với những lợi ích mang lại, các dịch vụ trực tuyến
nồi tiếng nhất hiện nay như Youtube, Netflix, Spotify, Pinterest, Amazon déu da
chuyên sang hệ thống khuyến nghị sử dung các kỹ thuật học sâu
NOU OBL p
©0000006080 |.
Hình 2.2 Mang neural học sâu
Qua khảo sát về các phương pháp khuyến nghị, em đã chọn phương pháp sửdụng mạng nẻual nhân tạo, cụ thể là phân loại sản phẩm băng CNN và tìm kiếm các
sản phâm tương ứng bằng thuật toán K-NN
2.2 Mạng neural nhân tạo (Neural Network)
Mang neural nhân tạo (Neural Network - NN) là một mô hình lập trình mô
phỏng cách thức hoạt động của mạng neural thần kinh Nó được cấu thành bởi các
neural đơn lẻ được gọi là các perceptron.
Nguyễn Quốc Khánh — DI7CNPM3 7
Trang 19Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Perceptron
Bias by
Activation function
X2 o—>(
Summing junction
Input signals
Synaptic weights
Hình 2.4 Cầu trúc một neural nhân tạo
Một perceptron sẽ nhận một hoặc nhiều đầu vào x (thể hiện bằng các node) vàcho ra một kết quả dạng nhị phân Các đầu vào được điều phối tầm ảnh hưởng bởicác tham số trọng lượng tương ứng w của nó, còn kết quả đầu ra được quyết địnhdựa vào một ngưỡng ở quyết định nào đó:
Với dau ra là dang nhị phan, ta rat khó có thé điều chỉnh một lượng nhỏ đầu vào
dé đầu ra thay đổi chút ít, nên dé linh động ta mở rộng đầu ra thành khoảng [0, 1]
Lúc này đầu ra được quyết định bởi một hàm ø(wTz) có giá trị trong khoảng [0, 1]
gọi là hàm kích hoạt (activation function) Vi dụ hàm kích hoạt sigmoid:
Nguyễn Quốc Khánh — DI7CNPM3 8
Trang 20Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Hinh 2.5 Ham sigmoid
Ngoài ham sigmoid ra con có các ham kích hoạt khác như ReLU, softmax,
Multi-layer perceptron (mạng neural nhân tạo)
Khi kết hợp các tang perceptron ta có một mạng neural tổng quát gồm 3
layer:
e Input layer: nhiều node ở input tạo thành một lớp đầu vào của mạng.
e Hidden layer: các layer trung gian thé hiện cho việc suy luận logic của
hidden layer
Hình 2.6 Mô hình neural network
Nguyễn Quốc Khánh — DI7CNPM3 9
Trang 21Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Mỗi mô hình luôn có 1 input layer, 1 output layer, có thé có hoặc không các
hidden layer Tống số layer trong mô hình được quy ước là số layer — 1 (Không tinh
input layer).
Mỗi node trong hidden layer va output layer :
e Liên kết với tat cả các node ở layer trước đó với các hệ số w riêng.
© Mỗi node có | hệ số bias b riêng
e Diễn ra 2 bước: tinh tng linear và áp dụng activation function.
Quá trình suy luận từ lớp đầu vào tới lớp đầu ra của mạng neural là quá trình
lan truyền tiến (feedforward), tức là đầu vào của các neural tại một tầng là lay két
qua từ neural tầng trước đó mà không có quá trình suy luận ngược lại
Feedforward
Hình 2.7 Mô hình neural network với 2-3-3-1 (input layer có 2 node, hidden layer 1 có 3
node, hidden layer 2 có 3 node, output layer có I node)
Goi input layer là a = x, (ở hình vé dưới day thia® = {x;,x;}), thực hiệntinh za đầu ra của input layer, dau vào của hidden layer 1:
Nguyễn Quốc Khánh — DI7CNPM3 10
Trang 22Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Hinh 2.9 Vi du ham loss function
Vi vay ta cần di tìm hệ số W và b Dé làm được điều đó ta sử dụng thuật toángradient descent (thuật toán tìm giá trị nhỏ nhất của hàm số f(x) dựa trên đạo hàm)
Ở đây ta cần tính đạo hàm của các hệ số W và b đối với ham Joss function Sau khi
Trang 23Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Quá trình này được gọi là backpropagation (lan truyền ngược)
Như vậy, mạng neural nhân tạo là một mô hình được tạo nên từ một lượng
lớn các phần tử (neural) kết nối với nhau thông qua các liên kết (trọng số liên kết)làm việc như một thé thống nhất để giải quyết một van dé cụ thé (phân loại dữ liệu,nhận dạng mẫu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bảnchất học ở đây chính là quá trình hiệu chỉnh trọng số liên kết giữa các neural
Với công việc phân loại ảnh, đặc biệt là với các ảnh có kích thước, độ phân
giải lớn, các mạng neural truyền thống sẽ gặp khó khăn khi có quá nhiều trọng số
Dé giải quyết van đề đó, em đã chọn sử dụng mang neural tích chập — CNN
2.3 Mang neural tích chap (Convolution Neural Network)
Phân loại anh là một bai toán quan trọng bậc nhất trong lĩnh vực “Thị giácmáy tính” (Computer Vision) Tuy nhiên các kiến trúc mạng neural truyền thống có
xu hướng kém hiệu quả khi kích thước ảnh đầu vào của mạng trở nên lớn hơn Với
ảnh có kích thước là 32*32*3 (cao 32 pixel, rộng 32 pixel, có 3 kênh mau) thi với
mạng neural truyền thống lớp neural ân đầu tiên sẽ có 32*32*3 = 3072 trọng số Sốlượng trọng số nay thì vẫn có thé “kiểm soát” được nhưng khi anh đầu vào có kíchthước 200*200*3 thì số lượng trọng số lên tới 120.000 trọng số tại lớp đầu tiên,cộng thêm các trọng số qua các lớp hidden layers thì số lượng trọng số của mạng sẽtăng cực kì nhanh Điều này làm cho mang neural truyền thống (dạng fully-
connected) dé bị overfitting (quá khít với dir liệu dùng dé huấn luyện nhưng hoạt
động kém với tập dữ liệu đánh giá, kiểm tra) và tiêu tốn nhiều tài nguyên tính toán
Convolution Neural Network (mang neural tích chập) hiện nay đang là giải
pháp tốt nhất dé giải quyết bài toán đó Bởi trong ảnh các pixel ở cạnh nhau thường
có liên kết với nhau hơn là những pixel ở xa, vì vậy áp dụng phép tính convolutionvào layer trong neural network ta có thể giải quyết được vấn đề lượng lớn parameter
mà vẫn lay ra được các đặc trưng của ảnh
Mạng neural tích chập bao gồm tập hợp các lớp chính cơ bản là: lớp tích
chập (Convolution layer), lớp lay mau (Pooling layer) và lớp kết nỗi đầy đủ (Fully
connected layer).
Nguyễn Quốc Khánh — DI7CNPM3 12
Trang 24Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
fc_3 fc_4
Fully-Connected Fully-Connected
Neural Network Neural Network
Conv_1 Conv_2 ReLU activation
Convolution Convolution L n_—
(5 x 5] kernel (5 x 5] kernel 8 : Max-Pooling : : Max-Poolin, (with
valid padding (2x2) valid padding (2x2) dropout)
INPUT n1 channels n1 channels n2 channels n2 channels : @& 9
(28 x28 x 1) (24x24 x n1) (12 x 12 x n1) (8x 8xn2) (4x4xn2) q | OUTPUT
n3 units
Hình 2.11 Kiến trúc cơ bản của một mang neural tích chập
Kiên trúc cơ bản của mạng neural tích chập
lên nhau Mỗi chiều ứng với một ma trận có kích thước H * W Chiều thứ nhất
chứa tat cả các sô năm trên tensor mà có toa độ (i, 7, 0)
Nguyễn Quốc Khánh — DI7CNPM3 13
Trang 25Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Scalar Vector Matrix Tensor
12 1 2||13 2
2 3 4 17ll54
—
Hinh 2.12 Vector, Matrix va Tensor
Một anh RGB voi H hang va W cột là một tensor với chiều H * W x3.Mỗi chiều là một ma trận H *W Trong CNN, anh dau vao duoc biéu dién
dưới dang tensor Các tang trung gian giữa các lớp tích chập cũng vậy 2 lớp
tích chập nhận đầu vào là 1 tensor và sau khi đưa qua mạng ta cũng sẽ nhận lại
được một tensor.
** Convolution layer
Day là lớp đầu tiên và cũng là lớp quan trọng nhất của mạng Lớp này có
chức năng chính là phát hiện các đặc trưng có tính không gian một cách hiệu
quả Các đặc trưng này có thể là các đặc trưng đơn giản như đặc trưng về góc,cạnh, màu sắc hoặc là các đặc trưng trừu tượng, phức tạp hơn Các đặc trưngnày sẽ giúp cho mô hình phân loại được dữ liệu đầu vào tốt hơn so với các
phương pháp trích chọn đặc trưng khác (LBP, HoG, ).
Đề thực hiện tinh convolution, ta dùng một 5ô loc (kernel/filter - ma trậnvuông kích thước k*k, trong đó k là s6 lẻ, giá tri của k thường là 1, 3, 5, 7, 9, )
10 1 W= 0 1 0
L 1 0 1j
Hình 2.13 Bộ lọc kích thước 3x3
Với mỗi phần tử trong ma trận điểm ảnh lây ra một ma trận có kíchthước băng kích thước của bộ lọc W có trung tâm bộ lọc trùng với phần tử đó
(đây là vì sao kích thước của kernel thường lẻ) gọi là ma trận A Sau đó tính
Nguyễn Quốc Khánh — DI7CNPM3 14
Trang 26Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
tông các phân tử của phép tính nhân chập cua ma tran A và ma tran W, roi việt
vào ma trận kêt quả Y.
Convolved | Convolved
Feature mage Feature
Hình 2.14 Tích chập một anh 5x5x1 với một bộ lọc 3x3x1 để có một hình anh chập 3x3x1
Bộ lọc di chuyên từ phải sang trái, từ trên xuống dưới lần lượt cho đếnkhi toàn bộ hình ảnh được duyệt qua Khoảng cách mà bộ lọc di chuyển từ điểm
ảnh này tới điểm anh sau đó gọi là Stride (bước nhảy) Khi Stride = 1 thì chúng
ta sẽ di chuyển các bộ lọc 1 pixel mỗi lần Khi Stride = 2 thì chúng ta di chuyểncác bộ lọc 2 pixel cùng một lúc và cứ thế di chuyền bộ lọc với Stride tương
ứng.
Lựa chon Stride càng lớn thì chiều của kết quả tích chập càng giảm.Padding là việc thêm các giá trị ở xung quanh biên ảnh ban đầu Padding = 1
tức là thêm 1 6 bọc xung quanh các cạnh của input, điều này đảm bảo phép tích
chập được thực hiện đủ trên toàn ảnh.
Trang 27Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Filter Padding = Same
A 9pIHS
Hinh 2.16 Stride = 1, Padding = I (Padding = Same)
Trong trường hop đầu vào là anh màu có 3 kênh mau RGB ta biểu diễn
ảnh dưới dạng fensor 3 chiều (Số thực là đữ liệu 0D, vector 1D, ma trận 2D còn
đữ liệu từ 3D trở di được gọi là tensor) nên bộ lọc cũng là một tensor 3 chiều
Hinh 2.17 Phép tinh convolution trén anh mau voi k=3
Nguyễn Quốc Khánh — DI7CNPM3 l6
Trang 28Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Pooling layer thường được dùng giữa các convolutional layer, dé giảm
kích thước dt liệu nhưng vẫn giữ được các thuộc tính quan trọng Kích thước
dữ liệu giảm giúp giảm việc tính toán trong model.
Có 2 loại Pooling layer phô bién là: Max pooling và Average pooling
Phép gdp cực đại (Max pooling) tra về giá tri lớn nhất từ phan hình ảnh đượcbao phủ bởi bộ lọc Trong khi đó, phép gộp trung bình (Average pooling) trả vềgiá trị trung bình của tất cả các giá trị từ phần hình ảnh được bao phủ bởi bộ
lọc.
Phép gộp cực đại cũng hoạt động như một công cụ khử nhiễu Nó loại bỏ
các nguồn nhiễu và thực hiện khử nhiễu song song với giảm kích thước Mặt
khác, phép gộp trung bình chỉ đơn giản thực hiện giảm kích thước như một cơ
chế khử nhiễu Do đó, chúng ta có thể nói rằng phép gộp cực đại hoạt động tốthơn rất nhiều so với phép gộp trung bình
Nguyễn Quốc Khánh — DI7CNPM3 17
Trang 29Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
“* Fully connected layer
Sau khi anh được truyền qua nhiều convolutional layer va pooling layer
thì model đã học được tương đôi các đặc diém cua ảnh (vi dụ mắt, mũi, khuôn
mặt, ) thì tensor của output của layer cuối cùng, kích thước H*W*D, sẽ được
chuyên về | vector kích thước (H*W*D)
Trang 30Đồ án tốt nghiệp đại học Chương 2 Giải quyết vấn đề
Hình 2.20 Fully connected layers
Sau đó sử dung mang neural kết nối đầy du (Fully connected layer) dé học các
tổ hop phi tuyến của các đặc trưng trích xuất từ kết qua ma trận tích chập đầu
ra, từ đó ra được output của model.
Output Volume Output Volume
trình huấn luyện Qua một loạt lần lặp, mô hình có thể phân biệt giữa các đặc trưng cốt
lõi và các đặc trưng không quan trọng trong hình anh va phân loại chúng bang hàm
kích hoạt (activation function).
2.4 Vanishing Gradient
Hiện nay các kiến trúc CNN phổ biến đều sử dụng rất nhiều lớp tích chập: 16(13 layers), Resnet-50(152 layers), InceptionV1(22 layers), Thế nhưng việc sửdụng nhiều lớp tích chập như vậy có thé gây ra hiện tượng Vanishing Gradient Trướchết thì Backpropagation Algorithm là một kỹ thuật thường được sử dụng trong quátrình training Ý tưởng chung của thuật toán lá sẽ đi từ output layer đến input layer và
VGG-tính toán gradient cua cost function tương ứng cho từng parameter (weight) của mạng.
Gradient Descent sau đó được sử dụng dé cập nhật các parameter đó
Nguyễn Quốc Khánh — DI7CNPM3 19