Bối cảnh và vấn đề nghiên cứu
Sự phát triển của công nghệ thông tin và xu hướng số hóa trong đời sống xã hội đã thúc đẩy các phương thức giao dịch, tìm kiếm thông tin trực tuyến phát triển mạnh mẽ. Theo số liệu được tác giả viện dẫn, tại Việt Nam trung bình mỗi người dân sở hữu 1,3 thiết bị di động, trong đó 70% là điện thoại thông minh (smartphone). Ngành thực phẩm trực tuyến cũng được dự báo có tiềm năng tăng trưởng chiếm khoảng 15% GDP, trở thành một trong mười nhóm ngành sản phẩm được tìm kiếm và giao dịch nhiều nhất trên Internet.
Đi đôi với sự phát triển kinh tế và giao lưu văn hóa, nhu cầu về chế độ dinh dưỡng hợp lý nhằm bảo vệ sức khỏe lâu dài ngày càng được quan tâm. Tuy nhiên, qua khảo sát thực tế của tác giả, đa số các bữa ăn hàng ngày trong gia đình hiện nay vẫn được chuẩn bị theo cảm tính và sở thích nhất thời, thiếu tính toán khoa học về mặt dinh dưỡng. Người nội trợ thường xuyên gặp khó khăn với câu hỏi lặp lại mỗi ngày: "hôm nay ăn gì?". Dù trên thế giới và tại Việt Nam đã có một số ứng dụng hỗ trợ ẩm thực như Yummly, Meal Planer Pro, hay "Ăn gì hôm nay - Món ngon mỗi ngày", phần lớn các hệ thống này chỉ tập trung vào từng món ăn đơn lẻ hoặc tra cứu theo từ khóa cứng nhắc, chưa thể tự động gợi ý một thực đơn mâm cơm hoàn chỉnh kết hợp hài hòa giữa yêu cầu món ăn và đặc điểm cá nhân của người dùng.
Trước yêu cầu thực tiễn đó, đồ án tốt nghiệp kỹ sư chuyên ngành Công nghệ dữ liệu của tác giả Đỗ Đình Hưng (Học viện Kỹ thuật Quân sự, hoàn thành năm 2020 dưới sự hướng dẫn của TS. Phan Việt Anh) đã lựa chọn đề tài: "Xây dựng hệ thống gợi ý thực đơn bữa ăn hàng ngày sử dụng mô hình học sâu".
Mục tiêu nghiên cứu:
Đề tài hướng tới việc nghiên cứu và xây dựng phương pháp gợi ý thực đơn mâm cơm hàng ngày phù hợp với yêu cầu món ăn và thông tin cá nhân của người dùng. Hệ thống tổng hợp và lưu trữ tập trung dữ liệu thực đơn từ nhiều nguồn, cung cấp chi tiết thành phần nguyên liệu và quy trình chế biến của từng món ăn, hỗ trợ người dùng đưa ra quyết định nhanh chóng và cân bằng dinh dưỡng.
Nhiệm vụ nghiên cứu (gồm 3 nhiệm vụ chính theo văn bản):
- Nghiên cứu thu thập dữ liệu và tổ chức lưu trữ dữ liệu ẩm thực thành cơ sở dữ liệu.
- Nghiên cứu các thuật toán và mô hình học sâu để gợi ý thực đơn bữa ăn cho người dùng dựa trên nguồn dữ liệu đã thu thập.
- Xây dựng giao diện cơ bản của hệ thống để thử nghiệm, đánh giá và cải thiện các phương pháp đã nghiên cứu.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các phương pháp thu thập, xử lý và lưu trữ dữ liệu ẩm thực; kho dữ liệu thực đơn và món ăn tiếng Việt; các thuật toán gợi ý và mô hình học sâu ứng dụng trong bài toán gợi ý.
- Phạm vi nghiên cứu: Dữ liệu thực đơn mâm cơm và món ăn truyền thống thu thập trên các website ẩm thực tiếng Việt; mô hình gợi ý thử nghiệm trên không gian đặc trưng người dùng và tương tác mô phỏng tại Việt Nam.
Cơ sở lý thuyết và phương pháp
Đồ án tổng hợp các nền tảng lý thuyết về hệ thống hỗ trợ ra quyết định, kỹ thuật học sâu và xử lý ngôn ngữ tự nhiên để giải quyết bài toán gợi ý cá nhân hóa:
1. Phân loại hệ thống gợi ý (Recommender Systems)
Tác giả phân tích ba phương pháp tiếp cận kinh điển:
- Content-based systems (Gợi ý dựa trên nội dung): Khai thác đặc trưng của các sản phẩm để đề xuất sản phẩm tương tự mà người dùng từng quan tâm.
- Collaborative filtering (Lọc cộng tác): Dự đoán mức độ yêu thích của một người dùng đối với sản phẩm dựa trên hành vi, đánh giá của các người dùng có sự tương đồng (similarity).
- Knowledge-based system (Hệ gợi ý dựa trên tri thức): Suy luận dựa trên nhu cầu cụ thể và đặc điểm nhân khẩu học của người dùng (như giới tính, độ tuổi, bệnh lý) kết hợp với các luật tri thức chuyên gia.
2. Nền tảng học sâu và mạng nơ-ron nhân tạo (ANN)
Tác giả hệ thống hóa cấu trúc mạng nơ-ron truyền thẳng (Feedforward Neural Network), thuật toán tối ưu hóa Gradient Descent kết hợp giải thuật lan truyền ngược (Backpropagation) để cập nhật trọng số và độ lệch (bias). Các hàm kích hoạt phi tuyến được khảo sát bao gồm:
- Hàm Sigmoid: $f(x) = \frac{1}{1 + e^{-x}}$, dải giá trị $[0, 1]$.
- Hàm Tanh: $f(x) = \frac{1 - e^{-2x}}{1 + e^{-2x}}$, dải giá trị $[-1, 1]$.
- Hàm Chỉnh lưu tuyến tính (ReLU): $f(x) = \max(0, x)$, giúp hạn chế triệt tiêu đạo hàm trong quá trình huấn luyện lớp ẩn.
3. Biểu diễn từ và phân loại văn bản với FastText
Để xử lý các truy vấn ngôn ngữ tự nhiên từ người dùng về tên món ăn bằng tiếng Việt, tác giả sử dụng thư viện FastText với hai kiến trúc biểu diễn từ:
- Continuous Bag-of-Words (CBOW): Dự đoán từ trung tâm dựa trên ngữ cảnh xung quanh, cho tốc độ huấn luyện nhanh.
- Skip-gram: Dùng từ mục tiêu để dự đoán các từ ngữ cảnh xung quanh, nắm bắt tốt các từ có tần suất xuất hiện thấp.
Thư viện này cung cấp các phương thức như
train_supervised (phân loại nhãn văn bản), train_unsupervised (học vector từ), get_word_vector và get_nearest_neighbors (truy vấn từ tương đồng ngữ nghĩa).
4. Mô hình học sâu kết hợp Wide & Deep
Đồ án chỉ ra nhược điểm của hai mô hình đơn lẻ: mô hình tuyến tính Wide có khả năng "ghi nhớ" (memorization) tốt các quy tắc kết hợp đặc trưng lịch sử nhưng thiếu tính linh hoạt; trong khi mô hình Deep có khả năng "khái quát hóa" (generalization) thông qua vector nhúng (embedding vectors) dày đặc chiều thấp nhưng dễ đưa ra các gợi ý quá rộng, không bám sát yêu cầu.
Tác giả đề xuất áp dụng kiến trúc Wide & Deep thông qua cơ chế huấn luyện chung (Joint Training):
- Thành phần Wide: Mô hình tuyến tính tổng quát sử dụng các biến đổi tích chéo đặc trưng (cross-product transformations): $\phi_k(x) = \prod_{i=1}^d x_i^{c_{ki}}, c_{ki} \in {0, 1}$. Thành phần này được tối ưu hóa bằng thuật toán Follow The Regularized Leader (FTRL) với chuẩn hóa L1 ($L_1$ regularization).
- Thành phần Deep: Mạng truyền thẳng nhiều lớp chuyển đổi các đặc trưng phân loại thưa thớt thành các vector nhúng liên tục, đi qua các lớp ẩn kích hoạt bằng hàm ReLU: $a^{(l+1)} = \text{ReLU}(W^{(l)} a^{(l)} + b^{(l)})$, tối ưu hóa bằng thuật toán AdaGrad.
- Hàm suy luận chung: Kết hợp log-odds của cả hai thành phần qua hàm mất mát logistic:
$$P(Y = 1 | x) = \sigma\left(w_{wide}^T [x, \phi(x)] + w_{deep}^T a^{(lf)} + b\right)$$
trong đó $Y$ là nhãn nhị phân thể hiện tương tác, $\sigma$ là hàm sigmoid, $a^{(lf)}$ là đầu ra của lớp ẩn cuối cùng của nhánh Deep.
5. Phương pháp và chỉ số đánh giá thực nghiệm
Đồ án sử dụng hai thước đo chất lượng gợi ý tại danh sách Top K:
- Accuracy@Top K (Acc@K): Tỷ lệ các sản phẩm phù hợp được gợi ý trên tổng số K sản phẩm đề xuất.
- Mean Average Precision@Top K (mAP@K): Giá trị trung bình của chỉ số Average Precision (AP@K) trên toàn bộ tập dữ liệu kiểm thử $m$ bản ghi:
$$AP@K = \frac{1}{n} \sum_{i=1}^K P(i) \cdot rel(i)$$
trong đó $n$ là số nhãn sản phẩm liên quan, $P(i)$ là độ chính xác tại vị trí cắt thứ $i$, và $rel(i)$ là biến chỉ báo nhận giá trị 1 nếu sản phẩm thứ $i$ phù hợp, ngược lại bằng 0.
Thiết kế và triển khai hệ thống
Hệ thống gợi ý thực đơn được phân tách thành 3 phân hệ chức năng tương tác đồng bộ:
[Phân hệ Dữ liệu] [Phân hệ Thuật toán] [Phân hệ Giao diện]
- Scrapy & BeautifulSoup4 --> - Xử lý tương đồng FastText --> - Tìm kiếm bằng văn bản
- MongoDB (Thực đơn/User) - Mô hình Wide & Deep - Hiển thị Top 3 thực đơn
- Bộ lọc thực đơn phổ biến - Xem chi tiết / Phản hồi
1. Phân hệ thu thập, xử lý và lưu trữ dữ liệu
- Công nghệ thu thập: Ngôn ngữ Python 3 kết hợp các thư viện chuyên dụng:
scrapy: Đóng vai trò spider tự động gửi HTTP request, duyệt cây phân cấp danh mục và bóc tách các liên kết URL chi tiết mâm cơm.
urllib.request: Tải nội dung mã nguồn HTML thô từ các liên kết đã trích xuất.
BeautifulSoup4: Phân tích cú pháp cây DOM HTML để bóc tách các trường dữ liệu có cấu trúc.
- Nguồn dữ liệu: Tiến hành thu thập trên 2 website ẩm thực chính là "365 mâm cơm" (elinerfood.com) và "thực đơn theo tuần" (sucsongmoi.net), kết hợp với trang "thực đơn cho 1 tháng" (pasgo.vn) cùng các chuyên mục đời sống của Vietnamnet, VnExpress, 24h.com.
- Tổ chức cơ sở dữ liệu: Sử dụng hệ quản trị CSDL NoSQL MongoDB nhờ khả năng lưu trữ linh hoạt dữ liệu dạng tài liệu JSON/BSON không định trước cấu trúc cứng nhắc:
- Bảng thực đơn: Lưu trữ mã định danh
ID, danh mục, tiêu đề thực đơn, đường dẫn hình ảnh đại diện, danh sách các món ăn (mã món, tên món ăn, URL chi tiết, định lượng nguyên liệu, các bước nấu).
- Bảng thông tin người dùng: Lưu trữ mã người dùng, giới tính, nhóm tuổi (người lớn, trẻ nhỏ), sở thích ẩm thực (cá, gà, thịt lợn...), nhóm đối tượng/tình trạng thể chất (ví dụ: bệnh tiểu đường), cùng lịch sử tương tác và điểm đánh giá.
2. Phân hệ các phương pháp hỗ trợ và tư vấn người dùng
Phân hệ đóng vai trò hạt nhân tính toán với hai cơ chế vận hành chính:
- Tìm kiếm thực đơn phổ biến nhất: Áp dụng khi người dùng tìm kiếm thuần túy theo văn bản hoặc hệ thống chưa có dữ liệu hành vi của người dùng mới; truy vấn và xếp hạng các thực đơn chứa món ăn được cộng đồng đánh giá điểm số cao nhất.
- Gợi ý nâng cao với Wide & Deep và FastText: Khi người dùng nhập tên món ăn, hệ thống kiểm tra sự tồn tại trong CSDL. Nếu từ khóa chưa khớp chính xác, FastText tìm kiếm món ăn có khoảng cách ngữ nghĩa gần nhất (
get_nearest_neighbors). Sau đó, toàn bộ vector đặc trưng kết hợp (đặc trưng người dùng + đặc trưng món ăn) được nạp vào mô hình Wide & Deep để dự đoán xác suất yêu thích và trả về danh sách Top 3 thực đơn tối ưu.
3. Phân hệ giao diện người dùng
Hệ thống được phát triển dưới dạng ứng dụng web, cung cấp các màn hình:
- Màn hình trang chủ với thanh tìm kiếm văn bản và gợi ý nhanh.
- Màn hình đăng ký, đăng nhập và trang cá nhân cập nhật thông tin sở thích, thể trạng.
- Màn hình kết quả tìm kiếm hiển thị danh sách Top 3 thực đơn phù hợp nhất.
- Màn hình chi tiết thực đơn: hiển thị đầy đủ hình ảnh mâm cơm, danh mục các món ăn thành phần, công thức nguyên liệu và các bước chế biến, tích hợp form đánh giá điểm sao (rating) và phản hồi.
Nội dung chính theo từng chương
Chương 1: Giới thiệu
Chương này thiết lập bài toán nghiên cứu thông qua việc phân tích bối cảnh ăn uống gia đình và khảo sát 4 hệ thống hiện hành: Yummly (ứng dụng nước ngoài liên kết Instacart, theo dõi calo, kỹ năng nấu), Meal Planer Pro (hệ thống tính điểm dinh dưỡng ProScore từ 1-100, xây dựng thực đơn tuần/tháng), ứng dụng "Ăn gì hôm nay - Món ngon mỗi ngày" (30.000 công thức món ăn phong phú nhưng thiếu tính năng gợi ý theo mâm cơm hoàn chỉnh), và website Lugagi.com (gợi ý theo nguyên liệu trong tủ lạnh). Từ các hạn chế về việc tìm kiếm từ khóa đơn lẻ và thiếu liên kết thông tin người dùng, tác giả xác định kiến trúc tổng thể 3 phân hệ của đề tài.
Chương 2: Kiến thức cơ sở
Tác giả trình bày chi tiết nền tảng lý thuyết của mạng nơ-ron nhân tạo, cơ chế lan truyền ngược, các hàm kích hoạt ($\text{ReLU}$, $\text{sigmoid}$, $\tanh$) và hàm lỗi sai số toàn phương trung bình (MSE). Chương này phân tích chuyên sâu mô hình FastText (CBOW, Skip-gram) phục vụ biểu diễn từ ngữ tiếng Việt, phân tích toán học của mô hình Wide, mô hình Deep và đề xuất mô hình kết hợp Wide & Deep huấn luyện bằng FTRL và AdaGrad. Cuối chương, hai thước đo Acc@K và mAP@K được định nghĩa làm tiêu chuẩn đánh giá kết quả thực nghiệm.
Chương 3: Thu thập, xử lý và lưu trữ dữ liệu
Chương 3 tập trung vào quy trình kỹ thuật thu thập dữ liệu web bằng Python (Scrapy, BeautifulSoup4, urllib.request) qua quy trình 3 bước chuẩn hóa: duyệt lấy URL danh sách, đọc nội dung HTML và bóc tách cây DOM theo từng mẫu trang ("365 mâm cơm", "thực đơn theo tuần", "thực đơn cho 1 tháng"). Tác giả giải thích lý do lựa chọn CSDL NoSQL (MongoDB) thay vì SQL truyền thống nhằm đáp ứng cấu trúc dữ liệu thực đơn phi quy chuẩn, đồng thời mô tả phương pháp sinh ngẫu nhiên có kiểm soát tập dữ liệu 1.000 người dùng và gần 100.000 bản ghi tương tác.
Chương 4: Phương pháp và kết quả
Chương cuối trình bày việc hiện thực hóa thuật toán tìm kiếm thực đơn phổ biến nhất và thuật toán gợi ý sử dụng mô hình Wide & Deep. Tác giả tiến hành các kịch bản thử nghiệm đánh giá độ chính xác của hệ thống tại Top 1, Top 2, Top 3 trong 4 trường hợp dữ liệu người dùng: đầy đủ thông tin, khuyết thông tin sở thích, khuyết thông tin nhóm đối tượng bệnh lý, và hoàn toàn không có thông tin người dùng. Cuối chương là các minh chứng giao diện thực tế của hệ thống web đã triển khai.
Kết quả và đóng góp
1. Dữ liệu thực nghiệm và kết quả triển khai
Đồ án đã xây dựng hoàn chỉnh kho dữ liệu số và đánh giá mô hình học máy trên các tập dữ liệu thực nghiệm:
| Chỉ số / Thành phần |
Quy mô / Thông số ghi nhận trong văn bản |
| Số lượng thực đơn mâm cơm |
Gần 1.000 thực đơn hoàn chỉnh |
| Số lượng món ăn chi tiết |
Khoảng 2.000 món ăn (gồm thành phần, cách nấu) |
| Số lượng người dùng khởi tạo |
1.000 người dùng (phân loại tuổi, giới tính, sở thích, bệnh lý) |
| Số lượng tương tác đánh giá |
Gần 100.000 bản ghi đánh giá tương tác |
| Số lượng kết quả gợi ý trả về |
Top 3 thực đơn phù hợp nhất trên mỗi truy vấn |
| Mô hình học máy triển khai |
Wide & Deep kết hợp vector nhúng FastText |
Các kết quả thử nghiệm định lượng theo các bảng đánh giá mô hình trong văn bản (Bảng 4.1, 4.2, 4.3):
- Hệ thống cho độ chính xác cao nhất khi người dùng được cung cấp đầy đủ thông tin cá nhân (độ tuổi, giới tính, sở thích và thể trạng bệnh lý).
- Trong trường hợp khuyết thông tin sở thích hoặc nhóm đối tượng, mô hình Wide & Deep vẫn duy trì hiệu suất gợi ý nhờ nhánh Deep khái quát hóa đặc trưng từ các người dùng tương tự.
- Khi không có bất kỳ thông tin nào về người dùng (cold-start), hệ thống chuyển đổi linh hoạt sang cơ chế tìm kiếm thực đơn phổ biến nhất dựa trên số điểm đánh giá trung bình cao của cộng đồng.
2. Đóng góp của đồ án
- Về mặt dữ liệu: Xây dựng thành công cơ sở dữ liệu tiếng Việt có cấu trúc về thực đơn mâm cơm gia đình và chi tiết công thức nấu ăn, khắc phục tình trạng dữ liệu ẩm thực bị phân tán trên các trang web tin tức.
- Về mặt học thuật và mô hình: Ứng dụng thành công mô hình học sâu Wide & Deep vào bài toán gợi ý ẩm thực tại Việt Nam; kết hợp xử lý ngôn ngữ tự nhiên (FastText) để giải quyết bài toán tìm kiếm món ăn tương đồng khi từ khóa người dùng không khớp chính xác với CSDL.
- Về mặt ứng dụng: Xây dựng giao diện web thử nghiệm hoàn chỉnh, cung cấp giải pháp thực tế giải quyết bài toán lựa chọn thực đơn cân bằng dinh dưỡng cho các gia đình.
Hạn chế và hướng nghiên cứu tiếp
Căn cứ theo các nội dung được tác giả tự nhìn nhận trong đồ án:
Hạn chế
- Nguồn dữ liệu người dùng: Do điều kiện thời gian và nguồn lực thực tế có hạn, thông tin cá nhân của 1.000 người dùng và gần 100.000 lượt tương tác chưa phải là dữ liệu thực tế từ cộng đồng mà được khởi tạo ngẫu nhiên theo các quy tắc giả định.
- Quy mô tập thực đơn: Cơ sở dữ liệu mới dừng lại ở gần 1.000 thực đơn và 2.000 món ăn từ một số website nhất định, chưa bao quát hết sự phong phú của ẩm thực các vùng miền.
- Tính toán dinh dưỡng định lượng: Hệ thống mới chỉ phân loại theo nhóm đối tượng tổng quát (như bệnh tiểu đường) và sở thích thực phẩm, chưa tích hợp thuật toán đo lường chính xác lượng calo, tỷ lệ vi chất (chất đạm, béo, đường bột) trên từng khẩu phần ăn.
Hướng nghiên cứu tiếp
- Mở rộng phạm vi thu thập dữ liệu tự động từ nhiều nguồn báo chí, mạng xã hội và diễn đàn ẩm thực khác để làm phong phú kho thực đơn.
- Đưa hệ thống vào vận hành thử nghiệm trên quy mô người dùng thực nhằm thu thập tập dữ liệu tương tác thực tế, phục vụ tái huấn luyện và tối ưu hóa tham số mô hình Wide & Deep.
- Tích hợp thêm các bộ chỉ số định lượng dinh dưỡng chuyên sâu cho từng món ăn, hỗ trợ xây dựng thực đơn y khoa cho người bệnh hoặc người theo các chế độ ăn kiêng chuyên biệt.
Giá trị tham khảo
Bản thuyết minh đồ án là tài liệu tham khảo hữu ích cho các đối tượng:
- Sinh viên ngành Công nghệ thông tin, Khoa học dữ liệu: Tham khảo quy trình xây dựng một hệ thống học máy hoàn chỉnh từ khâu thu thập dữ liệu web (Web Scraping bằng Scrapy, BeautifulSoup4), thiết kế CSDL NoSQL (MongoDB), đến việc lập trình mô hình học sâu.
- Người nghiên cứu hệ thống gợi ý (Recommender Systems): Tham khảo trực tiếp phương pháp kết hợp mô hình Wide & Deep, cơ chế biến đổi tích chéo đặc trưng (cross-product transformation), cũng như cách xử lý truy vấn văn bản đầu vào bằng FastText.
- Các nhóm phát triển ứng dụng ẩm thực, sức khỏe: Tham khảo cấu trúc dữ liệu quản lý mâm cơm gia đình và logic kết hợp món ăn thành một thực đơn hoàn chỉnh thay vì gợi ý đơn lẻ.
Câu hỏi thường gặp
1. Hệ thống sử dụng nguồn dữ liệu nào để huấn luyện và đánh giá mô hình gợi ý?
Dữ liệu thực đơn gồm gần 1.000 thực đơn và khoảng 2.000 món ăn chi tiết được thu thập tự động từ các trang web như "365 mâm cơm" (elinerfood.com), "thực đơn theo tuần" (sucsongmoi.net), Pasgo, Vietnamnet, VnExpress. Do hạn chế về điều kiện thu thập thực tế, dữ liệu về 1.000 người dùng và gần 100.000 lượt tương tác đánh giá được khởi tạo ngẫu nhiên theo các quy tắc giả lập phù hợp với lý thuyết.
2. Mô hình FastText đóng vai trò gì trong hệ sinh thái của hệ thống?
FastText được sử dụng để phân loại văn bản và học biểu diễn vector từ ngữ cho các món ăn. Khi người dùng nhập tên món ăn tìm kiếm mà từ khóa đó không khớp chính xác trong CSDL, hệ thống dùng hàm get_nearest_neighbors của FastText để tìm ra món ăn có độ tương đồng ngữ nghĩa cao nhất, từ đó làm đầu vào cho mô hình gợi ý thực đơn.
3. Tại sao tác giả lại lựa chọn mô hình Wide & Deep thay vì sử dụng độc lập mô hình Wide hoặc mô hình Deep?
Mô hình Wide hoạt động tốt trong việc ghi nhớ các quy tắc đặc trưng lịch sử nhưng tạo ra các gợi ý quá quen thuộc; trong khi mô hình Deep có khả năng khái quát hóa cao nhưng đôi khi đưa ra gợi ý quá xa rời nhu cầu thực tế. Mô hình Wide & Deep huấn luyện đồng thời (joint training) cả hai thành phần giúp hệ thống vừa ghi nhớ chính xác sở thích cụ thể của người dùng, vừa có khả năng mở rộng gợi ý các thực đơn mới lạ, phù hợp.
4. Khi người dùng hoàn toàn không đăng nhập hoặc hệ thống không có dữ liệu người dùng, việc gợi ý được thực hiện ra sao?
Hệ thống chuyển đổi sang thuật toán tìm kiếm thực đơn phổ biến nhất. Tại chế độ này, hệ thống sẽ lọc các thực đơn chứa món ăn mà người dùng nhập vào và xếp hạng theo điểm số đánh giá trung bình từ cao xuống thấp của toàn bộ người dùng khác trên hệ thống.
5. Cơ sở dữ liệu của hệ thống được tổ chức trên nền tảng công nghệ nào?
Tác giả lựa chọn hệ quản trị cơ sở dữ liệu phi cấu trúc NoSQL MongoDB để lưu trữ dữ liệu thực đơn và người dùng. Cấu trúc NoSQL giúp hệ thống dễ dàng mở rộng và lưu trữ các trường dữ liệu linh hoạt của công thức nấu ăn (như số bước làm, định lượng nguyên liệu) mà không bị gò bó bởi cấu trúc bảng quan hệ cứng nhắc của SQL.
Kết luận
Đồ án tốt nghiệp của tác giả Đỗ Đình Hưng đã giải quyết bài toán gợi ý thực đơn bữa ăn hàng ngày tại Việt Nam thông qua việc ứng dụng mô hình học sâu Wide & Deep kết hợp kỹ thuật biểu diễn từ FastText. Công trình đã hiện thực hóa toàn diện một hệ sinh thái phần mềm từ khâu thu thập dữ liệu web, quản trị cơ sở dữ liệu NoSQL MongoDB, đến xây dựng giao diện ứng dụng web hỗ trợ tương tác trực quan. Mặc dù tập dữ liệu tương tác người dùng vẫn còn mang tính chất mô phỏng, đồ án đã chứng minh tính khả thi và tiềm năng của các mô hình học sâu trong việc nâng cao chất lượng bữa ăn và chăm sóc sức khỏe gia đình.