Vui lòng liên hệ ZALO 0353764719 hoặc GMAIL 123docntcgmail.com để mua tài liệu trực tiếp với giá ưu đãi, GIẢM GIÁ 2050% giá tài liệu Vui lòng liên hệ ZALO 0353764719 hoặc GMAIL 123docntcgmail.com để mua tài liệu trực tiếp với giá ưu đãi, GIẢM GIÁ 2050% giá tài liệu
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI : ỨNG DỤNG CNN TRONG BÀI TOÁN KHUYẾN NGHỊ SẢN PHẨM CHO ỨNG DỤNG BÁN HÀNG ĐIỆN TỬ Giảng viên hướng dẫn : ThS Nguyễn Hoàng Anh Sinh viên : Nguyễn Quốc Khánh Lớp : D17CNPM3 Khóa : 2017 - 2022 Hệ : Chính quy Hà Nội - 2022 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC ĐỀ TÀI : ỨNG DỤNG CNN TRONG BÀI TOÁN KHUYẾN NGHỊ SẢN PHẨM CHO ỨNG DỤNG BÁN HÀNG ĐIỆN TỬ Giảng viên hướng dẫn : ThS Nguyễn Hoàng Anh Sinh viên : Nguyễn Quốc Khánh Lớp : D17CNPM3 Khóa : 2017 - 2022 Hệ : Chính quy Hà Nội – 2022 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ………………………………………………… Điểm: (Bằng chữ: ) Hà Nội, ngày tháng năm 20… Giảng viên hướng dẫn NHẬ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 năm 20… Giảng viên phản biện Đồ á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, thân em người xung quanh có thói quen mua sắm qua mạng nhiều Hiện trang thương mại điện tử Shopee, Lazada, Amazon, … bán nhiều mặt hàng với mẫu mã đa dạng Với người dùng phổ thơng để chọn sản phẩm hợp với nhu cầu thân cần nhiều thời gian tìm kiếm Đồng thời với doanh nghiệp, người bán hàng vừa nhỏ, sản phẩm họ cung cấp cần chi phí marketing lớn đển dễ dàng tiếp cận đến người dùng Chính mà em muốn lựa chọn đề tài “Ứng dụng CNN toán khuyến nghị sản phẩm cho ứng dụng bán hàng điện tử” giải pháp để giúp doanh nghiệp người tiêu dùng có trải nghiệm tốt trình mua sắm trực tuyến Đồ án gồm có phần: Mở đầu, Nội dung Kết luận Phần nội dung bao gồm chương: CHƯƠNG 1: Giới thiệu tổng quan đề tài CHƯƠNG 2: Giải vấn đề CHƯƠNG 3: Phân tích thiết kế hệ thống CHƯƠNG 4: Cài đặt triển khai hệ thống Nguyễn Quốc Khánh – D17CNPM3 i Đồ á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 Viễn Thơng tạo điều kiện thuận lợi cho em học tập thực đề tài tốt nghiệp Em xin bày tỏ lịng biết ơn sâu sắc tới thầy Nguyễn Hồng Anh tận tình định hướng, hướng dẫn, hỗ trợ chúng em trình thực đề tài Chúng em xin chân thành cảm ơn thầy cô khoa Cơng nghệ thơng tin, khoa Cơ tận tình giảng dạy, trang bị cho em kiến thức quý báu năm vừa qua Cuối cùng, em xin cảm ơn gia đình, bạn bè người bên cạnh, ln quan tâm động viên, giúp em hoàn thành đồ án tốt Mặc dù cố gắng hồn thành khóa luận phạm vi khả cho phép tránh khỏi thiếu sót Em mong nhận thơng cảm, góp ý nhận xét quý thầy cô bạn Hà Nội, tháng năm 2022 Sinh viên Nguyễn Quốc Khánh Nguyễn Quốc Khánh – D17CNPM3 ii Đồ án tốt nghiệp đại học MỤC LỤC LỜI CẢM ƠN i MỤC LỤC iii DANH MỤC HÌNH, BẢNG v DANH MỤC TỪ VIẾT TẮT vii CHƯƠNG 1: GIỚI THIỆU VÀ TỔNG QUAN ĐỀ TÀI 1.1 Thực trạng vấn đề 1.2 Nền tảng phát triển 1.3 Mục tiêu CHƯƠNG 2: GIẢI QUYẾT VẤN ĐỀ 2.1 Hệ khuyến nghị 2.2 Mạng neural nhân tạo (Neural Network) 2.3 Mạng neural tích chập (Convolution Neural Network) 12 2.4 Vanishing Gradient 19 2.4 Xception Network 21 2.5 Thuật toán K- Láng Giềng (K- Nearest Neighbor) 23 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 25 3.1 Phân tích hệ thống 25 3.1.1 Mơ hình ca sử dụng 25 3.1.2 Use case đăng nhập 25 3.1.3 Use case đăng ký 26 3.1.4 Use case xem danh sách sản phẩm 28 3.1.5 Use case xem chi tiết sản phẩm 28 3.1.6 Use case thêm sản phẩm vào giỏ hàng 29 3.1.7 Use case mua hàng 30 3.2 Thiết kế hệ thống 32 3.2.1 Thành phần hệ thống: 32 3.2.2 Biểu đồ lớp 33 3.2.3 Biểu đồ CSDL 33 3.3 Chức khuyến nghị sản phẩm 34 3.3.1 Chuẩn bị liệu huấn luyện CNN 34 3.3.2 Huấn luyện model phân loại 34 3.3.3 Chuẩn bị liệu cho KNN 35 3.3.4 Khuyến nghị 35 CHƯƠNG 4: CÀI ĐẶT, TRIỂN KHAI 37 Nguyễn Quốc Khánh – D17CNPM3 iii Đồ án tốt nghiệp đại học 4.1 Cài đặt server 37 4.1.1 Docker 37 4.1.2 CSDL 37 4.1.3 Model 38 4.1.4 API 38 4.2 Cài đặt app client 38 4.2.1 Kiến trúc ứng dụng 38 4.3 Giao diện 39 4.3.1 Giao diện trang chủ 39 4.3.2 Giao diện chi tiết sản phẩm 40 4.3.3 Giao diện giỏ hàng 41 4.3.4 Giao diện đăng nhập 43 4.3.5 Giao diện đăng ký 45 4.3.6 Giao diện đặt hàng 46 KẾT LUẬN 47 Kết đạt 47 Hạn chế 47 Hướng phát triển 47 TÀI LIỆU THAM KHẢO 48 Danh sách website tham khảo 48 Nguyễn Quốc Khánh – D17CNPM3 iv Đồ á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 Hình 1.2 Bảng xếp hạng số lượng người sử dụng smartphone Hình 1.3 Thống kê thiết bị dùng để mua sắm online Hình 1.4 So sánh ưu nhược điểm app Native Hybrid Hình 1.5 Thống kê thị phần smartphone tháng 6/2020 Hình 2.1 Hệ thống khuyến nghị thừa số ma trận Hình 2.2 Mạng neural học sâu Hình 2.4 Cấu trúc neural nhân tạo Hình 2.5 Hàm sigmoid Hình 2.6 Mơ hình neural network Hình 2.7 Mơ hình neural network với 2-3-3-1 (input layer có node, hidden layer có node, hidden layer có node, output layer có node) 10 Hình 2.8 Quá trình feedforward 11 Hình 2.9 Ví dụ hàm loss function 11 Hình 2.10 Quá trình backpropagation 11 Hình 2.11 Kiến trúc mạng neural tích chập 13 Hình 2.12 Vector, Matrix Tensor 14 Hình 2.13 Bộ lọc kích thước 3x3 14 Hình 2.14 Tích chập ảnh 5x5x1 với lọc 3x3x1 để có hình ảnh chập 3x3x1 15 Hình 2.15 Stride = 2, Padding = 15 Hình 2.16 Stride = 1, Padding = (Padding = Same) 16 Hình 2.17 Phép tính convolution ảnh màu với k=3 16 Hình 2.18 Thực phép tính convolution ảnh màu 17 Hình 2.19 Ví dụ Pooling layer 18 Hình 2.20 Fully connected layers 19 Hình 2.21 Grdient Descenct 20 Hình 2.22 Hiện tượng Vanishing Gradient 20 Hình 2.23 Mơ hình mạng Xception 21 Hình 2.24 Block Depthwise Separable Convolution 22 Hình 2.25 Block Residual 22 Hình 2.26 Bản đồ 1NN 24 Hình 3.1 Biểu đồ ca sử dụng 25 Nguyễn Quốc Khánh – D17CNPM3 v Đồ án tốt nghiệp đại học Hình 3.2 Biểu đồ chức đăng nhập 26 Hình 3.3 Biểu đồ chức đăng ký 27 Hình 3.4 Biểu đồ chức xem danh sách sản phẩm 28 Hình 3.5 Biểu đồ chức chi tiết sản phẩm 29 Hình 3.6 Biểu đồ chức thêm sản phẩm vào giỏ hàng 30 Hình 3.7 Biểu đồ chức mua hàng 31 Hình 3.8 Sơ đồ kết nối hệ thống 32 Hình 3.9 Biểu đồ lớp thực thể hệ thống 33 Hình 3.10 Biểu đồ CSDL 33 Hình 3.11 Biểu đồ độ xác q trình huấn luyện 34 Hình 3.12 Biều đồ mát trình huấn luyện 35 Hình 4.1 Cấu hình CSDL Django 37 Hình 4.2 Giao diện trang chủ 39 Hình 4.3 Giao diện chi tiết sản phảm 40 Hình 4.4 Giao diện giỏ hàng trống 41 Hình 4.5 Giao diện giỏ hàng người dùng chọn sản phẩm 42 Hình 4.6 Giao diện thơng tin tài khoản chưa đăng nhập(trái) đăng nhập(phải) 43 Hình 4.7 Giao diện trang đăng nhập 44 Hình 4.8 Giao diện đăng ký chọn ngày sinh 45 Hình 4.9 Giao diện đặt hàng 46 Bảng 3.1 Kịch ca sử dụng đăng nhập 26 Bảng 3.2 Kịch ca sử dụng đăng ký 27 Bảng 3.3 Kịch ca sử dụng xem danh sách sản phẩm 28 Bảng 3.4 Kịch ca sử dụng xem chi tiết sản phẩm 29 Bảng 3.5 Kịch ca sử dụng thêm sản phẩm vào giỏ hàng 30 Bảng 3.6 Kịch ca sử dụng đặt hàng 31 Bảng 4.1 Cấu hình server 37 Bảng 4.2 Phân loại method API view DRF 38 Bảng 4.3 Cấu hình thiết bị kiểm thử Android 38 Nguyễn Quốc Khánh – D17CNPM3 vi Đồ án tốt nghiệp đại học Chương Phân tích thiết kế hệ thống Hình 3.12 Biều đồ mát trình huấn luyện 3.3.3 Chuẩn bị liệu cho KNN Để biểu diễn quan hệ khoảng cách sản phẩm, em sử dụng thư viện Annoy Đầu tiên em dùng model train trên, bỏ layer Dense Như đầu model mảng có chiều dài 2048 biểu thị cho đặc trưng ảnh Mảng cho vào Annoy điểm hệ tọa độ 2048 chiều Với danh mục có hệ tọa độ riêng với điểm thêm sẵn lưu thành file ann để tái sử dụng hệ thống cần khởi động lại 3.3.4 Khuyến nghị Quá trình khuyến nghị bắt đầu người dùng cung cấp id sản phẩm Hệ thống thu thập ảnh sản phẩm dùng model để phân loại theo danh mục Electronics Cell Phones and Accessories Sau hệ thống trích xuất đặc trưng ảnh đầu vào tìm file ann 10 sản phẩm có khoảng cách gần với ảnh đầu vào theo công thức khoảng cách Angular (sqrt{2[1-cos(u,v)]} với u,v vector nối gốc tọa độ điểm biểu diễn đặc trưng sản phẩm) Nguyễn Quốc Khánh – D17CNPM3 35 Đồ án tốt nghiệp đại học Chương Phân tích thiết kế hệ thống Sau vẽ biểu đồ ca sử dụng, biểu đồ tuần tự, biểu đồ lớp biểu đồ CSDL cho hệ thống bán hàng điện tử, em thực cài đặt theo thiết kế viết Nguyễn Quốc Khánh – D17CNPM3 36 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai CHƯƠNG 4: CÀI ĐẶT, TRIỂN KHAI Dựa vào phần phân tích thiết kế trên, em cài đặt triển khai hệ thống bán hàng điện tử bao gồm server client Android 4.1 Cài đặt server Cấu hình server để chạy hệ thống biểu diễn bảng CPU RAM Bộ nhớ Django Postgres core 16 GB 400GB SSD 3.2.8 13.0 Bảng 4.1 Cấu hình server 4.1.1 Docker Hệ thống Django CSDL Postgres docker hóa để quản lý thông qua công cụ Portainer dễ dàng triển khai Docker tảng cho phép đóng gói thành phần hệ thống thư viện thành đối tượng riêng, chạy triển khai nhiều mơi trường khác Docker có tốc độ chạy dừng nhanh máy ảo loại bỏ thành phần dư thừa Vì docker tách biệt với máy chủ nên chạy hay gỡ dễ dàng, không ảnh hưởng đến thành phần khác 4.1.2 CSDL Em kết nối Django với hệ CSDL Postgres cách truyền thông tin CSDL vào file setting.py Django Các thơng tin gồm có engine (), name (tên CSDL), user (user sử dụng CSDL), password (mật truy cập CSDL), host (đường dẫn đến CSDL), port (cổng kết nối đến CSDL) Hình 4.1 Cấu hình CSDL Django Nguyễn Quốc Khánh – D17CNPM3 37 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.1.3 Model Trong Django, em viết lớp thực thể file models.py Các lớp thực thể kế thừa từ lớp models.Model Sau code model em chạy code python manage.py makemigration để sinh câu lệnh SQL dành cho việc tạo thay đổi CSDL khớp với code model Để áp dụng thay đổi em chạy thêm lệnh python manage.py migrations 4.1.4 API Thư viện Django Rest Framework hỗ trợ lớp View để tạo API dễ dàng Mỗi method API có lớp View riêng để xử lý Method View Class POST GET PUT DELETE CreateAPIview ListAPIView RetriveAPIView UpdateAPIView DestroyAPIView Bảng 4.2 Phân loại method API view DRF Ngồi DRF cịn hỗ trợ phân quyền người dùng Mỗi View cần khai báo biến permission_classes với quyền mong muốn (AllowAny: Công khai; IsAuthenticated: Cần đăng nhập, IsAdminUser: Chỉ user với quyền admin dung, IsAuthenticatedOrReadOnly: có quyền xem thay đổi đăng nhập, …) 4.2 Cài đặt app client Em sử dụng trình biên dịch Android Studio Artic Fox để lập trình app Android Cấu hình thiết bị kiểm thử mô tả bảng dưới: Android verion API version SoC RAM 9.0 API 28 Snapdragon 845 4GB Bảng 4.3 Cấu hình thiết bị kiểm thử Android 4.2.1 Kiến trúc ứng dụng Em xây dựng dự án Android theo kiến trúc Clean Architecture, chia code thành lớp: lớp Giao diện (UI Layer), lớp Dữ liệu (Data Layer) Lớp liệu kết hợp CSDL local (SQLite, Preference) API từ Backend Việc tương tác với server thực thư viện Retrofit, OkHttp Gson Serialization Các thư viện cung cấp phương thức để gọi request API đến server, thêm thông tin vào header request, chuyển đối tượng JavaKotlin thành json Lớp giao diện thiết kế theo cấu trúc Activity nhiều Fragment, có khả linh hoạt tái sử dụng tốt Phần liệu hiển thị khơng bị bó buộc theo vịng Nguyễn Quốc Khánh – D17CNPM3 38 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai đời Activity hay Fragment mà giữ lớp ViewModel, giúp phân tách liệu khỏi view tồn lâu, giảm thời gian tải liệu 4.3 Giao diện 4.3.1 Giao diện trang chủ Hình 4.2 Giao diện trang chủ Nguyễn Quốc Khánh – D17CNPM3 39 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.3.2 Giao diện chi tiết sản phẩm Hình 4.3 Giao diện chi tiết sản phảm Nguyễn Quốc Khánh – D17CNPM3 40 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.3.3 Giao diện giỏ hàng Hình 4.4 Giao diện giỏ hàng trống Nguyễn Quốc Khánh – D17CNPM3 41 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai Hình 4.5 Giao diện giỏ hàng người dùng chọn sản phẩm Nguyễn Quốc Khánh – D17CNPM3 42 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.3.4 Giao diện đăng nhập Hình 4.6 Giao diện thông tin tài khoản chưa đăng nhập(trái) đăng nhập(phải) Nguyễn Quốc Khánh – D17CNPM3 43 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai Hình 4.7 Giao diện trang đăng nhập Nguyễn Quốc Khánh – D17CNPM3 44 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.3.5 Giao diện đăng ký Hình 4.8 Giao diện đăng ký chọn ngày sinh Nguyễn Quốc Khánh – D17CNPM3 45 Đồ án tốt nghiệp đại học Chương Cài đặt, triển khai 4.3.6 Giao diện đặt hàng Hình 4.9 Giao diện đặt hàng Sau trình cài đặt em triển khai thành cơng hệ thống bán hàng điện tử có chức năng: Tạo tài khoản, Đăng nhập, Lướt xem sản phẩm khuyến nghị sản phầm tương tự, thêm vào giỏ hàng mua hàng Hệ thống em bao gồm Backend chuyên lưu trữ xử lý liệu, app Android để người dùng tương tác với hệ thống Nguyễn Quốc Khánh – D17CNPM3 46 Đồ án tốt nghiệp đại học Kết luận KẾT LUẬN Qua thời gian tìm hiểu, học hỏi xây dựng đề tài "Ứng dụng CNN toán khuyến nghị sản phẩm cho ứng dụng bán hàng điện tử”, em đạt số kết định: Kết đạt ● Nâng cao kỹ phân tích, thiết kế hệ thống ● Hiểu ứng dụng CNN việc phân loại trích xuất đặc trưng ảnh ● Hiểu ứng dụng xây dựng hệ thống thương mại điện tử ● Trau dồi thêm kỹ xây dựng ứng dụng Android Hạn chế ● Hệ thống chưa có hướng dẫn cách sử dụng chi tiết cho người dùng ● Chưa tối ưu hóa trình chọn mua hàng ● Chưa xử lý hết trường hợp xảy đến người dùng nhập liệu Hướng phát triển ● Phát triển hệ khuyến nghị dựa lịch sử xem mua sản phẩm người dùng ● Áp dụng công nghệ xử lý ngơn ngữ tự nhiên để tính khoảng cách sản phẩm theo tên ● Phát hành ứng dụng Android lên Google Play Store Nguyễn Quốc Khánh – D17CNPM3 47 Đồ án tốt nghiệp đại học Tài liệu tham khảo TÀI LIỆU THAM KHẢO Danh sách website tham khảo Sách trắng Thương mại điện tử Việt Nam 2020: https://trungtamwto.vn/file/20978/bctmdt2020-8-pdf.pdf [2] Hệ thống khuyến nghị - AI best practices - FPT Digital: https://digital.fpt.com.vn/he-thong-khuyen-nghi-ai-best-practices/ [3] Việt Nam nằm top 10 quốc gia dùng smartphone nhiều giới: https://www.thegioididong.com/tin-tuc/viet-nam-top-10-quoc-gia-sudung-smartphone-nhieu-nhat-the-gioi-1356700 [4] What is the Difference between Native App and Hybrid App? - Existek Blog: https://existek.com/blog/difference-between-native-app-and-hybridapp/ [5] Neural network gì? Vai trị ứng dụng neural network | CareerLink.vn: https://www.careerlink.vn/cam-nang-viec-lam/kien-thuckinh-te/neural-network-la-gi-vai-tro-va-ung-dung-cua-neural-network [6] Bài 6: Convolutional neural network | Deep Learning bản: https://nttuan8.com/bai-6-convolutional-neural-network/ [7] Vanishing & Exploding Gradients Problems in Deep Neural Networks (Part 1): https://viblo.asia/p/vanishing-exploding-gradients-problems-indeep-neural-networks-part-1-eW65G2gRlDO [8] Giới thiệu mạng ResNet: https://viblo.asia/p/gioi-thieu-mang-resnetvyDZOa7R5wj [9] XCeption Model and Depthwise Separable Convolutions -: https://maelfabien.github.io/deeplearning/xception/ [10] Machine Learning bản: https://machinelearningcoban.com/2017/01/08/knn/ [11] Django documentation | Django documentation | Django: https://docs.djangoproject.com/en/4.0/ [12] Docker gì? Tìm hiểu thêm kiến thức Docker | TopDev: https://topdev.vn/blog/docker-la-gi/ [13] Home - Django REST framework: https://www.django-restframework.org/ [14] How To Use PostgreSQL with your Django Application on Ubuntu 14.04 | DigitalOcean: https://www.digitalocean.com/community/tutorials/how-to-use-postgresqlwith-your-django-application-on-ubuntu-14-04 [15] Guide to app architecture | Android Developers: https://developer.android.com/jetpack/guide [16] Save data in a local database using Room | Android Developers: https://developer.android.com/training/data-storage/room [1] Nguyễn Quốc Khánh – D17CNPM3 48 Đồ án tốt nghiệp đại học Tài liệu tham khảo [17] Retrofit: https://square.github.io/retrofit/ [18] ViewModel Overview | Android Developers: https://developer.android.com/topic/libraries/architecture/viewmodel Nguyễn Quốc Khánh – D17CNPM3 49