MỤC LỤC
MỤC LỤC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DANH MỤC CÁC TỪ VIẾT TẮT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
DANH MỤC KÝ HIỆU TOÁN HỌC . . . . . . . . . . . . . . . . . . . . . . . . . . vii
DANH MỤC HÌNH VẼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
DANH MỤC BẢNG BIỂU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
MỞ ĐẦU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Giới thiệu chung về hệ thống gợi ý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Tính cần thiết của luận án và những vấn đề sẽ giải quyết . . . . . . . . . . . . . 8
3. Mục tiêu, đối tượng, phạm vi và phương pháp nghiên cứu . . . . . . . . . . . 13
4. Các đóng góp mới của luận án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Cấu trúc nội dung của luận án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG GỢI Ý. . . . . . . . . . 16
1.1. Ma trận lịch sử tương tác trong hệ thống gợi ý . . . . . . . . . . . . . . . . . . . . . 16
1.2. Các phương án triển khai hệ thống gợi ý . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1. Hệ thống gợi ý dựa trên nội dung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.2. Lọc cộng tác dựa trên ghi nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.3. Lọc cộng tác dựa trên mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3. Thiết lập thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.1. Tập dữ liệu MovieLens 20M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.2. Tập dữ liệu MovieLens 25M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.3. Phương pháp đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.4. Kết luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
i
ii
CHƯƠNG 2. CẢI THIỆN THUẬT TOÁN ĐO ĐỘ TƯƠNG ĐỒNG
GIỮA HAI SẢN PHẨM TRONG LỌC CỘNG TÁC DỰA TRÊN
GHI NHỚ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1. Hạn chế của các phép đo độ tương đồng truyền thống trong hệ thống gợi
ý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.1. Hạn chế trong phân bố thống kê độ tương đồng . . . . . . . . . . . . . . . . 30
2.1.2. Hạn chế của dữ liệu lịch sử đánh giá trong tính toán ma trận tương
đồng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2. Phương pháp tính độ tương đồng mới cải thiện hạn chế trong phân bố
thống kê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3. Phương pháp Lọc cộng tác dựa theo ghi nhớ tích hợp nội dung sản phẩm
35
2.3.1. Dữ liệu Tag Genome trong tập dữ liệu MovieLens 20M và 25M. 35
2.3.2. Phương pháp tích hợp nội dung của sản phẩm vào hệ thống lọc cộng
tác dựa theo ghi nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.3. Xây dựng ma trận tương đồng kết hợp trong hệ thống gợi ý dựa trên
ghi nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4. Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.1. Các mô hình tham chiếu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.2. Kết quả các phương pháp giúp cải thiện phân bố thống kê của ma
trận tương đồng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.3. Kết quả tích hợp nội dung của sản phẩm vào hệ thống lọc cộng tác
dựa theo ghi nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4.4. Kết quả tích hợp ma trận tương đồng kết hợp trong hệ thống gợi ý
dựa trên ghi nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.5. Kết quả triển khai các mô hình trên thiết bị máy tính Jetson Nano .
48
2.5. Kết luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
CHƯƠNG 3. HỆ THỐNG GỢI Ý ÁP DỤNG CÁCH THỨC BIỂU
DIỄN SẢN PHẨM SỬ DỤNG CÁC KỸ THUẬT HỌC SÂU . . 52
3.1. Phương pháp nhóm các thẻ tương đồng trong dữ liệu Tag Genome bằng
kỹ thuật xử lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
iii
3.2. Phương pháp học cách biểu diễn mới cho các sản phẩm qua Bộ tự mã
hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.1. Kiến trúc Bộ tự mã hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.2. Áp dụng Bộ tự mã hoá nhằm biểu diễn sản phẩm . . . . . . . . . . . . . . 57
3.3. Học cách biểu diễn mới cho mỗi bộ phim với Bộ tự mã hóa bán chập 58
3.3.1. Cơ sở áp dụng CNN cho dữ liệu bảng . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.2. Sơ lược về kiến trúc mạng nơ-ron chập một chiều . . . . . . . . . . . . . . 61
3.3.3. Sơ lược về Bộ tự mã hóa chập - CAE . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.3.4. Thiết kế Bộ tự mã hóa bán chập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4. Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.1. Các mô hình tham chiếu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.2. Kết quả mô hình sử dụng phương pháp nhóm các thẻ tương đồng
trong dữ liệu Tag Genome bằng kỹ thuật xử lý ngôn ngữ tự nhiên . . . 67
3.4.3. Kết quả mô hình sử dụng cách biểu diễn mới cho các sản phẩm qua
Bộ tự mã hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.4.4. Kết quả áp dụng biểu diễn mới cho mỗi bộ phim với Bộ tự mã hóa
bán chập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.5. Kết quả triển khai các mô hình trên thiết bị máy tính Jetson Nano .
79
3.5. Kết luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
CHƯƠNG 4. PHƯƠNG PHÁP SINH DỮ LIỆU NGƯỜI DÙNG
NHÂN TẠO ỨNG DỤNG TRONG LỌC CỘNG TÁC . . . . . . . . . 82
4.1. Biểu diễn người dùng qua nội dung sản phẩm và thông tin đánh giá 82
4.2. Tích hợp độ tương quan người dùng - sản phẩm vào ước lượng cơ sở 86
4.3. Áp dụng nội dung sản phẩm vào bài toán khởi tạo cho mô hình phân rã
ma trận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.4. Kết quả thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.1. Tích hợp độ tương quan người dùng - sản phẩm vào ước lượng cơ sở
90
4.4.2. Áp dụng nội dung sản phẩm vào bài toán khởi tạo cho mô hình MF
94
iv
4.4.3. Kết quả triển khai các mô hình trên thiết bị máy tính Jetson Nano .
97
4.5. Kết luận. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
KẾT LUẬN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Những kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Hướng nghiên cứu tiếp theo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ . . . . . . . . . . . 102
127 trang |
Chia sẻ: vietdoc2 | Ngày: 27/11/2023 | Lượt xem: 453 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận án Nghiên cứu phương pháp xử lý dữ liệu cho hệ thống gợi ý và triển khai trên các thiết bị có tài nguyên hạn chế, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đều được sử dụng trong so sánh.
• Các mô hình SVD, SVD++: số nhân tố ẩn được chọn trong tập {20, 30,
40, 50, 60, 80, 100}.
• Hệ số điều chuẩn của tất cả các mô hình được điều chỉnh λ ∈ {0.001, 0.002,
0.01, 0.02, 0.1, 1, 2} cho tất cả các mô hình tham chiếu.
Các mô hình này được lập trình sử dụng thư viện Numba 1 [67] nhằm tăng
tốc độ thử nghiệm, giúp mở rộng các mô hình với số nhân tố ẩn lớn hơn.
2.4.2. Kết quả các phương pháp giúp cải thiện phân bố thống kê của ma
trận tương đồng
Bảng 2.2 trình bày kết quả các mô hình kNN sử dụng các phép đo độ tương
đồng được đề xuất trong 2.2 và so sánh với các thuật toán gợi ý phổ biến dựa
trên mô hình MF. Cụ thể, với việc sử dụng hàm squaredCos để tạo ra phép đo
mới, mô hình kNN hoạt động có hiệu quả hơn với RMSE đạt 0.8211 so với mô
hình cũ sử dụng hàm Cos có RMSE bằng 0.8674. Tương tự, hàm squaredPCC
giúp mô hình CF dựa trên ghi nhớ đạt RMSE bằng 0.8150, thấp hơn 2.01% so
1https://github.com/numba/numba
Hình 2.6: Hiệu quả của mô hình CF dựa trên ghi nhớ với số lượng láng giềng k khác
nhau.
42
với RMSE của mô hình sử dụng PCC, cùng với cải thiện 0.39% - 1.34% trong
tác vụ xếp hạng k sản phẩm.
Bằng cách khắc phục hạn chế của phép bình phương trên phép đo PCC, các
mô hình kNN sử dụng phép lập phương trên độ tương đồng đạt hiệu quả tốt
nhất. Cụ thể, mô hình tốt nhất được đề xuất, kNN sử dụng phép đo cubedPCC,
đạt RMSE thấp hơn 0.51% và cải thiện 0.75% - 1.95% trong tác vụ xếp hạng k
sản phẩm so với SVD.
Bảng 2.2: So sánh độ hiệu quả của mô hình sử dụng phép đo mới so với các thuật
toán gợi ý cơ sở trên tập dữ liệu MovieLens 20M và 25M.
Mô hình RMSE P@5 P@10 R@5 R@10 Thời gian [s]
Tập dữ liệu MovieLens 20M
Cos 0.8636 0.7479 0.7249 0.3994 0.5194 553
PCC 0.8304 0.7767 0.7528 0.4151 0.5401 574
SVD 0.7922 0.8005 0.7786 0.4322 0.5628 1,228
SVD++ 0.7894 0.8030 0.7817 0.4339 0.5639 27,387
squaredCos 0.8211 0.7807 0.7575 0.4159 0.5422 556
squaredPCC 0.8150 0.7869 0.7627 0.4207 0.5482 578
cubedCos 0.8012 0.8012 0.7765 0.4274 0.5561 561
cubedPCC 0.7882 0.8155 0.7904 0.4358 0.5670 580
Tập dữ liệu MovieLens 25M
Cos 0.8618 0.7493 0.7259 0.4003 0.5209 583
PCC 0.8281 0.7790 0.7547 0.4160 0.5417 602
SVD 0.7897 0.8022 0.7802 0.4331 0.5639 1,283
SVD++ 0.7851 0.8048 0.7833 0.4348 0.5651 31,459
squaredCos 0.8193 0.7825 0.7581 0.4163 0.5435 587
squaredPCC 0.8128 0.7885 0.7543 0.4213 0.5487 605
cubedCos 0.8012 0.8019 0.7771 0.4280 0.5209 592
cubedPCC 0.7848 0.8179 0.7924 0.4369 0.5689 609
43
Hơn nữa, nhằm đánh giá chính xác khả năng của mô hình CF dựa trên ghi
nhớ với số lượng láng giềng khác nhau, với mỗi mô hình, số lượng láng giềng k
biến thiên từ 5 đến 60 và RMSE của mô hình trên tập kiểm tra được ghi lại.
Hình 2.6 chỉ ra rằng các mô hình hoạt động tốt nhất với k ∈ [30; 40]. Việc tăng
số lượng láng giềng có thể gây ra hiện tượng các láng giếng được xét đến không
“thực sự tương đồng” với sản phẩm i, do đó RMSE chững lại và bắt đầu tăng
nhẹ khi k bằng 40 và trên 40. Trường hợp tệ nhất là công thức dự đoán đánh giá
(1.7) và (1.6) xét đến cả những sản phẩm hoàn toàn khác biệt so với sản phẩm
i khi số lượng láng giếng tăng, dẫn đến việc đưa ra dự đoán không phù hợp.
Khi xét đến thời gian thực hiện của các hệ thống CF dựa trên ghi nhớ được
đề xuất trong phần 2.2, có thể thấy rằng thời gian để đưa ra dự đoán nhanh hơn
các mô hình MF ít nhất 2 lần (Bảng 2.2). Cụ thể, cubedPCC chỉ mất 609 [s]
để hoàn thành toàn bộ quá trình huấn luyện và dự đoán so với 1, 228 [s] khi sử
dụng SVD trong khi vẫn đạt được RMSE thấp hơn. Sự chênh lệch về thời gian
này là do các mô hình MF tốn thời gian duyệt qua toàn bộ tập dữ liệu nhằm
mục đích ước lượng vector đặc trưng ẩn cho từng người dùng và sản phẩm với
số lượng đánh giá đã biết rất lớn, 19, 793, 342 đánh giá. Trong khi đó, thao tác
tính toán ma trận tương đồng cho 10, 239 sản phẩm trong tập dữ liệu đã lọc sử
dụng các phương pháp được đề xuất có thời gian thực hiện tương đương với các
phương pháp truyền thống như Cos và PCC.
2.4.3. Kết quả tích hợp nội dung của sản phẩm vào hệ thống lọc cộng
tác dựa theo ghi nhớ
Ở phần này, hiệu năng của mô hình được so sánh với các mô hình gợi ý cơ sở
gồm có các mô hình CF dựa trên ghi nhớ sử dụng lịch sử đánh giá để đo độ
tương đồng giữa các sản phẩm (gồm có kNNBasic và kNNBaseline) và các mô
hình MF (gồm có SVD và SVD++).
Như chỉ ra trong Bảng 2.2, mô hình kNNBaseline sử dụng phép đo cubedPC-
CBaseline để đo độ tương đồng giữa các sản phẩm có hiệu năng trội hơn hẳn so
với các mô hình đối thủ cả về độ chính xác được biểu thị qua RMSE lẫn thời
gian thực hiện dự đoán. Ngay cả đối với SVD++, một trong những mô hình tân
tiến nhất trong các mô hình sử dụng phương pháp MF, mô hình được đề xuất
trong phần 2.2 cũng hoạt động tốt hơn một chút trên phương diện độ chính
xác (RMSE thấp hơn 0.15%) và tốc độ nhanh hơn xấp xỉ 51 lần. Chú ý rằng
44
Bảng 2.3: Hiệu năng của mô hình CF dựa trên ghi nhớ kết hợp với dữ liệu Tag
Genome với k = 40 và k = 10.
Mô hình RMSE Thời gian [s]
Tập dữ liệu MovieLens 20M
kNNBasic
(k = 40)
Cosgenome 0.8562 315
PCCgenome 0.8268 327
kNNBaseline
(k = 40)
Cosgenome 0.8202 336
PCCgenome 0.7912 340
kNNBasic
(k = 10)
Cosgenome 0.8416 261
PCCgenome 0.8266 264
kNNBaseline
(k = 10)
Cosgenome 0.8037 283
PCCgenome 0.7905 284
Tập dữ liệu MovieLens 25M
kNNBasic
(k = 40)
Cosgenome 0.8532 341
PCCgenome 0.8239 347
kNNBaseline
(k = 40)
Cosgenome 0.8177 374
PCCgenome 0.7885 365
kNNBasic
(k = 10)
Cosgenome 0.8389 289
PCCgenome 0.8238 293
kNNBaseline
(k = 10)
Cosgenome 0.8011 316
PCCgenome 0.7878 319
tất cả các mô hình tham chiếu được trình bày trong Bảng 2.2 chỉ sử dụng dữ
liệu lịch sử tương tác giữa người dùng - sản phẩm để ước lượng những đánh giá
chưa biết. Dựa trên cơ sở đó, hiệu năng của các thuật toán gợi ý mới được đề
xuất ở phần trước được trình bày trong Bảng 2.3, khi kích thước tập các láng
giềng được chọn bằng 40, mô hình kNNBaseline với ma trận tương đồng tính
theo công thức PCCgenome cho RMSE cao hơn 0.22% và 0.38% so với các mô
hình đối thủ sử dụng dữ liệu lịch sử tương tác lần lượt là mô hình SVD++ và
45
cubedPCCBaseline.
Các thí nghiệm tương tự với kích thước tập các láng giềng khác nhau tiếp tục
được thực hiện nhằm tìm ra giá trị k tốt nhất cho hệ thống mới được đề xuất.
Có thể rút ra kết luận rằng việc giảm kích thước k không gây ảnh hưởng tiêu
cực đến độ chính xác của các gợi ý mà còn giúp tăng tốc độ dự đoán của toàn
hệ thống. Sau quá trình tinh chỉnh tham số k, tác giả nhận thấy mô hình kết
hợp giữa CF dựa trên ghi nhớ và thông tin nội dung sản phẩm hoạt động tốt
nhất với k = 10 trên tập MovieLens 20M, RMSE của mô hình mới đạt 0.7905,
chỉ còn cao hơn 0.14% và 0.29% so với các mô hình sử dụng dữ liệu lịch sử tương
tác lần lượt là mô hình SVD++ và cubedPCCBaseline.
Kết quả thí nghiệm này là hợp lý do: (i) các đánh giá chưa biết được ước lượng
bằng cách tận dụng tất cả thông tin có sẵn liên quan đến từng sản phẩm (thay
vì chỉ sử dụng dữ liệu lịch sử tương tác như các phương pháp truyền thống), và
(ii) tác vụ đánh giá độ tương đồng giữa hai vector điểm số genome có độ dài cố
định có chi phí tính toán thấp và có thể được tính toán song song trên nhiều
cặp vector trong cùng một thời điểm.
2.4.4. Kết quả tích hợp ma trận tương đồng kết hợp trong hệ thống gợi
ý dựa trên ghi nhớ
Kết quả thử nghiệm với các biện pháp tương đồng khác nhau được được trình
bày trong Hình 2.7, trong đó PCC cho thấy sự vượt trội so với Cos. Đáng chú ý
rằng việc sử dụng các phương pháp tìm giá trị lớn nhất hoặc nhỏ nhất theo từng
phần tử giữa 2 ma trận cho hiệu suất kém và không ổn định so với kNNContent
ở phần 2.3.2 và các phương pháp kết hợp khác. Điều này có thể được giải thích
rằng để tìm ra độ tương đồng của hai sản phẩm i và j, các kỹ thuật này chỉ
giữ một giá trị lớn nhất hoặc nhỏ nhất từ Sr hoặc Sc, và do đó, sự tương đồng
giữa mỗi cặp sản phẩm chỉ bao gồm thông tin từ một phương pháp, dẫn đến dự
đoán đưa ra không đáng tin cậy.
Ngược lại, bằng cách kết hợp hai ma trận độ tương đồng bằng cách sử dụng
phép cộng hoặc nhân theo từng phần tử, ma trận độ tương đồng thống nhất có
thể thu thập thêm thông tin, dẫn đến điểm số tương đồng chính xác hơn và cho
kết quả tốt hơn. Ngoài ra, so với mô hình ghép kết quả dự đoán trong [66], ma
trận độ tương đồng kết hợp được đề xuất của tác giả trong phần này linh hoạt
hơn nhiều về phương pháp kết hợp mà không yêu cầu các quy trình dự đoán
46
Hình 2.7: Tỷ lệ lỗi của các mô hình kNNBaseline khi kết hợp các ma trận độ tương
đồng kết hợp với các giá trị k khác nhau.
độc lập, trong khi cung cấp hiệu suất có sức cạnh tranh.
Kết quả so sánh toàn diện các mô hình được đề xuất của tác giả được cung
cấp trong Bảng 2.4, trong đó kích thước k cho mỗi mô hình dựa trên ghi nhớ
được chọn để có hiệu suất tốt nhất. Cụ thể, mô hình hiệu quả nhất, kNNBaseline
sử dụng phép nhân theo từng phần tử giữa Sr và Sc được đo bằng PCC, đạt:
• RMSE thấp hơn 1.88% và cải thiện từ 2.51% - 3.67% trên tác vụ xếp hạng
k sản phẩm so với SVD.
• RMSE thấp hơn 1.53% và cải thiện từ 2.14% - 3.35% trên tác vụ xếp hạng
k sản phẩm so với SVD++.
• RMSE thấp hơn 0.45% và cải thiện từ 6.31% - 11.58% trên tác vụ xếp hạng
47
Bảng 2.4: Hiệu suất của mô hình kNNBaseline sử dụng ma trận độ tương đồng kết
hợp so với các mô hình tham chiếu khác.
Mô hình RMSE P@5 P@10 R@5 R@10 Thời
gian
[s]
SVD (40 nhân tố ẩn)
0.7922 0.8005 0.7786 0.4322 0.5628 1,228
-1.88% +3.67% +3.21% +2.55% +2.51%
SVD++ (40 nhân tố ẩn)
0.7894 0.8030 0.7817 0.4339 0.5639 27,387
-1.53% +3.35% +2.10% +2.14% +2.31%
I-AutoRec
0.7808 0.7778 0.7559 0.3972 0.5228 69,860
-0.45% +6.70% +6.31% +11.58% +10.34%
kNNBaseline (k = 40)
0.8108 0.7967 0.7721 0.4261 0.5541 565
-4.13% +4.17% +4.07% +4.01% +4.11%
kNNContent (k = 20)
0.7885 0.8189 0.7927 0.4374 0.5693 293
-1.42% +1.34% +1.38% +1.33% +1.32%
Ghép kết quả dự đoán
0.7833 0.8241 0.7979 0.4403 0.5730 827
-0.77% +0.73% +0.71% +0.66% +0.68%
Hybrid
Sr,Sc
Sadd (k = 20) 0.7834 0.8243 0.7973 0.4398 0.5729 571
Smul (k = 20) 0.7773 0.8299 0.8036 0.4432 0.5769 575
k sản phẩm so với I-AutoRec.
• RMSE thấp hơn 4.13% và cải thiện từ 4.01% - 4.17% trên tác vụ xếp hạng
k sản phẩm so với kNNBaseline.
• RMSE thấp hơn 1.42% và cải thiện từ 1.32% - 1.38% trên tác vụ xếp hạng
k sản phẩm so với kNNContent.
• RMSE thấp hơn 0.77% và cải thiện từ 0.66% - 0.73% trên tác vụ xếp hạng
k sản phẩm so với mô hình ghép kết quả dự đoán giữa kNNBaseline và
kNNContent.
Ngoài những cải thiện so với các mô hình CF truyền thống, việc kết hợp trực
48
tiếp hai ma trận tương đồng dựa trên nội dung sản phẩm và lịch sử đánh giá
của người dùng giúp nâng cao đáng kể độ chính xác của đánh giá dự đoán, cho
hiệu suất tương đương với các mô hình học sâu nổi tiếng. Kết quả này cho thấy
tiềm năng của các phương pháp mới tích hợp những nguồn thông tin có sẵn một
cách hợp lí để tạo ra những hệ thống gợi ý chính xác hơn.
2.4.5. Kết quả triển khai các mô hình trên thiết bị máy tính Jetson Nano
Các mô hình tham chiếu và những mô hình được đề xuất đều được triển khai
trên máy tính Jetson Nano. Nhưng vì lý do hạn chế tài nguyên của thiết bị,
phần lớn các mô hình đều được triển khai ở phần dự đoán kết quả, phần huấn
luyện chỉ có một số ít mô hình có thể đáp ứng được đủ với cấu hình của thiết
bị. Các mô hình sẽ được trình bày cụ thể ứng với mỗi chương mà mô hình được
đề xuất. Với mô hình cơ sở kNNBaseline, vì phải lưu trữ và tính toán với khối
dữ liệu lớn ứng với danh sách các người dùng đã đánh giá sản phẩm và các sản
phẩm đã được đánh giá kèm với ma trận độ tương đồng của các sản phẩm nên
thiết bị không có đủ bộ nhớ RAM để sử dụng, nên các việc triển khai sẽ được
thực hiện với các bước như sau:
• Tính toán phần dữ liệu nêu trên sẽ được tính trên máy trạm và lưu lại dưới
dạng tệp “.npy”.
• Trên máy tính Jetson Nano, các dữ liệu này không cần phải tính toán và
chỉ cần đọc từ các tệp đã có, và được đưa vào để tính ra những dự đoán
của người dùng với sản phẩm.
Tương tự với các mô hình được đề xuất, các bước tính toán ma trận tương đồng
đều được thực hiện ở trên máy trạm và sẽ được đọc ra trên thiết bị. Còn đối
với mô hình SVD và SVD++, có thể triển khai được cả phần huấn luyện và dự
đoán. Hiệu năng của các mô hình được giữ nguyên và chỉ thay đổi ở thời gian
thực hiện. Tài nguyên tiêu thụ và thời gian thực hiện sẽ được trình bày trong
bảng 2.5:
Kết quả trong bảng 2.5 cho thấy:
• Thuật toán của các mô hình đều đã được tối ưu để hạn chế mức tài nguyên
tiêu thụ của thiết bị.
• Mô hình kNNBaseline phảu lưu trữ khối dữ liệu lớn nên gần như đã sử dụng
49
Bảng 2.5: Hiệu suất, tài nguyên tiêu thụ và thời gian thực hiện các mô hình đề xuất
triển khai trên máy tính Jetson Nano.
Mô hình
Thời gian [s] Tài nguyên tiêu thụ
Huấn luyện Dự đoán CPU RAM/SWAP
kNNBaseline Không có 1551
80% 3.9 GB RAM
Frq:1.5 GHz 1.826 GB SWAP
SVD 3720 700
52% Dự đoán 1.8 GB RAM
Frq:1.5 GHz Huấn luyện 2.2 GB RAM
SVD++ 82161 693
56% Dự đoán 1.8 GB RAM
Frq:1.5 GHz Huấn luyện 3.6 GB RAM
tối đa tài nguyên của thiết bị và phải sử dụng swap để có thể đủ bộ nhớ
đệm lưu trữ.
• Hai mô hình SVD và SVD++ chỉ sử dụng một phần tài nguyên vì trên cả
hai mô hình không cần phải lưu trữ nhiều dữ liệu.
• Thời gian thực hiện đều cao hơn khoảng 4-6 lần.
Hình 2.8: Kết quả thực hiện gợi ý của hệ thống sử dụng mô hình SVD.
Hình 2.8 thể hiện kết quả gợi ý của hệ thống sử dụng mô hình SVD, chứng
minh khả năng triển khai RSs trên thiết bị biên là hoàn toàn khả thi. Giá trị để
cài đặt số vòng lặp thực hiện thuật toán SGD, n-factors là số các nhân tố được
50
học, learning-rate là hằng số học trong mỗi lần thực hiện vòng lặp. Nút bấm
CREATE SCRIEANO có tác dụng để thực hiện huấn luyện thuật toán theo các
tham số đã học được từ trước. Nếu muốn thay đổi các tham số đã đặt, thực
hiện thay đổi và ấn nút SAVE CHANGES để lưu thay đổi, sau đó mô hình sẽ
được tự động huấn luyện lại. Qua trình hệ thống đưa ra gợi ý diễn ra như sau:
• Đầu tiên, cài đặt các tham số và tiến hành huấn luyện mô hình.
• Tiếp theo, chỉnh x-id là id của người dùng muốn gợi ý phim, và top-k là số
bộ phim muốn gợi ý.
• Cuối cùng, bấm RECOMMEND để chương trình đưa gợi ý cho người dùng
đã chọn. Các gợi ý sẽ được đưa ra ở cột bên trái, là những bộ phim có thể
người dùng đó sẽ thích, còn ở cột bên phải là những bộ phim mà người
dùng đó thích dựa trên đánh giá thật của người dùng đó với bộ phim. Từ
đó, có thể dễ dàng thấy được độ chính xác của thuật toán được huấn luyện
trên edge device.
Với 10 gợi ý phim mà hệ thống đưa ra, có 6/10 phim nằm trong top 10 phim
mà người dùng yêu thích. Ngoài ra, hoàn toàn có thể tinh chỉnh các siêu tham
số trực tiếp trên ứng để phân tích và tinh chỉnh mô hình trực tiếp trên thiết bị
biên. Với việc triển khai hệ thống gợi ý trên thiết bị biên, chúng ta có thể tận
dụng sự gia tăng về tính toán cục bộ và khả năng xử lý dữ liệu tại chỗ. Điều
này không chỉ giúp giảm độ trễ trong việc cung cấp gợi ý, mà còn tăng cường
tính riêng tư và bảo mật dữ liệu người dùng, khi dữ liệu không cần phải truyền
qua mạng hoặc được lưu trữ trên các nền tảng đám mây.
2.5. Kết luận
Những nghiên cứu trên đây cho thấy các phép đo độ tương đồng truyền thống
có thể đối mặt những vấn đề nghiêm trọng khi phân biệt giữa các sản phẩm
tương đồng với các sản phẩm hoàn toàn khác biệt. Điều này tác động tiêu cực
đến hiệu quả hoạt động của mô hình kNNBaseline, giới hạn khả năng ứng dụng
trong thực tế của các hệ thống hướng sản phẩm. Trong chương này, tác giả đã
đề xuất một công thức tính toán độ tương đồng mới giúp cải thiện đáng kể khả
năng dự đoán của mô hình kNNBaseline với độ chính xác vượt qua mô hình
SVD nổi tiếng. Tiếp đó, một phương pháp đánh giá độ tương đồng mới giữa
51
hai sản phẩm đã được đề xuất sử dụng dữ liệu mô tả nội dung sản phẩm dưới
dạng các vector điểm số genome. Phương pháp mới giúp hệ thống kNNBaseline
đưa ra dự đoán với độ chính xác tương đương mô hình SVD++ trong khi tiêu
tốn khoảng thời gian ít hơn đến 93 lần. Cuối cùng, tác giả phát triển một ma
trận tương đồng kết hợp cả hai nguồn thông tin về lịch sử đánh giá và nội dung
sản phẩm để tạo ra một hệ thống kNNBaseline có hiệu suất vượt qua mô hình
I-AutoRec nổi tiếng và các đại diện tiểu biểu của phương pháp MF. Những kết
quả trên đã được lần lượt trình bày trong các nghiên cứu [C1], [C2], và [C3].
CHƯƠNG 3
HỆ THỐNG GỢI Ý ÁP DỤNG CÁCH THỨC BIỂU DIỄN
SẢN PHẨM SỬ DỤNG CÁC KỸ THUẬT HỌC SÂU
Như đã đề cập trong Phần mở đầu, chất lượng các đánh giá dự đoán bởi các
hệ thống lọc dựa trên nội dung hay kết hợp với CF phụ thuộc vào chất lượng
của dữ liệu đặc trưng sản phẩm đầu vào. Hiện nay, các kĩ thuật học sâu như
xử lí ngôn ngữ tự nhiên, các kiến trúc mạng nơ-ron sâu được áp dụng phổ biến
trong làm sạch và làm giàu dữ liệu ở nhiều lĩnh vực khác nhau. Ngoài ra, các
mạng dựa trên kiến trúc CNN gần đây cũng nhận được nhiều sự chú ý trong
nghiên cứu và ứng dụng thực tế nhờ hiệu năng vượt trội trong các mô hình xử
lí dữ liệu không có cấu trúc như hình ảnh hay âm thanh. Tuy nhiên, một lượng
lớn dữ liệu thô sinh ra bởi các công cụ khai phá dữ liệu và quá trình chuyển đổi
số là dữ liệu có cấu trúc, khiến cho việc tận dụng kiến trúc CNN trở nên khó
khăn. Cụ thể, trong phần lớn các hệ thống gợi ý, thông tin phản ánh nội dung
của các sản phẩm được mô tả dưới dạng bảng và chưa có nhiều nghiên cứu sử
dụng CNN để xử lý dạng dữ liệu này.
Trong chương này, tác giả tập trung phát triển phương pháp trích xuất đặc
trưng ẩn và nén dữ liệu đặc trưng của sản phẩm, thiết kế hệ thống kết hợp nhằm
tận dụng tối đa nguồn thông tin có sẵn để đưa ra gợi ý. Trước tiên, để cải thiện
chất lượng của vector đặc trưng sản phẩm, tác giả áp dụng một số kỹ thuật
NLP nhằm lọc và ghép các thẻ mô tả tương đồng nhau dựa trên ý nghĩa của
từng thẻ. Tiếp theo, mạng AE ba lớp ẩn được đề xuất với mục đích nén vector
đặc trưng sản phẩm thành một dạng biểu diễn cô đọng của từng bộ phim. Cuối
cùng, chương này đề xuất một kiến trúc bộ tự mã hoá mới được đặt tên là Bộ
tự mã hóa bán chập (Half Convolutional Autoencoder - HCAE) nhằm áp dụng
kiến trúc CNN để phân tích và xử lí những dữ liệu có cấu trúc, giúp cải thiện
hiệu năng của hệ thống trên cả hai phương diện độ chính xác lẫn thời gian dự
đoán đánh giá.
52
53
3.1. Phương pháp nhóm các thẻ tương đồng trong dữ liệu Tag
Genome bằng kỹ thuật xử lý ngôn ngữ tự nhiên
Trong quá trình khảo sát dữ liệu Tag Genome nhằm tích hợp vào thuật toán CF
ở phần 2.3.2, tác giả nhận thấy có nhiều thẻ mô tả có cùng ý nghĩa nhưng lại
mang nhiều tên gọi khác nhau. Điều này xảy ra do nhóm nghiên cứu GroupLens
cho phép người dùng chọn bất cứ thẻ mô tả nào mà họ cảm thấy phù hợp nhất
với bộ phim đó. Lấy bộ phim Captain America: The Winter Soldier (2014) làm
ví dụ, cả hai người dùng A và B đều biết rằng đây là một bộ phim siêu anh
hùng; tuy nhiên người dùng A có thể chọn thẻ “superhero” cho bộ phim này,
trong khi đó người dùng B có thể chọn thẻ “super-hero” để mô tả phim. Tương
tự như vậy, các ví dụ khác có thể được tìm thấy trong Bảng 3.1.
Bảng 3.1: Bảng nhóm các thẻ genome liên quan chặt chẽ với nhau trong tập dữ liệu
MovieLens 20M của ba bộ phim. Thẻ mới có điểm số bằng giá trị trung
bình hoặc trung vị của các thẻ gốc.
Genome Tag Grown Ups Kick-Ass Toy Story
fun 0.67 0.52 0.88
fun movie 0.49 0.68 0.82
funniest movies 0.10 0.11 0.04
funny 0.87 0.69 0.69
funny as hell 0.11 0.30 0.16
humor 0.46 0.89 0.63
humorous 0.53 0.69 0.69
fun_newtrung bình 0.46 0.56 0.56
fun_newtrung vị 0.49 0.68 0.69
Độ chênh lệch 0.03 0.12 0.13
(6.52%) (21.43%) (23.21%)
Về mặt lý thuyết, các thẻ tương đồng về mặt ý nghĩa sẽ không gây tác động
đến hiệu năng của hệ thống nếu như độ liên quan của một bộ phim với các thẻ
tương đồng nhau là như nhau, hoặc tối thiểu là có giá trị gần bằng nhau để sao
54
cho phép đo độ tương đồng giữa hai bộ phim không bị ảnh hưởng. Tuy vậy, việc
phân tích tập dữ liệu chỉ ra rằng các giá trị này có phân phối trong một khoảng
giá trị khá lớn. Ví dụ như với bộ phim “Grown Ups”, thẻ “fun movie” có điểm số
genome là 0.49, trong khi đó một số thẻ mô tả tương tự như là “fun”, “funniest
movies” hay “funny as hell” có điểm số genome giao động trong khoảng giá trị
từ 0.10 đến 0.87.
Như có thể thấy trong Bảng 3.1, vấn đề này cũng thường xuyên xảy ra với
các bộ phim khác, với các điểm số genome được gạch chân biểu diễn giá trị lớn
nhất và nhỏ nhất của một nhóm các thẻ tương đồng cho cùng một bộ phim. Có
thể thấy rằng thông tin nội dung của các bộ phim không được biểu diễn chính
xác do một thuộc tính lại được biểu diễn trong một khoảng quá rộng, do đó gây
tác động tiêu cực đến khả năng đánh giá độ tương đồng giữa hai bộ phim và
giảm độ chính xác của mô hình gợi ý.
Bảng 3.2: Một số nhóm các thẻ tương đồng lại với nhau, với tổng cộng 148 thẻ được
nhóm lại thành 64 nhóm.
Thẻ mô tả gốc Thẻ mô tả mới
007
007_new
007 (series)
soccer
football_new
football
gangs
gangster_newgangster
gangsters
good acting
good_acting_newgood action
great acting
Nhằm loại bỏ ảnh hưởng của việc người dùng được tự do chọn thẻ mô tả
phim, một phương pháp ánh xạ các thẻ được đề xuất như sau: những thẻ mô
tả có ý nghĩa tương đồng nhau được nhóm lại thành một thẻ mới duy nhất với
điểm số ghép được tính từ điểm genome của các thẻ gốc. Để thực hiện công việc
55
này, tác giả đề xuất các bước xử lý sau:
• Các thẻ mô tả gốc trước tiên cần qua một bước tiền xử lý: các ký tự không
có trong bảng chữ cái bị loại bỏ, đồng thời đưa các từ tiếng Anh về dạng
gốc (danh từ số nhiều về số ít, động từ thì quá khứ về thì hiện tại) qua từ
điển.
• Áp dụng kỹ thuật NLP có tên gọi word2vec [68] để chuyển các thẻ về dạng
vector.
• Phân cụm các thẻ theo quy tắc: Hai thẻ được coi là tương đồng về mặt ý
nghĩa nếu độ tương đồng lớn hơn một ngưỡng nhất định (các thí nghiệm
trong chương này chọn mức ngưỡng 0.65).
• Sau khi phân cụm các thẻ, kích thước của vector genome giảm từ 1,128
xuống 1,044.
Hình 3.1: Độ tương đồng về mặt ý nghĩa giữa một số thẻ genome.
Bảng 3.2 đưa ra bốn thẻ mới được tạo thành từ việc ghép các thẻ lại với
nhau, còn Hình 3.1 minh họa độ tương đồng về mặt ý nghĩa giữa các cặp thẻ
mô tả gốc trong dữ liệu Tag Genome.
Như trình bày trong Bảng 3.1, (fun, fun movie, funniest movies, funny, funny
as hell, humor, humorous) là một nhóm thẻ tương đồng và được ghép thành thẻ
mới có tên funnew. funnew và các thẻ mới khác có điểm số được tính bằng điểm
số genome của các thẻ gốc. Hai phương pháp tính điểm số mới được triển khai
56
trong phần này: trung bình hoặc trung vị. Bộ thẻ genome mới này có thể được
sử dụng thay thế nhằm cải thiện chất lượng các mô hình lọc kết hợp được trình
bày ở phần 2.3.2.
3.2. Phương pháp học cách biểu diễn mới cho các sản phẩm
qua Bộ tự mã hóa
3.2.1. Kiến trúc Bộ tự mã hóa
Trong các kỹ thuật giảm chiều dữ liệu và trích xuất thông tin hiện nay, AE được
sử dụng rộng rãi không chỉ như một phương pháp phi tuyến thay thế cho các kỹ
thuật tuyến tính truyền thống mà còn như một cơ chế học cách biểu diễn đối
tượng ở không gian có số chiều nhỏ hơn. Thông tin dư thừa trong dữ liệu bị loại
bỏ bằng cách ánh xạ dữ liệu từ không gian có số chiều lớn sang không gian có
số chiều nhỏ hơn, tạo ra dạng biểu diễn dữ liệu chính xác và hiệu quả hơn [69].
Hình 3.2: Minh họa kiến trúc AE với 1 lớp ẩn.
Hình 3.2 minh họa kiến trúc của mạng AE truyền xuôi 1 lớp ẩn đơn giản.
Mạng AE thông thường bao gồm hai thành phần:
• Bộ mã hóa ϕ : x 7→ c nhằm ánh xạ một mẫu dữ liệu x ∈ X thành một mã
c ∈ C.
57
• Bộ giải mã ψ : c 7→ x nhằm khôi phục dữ liệu ban đầu từ mã c ∈ C.
Mã c ∈ C ở đây chính là lớp ẩn của mạng và thường được sử dụng để biểu diễn
dữ liệu thay cho đầu vào. Quá trình huấn luyện của AE nhằm tối thiểu hóa sự
sai lệch giữa đầu vào và đầu ra của mạng bằng cách khôi phục x ∈ X từ mã
c ∈ C như sau:
ϕ∗, ψ∗ = argmin
ϕ,ψ
∑
x∈D
∥x− ϕ(ψ(x))∥2 (3.1)
trong đó, D là tập huấn luyện. Trong thực tế, chỉ có mã c ∈ C được tách ra khỏi
mạng để trở thành dạng biểu diễn ngắn gọn cho dữ liệu mà vẫn giữ được những
thông tin quan trọng nhất để hệ thống phía sau có thể tiếp tục xử lý.
Trong vài năm trở lại đây, kiến trúc AE nhận được nhiều sự chú ý trong các
nghiên cứu về RS và thu được nhiều kết quả tích cực. Mô hình Collaborative
Deep Learning (CDL) [70] được đề xuất nhằm kết hợp RS với việc học thông tin
thứ cấp qua bộ tự mã hóa lọc nhiễu nhiều cấp (Stacked Denoising Autoencoder).
Đáng chú ý hơn, mô hình gợi ý I-AutoRec [30] dựa trên kiến trúc AE nhằm điền
những đánh giá chưa biết trong ma trận đánh giá bằng cách khôi phục đầu vào
có chứa các đánh giá đã biết. Khác với CDL, I-AutoRec hoạt động dựa trên dữ
liệu phản hồi trực tiếp nhằm đưa ra gợi ý đáng tin cậy hơn so với thông tin đặc
trưng thứ cấp. Một số biến thể khác của AE, như trong [71, 72, 73, 74, 75], cũng
có thể được áp dụng để tối ưu hóa đầu vào của hệ thống, giúp nắm bắt được
các đặc trưng ẩn phi tuyến của người dùng và sản phẩm.
3.2.2. Áp dụng Bộ tự mã