TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 26
NGHIÊN CỨU VÀ ỨNG DỤNG THUẬT TOÁN CF VÀ CBF
VÀO WEBSITE QUẢN LÝ CỬA HÀNG ĐỒ ĂN HÀN QUỐC
RESEARCH AND APPLY CF AND CBF ALGORITHMS
TO KOREAN FOOD STORE MANAGEMENT WEBSITES
Nguyễn Đức Thắng1,*, Võ Mạnh Cường2, Tống Thị Hồng Nhung3,
Nguyễn Thị Kim Chi2, Phạm Thế Anh4
1Lớp KTPM 01 - K16, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
2Lớp CNTT 04 - K16, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
3Lớp CNTT 02 - K16, Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
4Khoa Công nghệ thông tin, Trường Đại học Công nghiệp Hà Nội
*Email: ndt13102003@gmail.com
TÓM TẮT
Trong thế giới ngày nay, dịch vụ giao hàng đồ ăn đã trở thành một phần không thể thiếu của cuộc sống hàng ngày của
chúng ta. Tuy nhiên, với sự đa dạng và phong phú của các nhà hàng và món ăn, việc tìm kiếm và chọn lựa đồ ăn phù hợp
có thể trở nên khá phức tạp đối với người tiêu dùng. Để giải quyết vấn đề này, cả thuật toán CF (Collaborative Filtering)
và CBF (Content-Based Filtering) đã được áp dụng vào việc gợi ý đặt đồ ăn, giúp cá nhân hóa trải nghiệm mua sắm trực
tuyến và tăng sự hài lòng của khách hàng.
Từ khóa: Thuật toán CF, CBF, Nhà hàng, món ăn, Hàn Quốc
ASBTRACT
In today's world, food delivery services have become an indispensable part of our daily lives. However, with the variety
and variety of restaurants and cuisines, finding and choosing the right food can become quite complicated for consumers.
To solve this problem, both CF (Collaborative Filtering) and CBF (Content-Based Filtering) algorithms have been applied
to suggest food orders, helping to personalize the online shopping experience and increase customer satisfaction.
Keywords: CF algorithm, CBF, Restaurant, food, Korea
1. GIỚI THIỆU
Để xây dựng hệ thống website bán món ăn giúp tối ưu
hóa trải nghiệm người dùng nhóm nghiên cứu đã áp dụng
thuật toán Collaborative Filtering (CF) Content-Based
Filtering (CBF ) để xây dựng website phía back end.
Nội dung chính của nghiên cứu gồm: Tìm hiểu nghiên
cứu áp dụng thuật toán Collaborative Filtering (CF)
Content-Based Filtering (CBF) vào trang web bán đồ ăn
Hàn Quốc. Tạo ra một một website bán đồ ăn hệ thống
gợi ý món ăn linh hoạt và cá nhân hóa, giúp người dùng dễ
dàng tìm kiếm chọn lựa các món ăn phù hợp với khẩu vị
của họ. Đồng thời, việc áp dụng CF CBF giúp tối ưu hóa
quy trình mua sắm trực tuyến, tăng cường tương tác giữa
người dùng trang web, tạo ra một môi trường mua
sắm trực tuyến thú vị và thuận tiện.
2. THUẬT TOÁN CF VÀ CBF
2.1. Hệ gợi ý
Recommender Systems - RS (hệ gợi ý) là một dạng của
hệ thống lọc thông tin (information filtering), được sử
dụng để dự đoán sở thích (preferences) hay xếp hạng
(rating) mà người dùng có thể dành cho một mục thông tin
(item) nào đó họ chưa xem xét tới trong quá khứ (item
có thể là bài hát, bộ phim, đoạn video clip, sách, bài báo,đồ
ăn, phim truyện….
2.2. Thuật toán Collaborative Filtering
Lọc cộng tác một kỹ thuật có thể lọc ra các mục mà
người ng thể thích da tn phản ng của những
người dùng ơng tự. hot động bằng ch m kiếm
một nhóm lớn người tìm một nhóm người dùng nhỏ
n có sở thích tương tự như một người ng c thể.
xem t các mục hthích và kết hợp chúng để tạo ra danh
ch gi ý được xếp Phương pháp lọc cộng c hay hệ
thng lọc cộng tác phương pháp pn tích d liệu
người dùng để tìm ra mối ơng quan gia các đi tượng
người dùng. Lọc cộng c hot đng bằng cách xây dựng
một cơ sở dliệu, u trữ dưới dng ma trn người dùng
(users) - sn phẩm (items) và mỗi dòng ca nó là một
vec.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 272.3. Thuật toán Content-Based Filtering
Lọc dựa trên nội dung một loại hệ thống đề xuất
nhân hóa các đề xuất dựa trên hoạt động của người dùng.
phân ch các thuộc tính và từ khóa liên quan đến các
mặt hàng trong sở dữ liệu, giống như các thuộc nh trong
thị trường trực tuyến n chỉnh chúng với hồ người
dùng. Hồ sơ này được xây dựng từ các tương tác của người
dùng - mua hàng, xếp hạng (người dùng thích không
thích), tìm kiếm và nhấp chuột.
Tính năng lọc dựa trên nội dung cung cấp các đề xuất
phù hợp bằng cách tập trung vào sở thích nhân, điều
chỉnh hiệu quả các tùy chọn phù hợp với sở thích sở thích
riêng của từng người dùng.
2.4. Xây dựng Items Profile
Trong c hệ thống content-based, chúng ta cần xây
dựng một bộ hồ (profile) cho mỗi item. Profile này được
biểu diễn dưới dạng toán học một "feature vector" n
chiều. Trong những trường hợp đơn giản (ví dụ như item
dữ liệu dạng văn bản), feature vector được trực tiếp trích
xuất từ item. Từ đó chúng ta thể xác định các item nội
dung tương tự bằng cách tính độ ơng đồng giữa các
feature vector của chúng.
Một số phương pháp thường được sử dụng để xây dựng
feature vector là:
Sử dụng TF-IDF
Sử dụng biểu diễn nhị phân
Sử dụng TF-IDF: Giải thích một chút:
TF(t, d) = ( số lần từ t xuất hiện trong văn bản d) /
(tổng số từ trong văn bản d)
IDF(t, D) = log_e( Tổng số văn bản trong tập mẫu D/
Số văn bản có chứa từ t )
Ví dụ: Giả sử chúng ta tìm kiếm về "IoT and analytics"
trên Internet và tìm được những bài báo dưới đây:
Trong các bài báo, 5000 chứa analytics, 50.000 chứa
data số lượng tương tự dành cho các từ khác. Chúng ta
hãy giả sử rằng tổng số tài liệu là 1 triệu (10 ^ 6).
Tính TF: Ta sẽ tính TF cho mỗi từ trong mỗi bài báo
Ví dụ, TF(analytics) = 1 + lg21 = 2,322
Tính IDF:
IDF được tính bằng cách lấy nghịch đảo logarit của tần
số tài liệu trong toàn bộ kho tài liệu. Vì vậy, nếu có tổng số
1 triệu tài liệu được trả về bởi truy vấn tìm kiếm của chúng
tôi và trong số các tài liệu đó, ví dụ: nếu từ smart xuất hiện
trong 0,5 triệu lần trong tài liệu, giá trị IDF của sẽ là:
log10 (10 ^ 6/5000000) = 0,30
Tính trọng số TF-IDF:
Đầu tiên chúng ta sdụng công thức sau để tính tf-df.
Sau đó, chuẩn hóa feature vector bằng cách chia vector cho
độ dài của chính nó.
Như vậy, ta thể được các vector đặc trưng cho từng
bài báo. Sau đó chúng ta thể sử dụng độ tương đồng cosin
để tính khoảng cách giữa chúng.
Sử dụng biểu diễn nhị phân: Ví dụ:
Trên đây danh sách 6 bộ phim. Mỗi giá trị 0/1 thể hiện
bộ phim đó không/có thuộc thể loại cột tương ứng. Bên
cạnh đó, một hồ người dùng cũng được tạo ra, với 1
quan tâm, -1 không null là chưa đánh giá. Như trong
dụ trên, User 1 quan tâm bộ phim Star Wars IV, còn
User 2 thì không.
3. KIẾN TRÚC HỆ THỐNG
Hình 1. Biểu đồ use case tổng quan
Hệ thống gồm các tác nhân Khách, Người dùng
Quản trị viên. Khách là người sử dụng khi chưa đăng nhập
vào hệ thống. Người dùng người sử dụng đã đăng nhập
vào hệ thống. Quản trị viên có vai trò quản trị hệ thống.
Các chức năng của hệ thống:
Đăng nhập: Cung cấp quyền cũng như phạm vi truy cập
hệ thống.
KhachHang
Addmin
Ðangnhap
Ðangky
Timkiemsanpham
Xemdanhsachsanpham
Xemchitietsanpham
Muahang
Xacnhandonhang
Capnhatthongtinkhachhang
Quanlygiohang
Laydanhsachsanphamconlai
Xemdanhsachsanphamdaban
HeThong
Quanlysanpham
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 28Quản trị người dùng: Quản trị viên sẽ có vai trò quản trị
người dùng trong hệ thống.
Quản sản phẩm: Công việc quản trị sản phẩm của
quản trị viên.
4. DEMO SẢN PHẨM
Hình 2. Giao diện đăng nhập
Hình 3. Giao diện chi tiết sản phẩm
Hình 4. Giao diện giỏ hàng
Hình 5. Giao diện đặt mua hàng
5. ÁP DỤNG THUẬT TOÁN VÀO THỰC TẾ
Giao diện chương trình:
Hình 6. Mô tả loại đồ ăn
B2 Sau khi nhập mô tả loại sản phẩm hệ thống thu thập
dữ liệu trên sở dữ liệu thông tin về tả loại đồ ăn và
kết quả thu được là:
Kết quả người dùng nhập gợi ý:
Sử dụng thư viện natrual:
Hình 7. Danh sách mô tả sản phẩm trong database được thu thập
Hình 8. Thêm mảng vào Tfidf để đánh giá tần số suất hiện
Hình 9. Đánh giá tfidf và sắp xếp mảng giảm dần của trọng số về
mức độ giống nhau
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI HANOI UNIVERSITY OF INDUSTRY Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC Số 14 2024 29
Hình 10. Kết quả thu được
Chú thích:
Lưu mảng chId product trọng số được sắp xếp giảm
dần lấy ra 3 sản phẩm trọng số cao nhất để gợi ý cho
người dùng.
Hình 11. Giao diện hiển thị lên cho người dùng
Thông báo tìm kiếm thành công cho người dùng.
6. KẾT LUẬN
Thuật toán CBF và CF đã giúp cá nhân hóa trải nghiệm
mua sắm của người dùng, đưa ra những đề xuất sản phẩm
phù hợp với sở thích và nhu cầu của họ. Điều này đã tạo ra
một trải nghiệm mua sắm trực tuyến chất lượng và hấp dẫn
hơn. Bằng việc đề xuất sản phẩm chính xác, website đã thúc
đẩy tương tác của người dùng trên nền tảng của mình. Điều
này không chỉ tạo ra một môi trường mua sắm tốt hơn
còn tăng cường mối quan hệ khách hàng. Sự kết hợp giữa
CBF CF đã giúp tối ưu hóa doanh số bán hàng thông qua
việc đề xuất sản phẩm phù hợp và khuyến khích mua sắm.
TÀI LIỆU THAM KHẢO
[1]. Nguyễn Trung Phú, 2019. Giáo trình thiết kế Web. NXB Thống kê.
[2]. Mongoose, (n.d.), SchemaTypes, Mongoose, https://mongoosejs.com/docs/schematypes.html
[3]. Socket.IO, (n.d.), Socket.IO, Socket.IO. https://socket.io/
[4]. React, (n.d.), Introducing Hooks, React, https://legacy.reactjs.org/docs/hooks-intro.html
[5]. Express.js, (n.d.), Express - Node.js web application framework, Express.js, https://expressjs.com/
[6]. VietDung, 2018, Xây dựng một hệ thống gợi ý collaborative filtering dễ dàng như thế nào?”, Viblo,
https://viblo.asia/p/xay-dung-mot-he-thong-goi-y-collaborative-filtering-de-dang-nhu-the-nao-GrLZDXv3Zk0
[7]. NaturalNode, (n.d.), Natural, GitHub, https: //github.com/NaturalNode/natural
[8]. Vietnambiz, (2020, 15 tháng 5), Phương pháp lọc cộng tác trong thương mại điện tử là gì? Vietnambiz,
https://vietnambiz.vn/phuong-phap-loc-cong-tac-trong-thuong-mai-dien-tu-la-gi-20200515152001751.html
[9]. IBM, (n.d.), Content-based filtering, IBM, https://www.ibm.com/topics/content-based-filtering.