ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINBÀI THU HOẠCHMÔN HỌC : KHAI PHÁ DỮ LIỆU ĐỀ TÀI TÌM HIỂU VỀ KHAI PHÁ ĐỒ THỊ GRAPH MINING MỤC LỤC Trang Chương I:
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCHMÔN HỌC :
KHAI PHÁ DỮ LIỆU
ĐỀ TÀI
TÌM HIỂU VỀ
KHAI PHÁ ĐỒ THỊ GRAPH MINING
MỤC LỤC
Trang
Chương I: Giới thiệu về khai phá dữ liệu từ đồ thị - Graph mining 4
1) Các khái niệm & định nghĩa
2) Khai thác dữ liệu đồ thị - đồ thị phổ biến mẫu
3) Một số thuật toán trong khai thác đồ thị
468
1) Thuật toán Apriori
2) Thuật toán tăng trưởng mẫu – Pattern growth
910
Học viên thực hiện:
Lê Ngọc Hiếu MSHV: CH1101012 Lớp : CH K6 - UIT
GVHD:PGS.TS Đỗ Phúc
Trang 23) Đặc điểm của các thuật toán khai thác đồ thị 14
1) Phân lớp dựa trên cấu trúc
2) Phân lớp dựa trên mẫu (pattern)
3) Phân lớp dựa vào cây quyết định
4) Phân lớp dựa trên nhân (Kernel) của đồ thị
20202123
Chương V: Ứng dụng khai thác đồ thị quản lý độ tin cây trên mạng internet 25
1) Một số ký hiệu
2) Số liệu liên quan
3) Cấu trúc cluster (cụm) toàn cầu
4) Cấu trúc cluster (cụm) cục bộ
5) Topology
25253035
LỜI MỞ ĐẦU
Khai thác dữ liệu đồ thị là mảng đề tài không cũ, nhưng khá mới mẻ ở Việt Nam.
Thông qua là bài thu hoạch cuối kỳ của môn học Khai phá dữ liệu & kho Dữ liệu, giúp
em hiểu hơn về các ứng dụng của khai phá dữ liệu đồ thị, mục tiêu, mục đích & kết quả của ứng dụng khai phá dữ liệu đồ thị trong cuộc sống, là cơ sở vững chắc cho việc nghiên cứu & phát triển về sau trong quá trình học tập tại trường.
Để hòan thành bài thu hoạch này, em xin chân thành cảm ơn thầy PGS.TS Đỗ Phúc, người
đã truyền cảm hứng cho em, thầy là người chỉ dẫn tận tình, cung cấp thông tin, tư liệu cũng như những bài giảng có giá trị để sản phẩm này hoàn thành ở mức bước đầu nghiên cứu.
Đây là đề tài không mới nhưng không cũ, nhưng với thời lượng cũng như việc đầu tư nghiên cứu chưa tương ứng, nên đây chỉ mang tính chất một bài tiểu luận môn học, chỉ tìm hiểu ở mức độ khái quát vấn đề, phân tích và chưa đi sâu mổ xẻ các vấn đề một cách triệt để tương xứng với một bài nghiên cứu khoa học
Em rất mong sự thông cảm & chia sẻ của thầy.
Thành phố Hồ Chí Minh, Tháng 11 Năm 2012.CHƯƠNG I: GIỚI THIỆU VỀ KHAI PHÁ
DỮ LIỆU ĐỒ THỊ - GRAPH MINING
I.1) CÁC KHÁI NIỆM & ĐỊNH NGHĨA
Trang 31 Tại sao phải khai phá dữ liệu đồ thị?
- Đồ thị dể dàng tìm thấy ở khắp mọi nơi trong cuộc sống hàng ngày của chúng ta như:
a Hệ thống mạng internet (Co-expression Network)
b Mạng xã hội (Social network)
c Quy trình của một chương trình (Program flow)
d Các hợp chất hóa học ( Chemical compound)
e Cấu trúc của Protein (Protein structure)
- Một dữ liệu lớn ngày nay trên các hệ thống mạng đều có thể biểu diễn dưới dạng các đồ thị & mốiquan hệ của chúng theo:
a Liên kết, kết nối vật lý
b Kết nối giữa các mạng trong lớp mạng
c Mối quan hệ trong mạng xã hội
d Siêu lien kết giữa các trang web
e Các tương tác phức tạp giữa các thực thể…
- Những đồ thị trên chứa đựng những thong tin giá trị cho việc ứng dụng vào hệ thống mạng như
a Những phát hiện từ cộng đồng, những điểm chung
b Phân lớp
c Những hệ thống được đưa ra theo ưu tiên nào đó
d Tìm kiếm trên mạng
e P2P (điểm tới điểm) tìm kiếm & lấy dữ liệu
f Tin cậy & uy tín…
- Để đưa những dữ liệu trên vào dưới dạng đồ thị, ta cần phải:
a Định nghĩa các ma trận mà mô tả cấu trúc tổng thể của đồ thị
b Tìm các cấu trúc có tính đặc trưng cộng đồng của mạng lưới
c Định nghĩa các ma trận mà nó mô tả các mẫu đặc trưng của các giao tiếp bên trong đồ thịđó
d Phát triển & ứng dụng những thuật toán hiệu quả nhất để khai thác dữ liệu trong hệ thốngmạng đó
e Hiểu rõ mô hình của việc lấy ra (thừa hưởng) từ các đồ thị đó
- Nhìn chung, đồ thị có tính bao quát hơn từng đối tượng, tuần tự, cây, mạng nói chung Đồ thị giảiquyết được nhiều vấn đề có độ tính toán phức tạp cao
2 Một số ký hiệu & thuật ngữ:
- Một đồ thị có thể được xem là 1 tập của 5 phần từ (V,E,F,Lv,Le)
- D ={G1,G2,…Gn} là tập dữ liệu của những giao dịch
- Những giao dịch trong tập D là đồ thị gián tiếp được đánh dấu
- Độ hỗ trợ (support) của một đồ thị G được định nghĩa như là số phần tram đồ thị trong tập D có đồ thị con là G
- Một đồ thị được gọi là phổ biến (frequent) nếu nó có độ hỗ trợ lớn hơn một ngưỡng cho trước (ngưỡng này thường được cho trước)
Ví dụ: Đồ thị con phổ biến:
3 Tổng quan về khai thác dữ liệu đồ thị - Graph Mining:
Trang 4I.2) Khai thác dữ liệu đồ thị: đồ thị phổ biến
1 Khai thác đồ thị phổ biến – Graph Pattern Mining:
- Giới thiệu: Trên là các tập đồ thị
2 Đồ thị mẫu – Graph Pattern:
Trang 5o Mức ý nghĩa.
3 Đồ thị mẫu phổ biến – Frequent Graph Pattern
• Cho một tập dữ liệu đồ thị D, tìm đồ thị con g sao cho :
–
– Trong đó freq(g) là phần tram của các đồ thị trong D chứa g
• Ví dụ 1 về đồ thị con phổ biến
- Hợp chất hóa học:
(a)Cafeine (ca phê in) (b)diurobromine (c) Viagra
- Đồ thị con phổ biến trong các hợp chất trên là:
- ss
• Ví dụ 2 về đồ thị con phổ biến
- Các đồ thị biểu hiện mối quan hệ gọi hàm của một chương trình
- Ta có đồ thị con phổ biến sau: với độ hỗ trợ là 2
I.3) MỘ SỐ THUẬT TOÁN TRONG KHAI THÁC ĐỒ THỊ
Trang 6- Lập trình logic qui nạp (Inductive Logic Programming) : là phần giao giữa kỹ thuật lập trình logic và học tập quy nạp, sử dụng kỹ thuật máy học & lập trình logic, áp dụng vào khai thác dữ liệu đồ thị.
- Các thuật toán dựa trên tính chất của đồ thị:
+ Cách tiếp cận dựa vào thuật toán Apriori: tìm ra tập phổ biến nhất
_ AGM/AcGM: tác giả Inokuchi, (năm 2000)_ FSG: tác giả Kuramochi & Karypis (ICDM năm 2001)_ PATH :tác giảVanetik và Gudes ( ICDM 2002, 2004)_ FFSM: tác giảHuan (ICDM 2003) và SPIN: tác giảHuan (KDD 2004)_ FTOSM:tác giả Horvath (KDD 2006)
+ Cách tiếp cận dựa vào độ lớn của mẫu (đồ thị mẫu)
_ Subdue: tác giảHolder (KDD 1994)_ MoFa:tác giả Borgelt và Berthold (ICDM 2002)_ gSpan:tác giả Yan and Han (ICDM 2002)_ Gaston:tác giả Nijssen và Kok (KDD 2004)_ CMTreeMiner:tác giả Chi (TKDE 205), LEAP:tác giả Yan (SIGNMOD 2008)
CHƯƠNG II: CÁC THUẬT TOÁN VỀ KHAI THÁC ĐỒ THỊ
II.1) THUẬT TOÁN APRIORI
- Nếu một đồ thị là phổ biến, thì tất cả các đồ thị con của nó cũng là phổ biến.
2 Các đặc trưng của thuật toán Apriori
- Thuật toán này có 2 bước chính:
o Bước gia nhập (Join): tạo ra tập các ứng viên đồ thị con
o Bước loại bỏ (Prune): kiểm tra tính phổ biến của từng ứng viên đồ thị con
Trang 7- Hầu hết tập trung ở bước đầu, cố gắng tối ưu hóa ở bước đầu tiên, từ đó bước 2 sẽ tìm được đồ thịcon đẳng cấu.
- Các biến sư dụng biểu diễn kích thức của đồ thị con: Đỉnh (Vertices), Cạnh (Edges), Trọng số cạnh(path-number)…
- Trình tự chạy của thuật toán:
- thuật toán AGM (tác giả Inokuchi): Độ lớn của đồ thị là số đỉnh (#vertices)
- thuật toán FSG (tác giả Karypis): Độ lớn của đồ thị là số cạnh (#edges)
o Dựa vào số cạnh mà sinh ra các ứng viên: tăng kích thước đồ thị con lên 1 sau 1 lần lặp
o Bước tham gia (Join) hai đồ thị con cùng kích thước k được nhập vào khi và chỉ khi chúng cóchung lõi kích thước k-1
- thuật toán PATH (tác giả Venetik): Độ lớn của đồ thị là số [path number] (là số cạnh tối thiểu phânchia đường dẫn vào đồ thị có thể được phân tách)
- Tuy nhiên, ở bước gia nhập (Join) sinh ra các ứng viên khá phức tạp & chi phí cao, tiêu hao nhiều
bộ nhớ ( nếu sử dụng BFS); Đồng thời ở bước loại bỏ cũng nhiều khuyết điểm, không hiệu quả khithực hiện kiểm tra tính đẳng cấu của đồ thị con Từ đó người ta đưa ra thuật toán dựa trên tiếp cận
tăng trưởng mẫu (Pattern-Growth)
3 Phân tích thuật toán:
- Chi phí của thuật toán:
Lõi
Trang 8II.2) THUẬT TOÁN TĂNG TRƯỞNG MẪU (PATTERN GROWTH)
1) Ý tưởng cơ bản:
- Để tránh sự phức tạp trong bước gia nhập (Join) ở thuật toán Apriori
- Kéo dài & mở rộng trực tiếp các mẫu bằng cách thêm vào cạnh mới e và ứng viên mới được sinh ra
g+ x e:
o Nếu e là một cạnh hướng ra, nối với đỉnh x mới thì có giá trị f
o ngược lại sẽ có giá trị là b, có nghĩa là cạnh lui lại
- Đệ quy kéo dài & mở rộng mẫu phổ biến g cho đến khi đồ thị phổ biến chứa g không còn được tìmthấy ( tức là duy nhất)
3) Nhược điểm: ở bước mở rộng là bước kém hiệu quả vì:
- Với những đồ thị giống nhau sẽ được chạy nhiều lần:
Trang 9o (Hoặc là) Mỏ ra một đỉnh và nối tới bất kỳ đỉnh nào để tạo ra đường đi chủ yếu.
o Vấn đề: Có nhiều cây DFS tồn tại cho đồ thị và sẽ dẫn đến việc trùng lắp
o Giải pháp: chọn một trong số đồ thị trùng lắp đó làm chính, và mở rộng theo hướng chủ đạo( theo đường đi chủ yếu)
- Cây từ điển tìm kiếm DFS: (DFS Lexicographic search tree)
5) Vấn đề mở rộng đồ thị mẫu – Khai thác đồ thị phổ biến gần nhất
- Thuật toán Apriori nói rằng: nếu một đồ thị là phổ biến thì tất cả đồ thị con cũng là phổ biến
- Một đồ thị n- Cạnh là phổ biến sẽ có 2n đồ thị con phổ biến
- Ví dụ: Trong số 423 hợp chất hóa học được xác nhận là hoạt tính đối với AIDS trong tập dữ liệu, thì
có 1 triệu đồ thị mẫu phổ biến mà độ hỗ trợ của nó ít nhất là 5%
- Từ đó ta đưa ra việc khai thác đồ thị con phổ biến gần nhất
- Đồ thị phổ biến gần nhất:
Đườngđichủyếu
Nhánhbêntráiluônnhỏhơnnhánhbênphải
Trang 10o MỘt đồ thị phổ biến G là gần nhất nếu không tồn tại siêu đồ thị của G mà có độ hỗ trợgiống G.
o MỘt tập các đồ thị con phổ biến gần nhất có sức mạnh giống nhau giống như tổng số củatất cả các tập con phổ biến
o Torng dữ liệu chống lại virus AIDS có 1 triệu tập con phổ biến, nhưng chỉ có 2000 tập là gầnnhất
- Ưu điểm của đồ thị phổ biến gần nhất:
o Một số tập đồ thị phổ biến gần nhất ở xa sẽ ít hơn tổng số đồ thị phổ biến
o Ta có thể thay thế các đồ thị phổ biến bằng tính năng tương ứng trong các ứng dụng
- Đồ thị gần (Close graph)
o Hiệu quả cho thuật toán tăng trưởng mẫu để khai thác tập CFG
o Mở rộng tập mẫu đơn giản hơn với thuật toán gSpan
- Giải quyết các vụ án khó:
6) Thuật toán SUBDUE:
- Bắt đầu với một đỉnh đơn
- Mở rộng cấu trúc con tốt nhất với một cạnh mới
- Giới hạn số cấu trúc con tốt nhất
o Cấu trúc con được đánh giá dựa trên khả năng của nó có thể nén tải đầu vào của đồ thị( graph inputs)
o Sử dụng chiều dài ngắn nhất để mô tả (DL)
o Cấu trúc con tốt nhất S trong đồ thị G tối thiểu hóa: DL(S) + DL(G\S);
- Ngừng khi nào không có cấu trúc con nào được tìm thấy
Trang 11o Học ngữ pháp đồ thị ( Graph grammar learning)
7) Khai thác mẫu đồ thị tối đại (Maximal Graph Pattern Mining)
- Lớp tương đương dựa trên cây
o Cây được sắp xếp theo một thứ tự nhất định
o Đồ thị sẽ nằm trong cùng lớp tương đương nếu chúng có chung thứ tự cây
- Địa phương tối đại ( vùng tối đại – locally maximal)
o Một đồ thị con g là tối đại địa phương nếu nó là tối đại trong lớp tương tương của nó Ví dụnhư g không có đồ thị lớn hơn phổ biến, cùng sử dụng chung thứ tự cây giống như g
o Mọi đồ thị mẫu tối đại phải là tối đại địa phương
o Loại bỏ các đồ thị con không phải là tối đại địa phương
II.3) ĐẶC ĐIỂM CỦA THUẬT TOÁN KHAI THÁC ĐỒ THỊ
Trang 122) Các thế hệ thuật toán khai thác đồ thị
3) Thứ tự khám phá mẫu ( Order)
- Mở rộng tự do:
- Mở rộng theo hướng chính ( hướng chủ yếu):
Trang 134) Khai thác đồ thị con chặt chẽ (Coherent Subgraph)
- Thơng tin giữa một đồ thị G và đồ thị con G’ của nĩ được cho bởi cthức:
- P(XG,X G’ ) là phân phối chung
- P(XG=1) = support(G)
- Giống như thuật tốn gSpan nhưng loại bỏ các tập ứng viên sẽ hồn tất dựa trên thơng tin chunglẫn nhau
5) Khai thác đồ thị con dày đặc (Dense Subgraph)
- Đồ thị quan hệ: Tất cả các node cĩ duy nhất 1 nhãn vd như mơ hình mạng xã hội, mạng sinh học
- Vấn đề là khai thác sự dày đặc hay phổ biến cao nhất với các đồ thị con từ các đồ thị quan hệ
o Khai thác dữ liệu từ mạng lưới xã hội
o Tập các gene cĩ cùng chức năng thường được sắp xếp theo một trật tự sinh học nhất định
- Giống như đang khai thác giá trị trung bình của một đỉnh nào đĩ
- Tập các cạnh khi loại bỏ đi làm cho đồ thị khơng lien thong, gọi là cạnh cắt
- Cắt ít nhất là số cạnh loại bỏ đi ít nhất
- MỘt tập được gọi là dày đặc khi kích thức của tập cắt khơng nhỏ hơn một ngưỡng cho trước
- Bước phân rã: (Decompose)
o Phân rã các đồ thị quan hệ để tìm đồ thị con tối đại thỏa các kết nối khắt khe nhất
- Bước giao lại: (intersection)
o Giao các đồ thị đã phân rã để lấy ra đồ thị lien thong đầy đủ ( tăng dần)
o Sau khi giao lại thành đồ thị mới mà khơng thỏa các kết nối khắt khe nhất thỉ tiếp tục phân
rã nĩ để lấy ra ứng viên cĩ kích thước nhỏ nhất
6) Tìm kiếm đồ thị - Graph index
- Vấn đề: Cho cơ sở dữ liệu đồ thị và đồ thị truy vấn (query graph), chúng ta cần phải tìm ra tất cả
đồ thị nằm trong đồ thị truy vấn
- Giải pháp từ Nạve
o Tuần tự quét (đĩa I/O)
Cơsởdữliệu Đồthị
Trang 14o Kiểm tra đồ thị con đẳng cấu (NP-Complete)
- Vấn đề là: khả năng mở rộng là rất khó
- Số đồ thị là cấp số nhân của số cấu trúc con, xay dựng index ( thứ tự) cho các đồ thị con sẽ dẩnđến một lượng khổng lồ số thứ tự các thực thể
- Trực giác: nếu đồ thị G chứ đồ thị truy vấn Q, thì G nên chắc sẽ chứa bất kỳ cấu trúc nào của Q
o Bước 1: xây dựng thứ tự (index)
Liệt kê các cấu trúc khác nhau của đồ thị
Xây dựng số thứ tự ngược giữa đồ thị và cấu trúc
o Bước 2: Quá trình truy vấn
Liệt kê cấu trúc trong đồ thị truy vấn
Tính toán số đồ thị ứng viên chứa các cấu trúc trên
Loại bỏ trường hợp sai- dương tính bằng cách kiểm tra đồ thị đẳng cấu
- Tiếp cận dựa trên thứ tự có hướng chính (Path-based)
o Daylight ( Hệ thống thương mại)
o GraphGrep: tác giả Shaha
o Grace: tác giả Srinath Srinivasan
- Ý tưởng cơ bản của thứ tự đồ thị & tìm kiếm:
o Liệt kê tất cả các đường dẫn trong cơ sở dữ liệu, dẫn tới con đường dài nhất ( hoặc mộtngưỡng cho trước)
o Xây dựng số thứ tự đảo nghịch giữa đường & đồ thị
o Sử dụng số thứ tự để định danh( nhận dạng) các đồ thị ứng viên mà chứa tất cả các đườngdẫn, dẫn tới con đường dài nhất trong đồ thị truy vấn
- Ưu điểm:
o Đường dẫn dễ dàng hơn so với cây & đồ thị
o Làm việc với vùng có đường dẫn rõ ràng rất hiệu quả
- Hạn chế:
o Có thể dẫn tới trường hợp không có kết quả
o Không phù hợp khi truy vấn đồ thị phức tạp
- Sử dụng thuật toán gIndex:
o Ý tưởng:
Tìm cấu trúc phổ biến của cơ sở dữ liệu
Nhận diện một tập nhỏ các cấu trúc khác biệt
Xây dựng số thứ tự đảo ngươc giữa cấu trúc khác biệt & các đồ thị
o Trực giác:
Trang 15 Chúng ta có lẽ sẽ không lấy ra các cấu trúc dư thừa bởi số thứ tự
Chỉ đánh số thứ tự cho những cấu trúc có thong tin nhiều hơn so với cấu trúc tồn tại
o Cấu trúc khác biệt:
P ( x f1, f2, fn) , fi ⊂ x
Cho một tập các cấu trúc f1, f2, …,fn và một cấu trúc mới x, ta
đo lường khả năng dư thừ số thứ tự được cho bởi x:
Khi P nhỏ vửa đủ, x sẽ là cấu trúc khác biệt và có thể chứa số thứ tư
Thứ tự của các tập cấu trúc khác biệt sẽ là thứ tự của độ lớn ít hơn số thứ tự của tậpcấu trúc phổ biến
7) Tìm kiếm cấu trúc con tương tự:
- Động cơ:
o Tìm kiếm chính xác là quá khó đối với đồ thị, như cấu trúc phân tử, sinh học…
o Tìm kiếm tương tự ( tương đối) là rất cần thiết & quan trọng
- Tìm kiếm tương đối:
o Khó mà xây dựng thứ tự bao gồm các đồ thị con tương tự
o Ý tưởng cơ bản:
Xây dựng số thứ tự trước hết
Chọn lựa ra những tính năng trong không gian truy vấn thay vì đó là không gian cơ
sở dữ liệu
- Đo lường độ tương tự :
o Mỗi đồ thị được biểu thị bời một vector chức năng
o Sự tương tự sẽ được định nghĩa như khoảng cách giữa các vector
o Dễ dàng thứ tự hóa, nhanh
- Đơn giản hóa truy vấn
o Số cạnh có thể được bỏ qua, không phân biệt vị trí của chúng
CHƯƠNG III: PHÂN LỚP ĐỒ THỊ - GRAPH CLASSIFICATION
III.1) TIẾP CẬN DỰA TRÊN CẤU TRÚC (Structure)
- Ý tưởng cơ bản:
o Chuyển các đồ thi trong cơ sở dữ liệu sang một véctơ
o Khi x i là phổ biến của cấu trúc thứ I (hay mẫu thứ i) trong G Mỗi vector được đánh dấu bởimột lớp Phân lớp các vecto này trong không gian vector
- Tính năng cấu trúc:
o Cấu trúc địa phương trong một đồ thị, ví dụ như những cạnh xung quanh một điểm, đườngvới độ dài cố định
III.2) TIẾP CẬN DỰA TRÊN MẪU (PATTERN).
1) Phân lớp dựa vào đồ thị mẫu trong khai thác dữ liệu:
- Dựa vào thuật toán chuỗi mẫu (Sequence patterns – tác giả De Raedt và Kramer)
- Dựa vào thuật toán đồ thị con phổ biến