CHUONG 4. PHÂN TÍCH VA THIET KE HE THONG
4.3. XÂY DỰNG THUẬT TOÁN XỬ LÝ
4.3.1. Bài toán
Cho tập N chứa danh sách các sản phâm được bán ra trong m tháng liên tiếp,
dự đoán danh sách các sản pham có thé được bán ra trong tháng M cũng như số lượng bán ra của từng sản phẩm trong danh sách đó.
Cho biết: |N| > 3, M # N,M là tháng kế tiếp của tháng cuối cùng trong tập
4.3.2. Mô tả bài toán
e Dữ liệu đầu vào (Input):
© Tap N chứa danh sách các sản phâm được bán ra trong n tháng liên tiếp
(IN| = 3)
© Tháng M (M € N, M là tháng kế tiếp của tháng cuỗi cùng trong tập N)
e Dé liệu đầu ra (Output):
Danh sách các sản phẩm có thé được bán ra trong tháng M cũng như số lượng bán ra của từng sản phẩm trong danh sách đó.
4.3.3. Ý tướng chung
Ý tưởng chung của thuật toán là lọc ra danh sách các sản phâm cơ bản đầu tiên
có thê xuất hiện ở tháng M từ dữ liệu trong quá khứ, sau đó sử dụng các mô hình dự
báo dé dự đoán sô lượng bán ra của các sản phâm trong danh sách này. Tiệp theo, sử
9]
dụng các thuật toán khuyên nghị đê tìm ra danh sách các sản phâm còn thiêu từ các
tháng tương đồng với tháng M dựa trên danh sách các sản phẩm vừa thu được cũng như bé sung thêm các sản phẩm được người dùng tự chọn. Sau khi thu được danh
sách các sản phâm cuôi cùng, tiêp tục sử dụng các mô hình dự báo một lân nữa đê dự
đoán số lượng bán ra của từng sản phẩm trong danh sách.
4.3.4. Các bước thực hiện
Thuật toán gồm có 7 bước như sau:
Bước 1: Chọn tháng M cần đưa ra khuyến nghị và dự báo.
Bước 2: Lọc ra danh sách các sản phẩm cơ bản đầu tiên có thê được bán ra ở
tháng M từ dữ liệu trong quá khứ.
Bước 3: Sử dụng mô hình mạng LSTM và mô hình Prophet dé dự báo số lượng sản phâm bán ra cho từng sản phẩm trong danh sách thu được ở Bước 2.
Bước 4: Sử dụng phương pháp lọc cộng tác (Collaborative Filtering) dé tìm
ra một số sản phâm khác có thê được bán ra ở tháng M.
Bước 5: Lay danh sách các sản pham được người dùng tự bổ sung thêm.
Bước 6. Sử dụng mô hình mạng LSTM và mô hình Prophet dé dự báo số lượng bán ra của các sản phẩm mới được bé sung ở Bước 4 và Bước 5.
Bước 7: Trả về danh sách tat cả các sản phẩm có thé được bán ra ở tháng M kèm theo số liệu dự báo cụ thê.
4.3.5. Mô tả chỉ tiết các bước
Bước 1: Chọn tháng M cần đưa ra khuyến nghị và dự báo.
Ở bước nay, người dùng tiễn hành chọn ra một tháng M dé đưa ra khuyến nghị
và dự báo.
Điều kiện: M ¢ N,M là tháng kế tiếp của tháng cuối cùng trong tập N
Bước 2: Lọc ra danh sách các sản phẩm cơ bản đầu tiên có thể được
bán ra ở tháng M từ dữ liệu trong quá khứ.
Bước này lọc ra danh sách các sản phâm cơ bản đâu tiên có thê được bán ra ở
tháng M từ dữ liệu trong quá khứ, cụ thé:
92
D=AUBUCUDUE
Trong đó:
A: Danh sách các sản phẩm đều được bán ra trong vòng n tháng trước, mặc
định n = 12.
Ví dụ: Giả sử tháng cần đưa ra khuyến nghị và dự báo là tháng 02/2021 và
n = 12 thì tập A sẽ bao gồm danh sách tất cả các sản phẩm đều được bán
ra trong vòng 12 tháng trước đó, bắt đầu từ tháng 01/2020 đến tháng
01/2021.
B: Danh sách tất cả các sản phẩm của tháng liền kề trước tháng M.
Ví dụ: Giả sử tháng cần đưa ra khuyến nghị và dự báo là tháng 02/2021 thì tập sẽ bao gồm danh sách tat cả các sản phẩm của tháng 01/2021.
C: Danh sách tat cả các sản phẩm đều được bán ra trong các tháng cùng thời điểm với tháng M của những năm trước đó.
Ví dụ: Giả sử tháng cần đưa ra khuyến nghị và dự báo là tháng 02/2021 thì tập C sẽ bao gồm danh sách tat cả các sản phẩm đều được bán ra trong
tháng 2 của những năm trước đó (Tháng 02/2020, tháng 02/2019,...).
D: Danh sách tat cả các sản phâm mới được bán ra trong vòng n tháng
trước, mặc định n = 12.
Ví dụ: Giả sử tháng cần đưa ra khuyến nghị và dự báo là tháng 02/2021 và
n = 12 thì tập D sẽ bao gồm danh sách tat cả các sản phẩm mới được bán
ra trong vòng 12 tháng trước đó, bắt đầu từ tháng 01/2020 đến tháng
01/2021.
E: Danh sách tất cả các sản phẩm được bán ra trong cùng quý với tháng M
ở năm hiện tại cũng như ở những năm trước đó.
Ví dụ: Giả sử tháng cần đưa ra khuyến nghị và dự báo là tháng 02/2021 thì tập E sẽ bao gồm danh sách tất cả các sản phẩm được bán ra trong quý
1 năm 2021, quý 1 năm 2020, quý 1 năm 2019,...
93
Bước 3: Sử dụng mô hình mạng LSTM và mô hình Prophet để dự báo số lượng sản phẩm bán ra cho từng sản phẩm trong danh sách thu được ở Bước 2.
Bước này tiễn hành dự báo số lượng bán ra cho từng sản phẩm trong danh sách
thu được ở Bước 2 sử dụng mô hình mạng LSTM và mô hình Prophet.
Mô hình mạng LSTM: Mô hình này sẽ sử dụng dữ liệu của các tháng trong
tập N dé huấn luyện. Với tháng Mi trong tập N đã có số lượng bán ra thực tế cũng như giá bán của các sản phẩm, nhóm sẽ chọn mốc thời gian là cuối tháng trước đó dé làm thời điểm xét. Số lượng sản phẩm bán ra và giá bán của các sản phẩm của các tháng trước thời điểm này sẽ được chọn làm tập train, và phần còn lại sẽ được chọn làm tập test, điều này được minh họa thông qua hình vẽ bên dưới.
Thời gian
Điểm xét 9
Tập train Tap test
Hình 4.3 — Cách phân chia dữ liệu train va dữ liệu test
Trong đó:
e Tập train dùng dữ liệu của ít nhất 3 tháng trong quá khứ.
e Tập test dùng dữ liệu thực tế của tháng hiện tại (Đã có SỐ lượng bán ra thực té
cũng như giá ban của các sản phẩm).
Bước này sẽ áp dụng mạng LSTM để huấn luyện cho từng sản phẩm, dữ liệu
huân luyện của mạng có dạng như sau:
time_span quantity price
Bang 4.17 — Cau trúc dữ liệu huấn luyện của mạng LSTM
Trong đó:
e time span: Khoảng thời gian, định dạng YYYY-MM-DD (Trong đó DD
là ngày cuối cùng của tháng MM).
94
e_ quantity: Số lượng bán ra thực tế của sản phẩm.
e_ price: Giá bán ra của sản phâm (Nếu trong một tháng có nhiều mức giá thì
lay mức giá trung bình của tháng đó).
Sau khi hoàn tất quá trình huấn luyện, mô hình sẽ trả về giá trị quantity được
dự báo tương ứng với giá tri time_span và price được cung cap.
Mô hình Prophet: Mô hình Prophet cũng sử dụng dữ liệu trong tập N dé phục
vụ cho việc huân luyện, dữ liệu đầu vào của mô hình này có dạng như sau:
ds y price
Bang 4.18 — Cau trúc dữ liệu huấn luyện của mô hình Prophet
Trong đó:
e ds: Thời điểm, định dạng YYYY-MM-DD (Trong đó DD là ngày cuối
cùng của thang MM).
ey: Số lượng bán ra thực tế của sản phẩm.
e price: Giá bán ra của sản phâm (Nếu trong một tháng có nhiều mức giá thì
lay mức giá trung bình của tháng đó).
Bước này cũng áp dụng mô hình Prophet dé huấn luyện cho từng sản phẩm. Sau khi hoàn tất quá trình huấn luyện, mô hình sẽ trả về giá tri quantity được dự báo
tương ứng với giá tri ds và price đã được cung cap.
Bước 4: Sử dụng phương pháp lọc cộng tác (Collaborative Filtering) dé tìm ra một số sản phẩm khác có thể được bán ra ở tháng M.
Bước này sử dụng phương pháp lọc cộng tác dé tìm ra danh sách các sản pham còn thiếu từ các tháng tương đồng với tháng M dựa trên danh sách các sản pham vừa
thu được ở Bước 3.
Bước 5: Lấy danh sách các sản phẩm được người dùng tự bé sung thêm.
95
Người dùng có thé tự bé sung thêm một số sản phâm khác trong bước này. Đó
có thé là các sản phẩm dang bị gợi ý sót hoặc cũng có thé là các sản pham mà người
dùng đang quan tâm.
Bước 6. Sử dụng mô hình mạng LSTM và mô hình Prophet để dự báo số lượng bán ra của các sản phẩm mới được bé sung ở Bước 4 và Bước 5.
Bước này tiếp tục sử dụng mô hình mạng LSTM và mô hình Prophet một lần nữa dé dự báo số lượng bán ra của các sản pham mới được bồ sung ở Bước 4 và Bước
5 của thuật toán.
Bước 7: Trả về danh sách tất cả các sản phẩm có thể được bán ra ở tháng
M kèm theo số liệu dự báo cu thé.
Đây là bước cuối cùng của thuật toán. Bước này trả về danh sách tất cả các sản pham có thé được bán ra ở tháng M kèm theo số liệu dự báo cụ thê.
96