Dữ liệu mà luận văn thu thập được từ một website thương mại tại Việt Nam, với số lượng các mặt hàng lên tới hơn 238.000 sản phẩm chủ yếu về các mặt hàng thời trang, gia dụng, thực phẩm,
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
Trang 31
LỜI CẢM ƠN
Để đi cả quãng đường này, lời đầu tiên tôi xin được gửi lời biết ơn chân thành
và sâu sắc tới thầy Ts Phan Xuân Hiếu, một người thầy, người anh cả vô cùng nhiệt thành đã dẫn dắt, truyền nhiệt huyết cho tôi trong toàn bộ quá trình, giúp tôi vững vàng và trưởng thành trong con đường nghiên cứu và học tập
Thời gian qua là một khoảng kỷ niệm cực kỳ sâu sắc với tôi, khi được học tập tham gia nghiên cứu tại trường, phòng thí nghiệm công nghệ tri thức (KT Lab) và Trung tâm Công nghệ tích hợp liên ngành Giám sát hiện trường (FIMO) Xin được gửi lời cảm
ơn tới tất cả các thầy cô và các bạn học đã luôn sẵn sàng hỗ trợ và giúp đỡ tôi
Tôi xin bày tỏ lòng biết ơn chân thành tới Thầy, Cô giáo các anh chị và các bạn trong bộ môn Hệ thống thông tin, Khoa Công nghệ thông tin, những người đã nhiệt tình giúp tôi mở rộng kiến thức về Công nghệ thông tin nói chung và Hệ thống thông tin nói riêng, đó là những kiến thức quý báu và sẽ rất có ích với tôi trong giai đoạn hiện tại và tương lai
Tôi xin gửi lời cảm ơn chân thành tới Ban Giám hiệu Nhà trường, Phòng Đào tạo sau đại học, Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo điều kiện tốt nhất giúp tôi trong suốt quá trình học tập
Qua tất cả tôi gửi đến gia đình thân yêu mọi tình cảm của mình, cảm ơn bố mẹ
đã luôn luôn tin tưởng, luôn luôn là chỗ dựa vững chắc, cảm ơn các anh chị em đã dành mọi điều kiện để giúp tôi tập trung vào nghiên cứu
Hà Nội, ngày 30 tháng 10 năm 2015
Học viên
Trương Thị Minh Ngọc
Trang 42
LỜI CAM ĐOAN
Tôi xin cam đoan nội dung trình bày trong luận văn này là do tôi tự nghiên cứu tìm hiểu dựa trên các tài liệu và tôi trình bày theo ý hiểu của bản thân dưới sự hướng dẫn trực tiếp của Thầy TS Phan Xuân Hiếu Các nội dung nghiên cứu, tìm hiểu và kết quả thực nghiệm là hoàn toàn trung thực
Luận văn này của tôi chưa từng được ai công bố trong bất cứ công trình nào
Trong quá trình thực hiện luận văn này tôi đã tham khảo đến các tài liệu của một số tác giả, tôi đã ghi rõ tên tài liệu, nguồn gốc tài liệu, tên tác giả và tôi đã liệt kê trong mục “DANH MỤC TÀI LIỆU THAM KHẢO” ở cuối luận văn
Học viên
Trương Thị Minh Ngọc
Trang 53
MỤC LỤC
CHƯƠNG 1 KHÁI QUÁT BÀI TOÁN TƯ VẤN SẢN PHẨM THƯƠNG MẠI 9
1.1 Tổng quan bài toán tư vấn trong thương mại điện tử 9
1.2 Các hướng tiếp cận và các mô hình trong hệ gợi ý 12
1.3 Thách thức của hệ gợi ý 13
1.4 Đánh giá và ứng dụng hệ gợi ý 14
1.4.1.Đánh giá một hệ gợi ý 14
1.4.2.Thiết kế ứng dụng cho một hệ thống gợi ý thực 15
CHƯƠNG 2 LÝ THUYẾT KHAI PHÁ MẪU PHỔ BIẾN VÀ LUẬT KẾT HỢP 16
2.1 Những định nghĩa chung trong bài toán tìm mẫu phổ biến và luật kết hợp 16
2.2 Những hướng tiếp cận trong khai phá mẫu phổ biến, luật kết hợp 17
2.2.1.Những hướng tiếp cận luật kết hợp 17
2.2.2.Những thuật toán cơ bản 21
2.3 Luật kết hợp trong hệ gợi ý 23
2.4 Thuật toán tìm kiếm tập phổ biến và luật kết hợp 24
2.4.1.Thuật toán FP-Growth 24
2.4.2.Thuật toán FPClose 28
2.4.3.Thuật toán FIN 29
CHƯƠNG 3 ỨNG DỤNG MẪU PHỔ BIẾN VÀ LUẬT KẾT HỢP ĐỂ GỢI Ý SẢN PHẨM TRONG THƯƠNG MẠI ĐIỆN TỬ Ở VIỆT NAM 34
3.1 Bài toán gợi ý sản phẩm bằng tìm kiếm mẫu phổ biến và luật kết hợp 34
3.2 Gợi ý sản phẩm dựa trên mẫu phổ biến 36
3.3 Gợi ý sản phẩm dựa trên luật kết hợp 37
3.4 Mô tả dữ liệu 38
3.5 Mô tả hệ thống gợi ý cho người dùng 40
CHƯƠNG 4 THỰC NGHIỆM, PHÂN TÍCH VÀ ĐÁNH GIÁ 46
4.1 Kết quả chạy các thuật toán tìm kiếm tập phổ biến 46
4.2 Kết quả của gợi ý sản phẩm cho từng người dùng 51
CHƯƠNG 5 KẾT LUẬN 57
5.1 Những vấn đề được giải quyết trong luận văn này 57
5.2 Hướng đi hay hướng áp dụng cho đề tài luận văn 58
CÁC CÔNG TRÌNH KHOA HỌC VÀ SẢN PHẨM ĐÃ CÔNG BỐ 59
TÀI LIỆU THAM KHẢO 60
Trang 64
DANH MỤC HÌNH VẼ
Hình 3.1 Gợi ý tại Amazon 34
Hình 3.2 Phân bố dữ liệu sản phẩm thu thập được 39
Hình 3.3 Ví dụ về thông tin sản phẩm item 39
Hình 3.4 Ví dụ về các transaction – các lượt truy cập từng người dùng 40
Hình 3.5 Quy trình giải quyết bài toán 41
Hình 3.6 Mô hình bước tiền xử lý 41
Hình 3.7 Mô hình bước tìm mẫu phổ biến và luật kết hợp 42
Hình 3.8 Định dạng những tập phổ biến tìm được 43
Hình 3.9 Định dạng luật kết hợp tìm được 43
Hình 3.10 Định dạng đầu ra các tập phổ biến được đánh chỉ mục 43
Hình 3.11 Định dạng đầu ra phần Y của luật được đánh chỉ mục 44
Hình 3.12 Mô hình bước gợi ý cho người dùng 44
Hình 4.1 So sánh thời gian chạy các thuật toán 46
Hình 4.2 Thống kê thời gian trung bình chạy các thuật toán 46
Hình 4.3 So sánh bộ nhớ tối đa sử dụng 47
Hình 4.4 Thống kê bộ nhớ tối đa sử dụng của các thuật toán 47
Hình 4.5 Thống kê số tập phổ biến tìm được 47
Hình 4.6 Giao diện gợi ý cho người dùng 53
Hình 4.7 Gợi ý cho người dùng theo một sản phẩm mẹ và bé 54
Hình 4.8 Gợi ý cho mặt hàng phụ kiện công nghệ 55
Hình 4.9 Gợi ý cho mặt hàng đồ gia dụng 55
Hình 4.10 Gợi ý cho mặt hàng đồng hồ 56
Trang 75
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Giải nghĩa
Trang 86
MỞ ĐẦU
Những tác giả đầu ngành mở đầu cho bài toán tìm mẫu phổ biến [1] từ năm
1993 là Jiawei Han và Charu C Aggarwal đã tổng hợp những vấn đề về các hướng tiếp cận, phương pháp các thuật toán, dành cho nhiều loại dữ liệu của rất nhiều công trình nghiên cứu tại “Frequent pattern mining” [2] xuất bản năm 2014 Cho thấy sức hấp dẫn của đề tài này xong suốt hơn 20 năm qua
Ứng dụng cho bài toán maketing tìm kiếm mẫu phổ biến trên tập dữ liệu mua hàng của khách, tìm ra những sản phẩm hay được mua cùng nhau nhất, hay gợi ý nếu xem sản phẩm này sẽ xem sản phẩm nào tiếp theo Thử đặt ra giả thiết nếu như khi một người xem đang nhấp chuột tìm kiếm hoặc xem một sản phẩm về thời trang như
„đầm xòe nơ‟ mà họ đang quan tâm trên một website, thì website đó sẽ gợi ý „đầm kim
sa nhũ‟ hoặc/và „đầm dự tiệc sang trọng‟ hoặc/và „giầy cao gót dây thanh lịch‟ hoặc/và „ví xách trang nhã‟ với giải thích là những sản phẩm này thường được nhiều
người dùng khác xem với nhau rất nhiều lần, có thể nhận thấy ngữ cảnh xem hàng này người dùng đang muốn tìm kiếm trang phục dự tiệc, những gợi ý về sản phẩm đồng bộ theo loại sản phẩm này rất phù hợp, và gợi ra được nhiều liên quan giữa các sản phẩm này không chỉ tính đến chúng thuộc cùng chủng loại, cùng nội dung
Đặc biệt khi gợi ý trong thương mại điện tử tại Việt Nam, lý do để chọn hướng tiếp cận tìm tập phổ biến là vì phụ thuộc vào tập dữ liệu thu thập được từ khách hàng
Dữ liệu mà luận văn thu thập được từ một website thương mại tại Việt Nam, với số lượng các mặt hàng lên tới hơn 238.000 sản phẩm chủ yếu về các mặt hàng thời trang, gia dụng, thực phẩm, phụ kiện công nghệ …
Hướng tiếp cận cũ như hướng lọc nội dung (content-based) dù cũng có kết quả tốt nhưng không đủ tinh tế để hiểu người dùng, thường gợi ý ra được rất nhiều sản phẩm nếu số lượng sản phẩm liên quan với nhau lớn, mà theo tâm lý người dùng việc gợi ý ra nhiều sẽ không gây được kết quả tốt [3], xem xét những gợi ý phù hợp và thú
vị cho người dùng mới là vấn đề cần nghiên cứu Những công trình được nghiên cứu cho thế hệ gợi ý mới đã có nhiều bước tiến vượt trội, nhiều phương pháp mang lại hiệu quả cao và đang là xu hướng hiện nay như là hướng lọc cộng tác (collaborative
filtering) dựa vào cộng đồng người dùng sử dụng dữ liệu đánh giá (rating) của họ về
sản phẩm Nhưng quay trở về áp dụng cho người dùng tại Việt Nam với sản phẩm thương mại thì rất khó khăn trong việc thu thập dữ liệu, lý do là người dùng tại Việt
Nam thường rất ít có thói quen đánh giá (rating) hay bình luận (comment) về sản
phẩm, đây là kết quả thực tế khi thu thập dữ liệu được từ website thương mại mà luận văn làm thực nghiệm Hơn nữa hành vi chủ yếu của người dùng là tìm kiếm thông tin của sản phẩm, hành vi mua trực tuyến là khá ít dẫn đến khó khăn khi thu thập và khai phá trên dữ liệu của kiểu hành vi này, theo khảo sát của Google vào năm 2015 [4] trong số 73% người dùng xem hàng chỉ có 17% quyết định mua hàng trực tuyến còn
Trang 97
lại là thực hiện mua bán ngoại tuyến Ngoài ra theo trang alexa.com1 trang chuyên thống kê các website khắp thế giới về các mức độ người truy cập, số lượng tìm kiếm, đánh giá năm 2015 đã thống kê những website thương mại điện tử đứng đầu ở Việt Nam như vatgia.com, 5giay.vn, lazada.vn, chotot.vn…có rất ít đánh giá rating cho những sản phẩm được mua và dùng bởi người dùng Với hướng tìm kiếm tập phổ biến
để gợi ý, luận văn có tham khảo một trong những trang web về thương mại điện tử thành công nhất trên thế giới là Amazon2 (theo alexa3), dựa trên tìm những luật kết hợp và xếp chúng theo độ tin cậy, tìm những biến thể khác như đo độ không thích hoặc quan hệ của người dùng Điều này tùy thuộc vào các dữ liệu lấy được, có thể hay không thu được mức độ xem hoặc quan tâm từ những rating, hành vi hoặc những phản hồi ẩn của khách hàng, những dữ liệu này đều thu thập được tại website làm thực nghiệm
Với hướng đi ứng dụng tập phổ biến và luật kết hợp vào trong bài toán gợi ý sản phẩm thương mại, luận văn đã tìm hiểu và nghiên cứu những vấn đề liên quan đến khâu xây dựng và ứng dụng như là xác định đối tượng gợi ý, đối tượng dữ liệu có thể thu thập được từ nhật ký phiên truy cập người dùng trong một trang thương mại điện
tử ở Việt Nam; khảo sát các phương pháp để khai phá mẫu phổ biến và luật kết hợp, tìm hiểu vấn đề độ đo, chọn ngưỡng, những khó khăn thách thức khi triển khai; đến vấn đề đánh giá dữ liệu, chất lượng tập phổ biến và luật kết hợp, và hiển thị ra gợi ý,… Luận văn cũng tập trung giải quyết các khâu trong thực nghiệm, nhận định vấn đề và những khó khăn gặp phải như vấn đề bộ nhớ sử dụng, thời gian chạy, phân hoạch bộ
dữ liệu gốc, đánh chỉ mục ngược cho tập phổ biến và tập luật tìm được, đưa ra gợi ý cho từng cá nhân người dùng, đưa ra giải thích cho các gợi ý đó Sau đó là tìm ra các phương hướng giải quyết, rút ra những bài học kinh nghiệm có được
Hy vọng từ việc khai thác những dữ liệu thực tế và áp dụng các phương pháp
kỹ thuật được công bố bởi những nhà nghiên cứu uy tín trên toàn thế giới sẽ đưa lại kết quả có ý nghĩa, có thể đóng góp một phần nào đó để triển khai ứng dụng thương mại điện tử Việt Nam nói riêng và ứng dụng công nghệ thông tin vào đời sống nói chung
Luận văn sẽ chia nội dung ra làm năm chương chính:
Chương 1: Khái quát bài toán tư vấn sản phẩm thương mại Ở chương đầu tiên
mở đầu này sẽ nêu tổng quan về bài toán gợi ý, những hướng tiếp cận, phương pháp giải quyết, thách thức và cả những đánh giá ứng dụng, đặc biệt là cho thương mại điện
Trang 10Chương 4: Thực nghiệm đánh giá Đây là phần nêu lên kết quả đạt được trong suốt quá trình thực hiện, ngoài ra còn đề cập đến những khó khăn vấn đề vướng mắc phát sinh Sau đó là đánh giá những kết quả đạt được chi tiết ở từng bước thực hiện
Chương 5: Kết luận Tổng kết lại những nội dung chính của luận văn, đưa ra hướng đi và hướng áp dụng thực tế
Trang 119
CHƯƠNG 1 KHÁI QUÁT BÀI TOÁN TƯ VẤN SẢN PHẨM THƯƠNG MẠI
Chương đầu tiên của luận văn sẽ nêu tổng quan về bài toán tư vấn trong thương mại điện tử, những vấn đề từ cũ đến mới được cập nhật theo những hội nghị và những công bố nổi tiếng trong lĩnh vực này
1.1 Tổng quan bài toán tư vấn trong thương mại điện tử
Người dùng (user) internet hiện nay mỗi ngày có thể cần tìm hiểu vô số thông tin
về các loại sản phẩm như các bài báo, những bản tin đa phương tiện, cuộc khảo sát, hướng dẫn du lịch, sách, sản phẩm thương mại… từ nhiều người, nhiều dịch vụ, website hay hệ thống khác nhau Hệ gợi ý (RS - Recommendation System) chính là sử dụng nhiều hướng tiếp cận như dựa vào nội dung, dựa vào cộng đồng người dùng, sở thích của người dùng… để giúp người dùng đưa ra quyết định và lọc ra những sản
phẩm (item) như là cuốn sách, bài báo, trang web, bộ phim, âm nhạc…mà họ có thể
đang quan tâm Những sản phẩm này nằm trong danh sách rất dài và càng ngày càng được cập nhật thêm mới, dẫn đến hiện tượng „long tail‟[5] thường thấy
Một vài lý do khác để sử dụng hệ gợi ý [6] cho nhà kinh doanh là tăng lượng hàng bán; bán nhiều loại sản phẩm khác kèm theo; làm tăng mức độ hài lòng, trung thành của người dùng; hiểu rõ hơn về xu hướng sở thích người dùng Bên cạnh đó những nhiệm
vụ quan trọng chính của một hệ gợi ý được Herlocker và cộng sự [7] định nghĩa bao gồm: tìm một vài hay toàn bộ sản phẩm tốt; chú thích được trong ngữ cảnh đó; gợi ý một chuỗi, hay trọn gói; duyệt qua (bằng cách đưa ra danh mục cho người dùng lựa chọn, đặc biệt cho những người dùng mới, hay không có nhiều ý định hiện tại); tìm gợi
ý đáng tin; mở rộng thông tin người dùng (profile); đưa ra nhận xét từ người dùng khác
Những hệ thống thương mại lớn đều ứng dụng các công nghệ kỹ thuật để gợi ý sản phẩm cho người dùng Nổi bật về gợi ý hàng hóa có thể kể đến Amazon, gợi ý phim ảnh là Netflix [8], về tin tức có BBC news, Youtube Đều là những ví dụ thành công khi có chiến lược sử dụng tốt hệ gợi ý phù hợp với miền sản phẩm của mình giúp tăng doanh thu và khách hàng Thường có ba cách để tăng doanh thu, thứ nhất là gợi ý đúng theo nhu cầu cần của khách sẽ giúp họ ra quyết định mua sản phẩm; thứ hai là gợi ý sản phẩm hay dịch vụ kèm theo; thứ ba là xây dựng thói quen “trung thành” của khách hàng, khi khách hàng được website “phục vụ” theo đúng nhu cầu, sở thích, họ sẽ thường xuyên quay trở lại, [9] Pine và đồng sự có nhiều bài nghiên cứu về thị trường
và tâm lý hành vi của người dùng chỉ ra những chức năng hệ gợi ý cho lĩnh vực thương mại nên có
Một ví dụ điển hình cho gợi ý thương mại điện tử thành công trên thế giới là website thương mại amazon4, đây là website đứng đầu về lượng người truy cập và mua hàng theo alexa5 chiến lược gợi ý là sử dụng lai (hybrid) các phương pháp như lọc cộng tác bằng đánh giá rating, tìm mẫu phổ biến, hay nội dung Đặc biệt sử dụng là gợi
4 http://www.amazon.com/
5 http :// www alexa com/ topsites / category /Top/Shopping
Trang 12Những đối tượng được nghiên cứu kỹ trong hệ gợi ý cho thương mại là sản phẩm
và đối tượng người dùng và những giao dịch (những bản ghi sự tương tác của người dùng với hệ gợi ý, website), [5] hoặc là được cung cấp bởi những chuyên gia hoặc là được khai phá khi học từ những hành vi của người dùng, đây cũng là yếu tố được quan tâm học hỏi để có hướng phương pháp và kỹ thuật gợi ý phù hợp Với cách thứ hai người bán có thể thu thập hành vi của khách hàng qua lượng click (nhấp chuột) hay đặt hàng/mua; phản hồi, nhận xét ẩn hoặc rõ của người dùng Và đặc biệt với lượng dữ liệu thu được từ dữ liệu giao dịch, hệ gợi ý có thể sử dụng khai phá dữ liệu (data mining) – là sử dụng những kỹ thuật phân tích suy ra những quy luật, hay mô hình từ tập dữ liệu lớn Từ đó tìm ra những luật kết hợp – chính là những quan hệ giữa các sản
phẩm (item) được mua trong cùng một đơn hàng Lấy ví dụ tiêu biểu khai phá tốt
những tập luật theo thời gian có thể dự đoán ra hành vi mua sắm tương lai của khách hàng, ví dụ như khi khách vừa mua sản phẩm điện thoại thì có thể dự đoán khách sẽ cần tìm hiểu và mua những sản phẩm phụ kiện như vỏ ốp, tai nghe…Và ngoài ra còn rất nhiều kỹ thuật phương pháp khai phá khác được đề xuất sẽ được đề cập cụ thể trong phần 2.2
Một cách tổng quát quá trình khai phá dữ liệu gồm hai pha, trong pha học sẽ phân tích dữ liệu và xây dựng mô hình hành vi người dùng (như luật kết hợp) pha này thường tốn thời gian và cần yêu cầu sự giúp đỡ của chuyên gia Sau khi mô hình được xây dựng, chuyển sang pha thứ hai ứng dụng mô hình cho từng khách hàng một cách nhanh chóng dễ dàng Một thách thức khi thực hiện khai phá dữ liệu trong tổ chức là tạo quy trình để chuyển thành công kiến thức từ pha học vào thực hiện trong pha ứng dụng Điểm qua về hệ gợi ý tự động, là hệ thống học máy đặc biệt Một số mô đun gợi ý
có pha ngoại tuyến (offline) trong quá trình học mô hình hành vi người dùng, sau đó là pha trực tuyến (online) khi ứng dụng mô hình trong thời gian thực Còn lại rất nhiều
Trang 1311
mô đun gợi ý sử dụng hướng học lười (lazy learning) nghĩa là xây dựng và cập nhật
mô hình ngay trong khi tạo gợi ý ở thời gian thực
Do số lượng các chủng loại mặt hàng trên trang thương mại điện tử là cực lớn, khách hàng có thể lựa chọn trong số hàng triệu sản phẩm từ cũ đến mới, vô cùng đa dạng về chủng loại, hình thức Những sản phẩm được gợi ý có thể dựa trên việc chọn
ra sản phẩm được mua nhiều nhất, mới nhất, hay sở thích riêng biệt của từng người dùng được phân tích từ hành vi quá khứ của người dùng để dự đoán hành vi trong tương lai Quy trình gợi ý thường bao gồm đề xuất sản phẩm cho người dùng, cung cấp các thông tin sản phẩm theo từng cá nhân, tổng kết ý kiến đánh giá của cộng đồng Nhìn chung thì những kỹ thuật gợi ý theo hướng cá nhân riêng lẻ đang là xu hướng, được phát triển mạnh, giúp trang thương mại phục vụ từng khách hàng tốt hơn Do đó thao tác tùy biến để phù hợp với từng người dùng rất rất lớn, đây cũng là một vấn đề cần được nghiên cứu khi xây dựng hệ thống
Bên cạnh đó có những khía cạnh cần quan tâm khi xây dựng hệ gợi ý như cách thức trình bày cho người dùng, giải thích lý do đưa ra gợi ý, đánh giá độ hiệu quả của phương pháp gợi ý… Không thể không kể đến những thách thức, nổi trội như vấn đề
về dữ liệu lớn, thưa, nhập nhằng và phạm vi rộng, hay vấn đề về cá nhân riêng tư của người dùng…
Khía cạnh bảo mật và mức độ dữ liệu khách hàng có thể khai thác: những dữ liệu
có thể thu thập được từ khách hàng qua trang web là thông tin sở thích được cung cấp
rõ, và để ở chế độ public (công cộng), hay những dữ liệu ở web server của công ty thương mại, có sử dụng những không được phép để lộ thông tin…
Với tư duy khách hàng là trung tâm, từ việc hiểu họ, đưa ra những gợi ý và giải thích cho lý do đưa ra gợi ý đó [11], nhằm đáp ứng được độ trong suốt minh bạch của
hệ thống, cho phép người dùng nhận xét được nếu hệ thống không đúng, dẫn đến tăng
độ tin cậy của hệ thống, người dùng có thể đưa ra quyết định hiệu quả và nhanh dựa trên nhiều loại gợi ý tùy theo thời điểm, tính cách, và thứ họ tin tưởng,…sự thuyết phục sẽ lớn hơn để khách mua hoặc thử nó, cuối cùng là có thể tăng sự hài lòng của khách hàng với hệ gợi ý
Yếu tố người dùng cũng là một vấn đề quan trọng và khó, hành vi, sở thích của họ
có thể thay đổi, các đối tượng người dùng cũng không giống nhau ở các khu vực, tùy thuộc vào cá nhân, xã hội hay tâm lý của người dùng [13]
Để đánh giá hệ gợi ý, những tiêu chí được quan tâm là 1) sự gợi ý có hiệu quả hay không? 2) Chiến lược gợi ý có tốt hay không? 3) Hay chiến lược gợi ý có tốt cho việc kinh doanh của người bán hay không? Có rất nhiều độ đo để đánh giá khi thực hiện hệ gợi ý trong thực tế như: tổng số hàng bán, đẩy mạnh được tiêu thụ mặt hàng chính, đánh giá qua lượt nhấp chuột (click-though-rate), tương tác với hệ thống, lượng trở lại của khách hàng, lượng khách trung thành, hài lòng…Với việc đánh giá hệ gợi ý hoạt động nào khi còn đang nghiên cứu chưa sử dụng thực tế thì không thể áp dụng với người dùng thực, thay vào đó là sử dụng những độ đo khác như sử dụng các thí
Trang 1412
nghiệm đánh giá các thông số hệ thống (xem hệ thống có khả năng chạy tốt hay không: thời gian, bộ nhớ,…); tạo bảng hỏi; dựa trên những dữ liệu lịch sử, đo độ chính xác, bao quát,…
1.2 Các hướng tiếp cận và các mô hình trong hệ gợi ý
Để thực hiện những chức năng chính là xác định những item hữu dụng cho người dùng, hệ gợi ý cần „dự đoán‟ những item tốt nhất, những hướng tiếp cận để đưa ra dự
đoán này được đề cập từ trước tới nay [6] bao gồm:
Lọc cộng tác (CF- collaborative filtering) [14] là phương pháp có ý tưởng gợi ý những sản phẩm cho một người dùng dựa vào những sản phẩm được đánh giá trong quá khứ của một người hay một nhóm người có cùng sở thích tương tự với
người nọ Có ý nghĩa tương tự với tập những sản phẩm item được thích tương tự
nhau Phương pháp CF được phân chia thành hai hướng là dựa theo láng giềng gần nhất (neighborhood-based) và dựa vào mô hình (model-based)
Lọc nội dung (Content-based filtering) [14] là phương pháp nổi bật trong truy hồi thông tin (information retrieval), những nội dung văn bản hoặc đa phương tiện được dùng để chọn ra những văn bản liên quan với truy vấn của người dùng Ứng dụng trong hệ gợi ý, lọc dựa trên nội dung là cung cấp những gợi ý có nội dung được so sánh tương tự với những nội dung được người dùng quan tâm trước đó Sử dụng các nội dung trong trường tính năng hay mô tả của sản phẩm, để tìm kiếm những sản phẩm tương tự Hiện nay rất nhiều công trình nghiên cứu với các bộ dữ liệu khác nhau đã cho thấy xu hướng lọc nội dung này vẫn mang lại kết quả tốt, xu hướng là áp dụng dữ liệu liên kết mở dựa trên ngữ nghĩa (linked open data)[15]
Dựa trên nhân khẩu học (demographic): tùy biến dựa trên những đặc điểm về nhân khẩu học của người dùng, đưa ra những gợi ý phù hợp với đối tượng này Ví dụ như dựa vào ngôn ngữ hoặc quốc gia, áp dụng riêng hướng gợi ý được thiết kế cho nhóm này
Dựa trên tri thức (knowledge-based): yêu cầu những kiến thức chuyên gia đặc biệt hiểu biết về loại sản phẩm, đặc tính người dùng sử dụng sản phẩm này, để đưa ra những luật ràng buộc, những yêu cầu riêng biệt Việc gợi ý sẽ hiệu quả hơn ở bước đầu so với các hướng khác, nhưng nếu không hiểu rõ, xây dựng hết được các luật ràng buộc, hoặc khi có sự thay đổi sẽ không còn hiệu quả
Dựa trên cộng đồng: một hướng tiềm năng đang được bắt đầu nghiên cứu khi sử dụng những loại dữ liệu có thể thu thập được từ mạng xã hội, giống ý tưởng từ lọc cộng tác truyền thống, những có sự khác biệt đôi chút về nhóm bạn bè được so sánh và dữ liệu thu thập được
Tương tự với hướng tiếp cận dựa trên nhóm cộng đồng người dùng, sử dụng luật kết hợp để đưa ra các gợi ý cho người dùng Một hướng tiếp cận khá cổ điển, được ứng dụng rất nhiều; và sử dụng các kỹ thuật thống kê để mô tả được dữ liệu
Trang 1513
Phương pháp lai (Hybrid filtering) là phương pháp kết hợp những ưu điểm của các phương pháp trên, đưa ra những giải pháp cho những vấn đề riêng biệt, hoặc xây dựng được hệ thống gợi ý vượt trội hơn Ví dụ có thể kết hợp lọc nội dung trong lọc kết hợp tìm kiếm những sản phẩm thú vị để gợi ý cho người dùng
1.3 Thách thức của hệ gợi ý
Những thách thức từ khi hệ gợi ý được quan tâm phát triển đến nay có thể kế đến như dữ liệu thưa, khả năng mở rộng phạm vi, biến thể từ (nhóm từ đồng nghĩa), nhập nhằng nghĩa, quyền riêng tư… Đặc tính những thách thức này cụ thể như sau:
Dữ liệu thưa Trường hợp thường thấy khi tập sản phẩm item thường lớn và ngày
càng được mở rộng thêm, lượng người dùng mới cũng tăng theo thời gian, cộng thêm người dùng chỉ xem một phần rất nhỏ trong danh sách sản phẩm đó, dẫn đến ma trận user – item cực kỳ thưa Người dùng đặc biệt là người dùng tại Việt Nam cũng không
có thói quen đưa ra đánh giá hay nhận xét cho sản phẩm họ xem hoặc mua, rất khó để nhận định họ thích hay không Một khởi đầu khó cho nhóm người dùng mới và sản phẩm mới, hay còn được biết đến là vấn đề cold start[16]
Khả năng mở rộng phạm vi Khi số người dùng và sản phẩm ngày càng mở rộng,
phạm vi xử lý sẽ trở thành một vấn đề lớn
Sản phẩm mới, người dùng mới (cold-start) Những đối tượng này rất khó gợi ý nếu
chưa hề hoặc rất ít thông tin lịch sử trước đó Không chỉ những sản phẩm mới ngay cả những sản phẩm mô tả cụ thể, chung chung sẽ gây nhầm Với người dùng mới hệ thống cần học để hiểu về sở thích của họ, có một vài phương pháp đã được đề xuất để giải quyết vấn đề này, là theo hướng lai, kết hợp các phương pháp, có thể là lọc cộng tác và nội dung, ngoài ra còn có một kỹ thuật để xác định những sản phẩm tốt nhất cho người dùng mới được đề cập trong [17], đây là những kỹ thuật áp dụng cho chiến lược lọc cộng tác
Gian lận là khi những nhà cung cấp sản phẩm, hay dịch vụ có những thủ thuật giả
thông tin khách hàng, giúp họ tăng lợi ích
Dễ bị tấn công là vấn đề thưởng xảy ra như kiểu tấn công dịch vụ, làm trì trệ khả
năng cung cấp dịch vụ tới người dùng thực
Bảo mật riêng tư: xu hướng cá nhân hóa là khi hệ gợi ý cần hiểu rõ về từng người dùng
Một số thách thức về môi trường như: Lượng bán lẻ, khách hàng và sản phẩm có thể rất lớn (lên tới hàng triệu); các ứng dụng thường yêu cầu kết quả trả về trong thời gian thực (không quá nửa giây) trong khi vẫn phải đáp ứng gợi ý chất lượng tốt; khách hàng cũ có rất nhiều thông tin thừa, người mới lại thiếu thông tin và dữ liệu khách hàng thì dễ bị trôi mất
Ngoài ra còn rất nhiều vấn đề khác cần quan tâm như: sự đa dạng và chính xác, dễ dàng bị tấn công, giá trị thời gian, đánh giá độ hiệu quả, giao diện người dùng,…
Trang 16Theo cuốn sách „Recommender Systems Handbook‟, chương 8 [6], việc đánh giá trong nhiều trường hợp thì đó là việc so sánh những hướng tiếp cận nào tốt phù hợp để thiết kế quy trình hay hệ thống Từ bước đầu tiên là chọn ra thuật toán phù hợp
để quyết định những thuộc tính nào của ứng dụng được dùng để đưa ra quyết định, cụ thể là một hệ thống RS có rất nhiều thuộc tính khác nhau có thể ảnh hưởng đến trải nghiệm người dùng như độ chính xác, chắc chắn, khả năng mở rộng… Các thuật toán
Dù với thực nghiệm nào cũng thông qua vài nguyên tắc cơ bản là 1) đưa ra giả thiết (hypothesis), việc đưa ra các giả thuyết có thể giúp thiết kế thực nghiệm phù hợp
để kiểm tra được các giả thuyết đó; 2) kiểm soát các biến, đó là tất cả các biến không được kiểm tra sẽ chưa được chấp nhận, ví dụ như khi so sánh các thuật toán phải cùng chung bộ dữ liệu, hay xét một thuật toán trên các bộ dữ liệu khác nhau để thấy được kết quả hiệu suất tổng thể; 3) sức mạnh tổng quát, đưa ra được những kết quả tổng thể
Trong luận văn sẽ chỉ có điều kiện quan tâm đến đánh giá thực nghiệm ngoại tuyến offline, do đó sẽ trình bầy rõ hơn về phần này trong phần thực nghiệm Để rõ hơn việc đánh giá khi tiến hành thực nghiệm offline là nhằm mục đích so sánh giữa các ứng viên hướng tiếp cận hay thuật toán, thông qua đó trả lời được vài giả thuyết câu hỏi hẹp được đặt ra, lọc ra những ứng viên không thích hợp Tuy nhiên ở bước này không thể đo trực tiếp sự ảnh hưởng của hệ gợi ý đối với hành vi của người dùng
Những đối tượng được đánh giá ở thực nghiệm ngoại tuyến đầu tiên phải kể đến tập dữ liệu, những đặc tính cần xem xét là tập dữ liệu này thuộc miền nào (giải trí hay thương mại hay giáo dục…), thông tin chứa bên trong, số lượng, phân bố của mẫu… yêu cầu phải là dữ liệu mô tả hành vi thực của người dùng, được tinh chỉnh loại bỏ những dữ liệu thừa, nếu lấy mẫu phải theo phân bố gần với dữ liệu thực, nếu lấy thực
tế cần mô tả, quan sát kỹ đặc tính về thời gian, chủng loại để đưa ra các thống kê
Một cách tổng quát hơn trong bài báo công bố của Hijikata năm 2014 [18] có đưa ra tổng hợp về đánh giá ngoại tuyến Tác giả đã thống kê lại những đặc tính của bộ
Trang 1715
dữ liệu bao gồm tính hiện/ẩn; chia cấp độ (đơn phân, nhị phân, đa phân); xu hướng đánh giá (hướng tới cao hơn hay thấp hơn); tem thời gian; đa tiêu chí đánh giá; kích thước dữ liệu; mật độ; mức tăng trưởng của dữ liệu Trong bài phần lớn các phương pháp và độ đo để phục vụ định dạng dữ liệu theo hướng lọc nội dung và cộng tác; đưa
ra các kết quả về độ chính xác dựa trên tập dữ liệu huấn luyện Thêm nữa khi đánh giá hiệu suất sử dụng thuật toán, cũng có rất nhiều các công trình nghiên cứu đưa ra so sánh kết quả thực nghiệm với một hay nhiều bộ dữ liệu trên nhiều thuật toán có cùng đầu vào và đầu ra tương đương dựa trên thông số về thời gian và bộ nhớ để xác định hiệu suất [19][20] Luận văn cũng sẽ áp dụng cách thức này để đưa ra minh chứng kết quả của thực nghiệm
Cuối cùng là khi đã có kết quả đầu ra là các gợi ý, sẽ đưa ra những nhận định đánh giá cá nhân về những sản phẩm gợi ý, xem xét tổng hợp và đưa ra một vài nhận định về xu hướng hành vi người dùng
1.4.2 Thiết kế ứng dụng cho một hệ thống gợi ý thực
Một trong những yếu tố quan trọng khác là xem xét đến vấn đề tổng quan khi ứng dụng một hệ gợi ý vào thực tế, từ đó đưa ra những vấn đề cần đặt ra cho riêng bài toán của luận văn
Hệ thống cá nhân hóa là một hệ thống phức tạp gồm nhiều phần được tương tác với nhau, từ việc cho dữ liệu vào đến việc biểu diễn kết quả cho người dùng Từ trước đến nay có cực nhiều và phong phú các phương pháp, công cụ, thuật toán và các hướng tiếp cận giải quyết cho từng phần trong hệ thống như là xử lý dữ liệu và siêu dữ liệu, mô hình người dùng, kỹ thuật lọc, độ đo độ chính xác, các cấp độ cá nhân hóa
Hệ gợi ý thực lại có thể là một phần trong hệ thống cá nhân hóa này do đó thường phụ thuộc vào thiết kế chung của hệ thống lớn đó, nhiều ràng buộc và vấn đề có thể phát sinh như là dữ liệu có thể không có định dạng phù hợp, phụ thuộc kiến trúc hệ thống hay quyền riêng tư…
Trang 1816
CHƯƠNG 2 LÝ THUYẾT KHAI PHÁ MẪU PHỔ BIẾN VÀ LUẬT KẾT HỢP
2.1 Những định nghĩa chung trong bài toán tìm mẫu phổ biến và luật kết hợp
Trước hết cần định nghĩa một số khái niệm cơ bản trong khai phá mẫu phổ biến (FPM – Frequent pattern mining) và khai phá luật kết hợp (ARM – Association rule mining)
Cơ sở dữ liệu giao dịch thường thấy là những giao dịch mua gồm các thông tin về sản phẩm, số lượng, thời gian, những thông tin cá nhân của khách Thông tin có thể được lưu trữ từ khi mua, xem sản phẩm đầu tiên đến sản phẩm hay bình luận gần nhất Đây là một lượng thông tin lớn, những website thương mại điện tử thành công có thể lên tới hàng ngàn giao dịch phát sinh hàng ngày, hàng triệu lượt truy cập [10]
Bộ dữ liệu được dùng trong thực nghiệm của luận văn có cấu trúc là các giao dịch
(transaction) (còn gọi là phiên truy cập) T = {𝑡1, 𝑡2,…, 𝑡𝑛}, mỗi 𝑡𝑘 ∈T, ∀𝑘 = {1 … 𝑛}
chứa một tập các mã sản phẩm 𝑡𝑘 = {𝑖𝑙,…} là một giao dịch thể hiện bằng một tập các
mã hàng (item) sản phẩm thuộc tập I = {𝑖1, 𝑖2,…, 𝑖𝑚} mà người dùng đã xem cùng
nhau trong một phiên (section) tương tác với một trang thương mại điện tử, với n là số lượng transaction, m là số lượng item
Tập mục (itemset) 𝑋 ⊆ 𝑡𝑖 Kích thước của tập mục là số item nó chứa, ở đây ký hiệu l-itemset (hoặc l-pattern) nghĩa là tập mục có kích cỡ l
Luật kết hợp được biểu diễn bằng công thức: X Y; X, Y ⊂I;
Một giao dịch 𝑡𝑖 ∈ T chứa tập mục X, nghĩa là X ∈ 𝑡𝑖
Luật kết hợp cần tìm sẽ phải là những tập kết hợp mạnh có độ hỗ trợ và độ tin cậy vượt qua ngưỡng định trước Khái niệm cơ bản trong luật kết hợp là độ hỗ trợ
(support) và độ tin cậy (confidence), ngoài ra còn có các độ đo khác sẽ được sử dụng
để đánh giá và xếp hạng luật [21] như là độ hài hòa HM, độ đo conviction, độ thú vị interest hoặc được gọi là lift, và độ đo nâng cao của lift là cosine,
Độ hỗ trợ của X trong T là số giao dịch chứa X trong T, viết tắt số giao dịch là
X.count; hoặc support(X)
Độ hỗ trợ của một luật X Y là tỉ lệ % các giao dịch trong T mà chứa cả X, Y cũng
chính là xác định mức độ phổ biến của các giao dịch chứa tập mục (X ∪ Y) trong tổng
số tất cả các giao dịch Công thức tính: 𝑆𝑢𝑝𝑝𝑜𝑟𝑡(𝑋𝑌) = 𝑆𝑢𝑝𝑝𝑜𝑟𝑡 𝑐𝑜𝑢𝑛𝑡 𝑜𝑓 𝑋𝑌
𝑇𝑜𝑡𝑎𝑙 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑡𝑟𝑎𝑛𝑠𝑎𝑐𝑡𝑖𝑜𝑛 Độ
đo này có giá trị nằm trong đoạn [0,1] (hoặc từ 0% đến 100%) Độ đo này càng cao tức
là tần suất càng cao, càng thể hiện được sự phổ biến và được quan tâm của item
Độ tin cậy của luật XY là tỉ lệ % các giao dịch trong T chứa cả X và Y trên tổng
số các giao dịch trong T chứa X Độ đo này xác định khả năng dự đoán của luật được tính theo công thức: 𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 (𝑋|𝑌) = 𝑆𝑢𝑝𝑝𝑜𝑟𝑡 (𝑋𝑌)
𝑆𝑢𝑝𝑝𝑜𝑟𝑡 (𝑋) Độ đo có giá trị thuộc [0,1] (hoặc từ 0% đến 100%) Độ tin cậy thể hiện cho mức độ tương quan giữa X và (XY),
ví dụ với độ tin cậy là 80% thì có nghĩa là với 80% transaction chứa X là chứa X và
Trang 19giá trị trong khoảng [0,1] Có ý nghĩa thể hiện việc ưu tiên chọn luật có độ tương quan
giữa độ hỗ trợ và tin cậy cao hơn
Được đề cập tại [22] là độ đo Lift
Lift (XY) = Lift (YX) = 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑋𝑌
𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑋 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑌 =𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 (𝑌→𝑋)
𝑠𝑢𝑝𝑝𝑜𝑟𝑡 (𝑌)
thể hiện độ lệch giữa hai tập itemset X và Y Độ đo có giá trị trong khoảng (0, +∞) Độ
đo này thể hiện yếu tố „thú vị‟ (interest) dùng để xếp hạng luật thay cho độ confidence
bởi vì độ tin cậy đã bỏ qua độ hỗ trợ của tập mục Y, luật sinh ra có thể chưa thuyết
phục nếu độ hỗ trợ của tập mục Y lớn hơn nhiều so với độ hỗ trợ của (XY) Nếu lift
nhỏ hơn 1 thì sự xuất hiện của X là tương quan nghịch so với sự xuất hiện của Y, ngược lại lớn hơn 1 thì có sự tương quan thuận, nếu bằng 1 thì X và Y độc lập với
nhau, độ đo này lớn hay nhỏ còn phụ thuộc vào tổng số transaction
Một độ đo nâng cao của độ đo lift là cosine, được tính bằng công thức:
cosine(X,Y)= 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 (𝑋𝑌)
X, Y khi xem chúng như những vecto nhị phân Giá trị của cosine nằm trong đoạn [0, 1],
bằng 1 cho thấy các vecto trùng nhau, bằng 0 khi không có sự trùng lặp độ đo này chỉ bị
ảnh hưởng bởi các độ hỗ trợ của X, Y và XY mà không bị ảnh hưởng bởi tổng số giao
dịch
Độ đo thuyết phục conviction =1−𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 (𝑋→𝑌)1−𝑠𝑢𝑝𝑝𝑜𝑟𝑡 (𝑌) Cho biết tần xuất mong muốn X
xảy ra mà không cần Y (có thể xem độ đo conviction cho biết tần suất của luật sinh ra các dự đoán không chính xác) Độ đo này nằm trong khoảng [0.5, +∞), bằng 1 nếu X
và Y độc lập với nhau, giống như độ đo lift giá trị độ đo conviction của một luật càng
xa giá trị 1 thì càng thể hiện được độ thú vị của luật đó
Một số khái niệm nữa về tập phổ biến cần làm rõ là:
Tập phổ biến X là tập mục có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu minsup, minsup
này được đặt bởi người dùng và theo từng bộ dữ liệu [1] Tập phổ biến có tính chất là
„tất cả các tập con của tập phổ biến đều là tập phổ biến‟
Tập phổ biến đóng (closed frequent pattern) [23] là tập phổ biến và không tồn tại
tập nào bao nó có cùng độ phổ biến như nó
Tập phổ biến cực đại (maximal frequent pattern) [24] là tập phổ biến và không có tồn
tại tập nào bao nó là tập phổ biến Là trường hợp nén có mất thông tin các tập phổ biến
2.2 Những hướng tiếp cận trong khai phá mẫu phổ biến, luật kết hợp
2.2.1 Những hướng tiếp cận luật kết hợp
Được đề xuất vào năm 1993 bởi R Agrawal [1] đến nay hơn 20 năm qua, lĩnh vực khai phá luật kết hợp được nghiên cứu và phát triển theo nhiều hướng khác nhau, như
Trang 2018
theo hướng cải thiện tốc độ thuật toán, hay tìm kiếm luật có ý nghĩa hơn, dưới đây liệt kê những hướng chính sau:
Luật kết hợp nhị phân (binary association rule hay boolean association rule) [1]:
là hướng được phát triển đầu tiên Ở dạng kết hợp này, các tập mục được xem xét có xuất hiện trong giao dịch ở CSDL (Cơ sở dữ liệu) và không quan tâm nhiều đến „số lượng‟ xuất hiện
Luật kết hợp có thuộc tính số và hạng mục (quantitative and categorical association rule) các thuộc tính của các CSDL thực tế có kiểu rất đa dạng (nhị phân - binary, số - quantitative, hạng mục, - categorical…) Để phát hiện luật kết hợp với các thuộc tính này có thể dùng phương pháp rời rạc hóa nhằm chuyển sang dạng nhị phân
để có thể áp dụng các thuật toán nhị phân đã có
Luật kết hợp mờ (fuzzy association rule): khắc phục những hạn chế trong quá trình rời rạc hóa các thuộc tính số, chuyển luật về dạng tự nhiên và dễ dàng hơn với người dùng
Luật kết hợp nhiều mức (multi-level association rule) [25], là một hướng nghiên
cứu nữa được đề xuất Dựa vào cách thức tổ chức dữ liệu item và transaction thành đa
cấp và/hoặc không gian đa chiều, dẫn đến những luật kết hợp tương ứng Luật kết hợp
đa cấp có khái niệm khó và trừu tượng hơn so với luật kết hợp đa chiều đơn giản là có
sự tham gia nhiều hơn một chiều
Trong nhiều ứng dụng, rất khó để tìm một kết hợp mạnh giữa item ở cấp thấp hoặc
cấp khởi đầu, do một phần là dữ liệu thưa tại những cấp trừu tượng này Một mặt khác những kết hợp mạnh được tìm ra ở các cấp trừu tượng cao hơn có thể biểu diễn kiến thức chung Do đó luật kết hợp đa cấp cung cấp đầy đủ linh hoạt cho khai phá và duyệt
đa cấp trừu tượng Luật này sử dụng những khái niệm phân cấp dưới nền hỗ trợ - tin cậy (support-confidence) Ví dụ nếu ngưỡng minsup đồng bộ trong suốt các cấp, nó thể khai phá trước những tập phổ biến ở cấp cao và chỉ khai phá những tập mục cấp cao phổ biến tương ứng Hơn nữa những tập dư thừa được lọc ra khỏi nếu những luật cấp
thấp hơn về cơ bản được dẫn ra từ những luật cấp cao và các phân phối item tương ứng [1] Dựa vào sử dụng những minsup khác nhau tại các cấp khác nhau cũng có thể đem
lại hiệu quả khai phá tốt [26] Những phương pháp được mở rộng để khai phá các luật
kết hợp đa chiều trong dữ liệu hoặc giao dịch transaction được lưu trữ trong không gian
đa chiều như trong bảng dữ liệu quan hệ hoặc dữ liệu lớn (data warehouse)
Những phương pháp tiếp cận trên khai thác những item riêng biệt, theo tên, loại
mục sản phẩm, vị trí Ngoài ra yêu cầu có thể là tìm tập phổ biến hoặc luật kết hợp khai thác từ những thuộc tính số như lượng, tuổi, điểm số,…Những thuộc tính số, những luật kết hợp định lượng cũng có thể khai thác bằng vài phương pháp [27] bao gồm xét toàn vẹn cục bộ; khai phá không gian riêng biệt, phân cụm; dựa trên miền phẳng và đơn điệu, hoặc sử dụng khoảng cách để phân cụm dữ liệu phân theo khoảng; thêm nữa là dựa trên thống kê để biểu diễn những độ lệch căn bản từ dữ liệu được học,
Trang 21 Ngoài những nghiên cứu về biến thể của luật kết hợp, các nhà nghiên cứu còn
đề xuất đến những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL
Có một nghiên cứu chỉ ra những tập phổ biến cực đại (maximal frequent itemset) [24], hoặc chỉ cần tìm tập phổ biến đóng (closed frequent itemset) [23] là đủ, những thuật toán này cải thiện đáng kể tốc độ do áp dụng những chiến lược cắt tỉa (pruning method) Thách thức chính của khai phá mẫu phổ biến từ dữ liệu lớn là thường sinh ra
rất nhiều mẫu thỏa mãn ngưỡng minsup, nhất là khi chọn mẫu minsup thấp Theo định
lý Apriori mẫu (tập mục) là phổ biến thì các mẫu con của nó cũng phổ biến, dẫn đến một mẫu lớn có thể chứa cơ số mũ các tập mẫu con nhỏ hơn Hai ý tưởng khai phá tập phổ biến đóng và tập phổ biến cực đại được đề xuất để giải quyết vấn đề này
Tại cùng ngưỡng minsup, những tập mẫu phổ biến đóng chứa đầy đủ thông tin cần thiết cho những mẫu phổ biến tương ứng của nó Trong khi tập mẫu cực đại thì không,
nó được nén nhỏ gọn hơn
Những phương pháp thuật toán để khai phá tập đóng [27]: A-Close, CLOSET, CHARM [23], CLOSET+, FPClose [29], AFOPT [30] Vấn đề chính là phải kiểm tra xem tập phổ biến đó có phải là tập phổ biến đóng hay không Có hai chiến lược: thứ nhất là giữ dấu vết của danh sách TID mẫu và chỉ số bằng cách băm giá trị TID của
nó Phương pháp này được mô tả trong CHARM [23] là nén danh sách TID gọi là
diffset; Thứ hai là duy trì các mẫu đã tìm thấy, trong mẫu cây tương tự như cây
FP-Tree, đã được đề cập trong CLOSET+, AFOPT và FPClose Hội nghị FIMI (Frequent Itemset Mining Implementattion) là một hội nghị chuyên ngành có uy tín về lĩnh vực nghiên cứu khai phá tập phổ biến, ở đó có bài tổng hợp các phương pháp của Goethals
và Zaki [31]
Khai phá các mẫu cực đại được nghiên cứu trong thuật toán MaxMiner của Bayardo, dựa trên ý tưởng Apriori, phương pháp tìm kiếm theo chiều ngang tìm tập mục cực đại (max-itemset) bằng việc cắt tỉa tập cực lớn (superset) phổ biến và tập con (subset) không phổ biến để giảm không gian tìm kiếm MAFIA [24] của Burdick dùng bản đồ bit (bitmap) theo chiều dọc để nén danh sách ID, làm tăng hiệu quả tính toán Yang đã phân tích lý thuyết về những trường hợp xấu phức tạp là những tập mục cực đại được đánh số thuộc lớp bài toán NP-hard Về đặc tính khoảng cách phân bố những
Trang 22Những khái niệm trong bài toán khai phá mẫu dữ liệu tuần tự này tương tự với
những định nghĩa được mô tả trong phần 2.1 trên, chỉ thêm ràng buộc xếp item theo thứ tự tăng dần về thời gian trong định nghĩa về transaction
Khai phá mẫu cấu trúc như đồ thị, cây, lưới [27] Những mẫu cần được khai phá trong thực tế ứng dụng và nghiên cứu thường rất phức tạp, hướng tới những dạng cây, đồ thị, lưới Với dạng cấu trúc chung là đồ thị được tăng dần theo từng lần lặp, có nhiều loại mẫu và đặc biệt là dàn con phổ biến (frequent substructure) được khai phá bằng các thuật toán khai phá dựa đồ thị Thường thấy nhất có hai hướng cơ bản là dựa
trên lý thuyết Apriori và mẫu sinh trưởng (pattern-growth)
Các thuật toán khai phá dàn con phổ biến dựa trên Apriori có đặc tính tương tự với các thuật toán khai phá tập mục phổ biến dựa theo Apriori: những đồ thị phổ biến bắt
đầu với kích thước nhỏ, bằng phương thức từ dưới lên (bottom-up), tại mỗi vòng lặp,
kích thước của dàn con phổ biến tăng lên một, cấu trúc mới được tạo bằng cách nối hai
đồ thị con phổ biến khác nhau có tương tự và chỉ khác biệt rất nhỏ, sau đó kiểm tra lại
độ phổ biến của đồ thị mới tạo đó
Với hướng mẫu sinh trưởng thường có cấu trúc cây và tuần tự tương ứng Có thể coi thuật toán theo hướng này mở rộng đồ thị phổ biến bằng cách thêm vào cạnh mới theo một hướng nhất định sau mỗi vòng lặp
Ngoài những thuật toán khai phá dàn con (substructure) phổ biến, hay ràng buộc
còn hướng khai phá những mẫu đồ thị đóng, đồ thị quan hệ, đồ thị lớn
Việc cấu trúc dữ liệu sẽ giúp duyệt nhanh và hiệu quả, bên cạnh việc cấu trúc theo cây và cấu trúc theo mảng, một số thuật toán và thực nghiệm [20] đã chứng minh với
dữ liệu dày việc khai phá khi tổ chức thành cây sẽ hiệu quả hơn rất nhiều, ngược lại với loại dữ liệu thưa thì hợp với cấu trúc theo mảng
Khai phá những mẫu phổ biến thú vị
Trước đến giờ đã có rất nhiều thuật toán để khai phá những tập phổ biến, cực đại, đóng, và đều sinh ra rất nhiều mẫu phù hợp, tuy nhiên người dùng chỉ thường quan tâm đến một vài mẫu được cho là thú vị nhất Từ thực tế đó, câu hỏi được đặt ra là như thế nào là mẫu phổ biến thú vị, làm thế nào để để khai phá chúng? Cũng đã có nhiều nghiên cứu tìm hiểu để trả lời các câu hỏi trên như khai phá dựa trên ràng buộc, khai phá những mẫu không hoàn thiện, hoặc được nén, độ đo độ thú vị, phân tích độ tương quan
Trang 2321
Trong khai phá dựa trên ràng buộc (constraint-based) [27], một cách hiệu quả là
dựa trên từng người dùng cụ thể, phân tích tìm ra những ràng buộc của người dùng đó bằng việc liệt kê phân loại những tương tác của người dùng trong quá trình khai phá
Ví dụ như sau: những ràng buộc cơ bản, cô đọng nhất được thêm vào quá trình chọn
dữ liệu khởi tạo khi bắt đầu quá trình khai phá, những ràng buộc phản đơn điệu monotonic) sẽ tiếp tục đẩy vào để hạn chế tăng mẫu trong suốt quá trình tăng mẫu,
(anti-những ràng buộc đơn điệu (monotonic) được kiểm tra, khi thỏa mãn sẽ không phải
kiểm tra trong những mẫu tăng trưởng của chúng Việc thêm vào các ràng buộc đơn
điệu được xem xét theo ngữ cảnh Những ràng buộc biến đổi (convertible constraint) như giá trị trung bình có thể thực hiện sắp xếp theo thứ tự cho mỗi transaction,…
Ngoài việc sử dụng những ràng buộc chung chung như trên, còn có thể kể một vài
ràng buộc khác như ràng buộc khối (block) để xác định những tập mục ý nghĩa chứa trong block dầy (là những block có mẫu định dạng theo item, transaction có số lượng
lớn, dầy đặc); những ràng buộc cho mẫu đóng; những ràng buộc trọng số cho tập mục phổ biến được xác định trọng số trong ngữ cảnh của khai phá mẫu tuần tự
Một loại mẫu nữa được nghiên cứu là mẫu xấp xỉ hoặc được nén Để giảm một tập rất lớn những mẫu phổ biến được sinh trong quá trình khai phá, khi quá trình bảo trì
Khai phá những luật đứng dầu (top rule), luật không tin cậy (zero-confidence) và
luật tin cậy ở các cấp độ Trong bài báo của Zhang và cộng sự [32] đưa ra ý tưởng khai
phá những luật đứng đầu không sử dụng ngưỡng hỗ trợ minsup, chỉ quan tâm đến sử
dụng độ tin cậy cao, đặc biệt phù hợp với các tập dữ liệu đa chiều
Luật kết hợp tiếp cận theo hướng tập thô (mining association rules based on rough set) [33]
Hiện nay, một số hướng nghiên cứu khác về khai phá luật kết hợp trực tuyến, luật kết hợp được nối trực tuyến đến các kho dữ liệu đa chiều (multi-dimensional data, data warehouse)
2.2.2 Những thuật toán cơ bản
Quá trình khai phá luật kết hợp gồm hai phần, trước là khai phá tất cả các mẫu phổ biến mà thỏa mãn ngưỡng hỗ trợ được đặt trước, sau đó là khai phá các luật kết hợp, những luật này phải thỏa mãn độ hỗ trợ và độ tin cậy tối thiểu
Những thuật toán được đưa ra từ trước đến nay dùng để khai phá tập phổ biến được chia một cách hình thức thành ba nhóm [27]: thuật toán Apriori [34], thuật toán FPGrowth [1], thuật toán Eclat [35] và các biến thể cải tiến của chúng
a) Nguyên lý, thuật toán và những mở rộng của Apriori
Ý tưởng của Agrawal và Srikant [34] khai phá những tập phổ biến trong một tập
dữ liệu giao dịch với số lượng rất lớn các tập mục được nảy sinh khi quan sát một tập
dữ liệu có thuộc tính đóng kín Tác giả đã đưa ra một nguyên lý gọi Apriori: Một tập mục k-itemset là phổ biến khi và chỉ khi tất cả các tập mục con của nó là phổ biến
Việc tìm kiếm các tập phổ biến sẽ bắt đầu bằng việc duyệt tập dữ liệu giao dịch tìm ra
những tập 1-itemset, sử dụng những tập mục này là ứng cử viên cho tìm tập mục
Trang 242-22
itemset, sau đó tiếp tục lặp để tìm tập k-itemset, tiếp tục cho đến khi không tìm được
tập phổ biến nào nữa Vấn đề phát sinh khi thực hiện thuật toán là phát sinh một tập rất lớn các ứng viên, số lần duyệt dữ liệu lớn, thực hiện chậm trong trường hợp độ hỗ trợ thấp, khi sinh một tập lớn ứng viên sẽ dẫn đến vấn đề về bộ nhớ sử dụng, không gian tìm kiếm cực lớn, đầu vào ra lớn
Sau khi thuật toán được đề xuất có rất nhiều nghiên cứu để cải thiện mở rộng hiệu quả của thuật toán [27]: kỹ thuật băm; kỹ thuật phân chia; hướng lấy mẫu, đếm tập mục động; khai phá gia tăng; khai phá dựa vào phân tán và song song; và còn khai phá tích hợp với hệ quản trị cơ sở dữ liệu quan hệ
b) Khai phá tập phổ biến không dựa trên việc sinh các tập ứng viên, họ thuật toán FPGrowth
Một nhược điểm của Apriori là phải sinh một tập lớn các tập ứng viên, và phải duyệt CSDL nhiều lần để kiểm tra lại các ứng viên này Phương pháp FPGrowth được đưa ra không dựa trên việc sinh ứng viên để tìm một tập phổ biến đầy đủ Phương pháp này dựa trên chia để trị (divide-and-conquer) Lần duyệt CSDL đầu tiên để liệt kê
ra danh sách những item phổ biến và được xếp theo thứ tự giảm dần Sau đó dựa vào
danh sách này tạo cây lưu trữ gọi là FP-Tree (Frequent pattern tree) giữ lại thông tin quan hệ giữa các tập mục Việc tìm các tập mục phổ biến sẽ dựa vào khai phá cây FP-
Tree này, cây được khởi tạo từ mỗi mẫu có độ dài 1 item, được hiểu là mẫu hậu tố khởi
tạo (initial suffix pattern) và xây dựng dựa trên mẫu điều kiện (conditional pattern base) chính là một tập CSDL con gồm tập các đường tiền tố (prefix path) Tiếp theo thực hiện việc khai phá đệ quy trên cây, những mẫu gia tăng bằng cách ghép những mẫu hậu tố trên cây FP-Tree điều kiện Chi tiết của thuật toán sẽ nêu rõ trong phần tiếp theo Thuật toán FPGrowth đã biến vấn đề tìm kiếm các tập phổ biến dài thành tìm những tập phổ biến ngắn hơn bằng đệ quy và ghép hậu tố Việc sử dụng những tập phổ biến bé như hậu tố đã làm giảm thiểu về thời gian tìm kiếm rất nhiều Do vậy thuật toán khai phá rất hiệu quả cả những mẫu phổ biến dài và ngắn
Tiếp nối ý tưởng rất hay này, có rất nhiều những cải tiến cho nó có thể kể đến [27]: sinh cây theo kiểu sâu trước (depth-first); H-Mine với ý tưởng khai phá siêu cấu trúc (hyper-structure); xây dựng cây thay thế; duyệt từ trên xuống (top-down) và dưới lên (bottom-up) hoặc thực hiện lưu trữ cấu trúc cây tiền tố dưới dạng mảng (array) c) Khai phá tập kết hợp dựa trên định dạng dữ liệu theo chiều ngang
Cả hai họ thuật toán kể trên đều là theo hướng định dạng theo chiều ngang; có
nghĩa là {TID:itemset} định danh ID của transaction và itemset,là tập các item trong
transaction TID Thay thế cho kiểu biểu diễn dữ liệu này theo chiều dọc là {item:TID_set}
Zaki đã đề xuất thuật toán Eclat [35] (Equivalence CLASS transformation), lần duyệt
CSDL đầu tiên để xây dựng TID_set cho từng item riêng Bắt đầu với một item (k=1), tập mục phổ biến k+1-itemset lớn dần từ k-itemset có thể dùng theo ý tưởng Apriori, tính
toán theo chiều sâu trước với sắp xếp tương tự FPGrowth Việc tính toán tập phổ biến
Trang 2523
k+1-itemset sẽ là tính phép giao của tập mục phổ biến k-itemset Quá trình sẽ lặp đến khi
không còn tập mục phổ biến nào hoặc không có tập ứng viên nào được tìm thấy
Ngoài những ưu điểm về đặc tính của Apriori trong việc sinh các ứng viên itemset từ k-itemset, giá trị khác của phương pháp này là không cần thiết phải duyệt CSDL để tìm độ hỗ trợ cho k+1-itemset(k>=1) Bởi vì TID_set của mỗi k-itemset
k+1-mang đủ thông tin được yêu cầu để tính độ hỗ trợ
Những công việc khác liên quan đến khai phá tập mục với định dạng theo chiều dọc dữ liệu còn có công trình của Holsheimer và đồng sự [36] cũng đã cho thấy được kết quả ấn tượng đạt được bằng cách xây dựng những cấu trúc dữ liệu khôn khéo và đặc biệt, có thể áp dụng một cách thông minh khi giải quyết những vấn đề của khai phá dữ liệu
Phần tiếp theo đề cập đến việc áp dụng hướng tìm luật kết hợp cho hệ gợi ý
2.3 Luật kết hợp trong hệ gợi ý
Trước hết điểm qua những nghiên cứu về hướng khai phá luật kết hợp áp dụng cho lĩnh vực gợi ý Hướng tiếp cận khai phá luật kết hợp khá tương đồng với hướng lọc
cộng tác dựa trên item [6], tuy nhiên ít linh hoạt hơn khi cần đến những dữ liệu rõ ràng như là transaction - những sự kiện trong một phiên giao dịch của người dùng Nhưng
hiệu quả của nó có thể áp dụng ở nhiều trường hợp như khi thể hiện ở trang web cá nhân, giúp thiết kế giao diện dựa trên những mẫu chuyển hướng, tốt hơn nhiều khi sử dụng hệ gợi ý dựa trên kNN (người láng giềng gần nhất) về cả độ chính xác và phạm
vi; áp dụng ARM tìm kiếm từ thông tin người dùng sự tương quan giữa các item, còn tốt hơn cả những độ đo tương đồng item-item; áp dụng cho hệ gợi ý hội thoại; điều chỉnh minsup cho các luật trong suốt quá trình khai phá, từ cả user và item để tìm ra
những luật thích hợp hơn Cuối cùng, đáng chú ý là Cho và cộng sự [37] đã đưa ra một kết hợp giữa cây quyết định và ARM cho RS của một trang web bán hàng, họ đã sử dụng ARM để liên kết các sản phẩm liên quan, đưa ra gợi ý sau khi đã tính toán các luật kết hợp giao nhau dựa theo sở thích của người dùng Từ những giao dịch như lượt mua, lượt bỏ vào giỏ hàng, lượt click liên tiếp họ tìm kiếm những luật khác nhau, chọn theo kinh nghiệm trọng số cho các luật với mỗi loại giao dịch, ví dụ như đánh trọng số cho mua hàng cao hơn là nhấp chuột để xem
Xem xét một khía cạnh là đánh giá khi sử dụng luật kết hợp cho bài toán gợi ý Geyer-schuls và cộng sự [22] trong bài báo đánh giá các thuật toán gợi ý dựa trên các luật kết hợp đơn giản và lý thuyết mua lại, tác giả có đưa ra một thống kê về vài cách đánh giá tương ứng với 5 bước của quy trình khai phá tri thức (KDD – Knowledge Discovery in Databases) (5 bước bao gồm: chọn dữ liệu; tiền xử lý; khai phá dữ liệu; giải thích và đánh giá; biểu diễn) như là: 1) đánh giá tính có ích của hệ gợi ý phục vụ cho những bên liên quan như người dùng, người cung cấp dịch vụ, bên bán hàng… được triển khai ở cả 5 bước trong quy trình; 2) đánh giá việc khai phá sử dụng web ở
ba bước đầu có thể là: chọn đúng hành vi của người dùng khi thu thập như là lọc hành
vi do robot web tự động, dò các phiên truy cập,… thông qua các thống kê khi tiền xử
Trang 2624
lý; 3) đánh giá các thuật toán khai phá thông qua hiệu suất ví dụ như với tập dữ liệu huấn luyện và kiểm tra; 4) đánh giá việc biểu diễn gợi ý cho ngưới dùng là một vấn đề trong HCI (human-computer interface); 5) đánh giá hiệu suất của thuật toán luật kết hợp và thuật toán dựa trên lý thuyết mua lặp lại, tương ứng với bước khai phá và đánh giá trong quy trình: dựa trên việc so sánh những luật tìm được phù hợp với khái niệm
„gợi ý hữu ích‟ cho người dùng (được thu thập qua khảo sát người dùng)
Trong cuốn „Introduction to Data Mining‟, chương 6, của Tan và cộng sự [38] có đưa
ra rất nhiều độ đo giúp đánh giá luật, cả độ đo đối xứng và không đối xứng… trong quá trình thực nghiệm luận văn sẽ lựa chọn ra một vài độ đo tương ứng phù hợp để khai phá
và đánh giá luật, những khái niệm cụ thể của từng loại luật được mô tả ở mục 2.1 trên
2.4 Thuật toán tìm kiếm tập phổ biến và luật kết hợp
Phần này sẽ nêu chi tiết họ thuật toán FP-Growth, áp dụng kết quả tập phổ biến và luật kết hợp tìm được cho bước gợi ý tiếp theo
Trong khuân khổ luận văn sẽ sử dụng kết quả thực nghiệm trên 3 thuật toán chính
là FP-Growth, FPClose và FIN để tìm kiếm tập phổ biến và luật kết hợp, do đó trong mục này sẽ nêu chi tiết các thuật toán này dựa trên các nghiên cứu được công bố Ngoài ra luận văn cũng chạy dữ liệu thực nghiệm với một số các thuật toán khác là Apriori, Eclat, FPMax trước khi quyết định tìm sử dụng kết quả của thuật toán nào Tuy nhiên luận văn sẽ không nêu chi tiết các thuật toán này
Những thuật toán đề xuất dưới đây đều chạy trên bộ dữ liệu offline Nghĩa là toàn
bộ dữ liệu được sử dụng trong quá trình tính toán, khác với kiểu online, dữ liệu được phân nhỏ và xử lý từng phần Ở thực tế bộ dữ liệu lớn được cập nhật thời gian thực, phương pháp xử lý là chia nhỏ theo từng khoảng thời gian, hoặc từng chủng loại sản phẩm, hoặc từng phân khúc độ hỗ trợ (tần xuất được xem của sản phẩm)
2.4.1 Thuật toán FP-Growth
Thuật toán FP-Growth [39][40] được đề xuất bởi Han và cộng sự, như đã biết qua
về ý tưởng của thuật toán này ở phần giới thiệu hướng tiếp cận ở trên, trong phần này luận văn sẽ đi sâu vào chi tiết Thuật toán sẽ gồm hai bước là xây dựng cây FP-Tree để cấu trúc dữ liệu, và sau đó là khai phá các mẫu phổ biến trên cây
Những khái niệm riêng và đặc tính của thuật toán:
FP-Tree (Frequent pattern tree) là cây mẫu phổ biến có cấu trúc gồm nút gốc root được gán nhãn „null‟, tập các cây con tiền tố item (itemprefix) Mỗi nốt trong cây tiền tố chứa ba trường: item-name, node-link và count Với item-name định dạng tên item (có thể là ID, tên…) ở nốt đó, count là số transaction trong riêng đường đi tới nốt đó, node-link liên kết tới nốt nào tiếp theo trong cây mang cùng item-name, nếu không có sẽ để „null‟ Mỗi khi đi vào bảng header chứa hai trường là item- name và head của node-link chỉ với nốt đầu tiên trong FP-Tree mang item-name
đó
Trang 2725
Không tính nút gốc thì kích cỡ của FP-Tree giới hạn bởi số lượng những item phổ biến, và có chiều cao giới hạn bởi số item phổ biến tối đa có thể có trong transaction
Thuộc tính của node-link: Bất kỳ item phổ biến 𝑖𝑘 nào, tất cả các mẫu phổ biến có thể đều chứa 𝑖𝑘lấy ra được bởi theo node-link bắt đầu từ head của 𝑖𝑘trong header
của FP-Tree
Thuộc tính của đường tiền tố (prefix path): để tính mẫu phổ biến cho nốt 𝑖𝑘 trong
path P, chỉ đường tiền tố con của nốt 𝑖𝑘 được xem xét lấy ra, số đếm tần xuất của mọi nốt trong cây tiền tố nên mang bằng 𝑖𝑘.count
Sự tăng mảnh (Fragment growth) với a là một itemset trong DB (Database), B là mẫu cơ sở điều kiện của a, và b là một itemset trong B, support của a ∪ b =support của b trong B Sự tăng mẫu (pattern growth) với a là một itemset trong DB, B là mẫu cơ sở điều kiện của a, và b là một itemset trong B, thì a ∪ b là phổ biến trong
DB nếu và chỉ nếu b là phổ biến trong B
Sinh mẫu đường FP-Tree đơn (single FP-Tree path): một FP-Tree T có single path
P, tập đầy đủ các mẫu phổ biến của T có thể được sinh ra bởi liệt kê ra tất cả các tổ hợp của các đường con subpathcủa P với support là support nhỏ nhất của item chứa trong subpath đó
Bước 1: Xây dựng cây FP-Tree
Đầu vào: CSDL giao dịch DB và ngưỡng độ hỗ trợ tối thiểu (minsup)
Đầu ra: Cây FP-Tree
Thực hiện:
Bước 1: Duyệt DB một lần tìm tập phổ biến dựa vào độ hỗ trợ của nó Sắp xếp giảm dần như L là danh sách những item phổ biến được sắp xếp
Bước 2: Tạo cây FP-Tree
Khởi tạo một nút gốc là T có nhãn là „null‟
Với mỗi transaction trong DB: xếp item phổ biến theo thứ tự trong 𝐹1thành dàn
[p|P] với p là phần tử đầu tiên và P là phần tử còn lại
Thủ tục chèn vào cây insertTree([p,P],Tr):
If Tr có nút con N mà N.item-name = p.item-name
Then N.count++
Else tạo nốt mới N với N.count ==1 và thêm vào children-list của Tr Nếu P
không rỗng, gọi insertTree(P,N) đệ quy
Trước hết diễn giải việc xây dựng cây FP-Tree: Lần duyệt dữ liệu đầu tiên sẽ đếm
số lần xuất hiện của các sản phẩm item trong giao dịch transaction Lần thứ hai là
duyệt để sắp xếp lại giao dịch theo thứ tự và loại những sản phẩm nào có độ hỗ trợ
dưới ngưỡng minsup Danh sách này được biết đến là bảng nhãn (header table) Tất cả
Trang 2826
những độ hỗ trợ riêng này được xếp theo thứ tự và sử dụng con trỏ trong cây mẫu phổ biến Sau đó bắt đầu khởi tạo cây, từng giao dịch trong bảng header table cho lần lượt
các item được xếp lần lượt thêm vào cây theo cơ chế từ nút (node) gốc (root) duyệt
xuống, nếu chưa có thì tạo nốt mới, nếu có rồi thì cộng bộ đếm tại nút đó lên 1 Một liên kết được duy trì kiểu con trỏ để chỉ những sản phẩm giống nhau trên cây, theo thứ
tự đầu vào ở header table Trong bảng nhãn con trỏ trỏ đến vị trí đầu tiên của mỗi item
Việc sử dụng cấu trúc cây để lưu trữ dữ liệu các sản phẩm phổ biến là một cách nén, chứa đủ thông tin cần thiết mà không phải duyệt đi duyệt lại nhiều lần như cấu trúc mảng của thuật toán Apriori
Bước 2: Khai phá mẫu phổ biến trong cây FP-Tree bằng FP-growth (pattern fragment growth)
Đầu vào: FP-Tree, minsup
Đầu ra: Những tập mẫu phổ biến đầy đủ
Phương pháp: FP-growth (FP-Tree, null)
FP-growth (tree, a) {
If (Tree chứa đường path P đơn) thì
for each kết hợp của các nốt trong P
sinh mẫu b ∪ a với support – minsup của các nốt trong b
Else for each ai trong header của Tree
Sinh mẫu b=ai ∪ a với support - ai.support Tạo cơ sở mẫu điều kiện (conditional pattern base) của b và sau đó là Treeb điều kiện của b
If (Treeb khác trỗng) thì
gọi FP-growth (Treeb, b)
}
Diễn giải như sau: Thuật toán tìm tập đầy đủ những tập mục phổ biến trong DB
với ngưỡng độ hỗ trợ minsup Nếu FP-Tree chứa một đường đơn, những mẫu được sinh từ nó là tổ hợp những nốt trong đường path với độ hỗ trợ là bằng của nốt có độ hỗ trợ nhỏ nhất trong suppath (đường con) Cách khác trong thuật toán sẽ là tạo mẫu cơ
sở điều kiện và khai phá FP-Tree điều kiện của nó cho mỗi tập mục phổ biến 𝑎𝑖
Chứng minh cho tính đúng và đầy đủ của việc chuyển đổi đường tiền tố là việc sinh mẫu ở đường đơn, cơ sở mẫu điều kiện lưu đủ thông tin cho việc khai phá mẫu phổ
biến Thuộc tính tăng mảnh (fragment growth) có đề cập ở trên chỉ rõ rằng độ hỗ trợ
của những phân mảnh được tổ hợp là độ hỗ trợ của những tập mục phổ biến được sinh trong mẫu cơ sở điều kiện
Sau quá trình tìm tập phổ biến là quá trình sinh luật XY Với mỗi k-itemset phổ biến có thể tìm được 2𝑘 − 2 luật (không tính luật X∅ và ∅ Y), và nếu chỉ quan tâm
Trang 2927
đến luật có X=1-itemset thì sẽ có k luật tìm được Các luật tìm được còn phải được lọc
một lần nữa là luật mạnh tức là có độ tin cậy vượt ngưỡng cho trước
For each k-itemset phổ biến: 𝑓𝑘 (k>2){
Confidence= support (𝑓𝑘)/support (𝑓𝑘 − ℎ𝑚 +1)
If confidence>= minconf then tạo luật (𝑓𝑘 − ℎ𝑚 +1)ℎ𝑚 +1
Else xóa ℎ𝑚 +1 từ 𝐻𝑚 +1}
Gọi sinhLuat(𝑓𝑘, 𝐻𝑚 +1) }
Có một vài hướng đi nhằm cải thiện thuật toán như xây dựng cấu trúc cây, hay cách duyệt cây nhằm giảm thời gian tính toán và bộ nhớ cần sử dụng
Khi dữ liệu lớn hay khi độ hỗ trợ thấp không thể xây dựng cây FP-Tree, giải pháp
là chia nhỏ bộ dữ liệu ra và sau đó tạo cây và khai phá cho từng bộ dữ liệu con đó
(projected database – CSDL được phân hoạch) dựa vào danh sách L- danh sách item phổ biến, đây là danh sách các item sắp xếp theo thứ tự giảm dần về độ hỗ trợ, những item có cùng độ hỗ trợ sẽ được xếp ngẫu nhiên
Cách thức phân hoạch hay chia nhỏ có thể làm theo cách sau: chia tập transaction tổng DB thành các tập giao dịch của những item sản phẩm phổ biến, ví dụ chia tập giao dịch theo sản phẩm phổ biến i ký hiệu là i-projected database, đây là tập hợp các giao dịch chứa item i, khi thêm vào sẽ loại bỏ những item không phổ biến và cả item i
khỏi những giao dịch này vì không cần thiết trong quá trình khai phá, chỉ giữ lại trong
giao dịch những item đứng trước item i trong danh sách L, có nghĩa là giữ lại những
Trang 3028
item có độ hỗ trợ lớn hơn Việc phân hoạch này sẽ tạo được những cây FP-Tree điều kiện nhỏ hơn so với cây FP-Tree tổng Nếu cây FP-Tree điều kiện đã được phân hoạch nhỏ hơn vẫn quá lớn với bộ nhớ xử lý, có thể phân tiếp thành các tập nhỏ hơn đến khi cây FP-Tree điều kiện vừa với bộ nhớ xử lý
Định nghĩa lại cơ sở dữ liệu được phân hoạch: với i là một item phổ biến trong CSDL giao dịch DB, tập dữ liệu được phân hoạch theo i: i-projected database là tập
dữ liệu chứa tất cả những transaction chứa i và đã loại bỏ những item không phổ biến, tất cả các item phổ biến đứng sau i trong danh sách L và chính item i
Với item j là một item phổ biến trong i-projected database (hoặc bất kỳ tập giao dịch đã được phân hoạch nào) Khi đó tập giao dịch được phân nhỏ hơn j-i-projected database sẽ là tập transaction lấy ra từ tập i-projected database sẽ bao gồm những transaction chứa item j và đã loại bỏ trong đó những item không phổ biến, đứng sau j trong L và cả j
Có hai phương pháp cho phân hoạch CSDL: phân theo song song (parallel projection) và phân vùng (partition projection)
Phân hoạch song song được thực hiện như sau: duyệt CSDL một lần, lần lượt từng
transaction, ví dụ với transaction t, mỗi item phổ biến i trong t, phân t vào i-projected database, tiếp tục phân vào những nhóm item phổ biến khác Như vậy với một lần
duyệt sẽ được phân vào tất cả những tập con, mà không phải duyệt lại Cách thức này
dễ thực hiện nhưng gặp một vấn đề là nếu những transaction dài chứa nhiều item phổ biến sẽ được phân vào rất nhiều tập con, khiến kích cỡ của tổng các tập con được phân tăng gấp nhiều lần với database gốc (Được chứng minh là tăng hơn (l-1)/2 lần, với l là
số item phổ biến trong transaction [41]) Một cách khác là phân vùng: khi duyệt CSDL gốc hoặc một tập đã được phân hoạch nào đó, mỗi một transaction t được phần vào một i-projected database chỉ khi i là một item phổ biến trong t và không các item nào khác sau i trong L xuất hiện trong transaction Khi đó mỗi transaction chỉ được phân
vào một tập duy nhất trong lần duyệt đó dẫn đến tổng kích thước của toàn bộ các tập
transation con nhỏ hơn so với CSDL gốc, sẽ sử dụng ít bộ nhớ hơn Tuy nhiên thứ tự
chạy thực thi cho những database con được phân hoạch sẽ là vấn đề quan trọng vấn đề này sẽ không được xét kỹ trong luận văn, nhưng chi tiết có thể tìm thấy ở [41]
2.4.2 Thuật toán FPClose
Tiếp nối hàng loạt các công bố về khai phá mẫu phổ biến, Grahne và cộng sự [29] đã công bố vài thuật toán và kỹ thuật để tìm các tập phổ biến sử dụng dựa trên cấu trúc FP-Tree Tác giả đã đưa ra một kỹ thuật FP-array để giảm thời gian duyệt dữ liệu, phù hợp với dữ liệu thưa, và những thuật toán để khai phá những tập phổ biến là tất cả tập phổ biến, tập phổ biến cực đại, tập phổ biến đóng Ở đây luận văn chỉ nêu thuật toán khai phá tập phổ biến đóng
Dựa theo khái niệm về tập phổ biến đóng được nêu ở định nghĩa trong phần 2.1 FPClose cần xác định tất cả những tập phổ biến mới là đóng, sử dụng cây phổ biến đóng CFI-Tree (closed frequent item tree- một biến thể khác của FP-Tree)
Trang 3129
Trong một CFI-Tree mỗi nốt là một cây con có bốn trường: item-name, count, node-link và level Ở đây level sử dụng để kiểm tra tập con; count được dùng để so
sánh hai tập phổ biến để nhận dạng hai tập riêng biệt loại ra trường hợp là tập con của
nhau không có cùng độ hỗ trợ Thứ tự cho các item ở bảng header table là tương tự
như trong FP-Tree Việc thêm một CFI vào cây tương tự như việc thêm một
transaction vào FP-Tree, trừ việc không tăng bộ đếm cho một node mà thay thế bằng
Khởi tạo cây điều kiện CFI-Tree cho Y là 𝐶𝑌Gọi FPClose (𝑇𝑌, 𝐶𝑌)
Ghép 𝐶𝑌 với C
Giải thích một vài điểm trong thuật toán FPClose (T,C) như sau: với hàm closed_checking (Y, C) để kiểm tra xem tập phổ biến Y có phải là tập đóng không
2.4.3 Thuật toán FIN
Thuật toán FIN [42] (Fast mining frequent itemsets using Nodesets) là một thuật toán mới được Deng và cộng sự đề xuất vào năm 2014 Ý tưởng là xây dựng cấu trúc
dữ liệu dưới dạng tập nốt (nodeset) Những tập nốt chỉ cần lưu cây theo tiền tự hoặc
hậu tự thay vì phải dùng cả hai để lưu trữ cây, giảm một nửa bộ nhớ so với N-List [43]
và node-list của chính tác giả đề xuất Từ cách xây dựng cấu trúc dữ liệu kiểu nodeset
này, việc tìm kiếm các tập phổ biến sẽ sử dụng thuật toán FIN tìm trong cây tìm kiếm
Trang 3230
tập liệt kê (set-enumeration tree), ngoài ra thuật toán còn sử dụng kỹ thuật cắt tỉa cây
thúc đẩy, tương tự với kỹ thuật tỉa tương đương cha con [24] Thuật toán được so sánh với PrePost [43] và FPGrowth*, là hai thuật toán tiên tiến nhất hiện nay về bộ nhớ sử dụng và thời gian chạy, đã cho thấy kết quả tốt hơn
Sau đây sẽ mô tả chi tiết hơn về những nguyên lý, định nghĩa riêng của thuật toán
Trước hết là POC-tree (Pre-Order Coding tree) đây là cây lưu trữ Nodeset, cây có cấu trúc: Chứa một gốc (root) gán nhãn „null‟ và một tập những cây con tiền tố là con của gốc Mỗi nốt trong cây tiền tố chứa 5 trường: item-name, count, children- list, pre-order Trong đó item-name ghi item mà node đó biểu diễn, count thể hiện
số giao dịch được biểu diễn bởi một phần đường (path) đi tới nốt này, children-list
là danh sách tất cả các nốt con của nốt đó, pre-order là thứ tự trong dãy tiền tự của
nốt đó
Cây POC-tree chỉ sử dụng để sinh tập Nodeset của tập phổ biến 2 item, sau khi xây
được cây sẽ tìm các tập đó, cây này có thể ít dùng hoặc được bỏ Cách duyệt hậu tự
post-order là tương tự với pre-order, có thể thay thế cách dùng pre-order ở trên để tạo cây Nodeset được nhắc đến ở trên được mô tả rõ hơn với một vài thành phần
cơ bản, khái niệm và những thuộc tính của nó
N-info là thành phần cơ bản trong i, là một cặp (pre-order, count) của một nốt N
Quan hệ giữa hai item 𝑖1 và 𝑖2: 𝑖1>𝑖2 nếu và chỉ nếu 𝑖1 đứng trước 𝑖2trong 𝐿1
Nodeset của 2-itemset: với hai item 𝑖1,𝑖2(𝑖1,𝑖2 thuộc 𝐿1 và 𝑖1>𝑖2) và nodeset của itemset 𝑖1𝑖2 là tập con của noteset của 𝑖2 được định nghĩa là nodeset(𝑖1𝑖2)
2-={(𝑝𝑟𝑒𝑘, 𝑐𝑘)| tồn tại một nốt N ghi 𝑖1, N là „tổ tiên‟ của nốt tương ứng (𝑝𝑟𝑒𝑘, 𝑐𝑘)}
Với P (𝑝1𝑝2,𝑝1,𝑝2,thuộc 𝐿1và 𝑝1 >𝑝2) là 2-itemset và giả sử nodeset của nó là {(𝑝𝑟𝑒1, 𝑐1); (𝑝𝑟𝑒2, 𝑐2); , (𝑝𝑟𝑒𝑚, 𝑐𝑚)} Độ hỗ trợ của P là bằng 𝑐1+ 𝑐2 + + 𝑐𝑚
Nodeset k-itemset: Với P =𝑝1𝑝2𝑝3… 𝑝𝑘là itemset (𝑝𝑗thuộc 𝐿1 và𝑝1 > 𝑝2 > ⋯ >
𝑝𝑘) Giả sử nodeset của P viết tắt là 𝑛𝑜𝑑𝑒𝑠𝑒𝑡𝑃 được định nghĩa là giao của 𝑛𝑜𝑑𝑒𝑠𝑒𝑡𝑃1 và 𝑛𝑜𝑑𝑒𝑠𝑒𝑡𝑃2
k-itemset P và giả sử nodeset của nó là {(𝑝𝑟𝑒1, 𝑐1); (𝑝𝑟𝑒2, 𝑐2); , (𝑝𝑟𝑒𝑚, 𝑐𝑚)} Độ hỗ trợ của P là bằng 𝑐1+ 𝑐2 + + 𝑐𝑚
Tập cha tương đương (superset equivalence): cho item I, itemset P(i∉ P), nếu độ
hỗ trợ của P bằng độ hỗ trợ của P∪A với P∩A=∅ ⋀ i∉A, bằng độ hỗ trợ của A ∪ P∪{i}
Thuật toán tạo cây POC-tree được mô tả như sau: