Khai thác đồ thị dựa trên tài liệu data mining concepts and techniques, jiawei han
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC NGOẠI NGỮ - TIN HỌC TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
HUỲNH TRỌNG NHÂN–09DH11181 TRẦN BÌNH AN –
VƯU VĨNH
PHÚC-ĐỒ ÁN MÔN HỌC
KHAI THÁC DỮ LIỆU VÀ ỨNG DỤNG
ĐỀ TÀI : KHAI THÁC ĐỒ THỊ
DỰA TRÊN TÀI LIỆU :
Data Mining: Concepts and Techniques, Jiawei Han
TP.HCM – 12/2012
Trang 2Tóm tắt nội dung đồ án
Đồ thị biểu thị cho một lớp cấu trúc chung hơn là các bộ, chuỗi, mắt lưới và cây Khai thác đồ thị thường được sử dụng để khai thác những mẫu đồ thị phổ biến, vàthực thi sự phân tích những đặc điểm, phân biệt, phân lớp và gom nhóm trên các bộ
dữ liệu đồ thị lớn Khai thác đồ thị có một phổ trải rộng của các ứng dụng trong tin hoc hóa học, sinh tin học, thị giác máy tính, lập danh mục video, tìm kiếm văn bản, vàphân tích web
Những phương thức hiệu quả được phát triển cho khai thác các cấu trúc con phổ biến Chúng có thể phân loại vào hai phương pháp là dựa trên Apriori và dựa trên Pattern-Growth Phương pháp dựa trên Apriori dùng chiến lược tìm kiếm theo chiều rộng bởi
nó tạo ra các ứng viên theo các mức duyệt của nó Một phương thức Pattern-Growth điển hình là gSpan, được mở rộng để thêm vào các kỹ thuật tối ưu trong Pattern-Growth và đạt được khả năng thực thi cao Sự mở rộng xa hơn của gSpan cho việc khai thác các mẫu đồ thị phổ biến đóng dẫn tới giải thuật CloseGraph, là giải thuật khai thác “nén” hơn nhưng không phải khai thác toàn bộ các mẫu phổ biến, với một
độ hỗ trợ cho trước Có nhiều mẫu đồ thị biến đổi “thú vị” bao gồm: các đồ thị phổ biến sấp xỉ, đồ thị liên kết chặt, đồ thị dầy đặc Một khung làm việc chung mà được xem như là một ràng buộc là cần thiết cho những cấu trúc như vậy Hơn nữa, có nhiều ràng khác nhau được chỉ rõ bởi người dùng có thể được “dìm sâu” vào việc xử lý các mẫu đồ thị để cải thiện hiệu quả việc khai thác Phái triển ứng dụng của khai thác đồ thị có thể dẫn tới việc tạo ra những cấu trúc danh mục đồ thị hiệu quả và chặt chẻ sử dụng những mẫu đồ thị phân biệt và phổ biến Tìm kiếm sự tương tự cấu trúc có thể gặp sự bùng nổ theo cấp số nhân các thuộc tính của đồ thị Phân tích gom nhóm và phân lớp của các bộ dữ liệu đồ thị có thể được khám phá bởi sự giữa chúng với
phương pháp khai thác mẫu đồ thị
Trang 3Chương 9:Graph Mining
9.1 Khai thác đồ thị.
Đ th ngày càng tr nên quan tr ng trong vi c mô hình hóa các c u trúc ph c ở nên quan trọng trong việc mô hình hóa các cấu trúc phức ọng trong việc mô hình hóa các cấu trúc phức ệc mô hình hóa các cấu trúc phức ấu trúc phức ức
t p (h p ch t hóa h c, c u trúc protein, m ng sinh h c, m ng xã h i …) và các ấu trúc phức ọng trong việc mô hình hóa các cấu trúc phức ấu trúc phức ọng trong việc mô hình hóa các cấu trúc phức ội …) và các
tư ng tác gi a chúng, v i các ng d ng r ng rãi bao g m tin hóa h c, tin sinh ới các ứng dụng rộng rãi bao gồm tin hóa học, tin sinh ức ụng rộng rãi bao gồm tin hóa học, tin sinh ội …) và các ọng trong việc mô hình hóa các cấu trúc phức
h c, th giác máy tính, l p ch m c video, thu h i văn b n, và phân tích Web nhu ọng trong việc mô hình hóa các cấu trúc phức ập chỉ mục video, thu hồi văn bản, và phân tích Web nhu ỉ mục video, thu hồi văn bản, và phân tích Web nhu ụng rộng rãi bao gồm tin hóa học, tin sinh ản, và phân tích Web nhu
c u phân tích các d li u có c u trúc ngày càng tăng và vì v y graph mining tr ệc mô hình hóa các cấu trúc phức ấu trúc phức ập chỉ mục video, thu hồi văn bản, và phân tích Web nhu ở nên quan trọng trong việc mô hình hóa các cấu trúc phức thành m t nhi m v quan tr ng.ội …) và các ệc mô hình hóa các cấu trúc phức ụng rộng rãi bao gồm tin hóa học, tin sinh ọng trong việc mô hình hóa các cấu trúc phức
Ví D :ụng rộng rãi bao gồm tin hóa học, tin sinh
Hình 1: Ví dụ các ứng dụng của đồ thị
Khai thác đồ thị là công việc đánh giá, phân tích dựa trên những cấu trúc con phổ biến Các ứng dụng của khai thác đồ thị như lấy ra các đặc trưng của các tập hợp đồ thị, phân biệt các nhóm khác nhau của đồ thị, phân lớp và gom nhóm đồ thị, xây dựng chỉ mục đồ thị, V.v…
9.1.1 Các phương thức khai thác đồ thị con phổ biến
Đ u tiên ta sẽ gi i thi u khái ni m đ th con: Cho hai đ th G(V,E) và ới các ứng dụng rộng rãi bao gồm tin hóa học, tin sinh ệc mô hình hóa các cấu trúc phức ệc mô hình hóa các cấu trúc phức
G1(V1,E1) ta nó đ th G1 là con c a đ th G n u V1 V và E1 E, v i m i c nhủa đồ thị G nếu V1 V và E1 E, với mọi cạnh ếu V1 V và E1 E, với mọi cạnh ới các ứng dụng rộng rãi bao gồm tin hóa học, tin sinh ọng trong việc mô hình hóa các cấu trúc phức e=(i,j) thu c V c a G, n u e thu c V1 thì i, j thu c E1.ội …) và các ủa đồ thị G nếu V1 V và E1 E, với mọi cạnh ếu V1 V và E1 E, với mọi cạnh ội …) và các ội …) và các
Ví d : Đ th G1 là con c a đ th Gụng rộng rãi bao gồm tin hóa học, tin sinh ủa đồ thị G nếu V1 V và E1 E, với mọi cạnh
Hình 2: Ví dụ đồ thị con
Cho một bộ độ thị đã đánh nhãn D ={ G1, G2, …., Gn}, chúng ta định nghĩa độ hỗ trợ của g là phần trăm những đồ thị trong D, mà g là đồ thị con Một đồ thị phổ biến làmột đồ thị mà độ hỗ trợ của nó không thấp hơn ngưỡng hộ trợ thấp nhất
Mạng cộng tác của các tác giả
Trang 4Ví dụ: Dưới đây là ví dụ về đồ thị con cùng với độ hỗ trợ của nó, với độ hỗ trợ là số lần xuất hiện của đồ thị con trong các đồ thị (1), (2), (3).
Hình 3: Ví dụ về đồ thị con và độ hỗ trợ
Có hai phương pháp điển hình về khai thác cấu trúc con phổ biến, mỗi phương pháp
có chiến lược tạo ra các ứng viên riêng khác nhau Hai phương pháp đó là:
• Phương pháp dựa trên Apriori , với các giải thuật tạo ứng viên điển hình nhưlà:
– AGM
– FSG
– Nối liền đường đi(path-join)
• Phương pháp pattern-growth, với giải thuật tạo ứng viên điển hình như là:
– gSpan
Đầu tiên ta sẽ giới thiệu phương pháp dựa trên Apriori và các giải thuật ứng dụng của nó
9.1.1.1 Phương pháp dựa trên Apriori
Một giải thuật khai thác những câu trúc con phổ biến dựa trên Apriori chia sẽ
Trang 5những đặc trưng với giải thuật khai thác bộ hạng mục phổ biến dựa trên Apriori Tìm kiếm đồ thị phổ biến bắt đầu từ đồ thị có kích thước “nhỏ”, và tiến lên từ đấy đi lên một cách thủ công bởi các ứng viên được tạo ra có những đỉnh, cạnh, đường dẫn mở rộng Định nghĩa kích thước của đồ thị phụ thuộc vào từng loại giải thuật được sử dụng Để mà xác định một đồ thị kích thước k+1 có là phổ biến hay không, nó cần phải kiểm tra tất cả những đồ thị con có kích thước k phổ biến mà tương xứng với nó
để đạt được một cận trên của độ hỗ trợ của nó
Ví dụ: Ở ví dụ này thì trước khi các đồ thị K+1 cạnh được tạo ra thì phải đảm bảo rằng các đồ thị K cạnh là những đồ thị phổ biến
Hình 4: Mô tả phương pháp dựa trên Apriori
Khung công việc của phương thức khai thác cấu trúc con phổ biến dựa trên Apriori:
Kết hợp
Trang 6Hình 5: Mã giả của giải thuật AprioriGraph
Đây cũng được coi như là giải thuật AprioriGraph Sk là một bộ cấu trúc con phổ biến với kích thước là k Apriori thích hợp với một phương thức khai thác duyệt theo mức Ở mỗi vòng lập, nó dò tìm một cấu trúc con phổ biến mới và kích thước được tăng lên một Cấu trúc mới được tạo ra đầu tiên bởi kết hợp hai cái tương tự nhau những có một sự khác biệt nhỏ ở đồ thị con phổ biến mà đã được tìm thấy ở những lần gọi trước đó tới AprioriGraph Thủ tục tạo ra ứng viên này được mô tả ở bước 4 và sự phổ biến của dạng đồ thì mới được đánh dấu Những sự tìm thấy mà là phổ biến thường sử dụng để tạo ra những ứng viên lớn hơn trong những vòng kế tiếp Sau đây ta sẽ đi chi tiết vào cái giải thuật ứng dụng PrioriGraph
Trang 79.1.1.1.1 Giải thuật AGM
Giải thuật AGM dùng cách tạo ra ứng viên dựa trên đỉnh làm cho kích thước của cấu trúc con tăng lên một ở mỗi vòng lập của AprioriGraph Hai đồ thị phổ biến
có cùng kich thước k sẽ được kết hợp với nhau nếu như chúng có giống nhau ở đồ thị con kích thước k-1, ở đây kích thước đồ thị la số lượng đỉnh của đồ thị đó Ứng viên mới sẽ bao gồm đồ thị con kích thức k-1 giống nhau và cộng thêm hai đỉnh của hai đồ thi kich thước k, bởi vì không thể xác định được có một cạnh nối giữa hai đỉnh mới thêm vào hay không, nên ta có thể thêm một cạnh nối hai đỉnh này Số đỉnh của ứng viên mới luôn nhiều hơn một đỉnh
sẽ có k-1 cạnh giống với nhân và thêm hai cạnh của hai mẫu kích thước k, do đó ứng viên mới luôn có nhiều hơn một cạnh
Ví Dụ:
Hình 7: Ví dụ của giải thuật FSG
9.1.1.1.3 Giải thuật đường có cạnh nối rời
Các bước của giải thuật:
– Xây dựng những đường đi phổ biển, là những đường đi mà có độ hỗ trợ lớnhơn ngưỡng cho trước
– Từ những đương đi phổ biến này xây dựng đồ thị với hai đường có cạnh nốirời, nghĩa là hai đường này không chia sẽ bất kỳ cạnh chung nào
Trang 8– Tiếp tục xây dựng đồ thị với k+1 đường có cạnh nối rời từ đồ thị có k đường cócạnh nối rời
– Lập lại cho tới khi nào hết đường đi phổ biến.
Hình 9: Mã giả của phương pháp PatternGrowthGraph
Đây cũng được gọi là PatternGrowthGraph Mỗi một lần khám phá đồ thị G, nótiến hành mở rộng đệ quy cho tới khi nào tất cả các đồ thị phổ biến với G được nhúng vào được tìm thấy Đệ quy sẽ dừng lại nếu như không có đồ thị phổ biến nào được tạo
ra nữa
PatternGrowthGraph đơn giản, nhưng không hiệu quả Hiệu ứng thắt cổ chai sẽ
Trang 9làm cho nó không hiệu quả trong lúc mở rộng Các đồ thị giống nhau có thể được tìm thấy nhiều lần Những đồ thị này được gọi là đồ thị trùng lấp Điều này gây lãng phí không gian tìm kiếm rất lớn.
Ví dụ:
Hình 10: Ví dụ về đồ thị trùng lấp trong phương pháp PatternGrowth
Để giảm điều này cần phải mở rộng một cách “bảo toàn” để tránh việc tạo ra các
đồ thị trùng lấp Dẫn tới việc ra đời các giải thuật mới Điển hình là gSpan:
– Thiết kế để giảm việc tạo ra các đồ thị trùng lấp
– Không cần phải tìm kiếm những đồ thị đã khám phá ra là có trùng lấp haykhông
– Bảo đảm cho việc tìm thấy toàn bộ đồ thị phổ biến
Cách thức hoạt động:
– Với cách duyệt đồ thị, nó thích ứng với tìm kiếm theo chiều sau
– Bất đầu từ một đỉnh bất kỳ, những đỉnh đã đi qua thì được đánh dấu
Tập đỉnh đi qua sẽ được mở rộng cho tới khi một cây tìm kiếm theo chiều sau đầy đủ được xây dựng
Sâu đây là các khái niệm liên quan tới phương pháp gSpan
Một đồ thị sẽ có nhiều cây DFS(là cách thức duyệt đồ thị theo DFS) khác nhautùy theo cách thực thi của nó, điển hình là tùy theo đỉnh xuất phát của cách duyệt Một
đồ thị G được chỉ số dưới(subscipt) bởi cây DFS T thì T gọi là chỉ số
dưới(subscripting ) DFS của G Tùy theo số lượng cây DFS của đồ thị mà có nhiều chỉ
Đồ thị trùng lấp
Trang 10đường đi phải nhất gọi là mở rộng về trước.
Ví dụ về đường đi phải nhất và đỉnh bên phải nhất
Hình 12: Đường đi phải nhất và đỉnh phải nhất
Ví dụ về mở rộng về sau và mở rộng tới trước:
Hình 13: Mở rộng về bên phải.
Chúng ta chuyển đổi mỗi một chỉ số dưới của đồ thị đến một chuỗi cạnh, gọi là mãDFS( DFS code), và chúng ta có thể xây dựng một sự sấp xếp giữa những chuỗi này Mục tiêu đó là chọn ra một chỉ số dưới mà tạo ra chuỗi nhỏ nhất như là chỉ số dưới cơ
sở của chính nó Và chỉ số dưới nhỏ nhất(cơ sở) hay còn gọi là mã DFS nhỏ nhất này
sẽ đại diện cho đồ thị đó, ứng dụng điều này chúng ta có thể loại các đồ thị giống nhau, bằng cách chỉ lấy những đồ thị có chỉ số dưới nhỏ nhất Có hai sự sấp xếp của quy trình chuyển đổi này là:
– Sấp xếp theo cạnh, liên kết cạnh trong một chỉ số dưới của đồ thị vào mộtchuỗi
– Sấp xếp chuỗi , xây dựng một sư sấp xếp giữa dãy các cạnh
Ví dụ: Trong ví dụ dưới đây gamma0, gamma1, gamma2 là các mã DFS được tạo ra
từ các chỉ số dưới DFS của một đồ thị, ở phần sau chúng ta sẽ đi tới ví dụ sấp xếp các chuỗi này để chọn ra mã DFS nhỏ nhất để biểu thị cho đồ thị
Hình 14: Ví dụ các mã DFS của một đồ thị
Đường đi phải nhất(right-most path)
Mở rộng tới trước
Trang 11Để xây dựng mã DFS của từng chỉ số dưới DFS ta sử dụng phương pháp duyệt cây theo chiều sâu, khi duyệt thì chúng ta mở rộng về sau trước khi mở rộn tới trước Ví
dụ dưới đây sẽ chỉ rõ cách xây dựng mã DFS từng bước, theo cách duyệt theo chiều sau
Ví dụ: Trong ví dụ này chúng ta chú ý đánh số thứ tự các đỉnh, và mở rộng về
sau(cạnh e2) được thực hiện trước mở rộng tới trước(cạnh e3, cạnh e5)
Hình 15: Ví dụ thứ tự tạo mã DFS theo cách duyệt cây.
Trong vấn đề một đồ thị có nhiều mã DFS khác nhau, thì ta sắp xếp các mã DFS theo thứ tự tự điển DFS, dựa trên các yếu tố với các độ ưu tiên giảm dần như sau:
Trang 12Ví dụ: Ở ví dụ này, ta thấy có hai chỉ số dưới giống nhau nhưng chỉ có một mã DFS nhỏ nhất, ta thấy mã DFS của chỉ số dưới đầu tiên nhỏ hơn mã DFS của chỉ số sau vì theo thứ tự duyệt đỉnh theo chiều sau thì mã DFS đầu tiên được duyệt trước do đó nó nhỏ hơn, ta tiến hành tỉa đi mã DFS sau vì nó không phải nhỏ nhất.
Hình 17: Ví dụ về tỉa cây có mã DFS không phải nhỏ nhất.
Sau đây là thuật giải tổng quát của phương pháp gSpan:
Trang 13Hình 18: Mã giả của phương pháp gSpan.
gSpan mở rộng mẫu tới những con cháu phổ biến tới khi độ hỗ trợ của nó nhỏ hơn độ
hỗ trợ nhỏ nhất hoặc mã của nó không phải là nhỏ nhất Sự khác biệt giữa gSpan và Pattern-Growth đó là ở sự mở rộng bên phải nhất và sự chấm dứt mở rộng của những
mã DFS không phải là nhỏ nhất Giải thuật ở trên là một phiên bản tiềm kiếm theo chiều sau của gSpan.Thực tế, tiềm kiếm theo chiều rộng cũng làm việc như vậy: với mỗi đồ thị phổ biến con mới được tìm thấy ở dòng thứ 8, thây vì gọi trược tiếp gSpan, chúng ta thêm vào một hàng đợi Q toàn cục, thứ mà có thể lưu trữ tất cả những đồ thị con mà nó không thể mở rộng được nữa Rồi chúng ta “gSpan” mỗi đồ thị con trong
Q Sự thực thi của một phiên bản của tìm kiếm theo chiều rộng của gSpam rất gần với tìm kiếm theo chiều sâu, mặc dù DFS tốn ít bộ nhớ hơn
Ví dụ gSpan:
– Cho bộ dữ liệu đồ thị (a) và độ hỗ trợ bằng 2
– Bước1: Làm sạch đồ thị bằng cách xóa đi các cạnh không thỏa mãn độ hỗ trợ(b)
Trang 14Tỉa nếu không là nhỏ nhất
Hình 20: Loại bỏ đồ thị có mã DFS không phải là nhỏ nhất trong gSpan
– Kết quả trả về mẫu (a,b,c) và thực thể
Thứ tự tìm kiếm Theo chiều rộng Theo chiều sâu
Cách thức tạo ứng viên Priori Phát triển mẫu
Trang 15Loại trừ việc trùng lấp đồ thị con Bị động Chủ động
Thứ tự phá triển mẫu Đường đi -> Cây
-> Đồ thị Đường đi -> Cây -> Đồ thị
9.1.2 Khai thác những mẫu cấu trúc con biến đổi và ràng buộc
Những loại đồ thị con phổ biến mà chúng ta đã thảo luận thì chúng chỉ giữ duy nhất một loại đặc biệt của những đồ thị: đã đánh nhãn, vô hướng, những đồ thị liên thông đơn giản mà không có bất kỳ ràng buộc cụ thể nào Chúng ta cho rằng dữ liệu được khai thác chứa đựng một bộ các đồ thị, mỗi bộ bao gồm một bộ các nhãn đỉnh và cạnh
vô hướng, với không có những ràng buộc khác Tuy nhiên, trong nhiều ứng dụng hoặcngười sử dụng có thể cần áp đặt những loại ràng buộc khác nhau trên những mẫu đượckhai thác hay tìm kiếm những mẫu cấu trúc con biến đổi Ví dụ, chúng ta có thể khai
mõ các mẫu, mỗi một cái đó chứa đựng một cạnh hoặc đỉnh cụ thể nào đó, hoặc tổng
số lượng của đỉnh hoặc cạnh nằm trong một miền cụ thể Hoặc cái gì nếu chúng ta tìmkiếm những mẫu mà bề dày trung bình của những mẫu đồ thị phải trên một cái
ngưỡng nào đó? Mặc dù có thể để phát triển một giải thuật tùy biến cho mỗi trường hợp như vậy, có rất nhiều trường hợp biến đổi cần xem xét Thây vào đó một khung công việc là một sự cần thiết mà có thể phân lớp những ràng buộc dựa trên những mẫu
đồ thị Những phương thức dựa trên ràng buộc hiệu quả có thể phát triển cho khai tháccác mẫu cấu trúc con và những biến đổi của chúng Trong phần này, chúng ta nghiên cứu một vài mẫu cấu trúc con biến đổi và ràng buộc và xem xét cách mà chúng được khai thác
9.1.2.1 Khai thác trên đồ thị phổ biến đóng
Một điều quan trọng trong những cấu trúc con phổ biến đó là cấu trúc con phổ biến đóng Bởi vì khai thác trên các mẫu đồ thị có thể làm bùng nổ số lượng lớn các mẫu Nhất là những bộ dữ liệu dầy đặc, bởi vì tất cả những đồ thị con của đồ thị phổ biến làphổ biến, các đồ thị con có thể được sinh ra theo quy luật hàm mũ Ví dụ:Giữa 423 hợp chất hóa học được xác định trong một bộ dữa liệu chọn lọc kháng virut AIDS thì
có gần một triệu các mẫu đồ thị phổ biến mà có độ hộ trở tối thiểu là 5% Điều này cho thấy rằng việc phân tích xa hơn trên những đồ thị phổ biến là không thể Do đó chỉ khai thác trên đồ thị phổ biến đóng Đồ thị G là đóng khi và chỉ khi không có một
đồ thị cha G’ nào có chung độ hỗ trợ với nó Ngoài ra chúng ta cũng có thể khai thác trên đồ thị lớn nhất Đồ thị G là lớn nhất khi và chỉ khi nó không có bất kỳ một đồ thị cha phổ biến nào
Ví dụ:
Lớn nhất