Đầu vào là kết quả của bƣớc 1 bao gồm tập transaction T, minsup, minconf.
Đƣa ra đƣợc tất cả các tập mục phổ biến FIs và tập luật ARs. Phƣơng pháp sử dụng là dùng kết quả một trong các thuật toán.
Trong bƣớc này luận văn có chạy thực nghiệm với một số thuật toán khai phá tập phổ biến và luật kết hợp khác đó là FPGrowth, FIN, FPMax, FPClose; lần lƣợt với độ hỗ trợ giảm dần. Sau đó là đánh giá và lựa chọn thuật toán tốt nhất dựa trên thời gian chạy và bộ nhớ cần dùng.
Frequent itemsets: Itemset #độ hỗ trợ 1. 508959 533212 #SUP: 680 2. 508959 533212 599206 #SUP: 157 3. 508959 643803 #SUP: 435 4. 508959 533212 598058 #SUP: 103 5. 508959 598058 #SUP: 628 Hình 3.8 Định dạng những tập phổ biến tìm đƣợc X ==> Y #Độ hỗ trợ #Độ tin cậy Với X, Y là các itemset 1. 707568 ==> 706166 #SUP: 2041 #CONF: 0.89244 2. 706166 ==> 707568 #SUP: 2041 #CONF: 0.78864 3. 707568 ==> 707564 #SUP: 1933 #CONF: 0.84521 4. 707564 ==> 707568 #SUP: 1933 #CONF: 0.77944 5. 707568 ==> 706166 707564 #SUP: 1694 #CONF: 0.74071 6. 707564 ==> 706166 707568 #SUP: 1694 #CONF: 0.68306 7. 706166 ==> 707564 707568 #SUP: 1694 #CONF: 0.65456 Hình 3.9 Định dạng luật kết hợp tìm đƣợc
Từ kết quả đầu ra của thuật toán tìm tập phổ biến ở bƣớc 2.1 sẽ thực hiện đánh chỉ mục ngƣợc theo các item, đƣợc mô tả trong cách giải quyết của mục 3.2 bài toán gợi ý, công đoạn này sẽ giúp việc tìm kiếm một sản phẩm nào đó có thuộc tập phổ biến nào đƣợc nhanh chóng, sẽ giúp bƣớc sau là quá trình gợi ý cho từng ngƣời dùng.
Tiếp tới là đánh chỉ mục ngƣợc theo item cho tập phổ biến và tập luật, định dạng đƣợc lƣu trữ nhƣ hình 3.7 và 3.8 sau: Item=[itemset1, itemset2,…] Ví dụ: cho item có mã số 709241 709241=[709241 355938 #SUP: 11, 709241 692430 #SUP: 15, 709241 286017 #SUP: 14, 597550 709241 #SUP: 15, 576974 709241 #SUP: 21, 400370 709241 #SUP: 22, 641581 709241 #SUP: 10, 621658 709241 #SUP: 12, 664950 709241 #SUP: 27] Hình 3.10 Định dạng đầu ra các tập phổ biến đƣợc đánh chỉ mục ItemsetX= [ItemsetY1 #độ đo, ItemsetY2 #độ đo,…]
593983=[591783 #SUP: 18 #CONF: 0.0602 #LIFT: 104.74346 #HM: 0.00146 #COS: 0.06834 #CONV: 1.06345,
591789 #SUP: 15 #CONF: 0.05017 #LIFT: 191.04152 #HM: 0.00146 #COS: 0.08426 #CONV: 1.05254,
593778 #SUP: 17 #CONF: 0.05686 #LIFT: 239.06724 #HM: 0.00146 #COS: 0.10034 #CONV: 1.06003,
672383 #SUP: 18 #CONF: 0.0602 #LIFT: 64.62894 #HM: 0.00146 #COS: 0.05368 #CONV: 1.06307,
678876 #SUP: 10 #CONF: 0.03344 #LIFT: 50.18687 #HM: 0.00145 #COS: 0.03526 #CONV: 1.03391,
679996 #SUP: 18 #CONF: 0.0602 #LIFT: 273.03912 #HM: 0.00146 #COS: 0.11034 #CONV: 1.06382,
681589 #SUP: 17 #CONF: 0.05686 #LIFT: 172.55981 #HM: 0.00146 #COS: 0.08525 #CONV: 1.05993,
683287 #SUP: 13 #CONF: 0.04348 #LIFT: 142.68575 #HM: 0.00146 #COS: 0.06779 #CONV: 1.04514,
694332 #SUP: 15 #CONF: 0.05017 #LIFT: 262.99223 #HM: 0.00146 #COS: 0.09886 #CONV: 1.05262,
694450 #SUP: 22 #CONF: 0.07358 #LIFT: 213.6733 #HM: 0.00147 #COS: 0.10791 #CONV: 1.07905]
Hình 3.11 Định dạng đầu ra phần Y của luật đƣợc đánh chỉ mục
Kết quả các tập phổ biến tìm đƣợc cũng là đầu vào để tính các luật kết hợp, đƣa ra các luật theo định dạng mô tả ở bài toán mục 3.3. Những luật này cũng sẽ đƣợc đánh chỉ số ngƣợc theo item.
Trong bƣớc này sẽ còn một công đoạn chọn ngƣỡng cho phù hợp, việc xác định các ngƣỡng dựa trên nhận định những số liệu của dữ liệu. Ví dụ với ngƣỡng hỗ trợ chọn giá trị số tần xuất xuất hiện là 10 lần, 20 lần là phù hợp với thực tế, từ đó tính ra tỉ lệ phần trăm (%) của sản phẩm trong bộ dữ liệu transaction, đƣa ra ngƣỡng đầu vào minsup.
Bƣớc 3: Gợi ý cho từng ngƣời dùng
Hình 3.12 Mô hình bƣớc gợi ý cho ngƣời dùng
Đây là bƣớc đƣợc thực hiện online trong thời gian thực, yêu cầu nhanh chóng truy vấn ra những gợi ý cho ngƣời dùng khi họ vừa click xem 1 sản phẩm.
Đầu vào ở bƣớc này là những tập mục phổ biến FIs và tập luật ARs đã tìm đƣợc ở bƣớc hai và đƣợc đánh chỉ mục theo từng item (ký hiệu k-FI, những tập phổ biến chứa item k); thông tin về sản phẩm a đang xem của ngƣời dùng.
Đầu ra là 𝑅𝑎−𝐹𝐼 và 𝑅𝑎−𝐴𝑅 những gợi ý tập phổ biến và tập luật cho sản phẩm i
đƣợc hiển thị bằng hình ảnh và những thông số giải thích cho lý do đƣa ra gợi ý trên giao diện web.
Phƣơng pháp: lấy các itemID từ tập 𝑅𝑎−𝐹𝐼 và 𝑅𝑎−𝐴𝑅, qua bộ chọn ngẫu nhiên lấy những itemID để liên kết cùng với thông tin của sản phẩm thu thập và lƣu trữ trong CSDL.
Từ khi ngƣời dùng nhấp chuột xem sản phẩm, duyệt sản phẩm có thuộc tập sản phẩm phổ biến, duyệt trong CSDL tập phổ biến và luật kết hợp tìm đƣợc, chọn ra những tập phổ biến và luật kết hợp chứa sản phẩm đang xem, sau đó đƣa ra xếp hạng luật dựa trên độ tin cậy, đƣa ra tập phổ biến dựa trên độ hỗ trợ cho giao diện ngƣời dùng.
Gợi ý các sản phẩm đƣợc xem cùng nhau, nếu xem sản phẩm này thì nên xem sản phẩm tiếp theo. Với mỗi sản phẩm sẽ đƣợc giải thích lý do gợi ý qua các số liệu thống kê về số lần xuất hiện cùng nhau và độ tin cậy của từng sản phẩm.
Ngoài ra còn một bƣớc là sau khi gợi ý đó là thu thập những phiên truy cập mới của ngƣời dùng mới cập nhật vào bộ dữ liệu transaction để tiếp tục khai phá tập phổ biến và luật kết hợp. Tuy nhiên bƣớc này không thực hiện thực nghiệm trong luận văn, đây là nằm trong bƣớc đánh giá chất lƣợng hệ gợi ý ở quá trình chạy trực tuyến online
nhƣ đã nêu ở phần đánh giá hệ gợi ý.
Biểu diễn mô phỏng trên nền web: webpage có phân mục các chủng loại mặt hàng nhƣ thời trang nam, mẹ và bé, đồng hồ...Những thông tin sản phẩm đƣợc hiển thị theo từng phân mục này. Khi nhấp chuột để xem một sản phẩm bất kỳ, nếu sản phẩm đó là sản phẩm phổ biến sẽ đƣa ra trên giao diện gợi ý thứ nhất là sản phẩm hay đƣợc xem sau sản phẩm đang xem, thứ hai là những sản phẩm rất thƣờng đƣợc xem cùng với sản phẩm đang xem.
Thực nghiệm chạy trên máy có cấu hình: 4GB RAM, Intel® Core ™ i3 CPU M380 @2.53GHz. Sử dụng môi trƣờng Eclipse để lập trình.
Tại bƣớc 2: có sử dụng các thƣ viện java để xây dựng và so sánh các thuật toán tìm tập phổ biến. Đó là thƣ viện spmf[45].
Sử dụng hệ quản trị CSDL MySQL để lƣu trữ các thông tin về sản phẩm, và tập phổ biến và tập luật tìm đƣợc.
CHƢƠNG 4. THỰC NGHIỆM, PHÂN TÍCH VÀ ĐÁNH GIÁ 4.1. Kết quả chạy các thuật toán tìm kiếm tập phổ biến. 4.1. Kết quả chạy các thuật toán tìm kiếm tập phổ biến.
Mục đích đƣa ra so sánh các thuật toán tìm kiếm tập phổ biến là để lựa chọn ra thuật toán tốt phù hợp cho loại dữ liệu thực tế của bài toán, có thể làm minh chứng khi đƣa ra áp dụng thực tế.
Kết quả chạy đánh giá theo thời gian chạy của thuật toán: kết quả là độ đo trung bình của 5 lần chạy cho mỗi thuật toán với mỗi độ hỗ trợ khác nhau.
Mô tả biểu đồ: Trong biểu đồ so sánh thời gian chạy, trục nằm ngang thể hiện độ hỗ trợ: có hai hàng thông số, hàng thứ nhất ghi các chỉ số độ hỗ trợ (%) đƣợc tính bằng số lần xuất hiện của item trên tổng số transaction, hàng thứ hai là tần suất tƣơng ứng nghĩa là với độ hỗ trợ 0.0005% số lần xuất hiện là hơn 201 lần, tƣơng tự với các cột khác. Trong biểu đồ tính toán đến độ hỗ trợ 10 lần thể hiện chỉ số mức quan tâm của ngƣời dùng với sản phẩm.
Hình 4.1 So sánh thời gian chạy các thuật toán
Kết quả so sánh thời gian chạy của bốn thuật toán nhƣ hình 4.1 cho thấy các thuật toán FPClose và FPMax có độ nén cao hơn, việc khai phá diễn ra nhanh dù độ hỗ trợ nhỏ, trong khi thuật toán FPGrowth có thời gian lâu hơn hẳn khi độ hỗ trợ giảm dần. Thuật toán FIN đƣợc kỳ vọng lại thời gian chạy chậm hơn rất nhiều và thậm chí không chạy đƣợc ở độ hỗ trợ thấp 0.000025% trong hình chỉ biểu diễn tƣơng quan.
Độ hỗ trợ (số lần) 201.3015 100.6508 50.32538 20.13015 10.065075 Độ hỗ trợ (%) 0.0005 0.00025 0.000125 0.00005 0.000025 FP_Growth 2664 2926 5297 18995 1787596 FIN 2833 7652 36846 95149 overload FPMax 2479 3500 6109 16925 39604 FPClose 2700 3400 5700 17483 35647
Hình 4.3 So sánh bộ nhớ tối đa sử dụng
Quá trình thống kê so sánh về bộ nhớ sử dụng tối đa cho thấy là các thuật toán chạy không ổn định,tùy từng thời điểm mà tính đƣợc mức dùng bộ nhớ khác nhau, ở đây chỉ quan tâm khả năng chạy không bị quá tải (overload), nhìn chung các thuật toán đều thỏa mãn chạy đƣợc trong điều kiện môi trƣờng thử nghiệm, không bị giao động nhiều, duy chỉ có thuật toán FIN chạy ở độ hỗ trợ thấp, việc lƣu trữ các nốt đƣợc duyệt hiển nhiên cần nhiều bộ nhớ lƣu trữ, do đó với dữ liệu lớn có thể dẫn đến quá tải không thực thi đƣợc. Trong hình minh họa với độ hỗ trợ 0.000025 tức là tần suất các sản phẩm xuất hiện cùng nhau là 10 lần, việc chạy thuật toán FIN đã quá tải.
Tính theo bộ nhớ tối đa sử dụng (mb)
Độ hỗ trợ (số lần) 201.3015 100.6508 50.32538 20.13015 10.065075 Độ hỗ trợ (%) 0.0005 0.00025 0.000125 0.00005 0.000025 FP_Growth 209 237 135 290 400 FIN 170 200 188 300 100000 FPMax 200 300 307 231 281 FPClose 88 290 294 165 247
Hình 4.4 Thống kê bộ nhớ tối đa sử dụng của các thuật toán
Độ hỗ trợ (số lần) 201.3015 100.6508 50.32538 20.13015 10.065075 Độ hỗ trợ (%) 0.0005 0.00025 0.000125 0.00005 0.000025 FP_Growth 770 2212 6125 189508 536918066 FIN 770 2212 6125 189508 x FPMax 700 2025 5606 18578 40981 FPClose 770 2212 6125 20656 47363 Hình 4.5 Thống kê số tập phổ biến tìm đƣợc
Một vài kết quả nhận thấy sau đây sẽ giúp quá trình lựa chọn kết quả của thuật toán nào đƣợc áp dụng cho bƣớc tiếp theo:
Khi sử dụng ngƣỡng hỗ trợ là 10 cho bộ dữ liệu đầy đủ chƣa phân hoạch, và bằng thuật toán FPClose thì số tập phổ biến thu đƣợc là hơn 67.000 tập, cho số item có mặt trong tập phổ biến là hơn 4200. Đây là tỉ lệ tƣơng đối nhỏ trong toàn tập item là hơn 238.000. Sẽ cần xem xét để tính giảm độ hỗ trợ xuống.
Ngoài ra thống kê đƣợc những mặt hàng item thuộc 1-itemset và không thuộc tập phổ biến nào là gần 236.000 item; với 2-itemset trở lên là hơn 31.000 item. Số
transaction chứa 2 item là khoảng hơn 151.000 transaction. Số transaction chứa 3
item là hơn 80.000 transaction. Điều này cho thấy tỷ lệ ngƣời xem ít sản phẩm trong một phiên giao dịch là chiếm tới hơn 50% số transaction đang chạy thực nghiệm, những lý do có thể có trong trƣờng hợp này là ngƣời dùng có thể chƣa thực sự quan tâm đến sản phẩm đang xem, chƣa thấy gợi ý tốt hay sản phẩm tốt và không có ý định muốn tìm hiểu tiếp, hoặc cũng có thể ngƣời dùng thấy „hài lòng‟ với loại mặt hàng với ngay khi xem những item đầu tiên. Những tâm lý mua hàng này mới theo nhận định của ngƣời nghiên cứu, và chƣa có thống kê chính thức. Nói tóm lại những đối tƣợng
transaction này trong quá trình khai phá dữ liệu sẽ không giúp ích nhiều.
Tƣơng tự khi tìm hiểu lý do ngƣời dùng xem rất nhiều mặt hàng trong một phiên giao dịch, với thống kê đƣợc hơn 30.000 transaction (chiếm khoảng 7,5% số
transaction tổng) dài hơn 20 item, có thể nhận thấy những đối tƣợng ngƣời dùng xem hoặc là đang rất quan tâm nhƣng chƣa tìm ra đƣợc lựa chọn, quyết định; hoặc là ngƣời dùng muốn tham khảo và đánh giá,…Mục tiêu của hệ thống chính là giúp những ngƣời dùng này có thể đƣa ra những lựa chọn nhanh chóng, có thể giúp ngƣời dùng đánh giá các sản phẩm dựa theo lựa chọn của nhiều ngƣời khác.
Tuy nhiên với tập phổ biến tìm đƣợc ở ngƣỡng độ hỗ trợ 20 và độ tin cậy là 0.8, số luật tìm đƣợc lên tới hơn 90 triệu luật, bị quá tải với độ hỗ trợ 10. Lý do có sự phát sinh lớn là do độ dài tập phổ biến là lớn lên tới hơn 20 item, tập trung ở mặt hàng đồng hồ (với 20-itemset dẫn tới 2^20-2 luật có thể tìm đƣợc, công thức đã đƣợc chứng minh ở phần 2.4.1 trên). Bài toán sẽ gói gọn hơn và chỉ quan tâm đến những tập luật có X là
1-itemset (đƣợc mô tả ở phần phát biểu bài toán 3.1). Số luật thỏa mãn thu đƣợc là hơn 32.000 luật.
Nhƣ vậy sau khi thực nghiệm và đƣa ra so sánh với các thuật toán, luận văn đã quyết định chọn sử dụng thuật toán FPClose để tìm kiếm tập phổ biến và luật kết hợp.
Đối với dữ liệu đƣợc chia nhỏ phân hoạch nhƣ cách thức đƣợc nêu ở 2.4.1, dùng thuật toán đã lựa chọn là FPClose để tìm tập phổ biến và luật kết hợp, với đầu vào là các ngƣỡng tùy theo từng phần dữ liệu. Tuy nhiên ở bộ dữ liệu này đầu ra rất ít, có thể phân tích là dữ liệu quá thƣa, độ hỗ trợ trung bình của các item là thấp. Dẫn đến chƣa thể áp dụng gợi ý hay đánh giá đối với cách thức phân hoạch ở bộ dữ liệu này. Có thể dùng để mô tả hay thể hiện những luật hay tập phổ biến „thú vị‟ theo từng chủng loại nhƣ là có độ hỗ trợ rất lớn và giúp thể hiện rõ đƣợc phân bố của các chủng loại item
Tiếp theo sẽ nêu một vài ví dụ tiêu biểu cho tập phổ biến và tập luật thu đƣợc của các chủng loại mặt hàng.
Ví dụ với mặt hàng thời trang nữ Luật kết hợp tìm đƣợc
622616 ==> 120220 #SUP: 238 #CONF: 0.48081 #LIFT: 118.92281 #HM: 0.00245 #COS: 0.2648 #CONV: 1.91828
Bikini đi biển họa tiết ==>
Đồ bơi short hoa trắng ---
607202 ==> 599206 #SUP: 507 #CONF: 0.8099 #LIFT: 80.10887 #HM: 0.0031 #COS: 0.3172 #CONV: 5.20732
Đầm Thu Thảo Hoa Vai MD1712 ==>
Đầm HH Thu Thảo D10014NM
Luật thứ hai thể hiện khi xem sản phẩm „Đầm Thu Thảo Hoa Vai MD1712‟ thì sản phẩm „Đầm HH Thu Thảo D10014NM‟ cũng đƣợc xem với độ hỗ trợ là 507 lần, độ tin cậy là 0.8099, cũng có nghĩa là số lần hai sản phẩm này đƣợc xem với nhau là 507 lần, 81% khi xem sản phẩm đầu thì xem sản phẩm thứ hai. Độ đo thú vị lift là 80, có nghĩa là độ tƣơng quan thuận là lớn. Độ đo HM là 0.0031hệ số hài hòa giữa hai độ đo
support và confidence. Độ đo cosine là 0.3172 có thể dùng thay thế lift. Độ đo
conviction là 1.918. Tƣơng tự với các luật khác. Tập phổ biến tìm đƣợc
58831 529749 #SUP: 104 Áo Sơ mi pha ren hồng Full size ÁO THUN NỮ Ý VY -AT.0565 ---
525969 525997 589878 #SUP: 26 A42 ÁO SƠ MI VIỀN MÀU BE A70 ÁO SƠ MI CỔ TRỤ TAY PHỒNG Áo vest nẹp báo
---
508959 598058 #SUP: 628 Đầm Kim Sa Nhũ Ánh Kim Nâu ĐẦM VOAN CỔ ĐỖ
Tập phổ biến thứ hai đƣợc mô tả là tập những sản phẩm „A42 ÁO SƠ MI VIỀN MÀU BE‟, „A70 ÁO SƠ MI CỔ TRỤ TAY PHỒNG‟ „Áo vest nẹp báo‟ đƣợc xem cùng nhau 26 lần.
Đây là chủng loại có số lƣợng mặt hàng rất lớn, lƣợng xem trong CSDL rất nhiều chiếm khoảng 3/5 số lƣợng transaction, những tập phổ biến và luật tìm đƣợc trung bình có độ hỗ trợ lên tới 100 lƣợt xem cùng nhau, có những sản phẩm đƣợc xem cùng nhau tới hơn 600 lần với độ tin cậy lên tới 90%, thƣờng những mặt hàng quần áo đƣợc xem cùng nhau có sự đồng bộ về loại, kiểu dáng, mẫu thời trang. Nhờ có chỉ số độ tin
cậy cho thấy mức liên quan giữa các sản phẩm này cao hơn so với việc đƣa ra các sản phẩm đồng loại dựa trên nội dung.
Ví dụ nhƣ với mặt hàng đồng hồ