Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG --- o0o--- Họ và tên tác giả: Nguyễn Thị Thùy MỘT SỐ KỸ THUẬT KHAI PHÁ
Trang 1Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG
- o0o -
Họ và tên tác giả: Nguyễn Thị Thùy
MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT HỢP CÓ BẢO ĐẢM TÍNH RIÊNG TƯ TRONG CÁC TẬP GIAO DỊCH
PHÂN TÁN NGANG
LUẬN VĂN THẠC SỸ KHOA HỌC
Thái Nguyên – 2014
Trang 2Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG
Họ và tên tác giả: Nguyễn Thị Thùy
MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT HỢP CÓ BẢO ĐẢM TÍNH RIÊNG TƯ TRONG CÁC TẬP
GIAO DỊCH PHÂN TÁN NGANG Chuyên ngành: Khoa học máy tính
Trang 3Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CAM ĐOAN
Những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn trung thực, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật Việt Nam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật
TÁC GIẢ LUẬN VĂN
Nguyễn Thị Thùy
Trang 4Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CẢM ƠN
Trước hết, tôi xin bày tỏ lòng cảm ơn chân thành tới thầy giáo,TS Trần Đức Sự, người tận tình hướng dẫn tôi trong suốt thời gian làm luận văn tốt nghiệp
Tôi xin cảm ơn các thầy, cô giáo ở khoa Công nghệ thông tin trường Đại học CNTT và truyền thông - Đại học Thái Nguyên đã giảng dạy tôi trong suốt thời gian học tập tại trường và tạo điều kiện giúp đỡ tôi hoàn thành luận văn này
Cảm ơn các bạn bè, đồng nghiệp đã cổ vũ động viên tôi trong suốt quá trình học tập tại trường
Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn luận văn này còn nhiều thiếu sót và hạn chế nhất định Kính mong nhận được sự góp ý của thầy cô và các bạn
Trang 5Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH VẼ
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ KHAI PHÁ LUẬT KẾT HỢP CÓ ĐẢM BẢO TÍNH RIÊNG TƯ 3
1.1 Một số khái niệm cơ bản 3
1.1.1 Khai phá dữ liệu 3
1.1.2 Tính riêng tư 3
1.1.3 Khai phá dữ liệu đảm bảo tính riêng tư 3
1.2 Khai phá luật kết hợp 4
1.2.1 Luật kết hợp 4
1.2.2 Khai phá luật kết hợp 6
1.3 Các phương pháp khai phá luật kết hợp có đảm bảo tính riêng tư 6
1.3.1 Khai phá luật kết hợp có đảm bảo tính riêng tư với dữ liệu tập trung 7
1.3.2 Khai phá luật kết hợp có đảm bảo tính riêng tư với dữ liệu phân tán 8
1.3.2.1 Khai phá dữ liệu trong mô hình phân tán 8
1.3.2.2 Phân tán ngang 8
1.3.3 Ẩn các luật nhạy cảm trong khai phá luật kết hợp 11
1.4 Một số kỹ thuật khai phá luật kết hợp có đảm bảo tính riêng tư 11
1.4.1 Phương pháp biến đổi dữ liệu 11
1.4.2 Sử dụng thành viên thứ ba đáng tin cậy 11
1.4.3 Tính toán đa thành viên bảo mật 13
Chương 2 MỘT SỐ PHƯƠNG PHÁP TÌM LUẬT KẾT HỢP 17
2.1 Bài toán tìm luật kết hợp 17
Trang 6Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.1.1 Phát biểu bài toán 17
2.1.2 Ví dụ 17
2.2 Thuật toán Apriori 18
2.2.1 Nguyên lí Apriori 19
2.2.2 Thuật toán Apriori 19
2.3 Thuật toán khai phá luật kết hợp phân tán 22
2.3.1 Thuật toán khai phá luật kết hợp phân tán nhanh(FDM) 22
2.3.2 Thuật toán khai phá phân tán luật kết hợp (DMAR) 25
Chương 3.MỘT SỐ THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP CÓ ĐẢM BẢO TÍNH RIÊNG TƯ 31
3.1 Phương pháp dựa trên tính tổng bảo mật chống lại sự thông đồng 31
3.1.1 Các định nghĩa 31
3.1.2 Thuật toán khai phá dữ liệu đảm bảo tính riêng tư chống lại sự thông đồng 32
3.1.2.1 Tính tổng bảo mật với Secure Sum 33
3.1.2.2 Mô hình khai thác bằng CRDM 38
3.2 Một số giao thức tiếp cận theo hướng FI (Frequent itemset): 43
3.2.1 Giao thức sử dụng mã hóa giao hoán KCS 44
3.2.2 Giao thức sử dụng thành viên thứ ba bán tin cậy sử dụng mã hóa Paillier 47
3.2.3 Kỹ thuật tính tổng bảo mật cải tiến dựa trên mô hình hai thành viên bán tin cậy 48
3.3 So sánh hai phương pháp Secure Sum và Two Mixer Sum 54
3.4 Cài đặt thuật toán Secure Sum 55
3.4.1 Yêu cầu về càiđặt thuật toán 56
3.4.2 Quá trình cài đặt và thử nghiệm thuật toán Secure Sum 56
3.4.3 Kết luận 61
3.5 Cài đặt thuật toán Two Mixer Sum 62
Trang 7Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
KẾT LUẬN VÀ KIẾN NGHỊ 67
1 Kết luận 67
2 Kiến nghị 67
TÀI LIỆU THAM KHẢO 68
Trang 8Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC TỪ VIẾT TẮT
A.sup: Ðộ hỗ trợ toàn cục của itemset A (tính theo số lần xuất hiện) A.supi: Ðộ hỗ trợ cục bộ của itemset A tại site i (tính theo số lần xuất
hiện) conf: Ðộ tin cậy (toàn cục) tối thiểu
CSDL: Cơ sở dữ liệu
DB: Cơ sở dữ liệu tập trung hay toàn cục
DBi: Cơ sở dữ liệu cục bộ tại site i
FI: Tập itemset phổ biến
FIi: Tập itemset phổ biến cục bộ tại site i
KTDL: Khai thác dữ liệu
MFI: Tập itemset tối đại
MFIi: Tập itemset tối đại cục bộ tại site i
Public key: Khoá công khai
Private key: Khoá bí mật
SMC: Các giao thức tính toán đa thành viên an toàn
sup: Ðộ hỗ trợ (toàn cục) tối thiểu (tính theo tần số %)
SUP: Ðộ hỗ trợ (toàn cục) tối thiểu (tính theo số lần xuất hiện)
Trusted-party: Thành viên thứ 3 đáng tin cậy
Trang 9Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC BẢNG
Bảng 1.1 Ví dụ về mô hình dữ liệu phân tán ngang 8
Bảng 1.2 Ví dụ về mô hình dữ liệu phân tán dọc 10
Bảng 2.1 Các tập phổ biến 26
Bảng 3.1 So sánh 2 phương pháp Secure Sum và Two Mixer Sum 55
Trang 10Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Quá trình khai phá luật kết hợp trên CSDL tập trung 7
Hình 1.2 Giao thức sử dụng Trusted-party 13
Hình 1.3 Mô hình tính toán SMC 14
Hình 2.1 CSDL giao dịch 18
Hình 2.2 Quá trình tìm tập phổ biến 18
Hình 3.1 SecureSum(): Tính tổng bảo mật các Vi (0 ≤ i ≤ M-1) 34
Hình 3.2a Giai đoạn 1 của ví dụ sử dụng SecureSum 35
Hình 3.2b Giai đoạn 2 của ví dụ về sử dụng SecureSum 36
Hình 3.3 Một ví dụ minh họa CRDM 39
Hình 3.4.Giai đoạn 1, tìm itemset ứng viên chung 44
Hình 3.5 Giai đoạn 2, tính độ hỗ trợ toàn cục 46
Hình 3.6 Giao thức sử dụng Semi-trusted-mixer 47
Hình 3.7 Giai đoạn 1 ví dụ về thuật toán Two – MixerSum 52
Hình 3.8 Giai đoạn 2 ví dụ về thuật toán Two – MixerSum 53
Hình 3.9 Giao diện chính của chương trình 57
Hình 3.10 Tiến trình thử nghiệm của chương trình 58
Hình 3.11 Giao diện kết quả chương trình 58
Hình 3.12 Giao diện chương trình 62
Hình 3.13 Tiến trình thử nghiệm 63
Hình 3.14 Kết quả chương trình 63
Trang 11Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Các giải pháp khai phá luật kết hợp có đảm bảo tính riêng tư ra đời là hết sức cần thiết, để cho phép thực hiện việc khai phá luật kết hợp trong khi vẫn bảo vệ được thông tin riêng tư Do đó việc nghiên cứu, tìm hiểu các thuật toán khai phá luật kết hợp có đảm bảo tính riêng tư để tích hợp cho các ứng dụng là có tính thực tiễn cao
Xuất phát từ thực tiễn trên, mục đích của đề tài là nghiên cứu đánh giá
“Một số kỹ thuật khai phá luật kết hợp có bảo đảm tính riêng tƣ trong
các tập giao dịch phân tán ngang”
Nội dung bao gồm 3 chương và phần mở đầu, phần kết luận với nội dung cụ thể như sau:
Chương 1: Tổng quan về khai phá luật kết hợp có đảm bảo tính riêng tư
Trong chương 1 sẽ trình bày khái quát chung về vấn đề khai phá dữ liệu
có đảm bảo tính riêng tư, vấn đề khai phát luật kết hợp có đám bảo tính riêng
Trang 12Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
tư với dữ liệu tập trung và trên các hệ thống phân tán, một số tiêu chí đánh giá
Chương 2: Một số phương pháp khai phá luật kết hợp
Ở chương 2 chúng ta sẽ tìm hiểu về một số phương pháp tìm luật kết hợp, khai phá luật kết hợp trong dữ liệu phân tán
Chương 3: Một số thuật toán khai phá luật kết hợp có đảm bảo tính riêng tư
trong môi trường phân tán ngang
Chương này sẽ tập chung nghiên cứu về một số thuật toán khai phá luật kết hợp có đảm bảo tính riêng tư trong môi trường phân tán ngang Trong đó tập trung vào 2 thuật toán chính là: Phương pháp dựa trên tổng bảo mật chống lại sự thông đồng và phương pháp tiếp cận theo hướng FI Đồng thời trình bày
đề mô thuật toán Secure Sum và cải tiến thuật toán
Trang 13Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Chương 1 TỔNG QUAN VỀ KHAI PHÁ LUẬT KẾT HỢP
CÓ ĐẢM BẢO TÍNH RIÊNG TƯ 1.1 Một số khái niệm cơ bản
1.1.1 Khai phá dữ liệu
Khai phá dữ liệu (KPDL) là các kỹ thuật để rút trích tri thức từ lượng
dữ liệu lớn và được xem là giai đoạn chính trong quá trình khám phá tri thức KPDL được ứng dụng trong nhiều lĩnh vực như tiếp thị, kinh doanh, khám phá khoa học, công nghệ sinh học, tìm kiếm trên Internet, giải trí đa phương tiện, …
Với lượng dữ liệu gia tăng nhanh chóng thì KPDL là một công cụ hữu ích để rút trích những thông tin có ích từ dữ liệu, tuy nhiên trong các lĩnh vực đặc thù như y khoa, bảo hiểm, ngân hàng… có chứa dữ liệu và thông tin nhạy cảm, không cho phép tiết lộ dữ liệu và thông tin nhạy cảm này do đó gây khó khăn cho quá trình khai thác, từ đó đòi hỏi cần có các nghiên cứu để có thể khai phá dữ liệu nhưng không ảnh hưởng đến tính riêng tư của dữ liệu
1.1.2 Tính riêng tư
Tính riêng tư là tính chất của các dữ liệu nhạy cảm như: định danh, tên, địa chỉ, điện thoại, thu nhập,… của các cá nhân, một số số liệu thống kê các tổ chức, doanh nghiệp… Các thông tin này là bí mật kinh doanh, mà nếu để lộ ra
sẽ gây bất lợi cho cá nhân, tổ chức, hay những thông tin do quy định của pháp luật nên không thể tiết lộ ra như bảo hiểm y tế, số tài khoản ngân hàng, Những loại thông tin như trên gọi là những thông tin có tính riêng tư hay là tri thức nhạy cảm
1.1.3 Khai phá dữ liệu đảm bảo tính riêng tư
Trang 14Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Vậy khai phá dữ liệu có đảm bảo tính riêng tư là việc dùng các thuật toán để trích rút ra những tri thức quan trọng cần thiết cho mục đích khai phá
dữ liệu mà không làm lộ ra các thông tin nhạy cảm của các cá nhân, tổ chức
- Toàn bộ tập các mục I={i1,i2, ik} “tất cả các mặt hàng” Một giao dịch
là một tập con của I: T I Mỗi giao dịch T có một định danh TID
- A là một tập mục A I và T là một giao dịch: Gọi T chứa A nếu
A T
* Luật kết hợp
- Gọi A → B là một “luật kết hợp” nếu A T, B T và A B=
- Luật kết hợp A→B có độ hỗ trợ (support) s trong CSDL giao dịch D nếu trong D có s% các giao dịch T chứa AB:chính là xác suất P(AB) Tập mục A có P(A) ≥s>0 (với s cho trước) được gọi là tập phổ biến (frequent set) Luật kết hợp A→B có độ tin cậy (confidence) c trong CSDL D nếu như trong
D có c% các giao dịch T chứa A thì cũng chứa B: chính là xác suất P(B│A)
- Support (A→B) = P( B) :1≥s(A→B)≥0
- confidence (A→B) = P(B│A) :1≥c(A→B)≥0
- Luật A→B được gọi là bảo đảm độ hỗ trợ s trong D nếu s(A→B)≥s Luật A → B được gọi là bảo đảm độ tin cậy c trong D nếu c(A→B)≥c
Độ hỗ trợ (Support)
Trang 15Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Độ hỗ trợ của một tập mục X trong cơ sở dữ liệu D là tỉ số giữa các
giao tác T D có chứa tập X là tổng số giao tác trong D (hay là phần trăm của các giao tác trong D có chứa tập mục X), kí hiệu là Supp (X)
Supp (X)=
D
T X D
(2.1)
Ta có 0 Supp (X) với mọi tập X
Hay có thế nói Support chỉ mức độ “thường xuyên xảy ra” của mẫu
Độ hỗ trợ của luật X→Y là tỉ số của số giao tác có chứa X Y và số
giao tác trong cơ sở dữ liệu D, kí hiệu là Supp (X→Y)
Supp (X→Y)=
D
T D
(2.2) Như vậy độ hỗ trợ của một luật bằng 50% nghĩa là có 50% số giao tác
có chứa tập mục X Y Độ hỗ trợ có ý nghĩa thống kê của luật kết hợp
Độ tin cậy ( Confidence)
Độ tin cậy của luật kết hợp X →Y là xác suất xảy ra Y khi đã biết X
Ví dụ độ tin cậy của luật kết hợp {Apple} →Banana} là 80% có nghĩa là 80% khách hàng mua Apple cũng mua Banana
Công thức để tính độ tin cậy của luật kết hợp X là xác suất có điều kiện Y khi đã biết X như sau :
Confidence(XY) = P(Y|X) =
) (
) (
X n
Y X n
(2.3) Trong đó: n(X) là số giao dịch chứa X
* Một số ví dụ về luật kết hợp
Trang 16Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ 1.2.1 80% khách hàng mua tạp chí thể thao thì đều mua tạp chí
về về ô tô =>sự kết hợp giữa tạp chí thể thao với tạp chí về về ô tô (80% là
độ tin cậy của luật)
Ví dụ 1.2.2 Ngân hàng muốn thu thập thông tin về lịch sử tín dụng của khách hàng thấy có một luật: 75% khách hàng vay mua nhà và mua xe và có thu nhập hàng tháng dưới 7 triệu thì không có khả năng thanh toán nợ => sự
kết hợp giữa vay mua nhà và mua xe, có thu nhập dưới 7 triệu với khả năng
thanh toán nợ.(75% là độ tin cậy của luật)
Ví dụ 1.2.3 20% trên tổng số khách hàng có tài khoản tiết kiệm có thu nhập lớn hơn hoặc bằng 60 triệu một năm với độ tin cậy là 100%
Thu nhập= 60.000.000_max →Tài khoản tiết kiệm= yes [20% ; 100%]
1.2.2 Khai phá luật kết hợp
Khai phá luật kết hợp: là tìm các mẫu phổ biến, sự kết hợp, sự tương quan, hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác được gọi là các luật kết hợp
Các ứng dụng: Luật kết hợp có ứng dụng trong nhiều lĩnh vực khác nhau của đời sống như: khoa học, hoạt động kinh doanh, tiếp thị, thương mại, phân tích thị trường chứng khoán, tài chính và đầu tư,
Từ các luật kết hợp được trích rút từ chính các cơ sở dữ liệu giao dịch,
cơ sở dữ liệu khách hàng mà các siêu thị, các ngân hàng sẽ có chiến lược kinh doanh (sắp xếp các mặt hàng, số lượng các mặt hàng, ), chiến lược tiếp thị, quảng cáo,… để từ đó thúc đẩy hoạt động kinh doanh của mình
1.3 Các phương pháp khai phá luật kết hợp có đảm bảo tính riêng tư
Trang 17Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Khai phá luật kết hợp có đảm bảo tính riêng tư là quá trình khai phá các luật kết hợp trong các cơ sở dữ liệu, đồng thời vẫn đảm bảo các thông tin riêng tư của các cá nhân hoặc tổ chức trong các cơ sở dữ liệu không bị lộ cho người khai phá
Tuỳ thuộc vào đặc trưng của nguồn dữ liệu, mô hình dữ liệu mà chúng
ta có thể phân chia thành các loại bài toán khai phá luật kết hợp có đảm bảo tính riêng tư khác nhau:
1.3.1 Khai phá luật kết hợp có đảm bảo tính riêng tư với dữ liệu tập trung
Trong bài toán này, người ta giả thiết có một tổ chức sở hữu tập dữ liệu, trong tập dữ liệu có một số thuộc tính nhạy cảm Tổ chức này mong muốn công bố tập dữ liệu cho mục đích nghiên cứu, ví dụ: khai phá luật kết hợp, đồng thời mong muốn bảo vệ các thông tin riêng tư trong tập dữ liệu
Một phương pháp cơ bản để giải quyết bài toán này là thực hiện biến đổi dữ liệu để ẩn các thông tin nhạy cảm trước khi đưa vào khai thác như vậy
sẽ không tiết lộ thông tin nhạy cảm
Hình 1.1 Quá trình khai phá luật kết hợp trên CSDL tập trung
Ví dụ 1.3.1 Một công ty bán hàng muốn nghiên cứu về nhu cầu mua hàng hoá vào mùa hè sắp tới để có phương pháp huy động vốn và đầu tư mặt hàng cho phù hợp và hiệu quả Họ sẽ cung cấp dữ liệu cho chuyên gia để nghiên cứu, tuy nhiên họ lại không muốn để lộ các thông tin về bán hàng của
họ Để làm được việc này họ đã biến đổi dữ liệu trước khi chuyển giao cho việc nghiên cứu
CSDL
Gốc Biến đổi
Tri thức CSDL
Đã biến đổi KPDL
Trang 18Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ 1.3.2 Một ngân hàng thực hiện khai phá dữ liệu nghiên cứu về khả năng thanh toán nợ của khách hàng dựa trên lịch sử tín dụng của khách hàng trên CSDL của họ Họ sẽ cung cấp dữ liệu cho chuyên gia để nghiên cứu, tuy nhiên họ lại không muốn để lộ các thông tin của khách hàng Để làm được việc này họ đã biến đổi dữ liệu trước khi chuyển giao cho việc nghiên cứu
1.3.2 Khai phá luật kết hợp có đảm bảo tính riêng tư với dữ liệu phân tán 1.3.2.1 Khai phá dữ liệu trong mô hình phân tán
Giả thiết rằng tập dữ liệu được phân tán thành nhiều phần theo chiều ngang hoặc theo chiều dọc trên một nhóm các tổ chức (thành viên), mỗi thành viên sở hữu một tập dữ liệu riêng Vấn đề đặt ra là làm thế nào để các tổ chức
có thể chia sẻ tập dữ liệu cho nhau nhằm khai phá ra các luật kết hợp trên tập
dữ liệu liên kết của các thành viên, trong khi vẫn bảo vệ được tính riêng tư của mỗi thành viên tham gia
1.3.2.2 Phân tán ngang
Các site khác nhau thu thập cùng các đặc trưng về thông tin của các thực thể khác nhau Cũng có thể hiểu là các Site khác nhau nắm giữ cùng các thuộc tính của các đối tượng khác nhau
Bảng 1.1 Ví dụ về mô hình dữ liệu phân tán ngang
Trang 19Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
……
Ví dụ 1.3.3 Ngân hàng Nhà nước thực hiện khai phá dữ liệu nghiên cứu về khả năng thanh toán nợ của khách hàng dựa trên lịch sử tín dụng của khách hàng trên CSDL của các ngân hàng thương mại Nhưng các ngân hàng này không muốn để lộ thông tin khách hàng cho các ngân hàng khác Khi đó yêu cầu đặt ra là phải thực hiện khai phá luật kết hợp ứng dụng trên CSDL phân tán ngang đảm bảo tính riêng tư
Trang 20Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.3.2.3 Phân tán dọc
Các site thu thập các đặc trưng khác nhau của cùng tập thực thể, ví dụ: Bệnh viện thu thập các thông tin về bệnh nhân, các chứng bệnh Nhà cung cấp dịch vụ viễn thông cung cấp về thông tin khách hàng, thời gian gọi điện, thời lượng gọi điện…
Tổng hợp 2 cơ sở dữ liệu này lại để nghiên cứu về một mối tương quan giữa các bệnh có thể sinh ra do nguyên nhân sử dụng điện thoại di động
Bảng 1.2 Ví dụ về mô hình dữ liệu phân tán dọc
Dữ liệu toàn cục
Dữ liệu tại hãng viễn thông
………
Dữ liệu tại bệnh viện
………
Trang 21Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.3.3 Ẩn các luật nhạy cảm trong khai phá luật kết hợp
Trong quá trình khai phá dữ liệu có thể có những luật nhạy cảm không muốn bị lộ ra, ví dụ: Trong ngân hàng có một số luật được tìm thấy nhưng lại rất nhạy cảm, ngân hàng không muốn tiết lộ ra vì nếu tiết lộ ra sẽ làm ảnh hưởng đến khách hàng, hoặc ảnh hưởng đến ngân hàng, giả dụ như khách hàng sử dụng dịch vụ A và sử dụng dịch vụ B thì thường dẫn đến không có khả năng thanh toán nợ…
Chính vì lí do đó nên trong bài toán khai phá luật kết hợp có đảm bảo tính riêng tư chúng ta cần tính đến việc ẩn đi các luật nhạy cảm
1.4 Một số kỹ thuật khai phá luật kết hợp có đảm bảo tính riêng tƣ
1.4.1 Phương pháp biến đổi dữ liệu
Tư tưởng của phương pháp biến đổi dữ liệu là trước khi đưa dữ liệu vào khai phá thì dữ liệu sẽ được biến đổi, tuy nhiên việc biến đổi chỉ nhằm che dấu những thông tin nhạy cảm mà không làm ảnh hưởng đến kết quả tính toán Một trong những phương pháp thường được sử dụng trong trường hợp này là phương pháp cộng nhiễu
1.4.2 Sử dụng thành viên thứ ba đáng tin cậy
Thành viên thứ 3 đáng tin cậy (Trusted-party) là một thành viên bên ngoài, hoạt động hoàn toàn độc lập, tính toán và đưa ra kết quả, sau khi đưa ra kết quả thành viên đáng tin cậy này xoá tất cả những gì đã biết
Cách thực hiện như trong hình 1.2, tất cả các thành viên gửi dữ liệu cục
bộ hoặc các mô hình khai thác cục bộ cho Trusted-part, Trusted-party tính
Trang 22Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
toán và gửi kết quả khai thác về cho các thành viên Hướng tiếp cận này an toàn tuyệt đối nhưng Trusted-party thì không thực tế [7][8]
Trang 23Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.2 Giao thức sử dụng Trusted-party
1.4.3 Tính toán đa thành viên bảo mật
Tính toán đa thành viên bảo mật (Secure Multi-party Computation – SMC) là một tính toán giữa hai hay nhiều thành viên dựa vào các yếu tố đầu vào, tiến hành tính toán mà không để lộ bất kỳ thông tin gì ngoại trừ kết quả
và các yếu tố đầu vào của mỗi thành viên Ý tưởng của SMC tương tự như giao thức với thành viên thứ ba đáng tin cậy, mỗi thành viên tham gia gửi yếu
tố đầu vào tới thành viên thứ ba đáng tin cậy này và chỉ nhận lại kết quả tính toán SMC giả lập thành viên thứ ba đáng tin cậy này dựa vào một giao thức giữa các thành viên [7] như trong hình 1.3
Trang 24Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.3 Mô hình tính toán SMC
Đã có nhiều giao thức SMC được đề xuất như: tính tổng an toàn, phép giao an toàn, phép hợp an toàn, tích vô hướng an toàn Ta có thể kết hợp các giao thức con để tạo ra các giao thức an toàn mới, nếu thuật toán/giao thức phụ thuộc vào một số giao thức con, việc thực hiện các giao thức con hiệu quả
sẽ cải thiện đáng kể hiệu quả tổng thể
Đã có nhiều giao thức SMC được áp dụng để bảo đảm tính riêng tư trong KTDL trên dữ liệu phân tán ngang[5][6] với mỗi thuật toán KTDL sẽ
có các giao thức SMC tương ứng và tuỳ theo cách thực hiện ta sẽ áp dụng các giao thức SMC nào cho phù hợp
Dù cách tính toán là an toàn, một số thông tin đầu vào vẫn có thể bị tiết
lộ do kết quả của hàm tính toán, ví dụ, nếu một thành viên có tổng tài sản là 100.000$ và thành viên kia giàu hơn thì thành viên này sẽ có tổng tài sản thấp hơn [5]
Thách thức là phát triển các giao thức bảo đảm tính riêng tư có chi phí tính toán và truyền thông hợp lý trong các vấn đề thực tế và chứng minh tính bảo mật (xem chi tiết trong [5]) Giao thức cần phù hợp với loại dữ liệu, kiểu phân tán dữ liệu, nhiệm vụ khai thác và yêu cầu về tính riêng tư [5]
Trang 25Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trang 26Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Tính hiệu dụng dữ liệu: Độ chính xác và hữu ích của thông tin khai
thác được từ CSDL sau khi áp dụng kỹ thuật bảo đảm tính riêng tư
- Mức độ đảm bảo tính riêng tư: Xác suất để đoán ra thông tin ẩn
- Khả năng chống lại sự thông đồng: Số lượng các thành viên phải
thông đồng với nhau để có khả năng làm lộ các thông tin của các thành viên còn lại
Kết luận chương 1
Chương này chúng ta đã đi tìm hiểu các khái niệm cơ bản về khai phá
dữ liệu, khai phá luật kết hợp, các tham số và thành phần của luật kết hợp như
độ tin cậy, độ hỗ trợ, tập ứng viên, giao dịch cũng như các khái niệm và phương pháp cơ bản để khai phá luật kết hợp trên cơ sở dữ liệu phân tán và tập chung
Để đảm bảo tính riêng tư trong việc khai thác luật kết hợp người ta sử dụng nhiều phương pháp khác nhau tùy trường hợp áp dụng như với dữ liệu tập trung ta sử dụng phương pháp biến đổi dữ liệu, với dữ liệu phân tán ta sử dụng các mô hình tính toán đa thành viên và sử dụng bên thứ 3 tin cậy Trong các kỹ thuật này thì kỹ thuật sử dụng bên thứ 3 tin cậy đảm bảo độ an toàn tuyệt đối nhưng không thực tế do chi phí quá tốn kém, cần đảm bảo kênh được an toàn tuyệt đối do đó trên thực tế người ta vẫn thường sử dụng mô hình có chi phí vừa phải hơn là tính toán đa thành viên bảo mật (SMC)
Để đánh giá các phương pháp ta sử dụng các tiêu chí về: hiệu năng, tính hiệu dụng dữ liệu, mức độ đảm bảo tính riêng tư và khả năng chống lại
Trang 27Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
thông đồng, trong đó 2 tiêu chí thường được sử dụng nhất là hiệu năng và mức độ đảm bảo chống thông đồng
Chương 2
MỘT SỐ PHƯƠNG PHÁP TÌM LUẬT KẾT HỢP
2.1 Bài toán tìm luật kết hợp
2.1.1 Phát biểu bài toán
Cho trước độ hỗ trợ tối thiểu s>0, độ tin cậy tối thiếu c>0 Hãy tìm
mọi luật kết hợp XY Để tìm luật kết hợp ta dựa vào khái niệm sau:
Định nghĩa 2.1 Tập phổ biến (Frequent pattern): là tập xuất hiện phổ biến trong 1 CSDL, tức là có tần suất xuất hiện trong CSDL lớn hơn một ngưỡng nào đó cho trước
Tần suất xuất hiện của tập phổ biến gọi là độ phổ biến (supp) của tập các
hạng mục X trong CSDL D hay là tỷ lệ giữa số các giao dịch chứa X trên tổng
Giả sử min_support = 50%, min_conf = 50%:
Transaction-id Items bought
Trang 28Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Luật A → C:
support = support({A} {C}) = 50%
confidence = support({A} {C})/support({A}) = 66.6%
Nhận xét 2.1 Mọi tập con của tập phổ biến cũng là tập phổ biến
Ví dụ{A,C} là tập phổ biến nên{A},{C} cũng là tập phổ biến
Việc tìm kiếm luật kết hợp thực chất là tìm kiếm mọi tập phổ biến sau
đó sinh ra luật từ các tập phổ biến Sau đây ta tìm hiểu một số thuật toán khai phá luật kết hợp Dựa vào nhận xét 2.1 ta đi đến thuật toán Apriori
2.2 Thuật toán Apriori
A C (50%, 66.7%)
C A (50%, 100%)
Trang 29Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.2.1 Nguyên lí Apriori
Với mọi tập mục không phổ biến thì mọi tập chứa nó không là tập phổ biến Dựa trên nguyên lí này, người ta thiết kế thuật toán Apriori như sau
Phương pháp
Sinh các tập mục ứng viên dài (k+1) từ các tập mục phổ biến có
độ dài k (Độ dài tập mục là số phần tử của nó),
Kiểm tra các tập ứng viên theo CSDL để loại bỏ các tập không
phổ biến (có độ hỗ trợ < min_support) 2.2.2 Thuật toán Apriori
Từ các nhận xét và tính chất trên ta đi đến xây dựng thuật toán Apriori như sau:
Đầu tiên thực hiện duyệt CSDL để tìm các mục riêng biệt trong CSDL và
độ hỗ trợ tương ứng của nó Tập thu được là C1 Duyệt tập C1 loại bỏ các mục có
độ hỗ trợ < min_support, các tập mục còn lại của C1 là các tập 1-Itemset (L1) phổ biến Sau đó kết nối L1 với L1 để được tập các tập 2-Itemset C2 Duyệt CSDL xác định độ hỗ trợ của các tập mục trong C2 Duyệt C2 Loại bỏ các tập mục có độ hỗ trợ < min_support, các tập mục còn lại của C2 là tập các tập 2-Itemset (L2) phổ biến L2 lại được sử dụng để sinh ra L3 và cứ tiếp tục như vậy cho đến khi tìm được tập mục k-Itemset Lk mà Lk = (tức là không có tập mục phổ biến nào được tìm thấy) thì dừng lại
Tập các tập mục phổ biến của CSDL là: k
i-1= L1
Để tăng hiệu quả của thuật toán trong quá trình sinh các tập mục ứng viên, ta sử dụng tính chất của tập mục phổ biến để làm giảm số lượng tập các tập ứng viên, không phải là tập phổ biến được sinh ra
Trang 30Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Tính chất đó là: tập các tập con khác rỗng của tập mục phổ biến đều là tập mục phổ biến
1 Duyệt (Scan) toàn bộ CSDL giao dịch để có được support S của itemset, so sánh S với min_support, để có được 1-itemset (L1)
1-2 Sử dụng Lk-1 nối (join) Lk-1 để sinh ra tập ứng viên k-itemset Loại bỏ các itemsets không phải là tập phổ biến thu được k-itemset
3 Duyệt (Scan) toàn bộ CSDL giao dịch để có được support của mỗi tập ứng viên k-itemset, so sánh S với min_support để thu được tập phổ biến k –itemset (Lk)
4 Lặp lại từ bước 2 cho đến khi các tập ứng viên (C) trống (không tìm thấy tập phổ biến)
5 Với mỗi tập phổ biến I, sinh tất cả các tập con s không rỗng của I
6 Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin
cậy (Confidence) của nó > =min_conf
* Giả mã thuật toán Apriori
Thuật toán Apriori [WKQ08]
Input: - Cơ sở dữ liệu giao dịch D ={t│t giao dịch}
- Độ hỗ trợ tối thiểu minsup >0 Output: - Tập hợp tất cả các tập phổ biến
Trang 31Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nhận xét:
Trong mỗi bước k, thuật toán Apriori đều phải duyệt CSDL D
Khởi động, duyệt D để có được F1
Các bước k sau đó, duyệt D để tính số lượng giao dịch t thoả từng ứng viên c của Ck+1: mỗi giao dịch t chỉ xem xét một lần cho mọi ứng viên c thuộc
Ck+1 Mỗi bước k thực hiện 2 thủ tục sau:
Bước nối: Sinh các tập mục Rk-1 là ứng viên tập phổ biến có độ dài k+1 bằng cách kết hợp hai tập phổ biến Pk và Qk có độ dài k và trùng nhau ở k-1 mục đầu tiên
Rk-1 = Pk Qk ={i1,i2, ,ik-1,ik,ik’} với
Pk = {i1,i2, ,ik-1,ik} và Qk = {i1,i2, ,ik-1,ik’}
Trong đó i1 ≤ i2 ≤ ≤ ik-1≤ ik≤ ik’
Bước tỉa: Giữ lại tất cả các Rk+1 thỏa tính chất Apriori ( X Rk+1 và │X│=k
=> X Fk), nghĩa là đã loại (tỉa) bớt đi mọi ứng viên Rk+1 không đáp ứng tính chất này
Giả mã
(1) for mọi tập mục phổ biến I1 Lk
(2) for mọi tập mục phổ biến I2 Lk
(3) if (I1[1] = I2[1]) ^ (I1[2] = I2[2]) ^ ^ I1[k-1] = I2[k-1]^I1[k]<I2[k]
then {
c=I1 <=> I2; //join step:generate candidates
Trang 32Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Giảm số lần duyệt CSDL giao dịch Rút gọn số lượng các ứng viên Giảm nhẹ tính độ hỗ trợ của các ứng viên
2.3 Thuật toán khai phá luật kết hợp phân tán
2.3.1 Thuật toán khai phá luật kết hợp phân tán nhanh(FDM)
Thuật toán được trình bày chi tiết trong [5]
Cho cơ sở dữ liệu DB chứa D giao dịch, giả sử có một hệ thống phân tán gồm n điểm S1, S2,…,Sn và DB được phân mảnh vào n điểm đó {DB1,DB2,…,DBn}, mỗi DBi có Di giao dịch Cho một ngưỡng hỗ trợ tối thiểu s, nhiệm vụ của thuật toán là tìm tất cả tập phổ biến toàn cục L, trong đó
Lk là tập phổ biến toàn cục k phần tử
Trong thuật toán có sử dụng các kỹ thuật: Tạo tập ứng viên, cắt tỉa cục
bộ các tập ứng viên, cắt tỉa toàn cục các tập ứng viên
Procedura has_infrequent_subset(c:tập ứng viên độ dài k+1; Lk: tập các mục phổ biến độ dài k); // tri thức đã có
(1) for mỗi tập con s độ dài k của c
(2) if s Lk then
(3) Return TRUE
(4) return FALSE
Trang 33Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trang 34Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CAk: tập ứng viên k phần tử
CGi(k): tập ứng viên k phần tử được tạo ra từ GLi(k-1) tại Si
CGk: tập ứng viên k phần tử
Với CGk nhỏ hơn CAk, việc sử dụng kỹ thuật này sẽ làm giảm số lượng tập ứng viên
Cắt tỉa cục bộ các tập ứng viên: Với mỗi X CGi(k), quét cơ sở dữ liệu
DBi để tính độ hỗ trợ cục bộ Nếu X không là phổ biến cục bộ thì X sẽ bị loại trừ khỏi tập ứng viên LLi(k), LLi(k) là tập phổ biến cục bộ k phần tử trong
CGi(k) Chú ý là việc cắt tỉa này chỉ loại X ra khỏi tập ứng viên tại Si, X vẫn có thể là tập ứng viên tại các điểm khác
Cắt tỉa toàn cục các tập ứng viên:
Giả sử X là một tập ứng viên k phần tử tại vòng thứ k Với độ hỗ trợ cục bộ của mọi tập con (k-1) phần tử của X là có sẵn tại mọi điểm Tại DBi(1 i n), ta ký hiệu maxsupi(X) là giá trị hỗ trợ cục bộ nhỏ nhất của mọi tập con (k-1) phần tử của X, hay maxsupi(X)=min{Y.supi | Y X và |Y|=k-1}
Trang 35Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ta thấy rằng maxsupi(X) là cận trên của độ hỗ trợ cục bộ của X.supi và tổng những giá trị cận trên ở mọi điểm ký hiệu maxsup(X) là cận trên của độ hỗ trợ toàn cục X.supp
X.sup < maxsup(X) = n i 1 maxsupi(X)
Chú ý là maxsup(X) có thể được tính ở mọi điểm tại thời điểm đầu của vòng thứ k Giá trị maxsup(X) được sử dụng cho việc cắt tỉa, nếu maxsup(X)
< min_support thì X không là một tập ứng viên Kỹ thuật này được gọi là cắt tỉa toàn cục
2.3.2 Thuật toán khai phá phân tán luật kết hợp (DMAR)
Thuật toán được trình bày chi tiết trong [7]
Thuật toán DMAR cho việc khai phá luật kết hợp phân tán sử dụng kỹ thuật meta-learning Đó là khai phá các tập phổ biến cục bộ mà chúng được
sử dụng như là siêu tri thức tại mọi điểm trong hệ thống phân tán và tạo ra các tập ứng viên phổ biến toàn cục từ những siêu tri thức này, sau đó quét cơ sở
dữ liệu giao dịch một lần để thu được các tập phổ biến toàn cục Thuật toán này có hiệu năng khai phá cao hơn và yêu cầu số lượng các giao tiếp thông điệp ít hơn
Kỹ thuật phân tán cho khai phá luật kết hợp sử dụng learning:
meta-Meta-learning là để thu được kết quả cuối cùng thông qua việc học phổ biến Tập các tập phổ biến cục bộ L(i) (i=1, ,n) tại mọi điểm có thể được nhìn nhận như là kết quả của quá trình học đầu tiên sử dụng kỹ thuật meta-learning Có thể tạo các tập ứng viên phổ biến toàn cục C bằng cách sử dụng L(i) và thu được các tập phổ biến toàn cục L bằng cách sử dụng C Đó là, tạo các tập phổ biến cục bộ L(i) trong cơ sở dữ liệu giao dịch tại mọi điểm và tính
Trang 36Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
toán các tập ứng viên phổ biến toàn cục C = L(1) L(2) … L(n), quét DBi(i=1, ,n) một lần và thu được độ hỗ trợ của bất kỳ tập mục C-L(i) trong DBi Thêm độ hỗ trợ của mọi tập mục trong C tại mọi điểm, thu được tập các tập mục phổ biến toàn cục:
L={A | sup(A) |DB|*minsup, A C}
Bước hai là quét cơ sở dữ liệu tại mọi điểm, tính toán giá trị hỗ trợ của các tập không phổ biến tại mọi điểm trong tập các tập ứng viên phổ biến toàn cục Cuối cùng là tính giá trị hỗ trợ của các tập ứng viên phổ biến toàn cục tại mọi điểm, và tạo các tập phổ biến toàn cục
Thuật toán khai phá phân tán sử dụng một bảng để tập hợp các tập phổ biến cục bộ tại mỗi điểm và tạo các tập ứng viên toàn cục tại mọi điểm
Trang 37Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong đó:
- Si: là độ hỗ trợ của tập mục phổ biến cục bộ trong DBi, i=1,2, ,n
- S=
n i i
S
1
là độ hỗ trợ của tập mục trong DB
- σ=S/|DB| là độ hỗ trợ của các tập ứng viên phổ biến toàn cục, nếu
σ minsup thì tập mục là phổ biến toàn cục
Algorithm: DMAR
Input: DB phân tán {DB1,DB2, ,DBn}, minsup
Output: Tập các tập phổ biến toàn cục L trong DB
(1) For all sites do /* khai phá độc lập tại mỗi điểm*/
{
(2) L(i)=Local-Mining(DBi, minsup) ; /* tạo tập phổ biến cục bộ L(i) */
(3) receive(i,L(i)); /*tập hợp các tập phổ biến cục bộ tại mỗi điểm */ (4) Làm đầy mọi tập mục trong L(i) và độ hỗ trợ tương ứng vào bảng các tập mục phổ biến;
}
(5) For i=l to m do {
(6) Tạo tập các tập ứng viên phổ biến C của mọi điểm từ bảng các tập mục phổ biến nơi mà C(i)={M | Si=0, Si tương đương với tập mục M trong bảng}; /*C(i)=C-L(i)*/
(7) send(i,C(i)); /* Truyền tập các tập mục ứng viên phổ biến toàn cục tới
điểm thứ i (tri thức meta) */
}
Trang 38Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
(8) For all sites do (
(9) Quét DBi một lần và tạo ra độ hỗ trợ của mọi tập trong C(i)
(10) receive(i,C(i)); /*tập hợp độ hỗ trợ của các tập ứng viên phổ biến toàn cục tại mọi điểm */
(11) Làm đầy độ hỗ trợ của các tập mục trong C(i) vào trong cột Si trong
độ hỗ trợ của các tập phổ biến cục bộ Nếu các tập phổ biến cục bộ tại điểm
đó là phần tử thêm mới vào bảng, thì cần phải sử dụng các tập mục mới này
Trang 39Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
để quét tại mọi điểm một lần, sau đó sẽ thu được độ hỗ trợ của các tập mục, tính lại S và σ, sau đó sẽ thu được tập phổ biến toàn cục
Truyền thông: để khai phá được tập các tập mục phổ biến toàn cục k phần tử trong mỗi vòng lặp, thuật toán FDM cần phải trao đổi độ hỗ trợ của tập các tập ứng viên phổ biến k phần tử và các tập cục bộ, và kết quả là có một số lượng lớn truyền thông và giao thức truyền thông phức tạp Trong khi
đó DMAR truyền và đăng ký tập các tập mục phổ biến cục bộ tại bước (3), với một lần truyền thông tại bước (7) và (10) Vì vậy, thuật toán DMAR có tần suất ít hơn (3 lần) và số lượng truyền thông nhỏ hơn (tập các tập phổ biến cục bộ và các tập không phổ biến trong các tập ứng viên phổ biến toàn cục tại mọi điểm và độ hỗ trợ của chúng)
Khai phá hiệu quả: Với thuật toán FDM, mọi điểm phải được đồng bộ trong quá trình đợi việc tập hợp các độ hỗ trợ của các tập phổ biến tại các điểm tại thời điểm kết thúc mỗi vòng lặp Trong khi đó với DMAR, quá trình khai phá tại mọi điểm là độc lập và đôi khi có thể off-line với một số lượng nhỏ truyền thông Vì vậy, tính hiệu quả trong khai phá của thuật toán DMAR
là cao hơn so với của thuật toán FDM
Kết luận chương 2
Trong chương này chúng ta đã đi tìm hiểu về phương pháp khai phá luật kết hợp Thực chất của quá trình khai phá luật kết hợp chính là việc tìm kiếm các tập phổ biến, tức là các tập có độ hỗ trợ lớn hơn một ngưỡng cho trước nào đó Có khá nhiều phương pháp tìm kiếm luật kết hợp như FP-tree, AIS, , nhưng trong chương này ta chỉ xem xét một trong các phương pháp nổi tiếng và tương đối đơn giản thông qua sử dụng phương pháp sinh tập ứng viên đó là phương pháp Apriori – được phát triển từ những năm 1995 Thuật